変わった特異メソッドの定義の仕方 with yield ref: http://qiita.com/items/b951a04a9da53b809f46