Debugging a library for 1.9.1 compatibility. I get this error:
Error:
test_02_002(TC_Inheritor_02):
RuntimeError: implicit argument passing of super from method defined
by define_method() is not supported. Specify all arguments
explicitly.
The offending code is:
define_method( key ) do
defined?(super) ? super.__send__(op,obj) : obj.dup
end
So I’m confused since I am not calling super without arguments, though
I am asking if it is defined. But #defined? works in a special way so
as not to actually invoke it’s argument, right? Or is it something to
with send? What is amiss here?
the object that gets send is the return value of super. Can you
try:
defined?(super) ? super().send(op,obj) : obj.dup
so that the implicit args of super aren’t an issue? (because you
explicitly give an empty arg list)
the object that gets send is the return value of super. Can you
try:
defined?(super) ? super().send(op,obj) : obj.dup
so that the implicit args of super aren’t an issue? (because you
explicitly give an empty arg list)
Doh. I should have seen that. Thank you for helping my poor little
overtaxed brain
Unfortunately now I get:
Error:
test_02_002(TC_Inheritor_02):
NoMethodError: super: no superclass method koko' for TC_Inheritor_02::C:Class /mnt/repos/rubyworks/facets/lib/more/facets/inheritor.rb:70:in block (2 levels) in inheritor’
/mnt/repos/rubyworks/facets/test/more/test_inheritor.rb:31:in
`test_02_002’
Does defined?(super) not work in 1.9? If so, how does one work around?
so that the implicit args of super aren’t an issue? (because you
TC_Inheritor_02::C:Class
/mnt/repos/rubyworks/facets/lib/more/facets/inheritor.rb:70:in block (2 levels) in inheritor' /mnt/repos/rubyworks/facets/test/more/test_inheritor.rb:31:in test_02_002’
Does defined?(super) not work in 1.9? If so, how does one work around?
No, it works. I checked. So it’s something else.
Thanks for the help.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.