Zlib::GzipWriter cannot be properly sub-classed · Issue #7476 · jruby/jruby (original) (raw)

@postmodern

It is not possible to sub-class Zlib::GzipWriter and override the initialize method so that it accepts additional keyword arguments.

Steps To Reproduce

require 'zlib' require 'stringio'

class ZlibSubClass < Zlib::GzipWriter

def initialize(io, kwarg: 'foo') super(io) end

end

io = StringIO.new('') ZlibSubClass.new(io, kwarg: 'bar')

Environment Information

Expected Behavior

Accepts additional keyword arguments.

Actual Behavior

ArgumentError: wrong number of arguments (given 2, expected 1)
  initialize at test_jruby_zlib_initialize.rb:6
         new at org/jruby/ext/zlib/JZlibRubyGzipWriter.java:75
         new at org/jruby/ext/zlib/JZlibRubyGzipWriter.java:66
      <main> at test_jruby_zlib_initialize.rb:13
... 5 levels...