From: Stefano Crocco Date: 2007-02-26T04:23:55+09:00 Subject: Re: Type of class Alle domenica 25 febbraio 2007, J. mp ha scritto: > Hi > How do I know if a variable is an instace of a given class > > I have a method that returns a String or an Array and I have to now > outside if the returned object is and String or an Array. > > Is beacuse this : > # File vendor/rails/activerecord/lib/active_record/validations.rb, > line 100 > 100: def on(attribute) > 101: errors = @errors[attribute.to_s] > 102: return nil if errors.nil? > 103: errors.size == 1 ? errors.first : errors > 104: end > > > How do I know that call on method on returned and array or an string? > > Thanks The is_a? method tells whether the receiver is an instance of the class passed as argument or of one of its derived class: a=[1,2,3] a.is_a?(Array) => true a.is_a?(String) => false If you need to know whether an object is an instance of exactly a specific class (not of derived class), you can use the == on the class: class A end class B < A end b=B.new b.is_a?(A) => true b.class==A => false b.class==B => true I hope this helps Stefano