Module: LightweightAttributes::BaseClassMethods

Defined in:
lib/lightweight_attributes/base_class_methods.rb

Instance Method Summary collapse

Instance Method Details

#_default_attributesObject

:nodoc:



7
8
9
10
11
12
13
14
# File 'lib/lightweight_attributes/base_class_methods.rb', line 7

def _default_attributes # :nodoc:
  load_schema
  @default_attributes ||= if attributes_to_define_after_schema_loads.empty?
    LightweightAttributes::AttributeSet.new({})
  else
    ActiveModel::AttributeSet.new({})
  end
end

#attributes_builderObject



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/lightweight_attributes/base_class_methods.rb', line 16

def attributes_builder
  if attributes_to_define_after_schema_loads.empty?
    unless defined?(@attributes_builder) && @attributes_builder
      defaults = _default_attributes.except(*(column_names - [primary_key]))
      @attributes_builder = LightweightAttributes::AttributeSet::Builder.new(attribute_types, defaults)
    end
    @attributes_builder
  else
    super
  end
end

#load_schema!Object



28
29
30
31
# File 'lib/lightweight_attributes/base_class_methods.rb', line 28

def load_schema!
  super
  include BaseMethods if attributes_to_define_after_schema_loads.empty?
end