タグ

2012年10月17日のブックマーク (1件)

  • ActiveSupport::Concernすごい - UNKKKKK

    「メタプログラミングRuby」に書いてある内容と最新のActiveRecord(3.0.9)はモジュールの管理方法がかなり違ったので、どうなってるのか調べた。 どうもActiveSupportのConcernモジュールが面倒をみてるっぽい。 module M extend ActiveSupport::Concern module ClassMethods def cm; puts 'I am a class method'; end end module InstanceMethods def im; puts 'I am an instance method'; end end end みたいに書くと、このモジュールをincludeしたクラスに、ClassMethodsに書いた内容がメソッドがクラスメソッドとして追加される。 仕組みとしては、include時にConcernモジュール