Sijo said:
Hi
How can I pass parameters to the method
foo.__send__
test_method, arg1, arg2)
Or if the args are in an array already:
foo.__send__
test_method, *args)
And also would
like to know what is __ in __send__ ?
It's two underscores
Here's what "ri send" says:
-------------------------------------------------------- Object#__send__
obj.send(symbol [, args...]) => obj
obj.__send__(symbol [, args...]) => obj
------------------------------------------------------------------------
Invokes the method identified by _symbol_, passing it any arguments
specified. You can use +__send__+ if the name +send+ clashes with
an existing method in _obj_.
class Klass
def hello(*args)
"Hello " + args.join(' ')
end
end
k = Klass.new
k.send :hello, "gentle", "readers" #=> "Hello gentle readers"