Я пытаюсь высушить некоторый код, и я чувствую, что назначение переменных в Ruby должно помочь упростить это. У меня есть класс с определенным количеством различных переменных экземпляра. Некоторые из них предназначены для скрытого (или только для чтения), но многие являются общедоступными, с доступом для чтения / записи.
Для всех переменных с открытым доступом для записи я хочу выполнять определенный метод после каждого присваивания. Я знаю, что, в общем, я могу сделать это:
def foo=(new_foo)
@foo = new_foo
post_process(@foo)
end
def bar=(new_bar)
@bar = new_bar
post_process(@foo)
end
Однако, похоже, должен быть хороший способ высушить это, так как я делаю по существу одно и то же после каждого присваивания (то есть запускаю один и тот же метод и передаю вновь назначенную переменную в качестве параметра этот метод). Поскольку у меня есть несколько таких переменных, было бы здорово иметь решение общего назначения.