Removing .DS_Store and .pid files from repository.
[merb_radiant.git] / lib / active_record_extensions.rb
blob80b1ed230eeafb6a14496d51c84c32435a974504
1 require 'active_record'
3 class ActiveRecord::Base
4   def self.object_id_attr(symbol, klass)
5     module_eval %{
6       def #{symbol}
7         if @#{symbol}.nil? or (@old_#{symbol}_id != #{symbol}_id)
8           @old_#{symbol}_id = #{symbol}_id
9           klass = #{klass}.descendants.find { |d| d.#{symbol}_name == #{symbol}_id }
10           klass ||= #{klass}
11           @#{symbol} = klass.new
12         else
13           @#{symbol}
14         end
15       end
16     }
17   end
18 end