On 10/24/05, Kev Jackson <kevin.jackson / it.fts-vn.com> wrote:
> Hi all,
>
> What exactly does the following do and how can I test it?  It looks like
> its creating a new value with the key name, but how do you call it?
>
> def [](name)
>     @val[name]
> end
>

It's actually Ruby's syntax for operator overloading.   An instance of
a class that defines this can be "indexed" as though it were an array
or hash.  Other operators are overriden in the same way, e.g.

def +(x)
...
end

Remember that everything in Ruby is an object, so when you see even
something as simple as 1 + 1 in Ruby, that's actually syntactic sugar
for 1.+(1), calling the + method for an instance of the Fixnum class.