From: Ezra Zygmuntowicz Date: 2006-12-21T07:05:40+09:00 Subject: Re: reflecting on objects without creating one On Dec 20, 2006, at 1:53 PM, Justin Bailey wrote: > On 12/20/06, _Kevin wrote: >> >> Let's say I have two constants >> >> a = Integer >> b = Numeric >> >> Does anyone have any idea how to see if 'a' is a subclass of 'b' >> WITHOUT creating an object of class 'a'? > > > irb(main):021:0> a = Numeric > => Numeric > irb(main):022:0> b = Integer > => Integer > irb(main):023:0> a.ancestors > => [Numeric, Comparable, Object, Kernel] > irb(main):024:0> a.ancestors.include? b > => false > irb(main):025:0> b.ancestors.include? a > => true > irb(main):026:0> > > "b.ancestors.include? a" seems to do it. Notice I reversed your > definitions > of "a" & "b" (not for any particular reason, that's just how it > worked out). > > Justin You can also use < and > to compare subclasses or superclasses ez $ irb >> a = Integer # => Integer >> b = Numeric # => Numeric >> a < b # => true >> a > b # => false Cheers- -- Ezra Zygmuntowicz -- Lead Rails Evangelist -- ez@engineyard.com -- Engine Yard, Serious Rails Hosting -- (866) 518-YARD (9273)