Sha256: 9b5442c3a51450476bd9a89703fa2c254a0216e3337d8aea44ea0ece90eaf5fb
Contents?: true
Size: 1.07 KB
Versions: 21
Compression:
Stored size: 1.07 KB
Contents
# frozen_string_literal: true require 'yaml' class Money class Currency module Loader class << self 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 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 end end end end
Version data entries
21 entries across 21 versions & 1 rubygems