On 15.08.2006 10:15, John wrote:
> Hi
> 
> I'm a newbie on ruby and i have some questions :
> *What is special to the threequals operator when it comes to when
> clause ?
> object === other_object

It's simply the fact that it's invoked.  "when" doesn't invoke ==, eql? 
or equal? but ===.

> *What is the "." in front of the operator ?
> object .=== other_object

This is just the normal method invocation syntax.  Note that an operator 
in Ruby is nothing else than an instance method with a special 
invocation syntax.

 >> 10:25:00 [~]: irbs
 >> o = Object.new
=> #<Object:0x3f2ac8>
 >> def o.===(x) p x end
=> nil
 >> o === 1
1
=> nil
 >> o.=== 1
1
=> nil
 >> o.===(1)
1
=> nil
 >> o.send :===, 1
1
=> nil

These are all equivalent pieces of code.

Kind regards

	robert