Class: LibPath::Path::Unix::ParsedPath
- Inherits:
-
Object
- Object
- LibPath::Path::Unix::ParsedPath
- Defined in:
- lib/libpath/path/unix.rb
Overview
Class representing a parsed path (for UNIX)
Instance Attribute Summary collapse
-
#absolute_path ⇒ Object
readonly
(String) The full-path of the instance.
-
#compare_path ⇒ Object
readonly
(String) A normalised form of #path that can be used in comparisons.
-
#directory ⇒ Object
readonly
(String) The entry’s directory (excluding the #drive if on Windows).
-
#directory_parts ⇒ Object
readonly
([String]) An array of directory parts, where each part ends in the path name separator.
-
#directory_path ⇒ Object
(also: #dirname)
readonly
(String) The full path of the entry’s directory.
-
#file_extension ⇒ Object
(also: #extension)
readonly
(String) The entry’s file extension.
-
#file_full_name ⇒ Object
(also: #basename)
readonly
(String) The entry’s file name (combination of #stem + #extension).
-
#file_name_only ⇒ Object
(also: #stem)
readonly
(String) The entry’s file stem.
-
#given_path ⇒ Object
readonly
(String) The path given to initialise the instance.
-
#search_directory ⇒ Object
readonly
(String) The search directory if specified;
nil
otherwise. -
#search_relative_directory_parts ⇒ Object
readonly
([String]) The #directory_parts relative to #search_directory;
nil
if no search directory specified. -
#search_relative_directory_path ⇒ Object
readonly
(String) The #directory_path relative to #search_directory;
nil
if no search directory specified. -
#search_relative_path ⇒ Object
readonly
(String) The #path relative to #search_directory;
nil
if no search directory specified.
Instance Method Summary collapse
-
#initialize(path, search_directory = nil, **options) ⇒ ParsedPath
constructor
Initialises an instance from the given
path
, optionalsearch_directory
and options. -
#to_s ⇒ Object
(String) String form of path.
Constructor Details
#initialize(path, search_directory = nil, **options) ⇒ ParsedPath
Initialises an instance from the given path
, optional search_directory
and options
Signature
-
Parameters:
-
path
(String) The path. May not benil
-
search_directory
(String) The search_directory, from which the relative attributes are calculated for the path. May benil
-
options
(Hash) Options
-
-
Options:
-
????
-
-
Exceptions:
-
ArgumentError
Raised ifpath
isnil
-
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
# File 'lib/libpath/path/unix.rb', line 87 def initialize path, search_directory = nil, ** raise ::ArgumentError, "path may not be nil or empty" if path.nil? || path.empty? _Diagnostics = ::LibPath::Diagnostics _Internal_Form = ::LibPath::Internal_::Unix::Form _Util = ::LibPath::Util::Unix _C = ::LibPath::Path::Unix::ParsedPath::ParsedPath_Constants _Diagnostics.(, known: _C::INIT_VALID_OPTIONS) abs_path = _Util.make_path_absolute(path, make_canonical: true, **.select { |k| _C::INIT_MPA_COMMON_OPTIONS.include?(k) }) _, _, f2_dir, f3_basename, f4_stem, f5_ext, f6_dir_parts, _ = _Internal_Form.split_path(abs_path) @given_path = path @absolute_path = abs_path @compare_path = _Util.make_compare_path abs_path @directory = f2_dir @directory_path = f2_dir @directory_parts = f6_dir_parts @file_full_name = f3_basename @file_name_only = f4_stem @file_extension = f5_ext if search_directory = .select { |k| _C::INIT_DRP_COMMON_OPTIONS.include?(k) } search_directory = _Util.make_path_absolute(search_directory, make_canonical: true, **.select { |k| _C::INIT_MPA_COMMON_OPTIONS.include?(k) }) search_directory = _Internal_Form.append_trailing_slash search_directory @search_directory = search_directory @search_relative_path = _Util.derive_relative_path(search_directory, abs_path, **) @search_relative_path = _Internal_Form.append_trailing_slash(@search_relative_path) if _Internal_Form.char_is_path_name_separator?(abs_path[-1]) @search_relative_directory_path = _Internal_Form.append_trailing_slash _Util.derive_relative_path(search_directory, f2_dir, **) @search_relative_directory_parts = @search_relative_directory_path.split('/').map { |v| v + '/' } end end |
Instance Attribute Details
#absolute_path ⇒ Object (readonly)
(String) The full-path of the instance
132 133 134 |
# File 'lib/libpath/path/unix.rb', line 132 def absolute_path @absolute_path end |
#compare_path ⇒ Object (readonly)
(String) A normalised form of #path that can be used in comparisons
134 135 136 |
# File 'lib/libpath/path/unix.rb', line 134 def compare_path @compare_path end |
#directory ⇒ Object (readonly)
(String) The entry’s directory (excluding the #drive if on Windows)
136 137 138 |
# File 'lib/libpath/path/unix.rb', line 136 def directory @directory end |
#directory_parts ⇒ Object (readonly)
([String]) An array of directory parts, where each part ends in the path name separator
141 142 143 |
# File 'lib/libpath/path/unix.rb', line 141 def directory_parts @directory_parts end |
#directory_path ⇒ Object (readonly) Also known as: dirname
(String) The full path of the entry’s directory
138 139 140 |
# File 'lib/libpath/path/unix.rb', line 138 def directory_path @directory_path end |
#file_extension ⇒ Object (readonly) Also known as: extension
(String) The entry’s file extension
149 150 151 |
# File 'lib/libpath/path/unix.rb', line 149 def file_extension @file_extension end |
#file_full_name ⇒ Object (readonly) Also known as: basename
(String) The entry’s file name (combination of #stem + #extension)
143 144 145 |
# File 'lib/libpath/path/unix.rb', line 143 def file_full_name @file_full_name end |
#file_name_only ⇒ Object (readonly) Also known as: stem
(String) The entry’s file stem
146 147 148 |
# File 'lib/libpath/path/unix.rb', line 146 def file_name_only @file_name_only end |
#given_path ⇒ Object (readonly)
(String) The path given to initialise the instance
130 131 132 |
# File 'lib/libpath/path/unix.rb', line 130 def given_path @given_path end |
#search_directory ⇒ Object (readonly)
(String) The search directory if specified; nil
otherwise
152 153 154 |
# File 'lib/libpath/path/unix.rb', line 152 def search_directory @search_directory end |
#search_relative_directory_parts ⇒ Object (readonly)
([String]) The #directory_parts relative to #search_directory; nil
if no search directory specified
158 159 160 |
# File 'lib/libpath/path/unix.rb', line 158 def search_relative_directory_parts @search_relative_directory_parts end |
#search_relative_directory_path ⇒ Object (readonly)
(String) The #directory_path relative to #search_directory; nil
if no search directory specified
156 157 158 |
# File 'lib/libpath/path/unix.rb', line 156 def search_relative_directory_path @search_relative_directory_path end |
#search_relative_path ⇒ Object (readonly)
(String) The #path relative to #search_directory; nil
if no search directory specified
154 155 156 |
# File 'lib/libpath/path/unix.rb', line 154 def search_relative_path @search_relative_path end |
Instance Method Details
#to_s ⇒ Object
(String) String form of path
161 162 163 164 |
# File 'lib/libpath/path/unix.rb', line 161 def to_s absolute_path end |