Module: Mint

Defined in:
lib/minting/railties.rb,
lib/minting/money_attribute/version.rb,
lib/minting/money_attribute/money_type.rb,
lib/minting/money_attribute/configuration.rb,
lib/minting/money_attribute/money_attribute.rb,
lib/generators/minting/initializer_generator.rb

Defined Under Namespace

Modules: Generators, MoneyAttribute Classes: MintMoneyType, Railtie

Class Method Summary collapse

Class Method Details

.assert_valid_currency!(currency) ⇒ Object

Raises:

  • (ArgumentError)


29
30
31
32
33
34
35
# File 'lib/minting/money_attribute/configuration.rb', line 29

def self.assert_valid_currency!(currency)
  code = currency.is_a?(Mint::Currency) ? currency.code : currency.to_s
  currency = Mint.currency(code)
  return currency if Mint.valid_currency?(currency)

  raise ArgumentError, "Invalid currency '#{code}'. Please select a registered currency"
end

.configObject



19
20
21
# File 'lib/minting/money_attribute/configuration.rb', line 19

def self.config
  @config ||= MoneyAttribute::Configuration.new
end

.configure {|config| ... } ⇒ Object

Yields:



23
24
25
26
27
# File 'lib/minting/money_attribute/configuration.rb', line 23

def self.configure
  yield config if block_given?
  @default_currency = nil
  config
end

.default_currencyObject



37
38
39
# File 'lib/minting/money_attribute/configuration.rb', line 37

def self.default_currency
  @default_currency ||= Mint.assert_valid_currency!(config.default_currency)
end

.valid_currency?(currency) ⇒ Boolean

Returns:

  • (Boolean)


41
42
43
44
45
46
47
48
# File 'lib/minting/money_attribute/configuration.rb', line 41

def self.valid_currency?(currency)
  return false if currency.nil?

  code = currency.is_a?(Mint::Currency) ? currency.code : currency.to_s
  currencies = config.enabled_currencies == :all ? Mint.currencies.keys : config.enabled_currencies

  currencies.map(&:to_s).include?(code)
end