Вы не можете сделать это точно в Ruby, потому что foo = bar
всегда будет устанавливать foo
локальную переменную; он никогда не вызовет foo=
метод. Вы можете использовать кран, как предложено.
Одним из решений более крупного вопроса дизайна было бы использование свободного интерфейса:
board.length(66).width(20)
class Board
def length(amt)
@length = amt
self
end
def width(amt)
@width = amt
self
end
end
Вам решать, подходит ли этот шаблон для вашего варианта использования.