From: Nick Date: 2006-05-28T01:24:20+09:00 Subject: Accessing a class method from within a base class Hi, When I run the code at the end of the message it all works as expected but I get a warning : workpad2.rb:3: warning: Object#type is deprecated; use Object#class This is casued by the first line in the BaseClass.initialize method, because I use the type property to get to actual type of the class instance. If I use the "class" property as suggested in the warning, the code actually fails to compile with the following : workpad2.rb:3: parse error, unexpected '.' if(!class.isMatch(input)) ^ This occurs when I change the initialize method to use the "class" accessor: def initialize(input) if(!class.isMatch(input)) raise "Invalid input provided" end end Any advice? Should I just ignore the warning and go-ahead and use the "type" accessor? Nick. The code is: class BaseClass def initialize(input) if(!type.isMatch(input)) raise "Invalid input provided" end end end class AClass < BaseClass def initialize(input) super(input) end def self.isMatch(input) puts "AClass::invoked" input =~ "1" end end class BClass < BaseClass def initialize(input) super(input) end def self.isMatch(input) puts "BClass::invoked" input == "2" end end bclass = BClass.new("2") puts "here" -- Posted via http://www.ruby-forum.com/.