text: Bug #8340
  rubyzip does not save time of zipped files
  Description
  I wrote a little test¶
  require 'zip/zip'
  zipName = "test.zip"
  zipFile = Zip::ZipFile.open( zipName, Zip::ZipFile::CREATE )
  file = File.open( "save.rb", "rb")
  puts time = Zip::DOSTime.at( file.mtime )
  zipEntry = Zip::ZipEntry.new( zipName, file.path, "", "", 0, 0, Zip::ZipEntry::DEFLATED, 0, time ) // I want to keep the time
  outputStream = zipFile.get_output_stream( zipEntry );
  outputStream << file.read
  file.close
  outputStream.close
  zipFile.close()
  Zip::ZipFile.foreach( zipName ){ |zipEntry|
  p zipEntry.name
  p zipEntry.time
  }¶
  it returns
  2013-04-08 21:05:20 +0200
  "save.rb"
  2013-04-27 22:11:36 +0200
  obvious it does not keep the time.
  I can fix the problem if I change line 34 of c:\win\Ruby200x64\lib\ruby\gems\2.0.0\gems\rubyzip-0.9.9\lib\zip\zip_output_stream.rb
  into if entryname.kind_of?(ZipEntry) or entryname.kind_of?( ZipStreamableStream )
  but I feel that this is not the right way to do it, because there are at least 4 other kind_of?(ZipEntry) in that lib
  c:\win\Ruby200x64\lib\ruby\gems\2.0.0\gems\rubyzip-0.9.9\lib\zip\zip_streamable_stream.rb
  tells mee that ZipStreamableStream < DelegateClass(ZipEntry)
  so I think the problem should be fixed in there. But how?
  History
  #1
  Updated by Yui NARUSE about 2 years ago
  - Status changed from Open to Third Party's Issue
  Report this to rubyzip's tracker.
  #2
  Updated by Thilo Opaterny about 2 years ago
  Another try to fix this is to add
  def kind_of?( arg ) super( arg ) || __getobj__.kind_of?( arg ) end
  to c:\win\Ruby200x64\lib\ruby\gems\2.0.0\gems\rubyzip-0.9.9\lib\zip\zip_streamable_stream.rb
  Also available in: Atom PDF