ruby classes and instances override

module InstanceMethods
def an_instance_method
“You called an_instance_method on #{self.class}”
end

end

module ClassMethods
def a_class_method
“You called a_class_method_from_module on #{self}”
end

def b_class_method
puts “b_class_metbod”
end

end

class MyClass
include InstanceMethods
extend ClassMethods

def MyClass.a_class_method
puts “Mine class Method”
end

def an_instance_method
puts “Mine instance”
end
end

my_class = MyClass.new
puts my_class.an_instance_method
puts MyClass.a_class_method
puts MyClass.b_class_method