diff options
-rw-r--r-- | spec/zip_spec.cr | 6 | ||||
-rw-r--r-- | src/zip.cr | 22 |
2 files changed, 27 insertions, 1 deletions
diff --git a/spec/zip_spec.cr b/spec/zip_spec.cr index 74066b7..0ace290 100644 --- a/spec/zip_spec.cr +++ b/spec/zip_spec.cr @@ -1,5 +1,7 @@ require "./spec_helper" +TEST_DIR = File.dirname(__FILE__) + describe Zip do # TODO: Write tests @@ -9,7 +11,9 @@ describe Zip do end describe Zip::Writer do - Zip.write("test.zip") do |zip| + Zip.write(File.join(TEST_DIR, "test.zip")) do |zip| zip.add("foo.txt", MemoryIO.new("foo")) + zip.add("bar.txt", "bar") + zip.add_file("shard.yml", File.join(TEST_DIR, "..", "shard.yml")) end end @@ -516,6 +516,28 @@ module Zip @pos - src_pos end + def add( + path : String, + body : String | Bytes, + method : CompressionMethod = CompressionMethod::DEFLATE, + time : Time = Time.now, + comment : String = "", + ) : UInt64 + add(path, MemoryIO.new(body), method, time, comment) + end + + def add_file( + path : String, + file_path : String, + method : CompressionMethod = CompressionMethod::DEFLATE, + time : Time = Time.now, + comment : String = "", + ) : UInt64 + File.open(file_path, "rb") do |io| + add(path, io, method, time, comment) + end + end + # 4.3.16 End of central directory record: # # end of central dir signature 4 bytes (0x06054b50) |