Вы спрашиваете, как получить "аргументы конструктора от родителя" , и поскольку в Ruby возможно почти все: если вы действительно любите приключения (читай: не делайте этого), вы может переопределить метод new
после включения Parent
, чтобы перехватить его аргументы и определить одноэлементный метод в экземпляре, который печатает аргумент:
module Parent
def self.included(mod)
def mod.new(*args)
super.tap do |instance|
instance.define_singleton_method(:print_args) do
puts args.join(' ')
end
end
end
end
end
Пример использования:
class A
include Parent
def initialize(foo, bar)
end
end
A.new('hello', 'world').print_args
# prints "hello world"
Экземпляру даже не нужно хранить аргументы в переменных экземпляра.