Sha256: b677799096a28ec0680e7a7b88e543ee045519f87d78a4ecc1702a97e55f7a96

Contents?: true

Size: 1.32 KB

Versions: 6

Compression:

Stored size: 1.32 KB

Contents

# encoding: UTF-8

# Copyright 2012 Twitter, Inc
# http://www.apache.org/licenses/LICENSE-2.0

module TwitterCldr
  module Shared
    module Currencies
      class << self
        def currency_codes(locale = :en)
          resource(locale).keys.map { |c| c.to_s }
        end

        def for_code(currency_code, locale = :en)
          currency_code = currency_code.to_sym
          data = resource(locale)[currency_code]
          symbol_data = iso_currency_symbols[currency_code]

          if data
            result = {
              currency:    currency_code,
              name:        data[:name],
              cldr_symbol: data[:symbol] || currency_code.to_s,
              symbol:      data[:symbol] || currency_code.to_s,
              code_points: (data[:symbol] || currency_code.to_s).unpack("U*")
            }

            result.merge!(symbol_data) if symbol_data
          end

          result
        end

        private

        # ISO 4217 to be precise
        def iso_currency_symbols
          @iso_currency_symbols ||= TwitterCldr.get_resource(:shared, :iso_currency_symbols)
        end

        def resource(locale)
          locale = locale.to_sym
          @resource ||= {}
          @resource[locale] ||= TwitterCldr.get_resource(:locales, locale, :currencies)[locale][:currencies]
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
twitter_cldr-6.13.0 lib/twitter_cldr/shared/currencies.rb
twitter_cldr-6.12.1 lib/twitter_cldr/shared/currencies.rb
twitter_cldr-6.12.0 lib/twitter_cldr/shared/currencies.rb
twitter_cldr-6.11.5 lib/twitter_cldr/shared/currencies.rb
twitter_cldr-6.11.4 lib/twitter_cldr/shared/currencies.rb
twitter_cldr-6.11.3 lib/twitter_cldr/shared/currencies.rb