Refactor `get_entry` in `FileSystem::File(::Stat)`.
Rename it to `find_entry` because that is ultimately what is called on the underlying zip file. Make `FileSystem::File#find_entry` public as it need to be called from `FileSystem::File::Stat`, so now we can avoid `__send__`. Neither class is documented anyway, so no harm done there.
This commit is contained in:
parent
64a162ced4
commit
9d8fc05c43
|
@ -47,7 +47,6 @@ Metrics/PerceivedComplexity:
|
|||
Naming/AccessorMethodName:
|
||||
Exclude:
|
||||
- 'lib/zip/entry.rb'
|
||||
- 'lib/zip/filesystem/file_stat.rb'
|
||||
- 'lib/zip/input_stream.rb'
|
||||
- 'lib/zip/streamable_stream.rb'
|
||||
|
||||
|
|
|
@ -17,17 +17,16 @@ module Zip
|
|||
@mapped_zip = mapped_zip
|
||||
end
|
||||
|
||||
def get_entry(filename)
|
||||
def find_entry(filename)
|
||||
unless exists?(filename)
|
||||
raise Errno::ENOENT, "No such file or directory - #{filename}"
|
||||
end
|
||||
|
||||
@mapped_zip.find_entry(filename)
|
||||
end
|
||||
private :get_entry
|
||||
|
||||
def unix_mode_cmp(filename, mode)
|
||||
e = get_entry(filename)
|
||||
e = find_entry(filename)
|
||||
e.fstype == 3 && ((e.external_file_attributes >> 16) & mode) != 0
|
||||
rescue Errno::ENOENT
|
||||
false
|
||||
|
@ -111,7 +110,7 @@ module Zip
|
|||
|
||||
def chown(owner, group, *filenames)
|
||||
filenames.each do |filename|
|
||||
e = get_entry(filename)
|
||||
e = find_entry(filename)
|
||||
e.extra.create('IUnix') unless e.extra.member?('IUnix')
|
||||
e.extra['IUnix'].uid = owner
|
||||
e.extra['IUnix'].gid = group
|
||||
|
@ -121,7 +120,7 @@ module Zip
|
|||
|
||||
def chmod(mode, *filenames)
|
||||
filenames.each do |filename|
|
||||
e = get_entry(filename)
|
||||
e = find_entry(filename)
|
||||
e.fstype = 3 # force convertion filesystem type to unix
|
||||
e.unix_perms = mode
|
||||
e.external_file_attributes = mode << 16
|
||||
|
@ -160,7 +159,7 @@ module Zip
|
|||
|
||||
def utime(modified_time, *filenames)
|
||||
filenames.each do |filename|
|
||||
get_entry(filename).time = modified_time
|
||||
find_entry(filename).time = modified_time
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -169,7 +168,7 @@ module Zip
|
|||
end
|
||||
|
||||
def atime(filename)
|
||||
e = get_entry(filename)
|
||||
e = find_entry(filename)
|
||||
if e.extra.member? 'UniversalTime'
|
||||
e.extra['UniversalTime'].atime
|
||||
elsif e.extra.member? 'NTFS'
|
||||
|
@ -178,7 +177,7 @@ module Zip
|
|||
end
|
||||
|
||||
def ctime(filename)
|
||||
e = get_entry(filename)
|
||||
e = find_entry(filename)
|
||||
if e.extra.member? 'UniversalTime'
|
||||
e.extra['UniversalTime'].ctime
|
||||
elsif e.extra.member? 'NTFS'
|
||||
|
|
|
@ -34,13 +34,8 @@ module Zip
|
|||
nil
|
||||
end
|
||||
|
||||
def get_entry
|
||||
@zip_fs_file.__send__(:get_entry, @entry_name)
|
||||
end
|
||||
private :get_entry
|
||||
|
||||
def gid
|
||||
e = get_entry
|
||||
e = find_entry
|
||||
if e.extra.member? 'IUnix'
|
||||
e.extra['IUnix'].gid || 0
|
||||
else
|
||||
|
@ -49,7 +44,7 @@ module Zip
|
|||
end
|
||||
|
||||
def uid
|
||||
e = get_entry
|
||||
e = find_entry
|
||||
if e.extra.member? 'IUnix'
|
||||
e.extra['IUnix'].uid || 0
|
||||
else
|
||||
|
@ -96,13 +91,19 @@ module Zip
|
|||
end
|
||||
|
||||
def mode
|
||||
e = get_entry
|
||||
e = find_entry
|
||||
if e.fstype == 3
|
||||
e.external_file_attributes >> 16
|
||||
else
|
||||
33_206 # 33206 is equivalent to -rw-rw-rw-
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def find_entry
|
||||
@zip_fs_file.find_entry(@entry_name)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue