Методы алиасинга в Ruby относительно просты. Придуманный пример:
class Person
def name
puts "Roger"
end
end
class User < Person
alias :old_name :name
def name
old_name
puts "Staubach"
end
end
В этом случае выполнение User.new.name
выдаст:
Roger
Staubach
Это работает, как ожидалось. Тем не менее, я пытаюсь присвоить псевдоним метод сеттера, который, очевидно, не является простым:
class Person
def name=(whatever)
puts whatever
end
end
class User < Person
alias :old_name= :name=
def name=(whatever)
puts whatever
old_name = whatever
end
end
При этом вызов User.new.name = "Roger"
выведет:
Roger
Похоже, что новый метод с псевдонимом вызывается, а оригинальный - нет.
Что с этим случилось?
ps - я знаю о super
и просто для краткости скажу, что я не хочу использовать его здесь