Rubyで実行時にメソッドのふるまいを変更する方法


Rubyでは実行時にメソッドの動きを変更することができる。

例えば次のようなクラスをperson.rbというファイルに記述する。

次にchained_person.rbというファイルに次のように記述する。

aliase_methodでperson.rbのfunc1メソッドにfunc1_without_chainedという別名をつけて、次の行でfunc_with_chainedメソッドをfunc1メソッドとするように指定する。
そしてメインの処理を記述するファイルには以下のようにする。

これで環境変数CHAINEDに値が入っている場合はchained_person.rbのメソッドが呼ばれるようになる。
これはデバッグや違う環境でメソッドを変えたい場合にその部分だけ別ファイルに分離することができるので便利だ。

参考文献

実践 Rails -強力なWebアプリケーションをすばやく構築するテクニック 実践 Rails -強力なWebアプリケーションをすばやく構築するテクニック
株式会社クイープ

オライリージャパン 2008-10-27
売り上げランキング : 3881

Amazonで詳しく見る by G-Tools

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です