zip-crystal
Read and write zip archives natively from Crystal.
Installation
Add this to your application's shard.yml
:
dependencies:
zip-crystal:
github: pablotron/zip-crystal
Usage
require "zip-crystal/zip"
# write to "foo.zip"
Zip.write("foo.zip") do |zip|
# add "bar.txt" with contents "hello!"
zip.add("bar.txt", "hello!")
# add local file "/path/to/image.png" as "image.png"
zip.add_file("image.png", "/path/to/image.png")
end
# create memory io
mem_io = MemoryIO.new
# open "/some/other/path/image.png" for writing
File.open("/some/other/path/image.png", "wb") do |file_io|
# read from "foo.zip"
Zip.read("foo.zip") do |zip|
# extract "bar.txt" to mem_io
zip["bar.txt"].read(mem_io)
# extract "image.png" to file_io
zip["image.png"].read(file_io)
end
end
See the API documentation for additional information.
Development
TODO: Write development instructions here
Contributing
- Fork it ( https://github.com/pablotron/zip-crystal/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
Contributors
- pablotron Paul Duncan - creator, maintainer