Module: Amount::ActiveRecord::Model

Defined in:
lib/amount/active_record/model.rb

Overview

Provides ‘has_amount` for ActiveRecord models.

Instance Method Summary collapse

Instance Method Details

#amount_atomic_column(name) ⇒ Object



26
27
28
# File 'lib/amount/active_record/model.rb', line 26

def amount_atomic_column(name)
  amount_attribute_definition(name).atomic_column
end

#amount_attribute_definitionsObject



18
19
20
# File 'lib/amount/active_record/model.rb', line 18

def amount_attribute_definitions
  @amount_attribute_definitions ||= {}
end

#amount_component_columns(name) ⇒ Object



22
23
24
# File 'lib/amount/active_record/model.rb', line 22

def amount_component_columns(name)
  amount_attribute_definition(name).component_columns
end

#amount_symbol_column(name) ⇒ Object



30
31
32
# File 'lib/amount/active_record/model.rb', line 30

def amount_symbol_column(name)
  amount_attribute_definition(name).symbol_column
end

#has_amount(name, symbol: nil) ⇒ Object



7
8
9
10
11
12
13
14
15
16
# File 'lib/amount/active_record/model.rb', line 7

def has_amount(name, symbol: nil)
  definition = AttributeDefinition.new(name, symbol:)
  amount_attribute_definitions[definition.name] = definition

  define_amount_reader(definition)
  define_amount_writer(definition)
  define_amount_dirty_tracking(definition)
  define_amount_scopes(definition)
  define_amount_validation(definition)
end