Rename DestinationFileExistsError -> DestinationExistsError.
And define the error message within the class.
This commit is contained in:
parent
e3f0aecf93
commit
750d372380
|
@ -689,9 +689,9 @@ module Zip
|
|||
|
||||
def create_file(dest_path, _continue_on_exists_proc = proc { Zip.continue_on_exists_proc })
|
||||
if ::File.exist?(dest_path) && !yield(self, dest_path)
|
||||
raise ::Zip::DestinationFileExistsError,
|
||||
"Destination '#{dest_path}' already exists"
|
||||
raise ::Zip::DestinationExistsError, dest_path
|
||||
end
|
||||
|
||||
::File.open(dest_path, 'wb') do |os|
|
||||
get_input_stream do |is|
|
||||
bytes_written = 0
|
||||
|
@ -718,14 +718,11 @@ module Zip
|
|||
return if ::File.directory?(dest_path)
|
||||
|
||||
if ::File.exist?(dest_path)
|
||||
if block_given? && yield(self, dest_path)
|
||||
::FileUtils.rm_f dest_path
|
||||
else
|
||||
raise ::Zip::DestinationFileExistsError,
|
||||
"Cannot create directory '#{dest_path}'. " \
|
||||
'A file already exists with that name'
|
||||
end
|
||||
raise ::Zip::DestinationExistsError, dest_path unless block_given? && yield(self, dest_path)
|
||||
|
||||
::FileUtils.rm_f dest_path
|
||||
end
|
||||
|
||||
::FileUtils.mkdir_p(dest_path)
|
||||
set_extra_attributes_on_path(dest_path)
|
||||
end
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
module Zip
|
||||
class Error < StandardError; end
|
||||
class DestinationFileExistsError < Error; end
|
||||
|
||||
class CompressionMethodError < Error
|
||||
attr_reader :compression_method
|
||||
|
@ -30,6 +29,18 @@ module Zip
|
|||
end
|
||||
end
|
||||
|
||||
class DestinationExistsError < Error
|
||||
def initialize(destination)
|
||||
super()
|
||||
@destination = destination
|
||||
end
|
||||
|
||||
def message
|
||||
"Cannot create file or directory '#{@destination}'. " \
|
||||
'A file already exists with that name.'
|
||||
end
|
||||
end
|
||||
|
||||
class EntryExistsError < Error
|
||||
def initialize(source, name)
|
||||
super()
|
||||
|
|
|
@ -38,7 +38,9 @@ class ZipFileExtractDirectoryTest < MiniTest::Test
|
|||
|
||||
def test_extract_directory_exists_as_file
|
||||
File.open(TEST_OUT_NAME, 'w') { |f| f.puts 'something' }
|
||||
assert_raises(::Zip::DestinationFileExistsError) { extract_test_dir }
|
||||
assert_raises(::Zip::DestinationExistsError) do
|
||||
extract_test_dir
|
||||
end
|
||||
end
|
||||
|
||||
def test_extract_directory_exists_as_file_overwrite
|
||||
|
|
|
@ -39,11 +39,12 @@ class ZipFileExtractTest < MiniTest::Test
|
|||
text = 'written text'
|
||||
::File.open(EXTRACTED_FILENAME, 'w') { |f| f.write(text) }
|
||||
|
||||
assert_raises(::Zip::DestinationFileExistsError) do
|
||||
assert_raises(::Zip::DestinationExistsError) do
|
||||
::Zip::File.open(TEST_ZIP.zip_name) do |zf|
|
||||
zf.extract(zf.entries.first, EXTRACTED_FILENAME)
|
||||
end
|
||||
end
|
||||
|
||||
File.open(EXTRACTED_FILENAME, 'r') do |f|
|
||||
assert_equal(text, f.read)
|
||||
end
|
||||
|
|
|
@ -40,7 +40,9 @@ class ZipSettingsTest < MiniTest::Test
|
|||
def test_false_on_exists_proc
|
||||
Zip.on_exists_proc = false
|
||||
File.open(TEST_OUT_NAME, 'w') { |f| f.puts 'something' }
|
||||
assert_raises(Zip::DestinationFileExistsError) { extract_test_dir }
|
||||
assert_raises(Zip::DestinationExistsError) do
|
||||
extract_test_dir
|
||||
end
|
||||
end
|
||||
|
||||
def test_false_continue_on_exists_proc
|
||||
|
|
Loading…
Reference in New Issue