Using send method in Ruby

Posted . Visible to the public.

In Ruby, send is often introduced as a way to show how everything is an object

1.send(:+, 1)  ## -> 2

It can also be used to call private or protected methods from outside a given class as explained below.

class Myclass
  def method_one
    puts "instance method called."
  end
  
  private
  
  def private_one
    puts "private method called." 
  end
end

my_obj = Myclass.new
my_obj.method_one  #=> "instance method called."    
my_obj.private_one   #=> NoMethodError: private method `private_one' called for #<Myclass:0xb739d9bc>
my_obj.send(:private_one)  #=> "private method called."
Sandheep
Posted by Sandheep to Sandheep's deck (2013-04-25 14:16)