Class: Recls::Entry
- Inherits:
-
Object
- Object
- Recls::Entry
- Defined in:
- lib/recls/entry.rb,
lib/recls/recls.rb
Instance Attribute Summary collapse
-
#compare_path ⇒ Object
readonly
########################## Name-related attributes.
-
#directory ⇒ Object
readonly
Returns the value of attribute directory.
-
#directory_parts ⇒ Object
(also: #directoryParts)
readonly
Returns the value of attribute directory_parts.
-
#directory_path ⇒ Object
(also: #dirname, #directoryPath)
readonly
Returns the value of attribute directory_path.
-
#drive ⇒ Object
(also: #uncDrive)
readonly
Returns the value of attribute drive.
-
#file_extension ⇒ Object
(also: #extension, #fileExt)
readonly
Returns the value of attribute file_extension.
-
#file_full_name ⇒ Object
(also: #basename, #file)
readonly
Returns the value of attribute file_full_name.
-
#file_name_only ⇒ Object
(also: #stem, #fileBaseName, #fileName)
readonly
Returns the value of attribute file_name_only.
-
#file_short_name ⇒ Object
(also: #shortFile)
readonly
Returns the value of attribute file_short_name.
-
#path ⇒ Object
readonly
Returns the value of attribute path.
-
#search_directory ⇒ Object
(also: #searchDirectory)
readonly
Returns the value of attribute search_directory.
-
#search_relative_directory ⇒ Object
readonly
Returns the value of attribute search_relative_directory.
-
#search_relative_directory_parts ⇒ Object
readonly
Returns the value of attribute search_relative_directory_parts.
-
#search_relative_directory_path ⇒ Object
readonly
Returns the value of attribute search_relative_directory_path.
-
#search_relative_path ⇒ Object
(also: #searchRelativePath)
readonly
Returns the value of attribute search_relative_path.
-
#short_path ⇒ Object
readonly
Returns the value of attribute short_path.
Instance Method Summary collapse
-
#<=>(rhs) ⇒ Object
compares this instance with rhs.
-
#==(rhs) ⇒ Object
determines whether rhs refers to the same path.
- #archive? ⇒ Boolean
- #compressed? ⇒ Boolean
-
#dev ⇒ Object
indicates the device of the given entry.
- #device? ⇒ Boolean
-
#directory? ⇒ Boolean
(also: #isDirectory)
indicates whether the given entry represents a directory.
- #encrypted? ⇒ Boolean
-
#eql?(rhs) ⇒ Boolean
determines whether rhs is an instance of Entry and refers to the same path.
-
#exist? ⇒ Boolean
indicates whether the given entry existed at the time the entry instance was created.
-
#file? ⇒ Boolean
(also: #isFile)
indicates whether the given entry represents a file.
-
#hash ⇒ Object
the hash.
-
#hidden? ⇒ Boolean
indicates whether the given entry is hidden.
-
#initialize(path, file_stat, search_dir, flags) ⇒ Entry
constructor
initialises an entry instance from the given path, file_stat, and search_dir.
-
#ino ⇒ Object
indicates the ino of the given entry.
- #isUNC ⇒ Object
-
#last_access_time ⇒ Object
indicates the last access time of the entry.
-
#link? ⇒ Boolean
indicates whether the given entry represents a link.
-
#modification_time ⇒ Object
(also: #creationTime)
indicates the modification time of the entry.
-
#nlink ⇒ Object
number of links to the given entry.
- #normal? ⇒ Boolean
-
#readonly? ⇒ Boolean
(also: #isReadOnly)
indicates whether the given entry is readonly.
-
#size ⇒ Object
indicates the size of the given entry.
-
#socket? ⇒ Boolean
indicates whether the given entry represents a socket.
- #system? ⇒ Boolean
- #temporary? ⇒ Boolean
-
#to_s ⇒ Object
represents the entry as a string (in the form of the full path).
-
#to_str ⇒ Object
represents the entry as a string (in the form of the full path).
Constructor Details
#initialize(path, file_stat, search_dir, flags) ⇒ Entry
initialises an entry instance from the given path, file_stat, and search_dir
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/recls/entry.rb', line 57 def initialize(path, file_stat, search_dir, flags) @file_stat = file_stat @path = Recls::Ximpl.absolute_path path @short_path = nil @compare_path = Entry.get_compare_path_ @path @hash = @compare_path.hash windows_drive, directory, basename, file_name, file_ext = Recls::Ximpl::Util.split_path @path @drive = windows_drive @directory_path = "#{windows_drive}#{directory}" @directory = directory ? directory : '' @directory_parts = Recls::Ximpl.directory_parts_from_directory directory @file_full_name = basename ? basename : '' @file_short_name = nil @file_name_only = file_name ? file_name : '' @file_extension = file_ext ? file_ext : '' @search_directory = search_dir @search_relative_path = Recls::Ximpl.derive_relative_path search_dir, @path @search_relative_directory_path = Recls::Ximpl.derive_relative_path search_dir, @directory_path @search_relative_directory = @search_relative_directory_path @search_relative_directory_parts = Recls::Ximpl.directory_parts_from_directory @search_relative_directory if 0 != (Recls::MARK_DIRECTORIES & flags) && directory? @path = Recls::Ximpl::Util.append_trailing_slash @path @search_relative_path = Recls::Ximpl::Util.append_trailing_slash @search_relative_path end @dev = @file_stat.dev if @file_stat @ino = @file_stat.ino if @file_stat @nlink = @file_stat.nlink if @file_stat if Recls::Ximpl::OS::OS_IS_WINDOWS && @file_stat @dev = @file_stat.by_handle_information.volume_id @ino = @file_stat.by_handle_information.file_index @nlink = @file_stat.by_handle_information.num_links @short_path = @file_stat.short_path @file_short_name = Recls::Ximpl::Util.split_path(@short_path)[2] else end end |
Instance Attribute Details
#compare_path ⇒ Object (readonly)
########################## Name-related attributes
105 106 107 |
# File 'lib/recls/entry.rb', line 105 def compare_path @compare_path end |
#directory ⇒ Object (readonly)
Returns the value of attribute directory.
112 113 114 |
# File 'lib/recls/entry.rb', line 112 def directory @directory end |
#directory_parts ⇒ Object (readonly) Also known as: directoryParts
Returns the value of attribute directory_parts.
113 114 115 |
# File 'lib/recls/entry.rb', line 113 def directory_parts @directory_parts end |
#directory_path ⇒ Object (readonly) Also known as: dirname, directoryPath
Returns the value of attribute directory_path.
110 111 112 |
# File 'lib/recls/entry.rb', line 110 def directory_path @directory_path end |
#drive ⇒ Object (readonly) Also known as: uncDrive
Returns the value of attribute drive.
109 110 111 |
# File 'lib/recls/entry.rb', line 109 def drive @drive end |
#file_extension ⇒ Object (readonly) Also known as: extension, fileExt
Returns the value of attribute file_extension.
119 120 121 |
# File 'lib/recls/entry.rb', line 119 def file_extension @file_extension end |
#file_full_name ⇒ Object (readonly) Also known as: basename, file
Returns the value of attribute file_full_name.
114 115 116 |
# File 'lib/recls/entry.rb', line 114 def file_full_name @file_full_name end |
#file_name_only ⇒ Object (readonly) Also known as: stem, fileBaseName, fileName
Returns the value of attribute file_name_only.
117 118 119 |
# File 'lib/recls/entry.rb', line 117 def file_name_only @file_name_only end |
#file_short_name ⇒ Object (readonly) Also known as: shortFile
Returns the value of attribute file_short_name.
115 116 117 |
# File 'lib/recls/entry.rb', line 115 def file_short_name @file_short_name end |
#path ⇒ Object (readonly)
Returns the value of attribute path.
107 108 109 |
# File 'lib/recls/entry.rb', line 107 def path @path end |
#search_directory ⇒ Object (readonly) Also known as: searchDirectory
Returns the value of attribute search_directory.
121 122 123 |
# File 'lib/recls/entry.rb', line 121 def search_directory @search_directory end |
#search_relative_directory ⇒ Object (readonly)
Returns the value of attribute search_relative_directory.
123 124 125 |
# File 'lib/recls/entry.rb', line 123 def search_relative_directory @search_relative_directory end |
#search_relative_directory_parts ⇒ Object (readonly)
Returns the value of attribute search_relative_directory_parts.
125 126 127 |
# File 'lib/recls/entry.rb', line 125 def search_relative_directory_parts @search_relative_directory_parts end |
#search_relative_directory_path ⇒ Object (readonly)
Returns the value of attribute search_relative_directory_path.
124 125 126 |
# File 'lib/recls/entry.rb', line 124 def search_relative_directory_path @search_relative_directory_path end |
#search_relative_path ⇒ Object (readonly) Also known as: searchRelativePath
Returns the value of attribute search_relative_path.
122 123 124 |
# File 'lib/recls/entry.rb', line 122 def search_relative_path @search_relative_path end |
#short_path ⇒ Object (readonly)
Returns the value of attribute short_path.
108 109 110 |
# File 'lib/recls/entry.rb', line 108 def short_path @short_path end |
Instance Method Details
#<=>(rhs) ⇒ Object
compares this instance with rhs
331 332 333 334 |
# File 'lib/recls/entry.rb', line 331 def <=>(rhs) compare_path <=> rhs.compare_path end |
#==(rhs) ⇒ Object
determines whether rhs refers to the same path
318 319 320 321 322 323 324 325 326 327 328 |
# File 'lib/recls/entry.rb', line 318 def ==(rhs) case rhs when String return compare_path == Entry.get_compare_path_(rhs) when self.class return compare_path == rhs.compare_path else return false end end |
#archive? ⇒ Boolean
167 168 169 170 171 172 |
# File 'lib/recls/entry.rb', line 167 def archive? return false if @file_stat.nil? @file_stat.archive? end |
#compressed? ⇒ Boolean
195 196 197 198 199 200 |
# File 'lib/recls/entry.rb', line 195 def compressed? return false if @file_stat.nil? @file_stat.compressed? end |
#dev ⇒ Object
indicates the device of the given entry
On Windows, this will be 0 if the entry cannot be opened
260 261 262 263 |
# File 'lib/recls/entry.rb', line 260 def dev @dev end |
#device? ⇒ Boolean
174 175 176 177 178 179 |
# File 'lib/recls/entry.rb', line 174 def device? return false if @file_stat.nil? @file_stat.device? end |
#directory? ⇒ Boolean Also known as: isDirectory
indicates whether the given entry represents a directory
211 212 213 214 215 216 |
# File 'lib/recls/entry.rb', line 211 def directory? return false if @file_stat.nil? @file_stat.directory? end |
#encrypted? ⇒ Boolean
202 203 204 205 206 207 |
# File 'lib/recls/entry.rb', line 202 def encrypted? return false if @file_stat.nil? @file_stat.encrypted? end |
#eql?(rhs) ⇒ Boolean
determines whether rhs is an instance of Entry and refers to the same path
307 308 309 310 311 312 313 314 315 |
# File 'lib/recls/entry.rb', line 307 def eql?(rhs) case rhs when self.class return compare_path == rhs.compare_path else return false end end |
#exist? ⇒ Boolean
indicates whether the given entry existed at the time the entry instance was created
132 133 134 135 136 137 |
# File 'lib/recls/entry.rb', line 132 def exist? return false if @file_stat.nil? not @file_stat.nil? end |
#file? ⇒ Boolean Also known as: isFile
indicates whether the given entry represents a file
219 220 221 222 223 224 |
# File 'lib/recls/entry.rb', line 219 def file? return false if @file_stat.nil? @file_stat.file? end |
#hash ⇒ Object
the hash
337 338 339 340 |
# File 'lib/recls/entry.rb', line 337 def hash @hash end |
#hidden? ⇒ Boolean
indicates whether the given entry is hidden
140 141 142 143 144 145 |
# File 'lib/recls/entry.rb', line 140 def hidden? return false if @file_stat.nil? @file_stat.hidden? end |
#ino ⇒ Object
indicates the ino of the given entry
On Windows, this will be 0 if the entry cannot be opened
269 270 271 272 |
# File 'lib/recls/entry.rb', line 269 def ino @ino end |
#isUNC ⇒ Object
101 102 103 104 105 106 |
# File 'lib/recls/recls.rb', line 101 def isUNC d = drive d and d.size > 2 end |
#last_access_time ⇒ Object
indicates the last access time of the entry
287 288 289 290 291 292 |
# File 'lib/recls/entry.rb', line 287 def last_access_time return nil if @file_stat.nil? @file_stat.atime end |
#link? ⇒ Boolean
indicates whether the given entry represents a link
227 228 229 230 231 232 |
# File 'lib/recls/entry.rb', line 227 def link? return false if @file_stat.nil? @file_stat.link? end |
#modification_time ⇒ Object Also known as: creationTime
indicates the modification time of the entry
295 296 297 298 299 300 |
# File 'lib/recls/entry.rb', line 295 def modification_time return nil if @file_stat.nil? @file_stat.mtime end |
#nlink ⇒ Object
number of links to the given entry
On Windows, this will be 0 if the entry cannot be opened
278 279 280 281 |
# File 'lib/recls/entry.rb', line 278 def nlink @nlink end |
#normal? ⇒ Boolean
181 182 183 184 185 186 |
# File 'lib/recls/entry.rb', line 181 def normal? return false if @file_stat.nil? @file_stat.normal? end |
#readonly? ⇒ Boolean Also known as: isReadOnly
indicates whether the given entry is readonly
148 149 150 151 152 153 |
# File 'lib/recls/entry.rb', line 148 def readonly? return false if @file_stat.nil? not @file_stat.writable? end |
#size ⇒ Object
indicates the size of the given entry
246 247 248 249 250 251 |
# File 'lib/recls/entry.rb', line 246 def size return 0 if @file_stat.nil? @file_stat.size end |
#socket? ⇒ Boolean
indicates whether the given entry represents a socket
235 236 237 238 239 240 |
# File 'lib/recls/entry.rb', line 235 def socket? return false if @file_stat.nil? @file_stat.socket? end |
#system? ⇒ Boolean
160 161 162 163 164 165 |
# File 'lib/recls/entry.rb', line 160 def system? return false if @file_stat.nil? @file_stat.system? end |
#temporary? ⇒ Boolean
188 189 190 191 192 193 |
# File 'lib/recls/entry.rb', line 188 def temporary? return false if @file_stat.nil? @file_stat.temporary? end |
#to_s ⇒ Object
represents the entry as a string (in the form of the full path)
347 348 349 350 |
# File 'lib/recls/entry.rb', line 347 def to_s path end |
#to_str ⇒ Object
represents the entry as a string (in the form of the full path)
354 355 356 357 |
# File 'lib/recls/entry.rb', line 354 def to_str path end |