Joel VanderWerf
7/12/2006 6:23:00 PM
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