Add syntactic sugar for array '<<' method on my own method?

I want to write a method which takes its input and adds it to an array
(in
this case I am trying to abstract a session item as I think it looks
prettier to use a helper method).

For example, native in ruby we have arr:

arr = []
arr << ‘item’

Is there a way I can write a method that uses the ‘<<’ syntactic sugar?
Been
poking around and don’t see clearly how to do this.

Just like you can write a method for assignment:

def assign_something=(value)

David K. wrote in post #977285:

I want to write a method which takes its input and adds it to an array
(in
this case I am trying to abstract a session item as I think it looks
prettier to use a helper method).

For example, native in ruby we have arr:

arr = []
arr << ‘item’

Is there a way I can write a method that uses the ‘<<’ syntactic sugar?
Been
poking around and don’t see clearly how to do this.

def <<(other)

whatever

end

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]

On Mon, Jan 24, 2011 at 6:43 PM, Marnen Laibow-Koser
[email protected]wrote:

Is there a way I can write a method that uses the ‘<<’ syntactic sugar?
Been
poking around and don’t see clearly how to do this.

def <<(other)

whatever

end

I see, so it has to be within a class and not named… so if I am
writing
a helper method in app controller then this is weird, but now I see that
I
need to make a class for what I do, so thanks, my design has improved.

David K. wrote in post #977289:

On Mon, Jan 24, 2011 at 6:43 PM, Marnen Laibow-Koser
[email protected]wrote:

Is there a way I can write a method that uses the ‘<<’ syntactic sugar?
Been
poking around and don’t see clearly how to do this.

def <<(other)

whatever

end

I see, so it has to be within a class

Module, actually. But this shouldn’t surprise you: it’s just a method
like any other.

and not named…

It is named. Its name is :<< .

so if I am
writing
a helper method in app controller then this is weird, but now I see that
I
need to make a class for what I do, so thanks, my design has improved.

Yeah. Don’t put logic in your controllers. And remember that you can
reopen or mix into existing classes.

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs