rubyで局所的にパッチを当てる方法を模索中
下記のようなコードで、Cクラスの中だけで何とかAクラスに対するパッチを当てたい。
class A def self.foo p 'foo' end def bar p 'bar' end end module ExtendFoo refine A.singleton_class do def foo p 'extend foo' end end refine A do def bar p 'extend bar' end end end class B def initialize A.foo A.new.bar end end class C using ExtendFoo def initialize B.new end end C.new
これを実行すると、
"foo" "bar"
になるのだが、
"extend foo" "extend bar"
にする方法がないものか。。。