module Money::Currency::Loader

Public Class Methods

load_currencies() click to toggle source
# File lib/money/currency/loader.rb, line 8
def load_currencies
  currency_data_path = File.expand_path("../../../../config", __FILE__)

  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

Private Class Methods

deep_deduplicate!(data) click to toggle source
# File lib/money/currency/loader.rb, line 20
def deep_deduplicate!(data)
  case data
  when Hash
    return data if data.frozen?
    data.transform_keys! { |k| deep_deduplicate!(k) }
    data.transform_values! { |v| deep_deduplicate!(v) }
    data.freeze
  when Array
    return data if data.frozen?
    data.map! { |d| deep_deduplicate!(d) }.freeze
  when String
    -data
  else
    data.freeze
  end
end