Ensure File#get/find_entry work consistently.
I have switched around the logic somewhat so that `get_entry` calls `find_entry` and raises an exception if it gets `nil` back.
This commit is contained in:
parent
0f6ca04a9d
commit
2d6b6e024b
|
@ -376,7 +376,13 @@ module Zip
|
|||
# Searches for entry with the specified name. Returns nil if
|
||||
# no entry is found. See also get_entry
|
||||
def find_entry(entry_name)
|
||||
@entry_set.find_entry(entry_name)
|
||||
selected_entry = @entry_set.find_entry(entry_name)
|
||||
return if selected_entry.nil?
|
||||
|
||||
selected_entry.restore_ownership = @restore_ownership
|
||||
selected_entry.restore_permissions = @restore_permissions
|
||||
selected_entry.restore_times = @restore_times
|
||||
selected_entry
|
||||
end
|
||||
|
||||
# Searches for entries given a glob
|
||||
|
@ -388,10 +394,8 @@ module Zip
|
|||
# if no entry is found.
|
||||
def get_entry(entry)
|
||||
selected_entry = find_entry(entry)
|
||||
raise Errno::ENOENT, entry unless selected_entry
|
||||
selected_entry.restore_ownership = @restore_ownership
|
||||
selected_entry.restore_permissions = @restore_permissions
|
||||
selected_entry.restore_times = @restore_times
|
||||
raise Errno::ENOENT, entry if selected_entry.nil?
|
||||
|
||||
selected_entry
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue