Скажем, у меня есть следующие классы:
class Foo
attr_accessor :name, :age
end
class Bar
def initialize(name)
@foo = Foo.new
@foo.name = name
end
end
Я бы хотел определить аксессор на Bar, который просто является псевдонимом для foo.name.Достаточно просто:
def name
@foo.name
end
def name=(value)
@foo.name = value
end
С одним свойством это достаточно просто.Однако, скажем, Foo предоставляет несколько свойств, которые я хочу показать через Bar.Вместо того чтобы определять каждый метод вручную, я хочу сделать что-то вроде этого, хотя я знаю, что синтаксис неправильный:
[:name, :age].each do |method|
def method
@foo.method
end
def method=(value)
@foo.method = value
end
end
Итак ... как правильно определить методы, подобные этим?1010 *