Допустим, ваш коллега обезьяна выбрал класс Fixnum и переопределил метод + для вычитания вместо add:
class Fixnum
def +(x)
self - x
end
end
>> 5 + 3
=> 2
Ваша проблема в том, что вы хотите получить доступ к оригинальной функциональности метода +. Таким образом, вы помещаете этот код в тот же исходный файл. Он псевдоним метода + к «original_plus» , прежде чем он обезьяны патч.
class Fixnum
alias_method :original_plus, :+
end
class Fixnum
def +(x)
self - x
end
end
Теперь вы можете получить доступ к оригинальной функциональности метода + через original_plus
>> 5 + 3
=> 2
>> 5.original_plus(3)
=> 8
Но что мне нужно знать, это:
Есть ли другой способ загрузки этого псевдонима ДО его загрузки monkeypatch, кроме того, чтобы вставить его в тот же исходный файл, который он изменил?
На мой вопрос есть две причины:
- Возможно, я не хочу, чтобы он знал, что я сделал это
- Если исходный файл изменен таким образом, что псевдоним заканчивается НИЖЕ мартышкой, тогда псевдоним больше не будет давать желаемый результат.