class Compress::Zip::Writer
Overview
Writes (streams) zip entries to an IO
.
Example
require "compress/zip"
File.open("./file.zip", "w") do |file|
Compress::Zip::Writer.open(file) do |zip|
# Add a file with a String content
zip.add "foo.txt", "contents of foo"
# Add a file and write data to it through an IO
zip.add("bar.txt") do |io|
io << "contents of bar"
end
# Add a file by referencing a file in the filesystem
# (the file is automatically closed after this call)
zip.add("baz.txt", File.open("./some_file.txt"))
end
end
Defined in:
compress/zip/writer.crConstructors
-
.new(io : IO, sync_close : Bool = false)
Creates a new writer to the given io.
-
.new(filename : Path | String)
Creates a new writer to the given filename.
Class Method Summary
-
.open(io : IO, sync_close = false, &)
Creates a new writer to the given io, yields it to the given block, and closes it at the end.
-
.open(filename : Path | String, &)
Creates a new writer to the given filename, yields it to the given block, and closes it at the end.
Instance Method Summary
- #add(filename : Path | String, &)
-
#add(entry : Entry, &)
Adds an entry and yields
IO
to write that entry's contents. -
#add(filename_or_entry : Path | String | Entry, string : String) : Nil
Adds an entry that will have string as its contents.
-
#add(filename_or_entry : Path | String | Entry, bytes : Bytes) : Nil
Adds an entry that will have bytes as its contents.
-
#add(filename_or_entry : Path | String | Entry, data : IO) : Nil
Adds an entry that will have its data copied from the given data.
-
#add_dir(name) : Nil
Adds a directory entry that will have the given name.
-
#close : Nil
Closes this zip writer.
-
#closed? : Bool
Returns
true
if this writer is closed. -
#comment=(comment : String)
Sets the zip file comment
-
#sync_close=(sync_close : Bool)
Whether to close the enclosed
IO
when closing this writer. -
#sync_close? : Bool
Whether to close the enclosed
IO
when closing this writer.
Instance methods inherited from class Reference
==(other : self)==(other : JSON::Any)
==(other : YAML::Any)
==(other) ==, dup dup, hash(hasher) hash, initialize initialize, inspect(io : IO) : Nil inspect, object_id : UInt64 object_id, pretty_print(pp) : Nil pretty_print, same?(other : Reference) : Bool
same?(other : Nil) same?, to_s(io : IO) : Nil to_s
Constructor methods inherited from class Reference
new
new,
unsafe_construct(address : Pointer, *args, **opts) : self
unsafe_construct
Class methods inherited from class Reference
pre_initialize(address : Pointer)
pre_initialize
Instance methods inherited from class Object
! : Bool
!,
!=(other)
!=,
!~(other)
!~,
==(other)
==,
===(other : JSON::Any)===(other : YAML::Any)
===(other) ===, =~(other) =~, as(type : Class) as, as?(type : Class) as?, class class, dup dup, hash(hasher)
hash hash, in?(collection : Object) : Bool
in?(*values : Object) : Bool in?, inspect(io : IO) : Nil
inspect : String inspect, is_a?(type : Class) : Bool is_a?, itself itself, nil? : Bool nil?, not_nil!(message)
not_nil! not_nil!, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, responds_to?(name : Symbol) : Bool responds_to?, tap(&) tap, to_json(io : IO) : Nil
to_json : String to_json, to_pretty_json(indent : String = " ") : String
to_pretty_json(io : IO, indent : String = " ") : Nil to_pretty_json, to_s(io : IO) : Nil
to_s : String to_s, to_yaml(io : IO) : Nil
to_yaml : String to_yaml, try(&) try, unsafe_as(type : T.class) forall T unsafe_as
Class methods inherited from class Object
from_json(string_or_io, root : String)from_json(string_or_io) from_json, from_yaml(string_or_io : String | IO) from_yaml
Constructor Detail
Creates a new writer to the given io.
Class Method Detail
Creates a new writer to the given io, yields it to the given block, and closes it at the end.
Creates a new writer to the given filename, yields it to the given block, and closes it at the end.
Instance Method Detail
Adds an entry that will have the given filename and current
time (Time.utc
) and yields an IO
to write that entry's
contents.
Adds an entry and yields IO
to write that entry's contents.
You can choose the Entry's compression method before adding it.
- If the STORED compression method is used, its crc32, compressed
size and uncompressed size must be set and be correct with
respect to the data that will be written to the yielded
IO
. - If the DEFLATED compression method is used, crc32, compressed size and uncompressed size will be computed from the data written to the yielded IO.
You can also set the Entry's time (which is Time.utc
by default)
and extra data before adding it to the zip stream.
Adds an entry that will have string as its contents.
Adds an entry that will have bytes as its contents.
Adds an entry that will have its data copied from the given data.
If the given data is a ::File
, it is automatically closed
after data is copied from it.
Whether to close the enclosed IO
when closing this writer.