Module: MoneyAttribute::MigrationExtensions::SchemaStatements

Includes:
Helper
Defined in:
lib/money_attribute/migration_extensions/schema_statements.rb

Overview

:nodoc:

Constant Summary

Constants included from Helper

Helper::AMOUNT_CONFIG, Helper::CURRENCY_DEFAULT_LIMIT, Helper::CURRENCY_MIN_LIMIT

Instance Method Summary collapse

Instance Method Details

#add_money_amount(table_name, accessor, options = {}) ⇒ Object



26
27
28
29
30
31
# File 'lib/money_attribute/migration_extensions/schema_statements.rb', line 26

def add_money_amount(table_name, accessor, options = {})
  amount_col, amount_opts = parse_money_amount_args(accessor, options)

  type = amount_opts.delete(:type)
  add_column(table_name, amount_col, type, **amount_opts)
end

#add_money_attribute(table_name, accessor, options = {}) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/money_attribute/migration_extensions/schema_statements.rb', line 11

def add_money_attribute(table_name, accessor, options = {})
  amount_col, currency_col, amount_opts, currency_opts = parse_money_args(accessor, options)

  type = amount_opts.delete(:type)
  add_column(table_name, amount_col, type, **amount_opts)
  add_column(table_name, currency_col, :string, **currency_opts)
end

#remove_money_amount(table_name, accessor, options = {}) ⇒ Object



33
34
35
# File 'lib/money_attribute/migration_extensions/schema_statements.rb', line 33

def remove_money_amount(table_name, accessor, options = {})
  remove_column(table_name, (options[:column] || accessor).to_s)
end

#remove_money_attribute(table_name, accessor, options = {}) ⇒ Object



19
20
21
22
23
24
# File 'lib/money_attribute/migration_extensions/schema_statements.rb', line 19

def remove_money_attribute(table_name, accessor, options = {})
  amount_col, currency_col, = parse_money_args(accessor, options)

  remove_column(table_name, amount_col)
  remove_column(table_name, currency_col)
end