あなたの同僚が Fixnum クラスにモンキーパッチを適用し、+ メソッドを再定義して、加算ではなく減算を行ったとします。
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がロードされる前にこのエイリアスをロードする方法はありますか?
私の質問には2つの理由があります:
- 私がこれをしたことを彼に知られたくないかもしれません
- エイリアスがモンキーパッチより下になるようにソースファイルが変更された場合、エイリアスはもはや望ましい結果を生成しません。