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