alias
以前、rubyのsuperのことでinstance_methodsを使う方法を教えてもらったんだけども、
http://d.hatena.ne.jp/tkuro/20080628/1214668731
昨日aliasというものを覚えて、これ使えば同じようなことはできるんだ、と知った。
class Parent def foo puts "parent foo" end def bar puts "parent bar" end end class Child < Parent alias parent_foo foo def foo puts "child foo" end def bar print "child bar -- and " parent_foo end end Child.new.bar
foo前に親を使う、ということを明示しなきゃいけないし、名前が変わって烈しくダサいし、だけども。
そもそも、何でこんなこと悩み始めたか今頃思い出した。RingArrayを作ったときにデバッグ用に前のも残したいなーと思ったのがきっかけだった。
class RingArray < Array alias get [] def [](i) super(i % size) end end
むう、とてもバカ。普通でこんなことになるようなバカ設計はしないとは思うけども。。。僕ならやりかねん。