46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# File 'lib/mcmire/ar_attr_lazy/base_ext.rb', line 46
def attr_lazy(*args)
include InstanceMethods
extend ClassMethods
class_inheritable_accessor :attr_lazy_columns
write_inheritable_attribute :attr_lazy_columns, []
(class << self; self; end).class_eval do
alias_method_chain :find, :attr_lazy
end
args = [args].flatten.map(&:to_s)
new_cols = args - (attr_lazy_columns & args)
write_inheritable_attribute(:attr_lazy_columns, attr_lazy_columns | args)
new_cols.each do |col|
class_eval("def #{col}; read_lazy_attribute :#{col}; end", __FILE__, __LINE__)
end
end
|