Module: AppStorePricingMatrix

Defined in:
lib/app_store_pricing_matrix.rb

Constant Summary collapse

CURRENCY_MAP =
{
  :usd => [ :usd ].freeze,
  :cad => [ :cad ].freeze,
  :mxn => [ :mxn ].freeze,
  :aud => [ :aud ].freeze,
  :nzd => [ :nzd ].freeze,
  :jpy => [ :jpy ].freeze,
  :eur => [ :eur ].freeze,
  :chf => [ :chf ].freeze,
  :nok => [ :nok ].freeze,
  :gbp => [ :gbp ].freeze,
  :cny => [ :cny ].freeze,
  :dkk => [ :dkk ].freeze,
  :sek => [ :sek ].freeze
}.freeze
EURO_CURRENCIES =
[ :bgn , :czk , :eek , :huf , :lvl , :ltl , :mtl , :pln , :ron ].map {|i| i.to_s.upcase }.freeze
CUSTOMER_CURRENCIES =
CURRENCY_MAP.values.flatten.map{|i| i.to_s.upcase }.freeze
DEVELOPER_CURRENCIES =
CURRENCY_MAP.keys.map{|i| i.to_s.upcase }.freeze
REVERSE_CURRENCY_MAP =
{}.tap do |hash|
  CURRENCY_MAP.keys.each do |key|
    CURRENCY_MAP[key].each do |customer_currency|
      hash[customer_currency.to_s.upcase] = key.to_s.upcase
    end
  end
end.freeze
CUSTOMER_PRICES =
{}.tap do |hash|
  CUSTOMER_CURRENCIES.map do |currency|
    hash[currency] = File.read("#{File.dirname(__FILE__)}/prices/#{currency.downcase}").split("\n").freeze
  end
end.freeze
DEVELOPER_PROCEEDS =
{}.tap do |hash|
  DEVELOPER_CURRENCIES.each do |key|
    hash[key] = File.read("#{File.dirname(__FILE__)}/prices/#{key.downcase}_pro").split("\n").freeze
  end
end.freeze

Class Method Summary collapse

Class Method Details

.customer_currency_for(currency_code) ⇒ Object



42
43
44
45
46
47
# File 'lib/app_store_pricing_matrix.rb', line 42

def self.customer_currency_for(currency_code)
  code = currency_code.to_s.upcase
  return code if AppStorePricingMatrix::CUSTOMER_CURRENCIES.include? code
  return "EUR" if AppStorePricingMatrix::EURO_CURRENCIES.include? code
  return nil
end