On Dec 3, 2006, at 12:04 AM, Joel VanderWerf wrote:

> James Edward Gray II wrote:
>> On Dec 2, 2006, at 7:27 PM, Joel VanderWerf wrote:
>>> module Foo
>>>    class Bar
>>>       def self.new(arg)
>>>          return super() if self != Foo::Bar
>> I don't believe that line does what you intend.  Try using your  
>> code with something like:
>> fb = Foo::Baz.new('baz') # => #<Foo::Baz:0x1e2ea0>
>
> It's a little funny to say "baz" twice, is your point?

No.  My point was that the original code forces the call to be made  
on Foo::bar by returning nil otherwise.  Your code created the object.

James Edward Gray II