Self.__send__(:test_method) passing parameter to this

Hi
   How can I pass parameters to the method, test_method And also would
like to know what is __ in __send__ ?

Thanks

···

--
Posted via http://www.ruby-forum.com/.

Sijo Kg wrote:

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 :slight_smile:

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"
--
Posted via http://www.ruby-forum.com/\.