問題 Ruby でなんらかのメソッドを呼び出しにともなって、特定の処理を実行したい場合、つまり、メソッド呼び出しのフック処理を実行したい状況を考えます。 解決法 エイリアスチェイニングという方法で実現します。エイリアスチェイニングについては、『Effective Ruby』の項目 33 「エイリアスチェイニングで書き換えたメソッドを呼び出そう」を参照しました。 例えば、Array#at を呼び出すたびに、その引数と返却値を標準出力にログ出力するようにしたいとします。 arr = [1, 2, 3] arr.at(0) # calling at # returned -> 1 これを実現するには、Array#at に新たに処理を差し込む必要があります。このために、以下のステップを踏む必要があります。 alias_method によって処理を変更したいメソッドの退避用エイリアスを作成 defi
![Ruby でメソッド呼び出しのフック処理を実行する - kymmt](https://cdn-ak-scissors.b.st-hatena.com/image/square/0c5d3007c566fc8b11796390a5e016c637baeebb/height=288;version=1;width=512/https%3A%2F%2Fimages-fe.ssl-images-amazon.com%2Fimages%2FI%2F51q5p2RhCXL._SL160_.jpg)