class
Compress::Zip::Writer
Overview
Writes (streams) zip entries to anIO.
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 newwriter to the givenio.
-
.new(filename : Path | String)
Creates a newwriter to the givenfilename.
Class Method Summary
-
.open(io : IO, sync_close = false, &)
Creates a newwriter to the givenio, yields it to the given block, and closes it at the end.
-
.open(filename : Path | String, &)
Creates a newwriter to the givenfilename, 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
IOtowrite that entry's contents. -
#add(filename_or_entry : Path | String | Entry, string : String) : Nil
Adds an entry thatwill havestring as its contents.
-
#add(filename_or_entry : Path | String | Entry, bytes : Bytes) : Nil
Adds an entry thatwill havebytes as its contents.
-
#add(filename_or_entry : Path | String | Entry, data : IO) : Nil
Adds an entry thatwill have its data copied from the givendata.
-
#add_dir(name) : Nil
Adds a directory entry thatwill have the givenname.
-
#close : Nil
Closes this zipwriter.
-
#closed? : Bool
Returns
trueif thiswriter is closed. -
#comment=(comment : String)
Sets the zip file comment
-
#sync_close=(sync_close : Bool)
Whether to close the enclosed
IOwhen closing thiswriter. -
#sync_close? : Bool
Whether to close the enclosed
IOwhen closing thiswriter.
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 : String | IO, root : String)from_json(string_or_io : String | IO) from_json, from_yaml(string_or_io : String | IO) from_yaml
Macros inherited from class Object
class_getter(*names, &block)
class_getter,
class_getter!(*names)
class_getter!,
class_getter?(*names, &block)
class_getter?,
class_property(*names, &block)
class_property,
class_property!(*names)
class_property!,
class_property?(*names, &block)
class_property?,
class_setter(*names)
class_setter,
def_clone
def_clone,
def_equals(*fields)
def_equals,
def_equals_and_hash(*fields)
def_equals_and_hash,
def_hash(*fields)
def_hash,
delegate(*methods, to object)
delegate,
forward_missing_to(delegate)
forward_missing_to,
getter(*names, &block)
getter,
getter!(*names)
getter!,
getter?(*names, &block)
getter?,
property(*names, &block)
property,
property!(*names)
property!,
property?(*names, &block)
property?,
setter(*names)
setter
Constructor Detail
Class Method Detail
Creates a newwriter to the givenio, yields it to the given block, and closes it at the end.
Creates a newwriter to the givenfilename, yields it to the given block, and closes it at the end.
Instance Method Detail
Adds an entry thatwill have the givenfilename and current
time (Time.utc) and yields anIO towrite that entry's
contents.
Adds an entry and yieldsIO towrite 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 sizemust be set and be correctwith
respect to the data thatwill bewritten to the yielded
IO. - If the DEFLATED compression method is used, crc32, compressed size and uncompressed sizewill be computed from the data written to the yielded IO.
You can also set the Entry's time (which isTime.utc by default)
and extra data before adding it to the zip stream.
Adds an entry thatwill havestring as its contents.
Adds an entry thatwill havebytes as its contents.
Adds an entry thatwill have its data copied from the givendata.
If the givendata is a::File, it is automatically closed
after data is copied from it.