В Ruby вы можете заново открыть классы в любой момент и переопределить их, если хотите. Таким образом, вы можете заново открыть класс GC и добавить дампы или переопределить любые методы, которые вы хотите. Вы также создаете псевдонимы существующих методов, чтобы потом вызывать их снова. Например. если у вас есть класс Foo
с методом bar
, в который вы хотите добавить некоторые функции, вы можете сделать что-то вроде:
class Foo
alias :original_bar :bar
def bar
# do something new
original_bar
end
end
Таким образом, вы берете оригинальный метод bar
и присваиваете ему псевдоним original_bar
, затем снова открываете bar
и вставляете свой собственный код, затем снова ссылаетесь на оригинальный метод bar
. ВЗГЛЯД НА СИЛУ РУБИНЫ!