Extension of zlib

Hi,

does anybody else think this (or something similar) would be a useful
extension to zlib?

file zliba.rb:

require ‘zlib’

Conveniently process a number of files that may

be a mixture of gzip compressed and uncompressed

files.

ARGFZ = Class.new do
include Enumerable

def each(&b)
::ARGV.each do |arg|
if arg == “-”
$stdin.each(&b)
else
io = ::Zlib::GzipReader.open(arg) rescue ::File.open(arg)
begin
io.each(&b)
ensure
io.close
end
end
end
self
end

addional methods for gets etc. could be added

but seeking is too hard to be possible

end.new

Example usage, file catz.rb:

#!/bin/env ruby

require ‘zliba’ # this would be ‘zlib’ once this is integrated

ARGFZ.each do |line|
puts line
end

Then on shell prompt:

catz.rb foo foo.gz

Will print all lines from foo and then from foo.gz.

Kind regards

robert

On May 20, 9:15 am, “Robert K.” [email protected]
wrote:

be a mixture of gzip compressed and uncompressed

    io = ::Zlib::GzipReader.open(arg) rescue ::File.open(arg)

addional methods for gets etc. could be added

ARGFZ.each do |line|
puts line
end

Then on shell prompt:

catz.rb foo foo.gz

Will print all lines from foo and then from foo.gz.

This seems like something that belongs in a custom option handler, not
in zlib directly, especially since I strongly suspect you’re going to
break some option parsers with that code.

While we’re on the topic of zlib, see zliby:

http://rubyforge.org/projects/zliby/

Regards,

Dan

On 20.05.2008 18:19, Daniel B. wrote:

On May 20, 9:15 am, “Robert K.” [email protected]
wrote:

does anybody else think this (or something similar) would be a useful
extension to zlib?

Will print all lines from foo and then from foo.gz.

This seems like something that belongs in a custom option handler, not
in zlib directly, especially since I strongly suspect you’re going to
break some option parsers with that code.

I don’t believe so. ARGFZ plays the same role as ARGF and your argument
would apply there as well. But it’s not the case since option
processing is typically done before ARGF / ARGFZ are employed (see
OptionParser documentation for examples).

While we’re on the topic of zlib, see zliby:

http://rubyforge.org/projects/zliby/

I am not sure I get your point here. Can you elaborate?

Kind regards

robert

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs