Version history¶ ↑
1.0.0 (2018-05-20)¶ ↑
-
BreakingChange The
XZ
module's methods now take any parameters beyond the IO object as real Ruby keyword arguments rather than a long argument list. -
BreakingChange
XZ.decompress_stream
now honours Ruby's external and internal encoding concept instead of just returning BINARY-tagged strings. -
BreakingChange Remove deprecated API on stream reader/writer class and instead sync the API with Ruby's zlib library (Ticket #12 by me).
-
BreakingChange StreamWriter.new and StreamReader.new do not accept a block anymore. This is part of syncing with Ruby's zlib API.
-
BreakingChange StreamReader.open and StreamWriter.open always return the new instance, even if a block is given to the method (previous behaviour was to return the return value of the block). This is part of the syncing with Ruby's zlib API.
-
BreakingChange StreamReader.new and StreamWriter.new as well as the ::open variants take additional arguments as real Ruby keyword arguments now instead of a long parameter list plus options hash. This is different from Ruby's own zlib API as that one takes both a long parameter list and a hash of additional options. ruby-xz is meant to follow zlib's semantics mostly, but not as a drop-in replacement, so this divergence from zlib's API is okay (also given that it isn't possible to replicate all possible options 1:1 anyway, since liblzma simply accepts different options as libz). If you've never used these methods' optional arguments, you should be fine.
-
BreakingChange Stream#close now returns nil instead of the number of bytes written. This syncs Stream#close with Ruby's own IO#close, which also returns nil.
-
BreakingChange Remove Stream#pos=, Stream#seek, Stream#stat. These methods irritated the minitar gem, which doesn't expect them to raise NotImplementedError, but directly to be missing if the object does not support seeking.
-
BreakingChange StreamReader and StreamWriter now honour Ruby's encoding system instead of returning only BINARY-tagged strings.
-
Dependency Remove dependency on ffi. ruby-xz now uses fiddle from the stdlib instead.
-
Dependency Remove dependency on io-like. ruby-xz now implements all the IO mechanics itself. (Ticket #10 by me)
-
Dependency Bump required Ruby version to 2.3.0.
-
Fix libzlma.dylib not being found on OS X (Ticket #15 by s0nspark).
0.2.3 (2015-12-29)¶ ↑
-
Fix documentation of
XZ
module (a :nodoc: was causing havoc in theXZ
module so it appeared to have no methods). -
No other changes this release.
0.2.2 (2015-12-27)¶ ↑
-
Add XZ.disable_deprecation_notices
-
Deprecate use of
XZ::StreamReader.open
with an IO argument -
Deprecate use of
XZ::StreamReader.new
with a filename argument -
Deprecate use of
XZ::StreamWriter.open
with an IO argument -
Deprecate use of
XZ::StreamWriter.new
with a filename argument -
Deprecate nonautomatic IO close in
XZ::StreamReader#close
-
Deprecate nonautomatic IO close in
XZ::StreamWriter#close
-
Fix incompatibility with Resolv.getaddress() in Ruby 2.2 (Ticket #13 by Ken Simon)
-
Goal of these deprecations is to sync the API with Ruby’s own Zlib::GzipWriter and Zlib::GzipReader mostly.
-
Add required versions to gemspec.
-
Comment format cleanup, results in better docs.
-
Internal code cleanup
-
Add more tests.
0.2.1 (2014-02-08)¶ ↑
-
Build the gem properly on Ruby 2.0+ (PR #8 by Nana Sakisaka (saki7))
-
Release the GIL when interfacing with liblzma (PR #7 by Lars Christensen (larsch))
0.2.0 (2013-06-23)¶ ↑
-
Fix #6 (errors on JRuby) by Ben Nagy
-
Remove 1.8 compatibility
0.1.0 (2013-02-17)¶ ↑
-
Add XZ::StreamReader and XZ::StreamWriter for io-like behaviour.
-
New dependency on the
io-like
gem. -
Add Ruby 1.8 compatibility. Thanks to Christoph Plank.
-
We now have proper unit tests.