Pass glob through from ZipFileNameMapper.

Just pass the basic glob straight through to the underlying Zip::File
implementation.
This commit is contained in:
Robert Haines 2018-04-30 19:43:23 +01:00
parent 8887b70349
commit 1673da744d
2 changed files with 22 additions and 5 deletions

View File

@ -573,6 +573,10 @@ module Zip
@zipFile.get_output_stream(expand_to_entry(fileName), permissionInt, &aProc) @zipFile.get_output_stream(expand_to_entry(fileName), permissionInt, &aProc)
end end
def glob(*args, &block)
@zipFile.glob(*args, &block)
end
def read(fileName) def read(fileName)
@zipFile.read(expand_to_entry(fileName)) @zipFile.read(expand_to_entry(fileName))
end end

View File

@ -3,6 +3,7 @@ require 'zip/filesystem'
class ZipFsDirectoryTest < MiniTest::Test class ZipFsDirectoryTest < MiniTest::Test
TEST_ZIP = 'test/data/generated/zipWithDirs_copy.zip' TEST_ZIP = 'test/data/generated/zipWithDirs_copy.zip'
GLOB_TEST_ZIP = 'test/data/globTest.zip'
def setup def setup
FileUtils.cp('test/data/zipWithDirs.zip', TEST_ZIP) FileUtils.cp('test/data/zipWithDirs.zip', TEST_ZIP)
@ -93,11 +94,23 @@ class ZipFsDirectoryTest < MiniTest::Test
end end
end end
# Globbing not supported yet def test_glob
# def test_glob globbed_files = [
# # test alias []-operator too 'globTest/foo/bar/baz/foo.txt',
# fail "implement test" 'globTest/foo.txt',
# end 'globTest/food.txt'
]
::Zip::File.open(GLOB_TEST_ZIP) do |zf|
zf.dir.glob('**/*.txt') do |f|
assert globbed_files.include?(f.name)
end
zf.dir.glob('globTest/foo/**/*.txt') do |f|
assert_equal globbed_files[0], f.name
end
end
end
def test_open_new def test_open_new
::Zip::File.open(TEST_ZIP) do |zf| ::Zip::File.open(TEST_ZIP) do |zf|