Wes Gamble wrote:
> Joel VanderWerf wrote:
>> Wes Gamble wrote:
>>> Given two classes A and B, I know that I can loop through the 
>>> superclasses of A to determine it it's a descendant of B.
>>>
>>> Is there a more expedient way to do this - something like "is_a?" but at 
>>> the class level (since is_a? is for objects)?
>> if A < B
>>    ###
>> end
>>
>> if A <= B
>>    ###
>> end
>>
>> [A, B].sort
> 
> So is "<" the "superclass" assignment operator?  Is it a method?

It's a comparison operator, and yep, it's a method:

irb(main):012:0> string_lt = String.method("<")
=> #<Method: Class(Module)#<>
irb(main):013:0> string_lt.call File
=> nil
irb(main):014:0> string_lt.call Object
=> true

> Seems like it operates differently in two contexts.  It assigns in a 
> class declaration, but evaluates in a logical expression?

In "class Foo < Bar", the < is just syntax. It isn't being evaluated on 
Foo and Bar.

-- 
       vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407