Module: Money::Currency::Loader

Defined in:
lib/money/currency/loader.rb

Constant Summary collapse

CURRENCY_DATA_PATH =
File.expand_path("../../../config", __dir__ || raise("__dir__ is nil"))

Class Method Summary collapse

Class Method Details

.load_crypto_currenciesObject



19
20
21
22
23
# File 'lib/money/currency/loader.rb', line 19

def load_crypto_currencies
  currencies = {}
  currencies.merge!(YAML.load_file("#{CURRENCY_DATA_PATH}/crypto.yml"))
  deep_deduplicate!(currencies)
end

.load_currenciesObject



11
12
13
14
15
16
17
# File 'lib/money/currency/loader.rb', line 11

def load_currencies
  currencies = {}
  currencies.merge!(YAML.load_file("#{CURRENCY_DATA_PATH}/currency_historic.yml"))
  currencies.merge!(YAML.load_file("#{CURRENCY_DATA_PATH}/currency_non_iso.yml"))
  currencies.merge!(YAML.load_file("#{CURRENCY_DATA_PATH}/currency_iso.yml"))
  deep_deduplicate!(currencies)
end

.load_custom_currencies(path) ⇒ Object

Raises:

  • (ArgumentError)


25
26
27
28
29
30
# File 'lib/money/currency/loader.rb', line 25

def load_custom_currencies(path)
  raise ArgumentError, "Custom currency file not found: #{path}" unless File.exist?(path)
  data = YAML.safe_load_file(path, permitted_classes: [])
  raise ArgumentError, "Custom currency file must contain a YAML hash" unless data.is_a?(Hash)
  deep_deduplicate!(data)
end