@JRubyMethod(name = "new", rest = true, frame = true, meta = true) public static RubyGzipReader newInstance(IRubyObject recv, IRubyObject[] args, Block block) { RubyClass klass = (RubyClass) recv; RubyGzipReader result = (RubyGzipReader) klass.allocate(); result.callInit(args, block); return result; }
@JRubyMethod(name = "wrap", required = 1, frame = true, meta = true) public static IRubyObject wrap( ThreadContext context, IRubyObject recv, IRubyObject io, Block block) throws IOException { Ruby runtime = recv.getRuntime(); RubyGzipFile instance; // TODO: People extending GzipWriter/reader will break. Find better way here. if (recv == runtime.getModule("Zlib").getClass("GzipWriter")) { instance = RubyGzipWriter.newGzipWriter(recv, new IRubyObject[] {io}, block); } else { instance = RubyGzipReader.newInstance(recv, new IRubyObject[] {io}, block); } return wrapBlock(context, instance, block); }