Matthew Moss
1/16/2009 7:50:00 PM
On Jan 16, 2009, at 1:15 PM, Sonny Chee wrote:
> Hey Guys,
>
> Ruby has built in object constuctors for Array and Hash via [] and
> {}..
> ie:
>
> an_array = [1, 2, 3, 6]
> a_hash = {1=>3, 2=>5, 'a'=>'green'}
>
> I would like to do the same for one of my classes.. i.e.
>
> my_object = |2, 3, 5, 7|
>
> should yield the same result as if I had done the following:
>
> my_object = MyClass.new([2, 3, 5, 7])
>
> Is this possible?
>
Offhand, I doubt you can use || for this task, but you can use [].
class MyClass
def MyClass.[](*arr)
MyClass.new(arr)
end
def initialize(arr)
@arr = arr
end
end
> x = MyClass[2, 3, 5, 7]
=> #<MyClass:0x7a3b4 @arr=[2, 3, 5, 7]>