0

glob使用 1.2.0 版,当我尝试调用一个ZipFsDir对象时,我得到了奇怪的结果。在 Rails 控制台中:

> require 'zip/filesystem'
 => true 
> file = '/home/me/test.zip'
 => "/home/me/test.zip" 
> zf = Zip::File.open file
 => #<Zip::File:0x0000000880e0c8...
> d = zf.dir
 => #<Zip::FileSystem::ZipFsDir:0x0000000880e028
> d.class
 => Zip::FileSystem::ZipFsDir
> d.glob("*.shp")
NoMethodError: undefined method `glob' for #<Zip::FileSystem::ZipFileNameMapper:0x0000000880e078>

为什么报告该方法未定义Zip::FileSystem::ZipFileNameMapper?我在一个ZipFsDir对象上调用它。文档清楚地列出globZipFsDir 实例方法

4

1 回答 1

1

发生这种情况的一个原因ZipFileNameMapper确实没有实现该glob方法,如它的源代码所示。

根据这份声明:

从 ZipFsFile 和 ZipFsDir 对 Zip::File 的所有访问都通过 ZipFileNameMapper

ZipFileNameMapper应该实现glob它没有实现的,所以它看起来像一个可能的错误。

于 2016-07-13T19:58:54.143 回答