module MyModuleOne
def my_method
puts "self.class.name= #{self.class.name}, MyModuleOne my_method"
end
end
class Main
def my_method
puts "self.class.name= #{self.class.name}, Main my_method"
end
def my_method2
puts "my_method2"
end
end
class Worker < Main
prepend MyModuleOne
#include MyModuleOne
def my_method
puts "self.class.name= #{self.class.name}, Worker my_method"
super
end
end
car = Worker.new
car.my_method
puts Worker.ancestors # вывести цепочку наследования
prepend MyModuleOne подключенный метод будет иметь высший приоритет при наследовании
include MyModuleOne подключаемый метод имеет приоритет меньше метода который вызываем на экземпляре
super вызовет родительский метод если он есть. честно пока не понял где может такое пригодиться.
ancestors посмотреть цепочку и порядок наследования класса, не экземпляра а именно класса.