Method: Object#__send__

Defined in:
lib/source/ruby.rb

#__send__(method, *args) ⇒ Object

call-seq:

obj.__send__(sym [, args...]) -> object
obj.send(sym [, args...])     -> object

Invokes the method identified by sym, passing it any arguments specified. 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"


226
227
228
229
230
# File 'lib/source/ruby.rb', line 226

def __send__(method,*args)
  `method=this['m$'+sym._value.replace('=','Eql')]`
  `if(!method){m$raise(c$NoMethodError,$q('undefined method "'+sym._value+'" for '+this));}`
  `method.apply(this,args)`
end