Я хотел бы динамически указать родительский класс для класса в Ruby. Рассмотрим этот код:
class Agent
def self.hook_up(calling_class, desired_parent_class)
# Do some magic here
end
end
class Parent
def bar
puts "bar"
end
end
class Child
def foo
puts "foo"
end
Agent.hook_up(self, Parent)
end
Child.new.bar
Ни определение класса Parent
, ни Child
не указывает родительский класс, поэтому они оба наследуются от Object. Мой первый вопрос: что мне нужно сделать в Agent.hook_up
, чтобы сделать Parent
суперкласс из Child
(так, например, Child
объекты могут наследовать метод "bar" ).
Мой второй вопрос: мне нужно передать первый аргумент в Agent.hook_up
, или есть способ, которым метод hook_up
может программным образом определить класс, из которого он был вызван?