Actions
Bug #15135
closedRefining #initialize method not working
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.5.0p0 (2017-12-25 revision 61468)
Description
See the following example:
class C
def initialize(arg)
puts arg
end
end
module M
refine C do
def initialize(arg1, arg2)
puts arg1, arg2
end
end
end
using M
C.new("foo") # works
C.new("foo", "bar") # wrong number of arguments (given 2, expected 1) (ArgumentError)
This code will throw an refinement.rb:2:in `initialize': wrong number of arguments (given 2, expected 1) (ArgumentError)
exception. I would expect that it is possible to refine the initialize method to have similar behavior as monkey patching. If this is intended behavior I would at least expect this to be documented here: https://docs.ruby-lang.org/en/2.5.0/syntax/refinements_rdoc.html
Actions
Like0
Like0