It is known that in Ruby, class methods get inherited:
class P
def self.mm; puts \'abc\' end
end
class Q < P; end
Q.mm # works
However
A common idiom is to use included
hook and inject class methods from there.
module Foo
def self.included base
base.send :include, InstanceMethods
base.extend ClassMethods
end
module InstanceMethods
def bar1
'bar1'
end
end
module ClassMethods
def bar2
'bar2'
end
end
end
class Test
include Foo
end
Test.new.bar1 # => "bar1"
Test.bar2 # => "bar2"