5 return false unless self.class == other.class
6 return false unless self.instance_variables == other.instance_variables
7 self.instance_variables.each do |v|
8 return false unless self.instance_eval(v) == other.instance_eval(v)
21 # when tallying up libraries, its easier to
22 # use symbol names instead of class names
23 # to_sym maps FooLib to :foo_lib
28 chars = naked_classname.scan(/./)
29 chars[0] = chars[0].downcase
30 ruby_s = chars.collect do |char|
31 char.downcase == char ? char : "_" + char.downcase
37 def self.method_missing(m,*args)
38 if /(.*)_keywords$/ =~ m.to_s
40 return rules << KeywordRule.new(language,*args)