Module: ActiveZuora::LazyAttr::ClassMethods

Defined in:
lib/active_zuora/lazy_attr.rb

Instance Method Summary collapse

Instance Method Details

#define_lazy_field(field) ⇒ Object



43
44
45
46
47
48
49
# File 'lib/active_zuora/lazy_attr.rb', line 43

def define_lazy_field(field)
  instance_eval do
    define_method field do
      instance_variable_get("@#{field}") || instance_variable_set("@#{field}", fetch_field(field))
    end
  end
end

#lazy_load(*field_names) ⇒ Object



37
38
39
40
41
# File 'lib/active_zuora/lazy_attr.rb', line 37

def lazy_load(*field_names)
  Array(field_names).map(&:to_sym).each do |field_name|
    define_lazy_field field_name
  end
end