Tutorial :How do you overload the << operator in Ruby?


I'm not sure how to accomplish overloading the << operator for a method. This is how I assumed it would work:

def roles<<(roles)    ...    end  

That however, throws errors. Any suggestions?


You need to do that from within a class. Like this:

class Whatever    attr_accessor :roles    def initialize      @roles = []    end  end  

You can't really have a <<roles method. You'd have to have an accessor for roles that supports the << operator.

EDIT: I've updated the code. Now you can see how the << operator should be overloaded, but you can also do what the roles<< part. Here's a small snippet of it's usage:

w = Whatever.new  w << "overload for object called"  # and overloads for the roles array  w.roles << "first role"  w.roles << "second role"  

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Next Post »