Код Rails полон тех. Представьте, что оригинальный hello
метод не относится к вашей кодовой базе . Где-то в сторонней библиотеке есть метод do_stuff(stuff)
, объявленный для класса Stuffer
.
Вы хотите, например, отладить этот метод. Вы вновь открываете класс, определяете псевдоним и, вуаля:
class Stuffer
alias original_do_stuff do_stuff
def do_stuff(stuff)
puts stuff.inspect
original_do_stuff(stuff)
end
end
Теперь весь код, включая оригинальный сторонний код, о котором вы, возможно, даже не знаете, будет распечатывать параметр, передаваемый каждому отдельному вызову do_stuff
.
Пример из жизни (не пытайтесь делать это дома и в школе:)
class String
alias _inspect inspect
def inspect
puts "I am a string: “#{_inspect}”"
end
end
"abc".inspect
#⇒ I am a string: “"abc"”