Hatena::ブログ(Diary)

<s>gnarl,</s>技術メモ”’<marquee><textarea>¥ このページをアンテナに追加 RSSフィード

2014-01-22

Ruby、スーパークラスにメソッドが定義されている時だけsuperしたい

あけましておめでとうございます!!!!!!!!!!!!!

表題の機能はinheritedメソッドが定義されてるモジュール複数includeする時などに欲しくなるわけですが、

def inherited(klass)
  super if defined?(super)
end

などとすることで実現できる。

defined?(super)はメソッド呼び出しではなくて太古からある謎の構文です(ref: http://docs.ruby-lang.org/ja/1.9.3/doc/spec=2fdef.html#defined)

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/gnarl/20140122/1390394655