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:
Robert Haines 2019-10-31 18:12:18 +00:00
parent 0f6ca04a9d
commit 2d6b6e024b
1 changed files with 9 additions and 5 deletions

View File

@ -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