From: Martin Hansen Date: 2010-08-18T23:29:12+09:00 Subject: Re: Making File.open work on gzipped files I must be missing something :o/ # parse.rb:14:in `open': undefined method `close' for #> (NoMethodError) from parse.rb:38:in `
' Test code below. Martin require 'zlib' require 'pp' class Parse def self.open(*args) ios = self.zopen(*args) if block_given? begin yield ios ensure ios.close end else return ios end end def initialize(io) @io = io end private def self.zopen(*args) ios = File.open(*args) begin ios = Zlib::GzipReader.new(ios) rescue ios.rewind end self.new(ios) end end Parse.open("/etc/passwd") do |ios| puts ios end -- Posted via http://www.ruby-forum.com/.