I must be missing something :o/
#<Parse:0x000001008a5920>
parse.rb:14:in `open': undefined method `close' for
#<Parse:0x000001008a5920 @io=#<File:/etc/passwd>> (NoMethodError)
from parse.rb:38:in `<main>'
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/.