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

Version Path
shopify-money-3.0.0 lib/money/currency/loader.rb
shopify-money-2.2.2 lib/money/currency/loader.rb
shopify-money-2.2.1 lib/money/currency/loader.rb
shopify-money-2.2.0 lib/money/currency/loader.rb
shopify-money-2.0.0 lib/money/currency/loader.rb
shopify-money-1.3.0 lib/money/currency/loader.rb
shopify-money-1.2.1 lib/money/currency/loader.rb
shopify-money-1.2.0 lib/money/currency/loader.rb
shopify-money-1.1.2 lib/money/currency/loader.rb
shopify-money-1.1.1 lib/money/currency/loader.rb
shopify-money-1.1.0 lib/money/currency/loader.rb
shopify-money-1.0.2.pre lib/money/currency/loader.rb
shopify-money-1.0.1.pre lib/money/currency/loader.rb
shopify-money-1.0.0.pre lib/money/currency/loader.rb
shopify-money-0.16.0 lib/money/currency/loader.rb
shopify-money-0.15.0 lib/money/currency/loader.rb
shopify-money-0.14.8 lib/money/currency/loader.rb
shopify-money-0.14.7 lib/money/currency/loader.rb
shopify-money-0.14.6 lib/money/currency/loader.rb
shopify-money-0.14.5 lib/money/currency/loader.rb