特定のインスタンスのみにメソッドを追加する
作成したインスタンスのみメソッド追加するやり方がわからなくて、
試してみたのでメモ
下記ソースコードは Test クラスのインスタンスの a に対して、
特異メソッドを追加してみたサンプルです。
class Test def hoge p 'pp' end end a = Test.new a.hoge #=> 'pp' # aの特異クラスに対して特異メソッドを定義する class << a def hoge p 'hogehgoe' end end a.hoge #=> 'hogehoge' # 新規クラス作成して確認 b = Test.new b.hoge #=> 'pp' # ほかのインスタンスに影響がない事がわかる #以下のように書いても同じ def a.hoge p 'hogehogehoge' end a.hoge #=> 'hogehogehoge'
Yuguiさんのこの記事がとても勉強になりました。
http://yugui.jp/articles/768
継承チェーンなどの、仕組みを分かって行けると楽しいですね。
もっと勉強します・・・