Пример #1
0
 @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;
 }
Пример #2
0
    @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);
    }