Ruby kind_of? and is_a? returning false for a subclass -
i'm trying take advantage of ruby methods kind_of?
, is_a?
. understand synonyms of 1 another.
i have object of class child
. call child.ancestors
gives array list [child, #<module>, parent, ...]
. call child.new.is_a?(parent)
or child.new.kind_of?(parent)
returns false.
calling child.ancestors[2].new.is_a?(parent)
returns false. can't seem figure out why considering calling parent.new.is_a?(parent)
returns true should.
these classes descend activeresource::base
if has it.
class parent < activerecord::base include mymodule def self.my_method(obj) if obj.is_a?(parent) puts 'hello' end end end class child < parent def my_method self.class.my_method(self) end end = child.new a.my_method
class parent def self.my_method(obj) if obj.is_a?(parent) puts 'is parent' else puts 'is not parent' end end end class child < parent def my_method self.class.my_method(self) end end = child.new a.my_method
note dropped ar , included module, above prints out "is parent" me. ruby 1.8.7 on osx.
Comments
Post a Comment