Module: CcyConvertor

Defined in:
lib/ccy_convertor.rb,
lib/ccy_convertor/version.rb,
lib/ccy_convertor/constant.rb,
lib/ccy_convertor/exception.rb,
lib/ccy_convertor/rate_cache.rb,
lib/ccy_convertor/configuration.rb,
lib/ccy_convertor/process_and_validate_option.rb,
lib/ccy_convertor/rate_providers/rate_provider.rb,
lib/ccy_convertor/rate_providers/yahoo_finance.rb,
lib/ccy_convertor/rate_providers/currency_layer.rb,
lib/ccy_convertor/rate_providers/open_exchange_rate.rb

Defined Under Namespace

Modules: Constant, ProcessAndValidateOption, RateCache Classes: Configuration, CurrencyLayer, CurrencyNotSupported, InvalidAmount, InvalidCurrencyCode, NoApiKeyPresent, OpenExchangeRate, RateProvider, ResponseInvalid, YahooFinance

Constant Summary collapse

VERSION =
'1.0.0'

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationObject

Returns the value of attribute configuration.



3
4
5
# File 'lib/ccy_convertor/configuration.rb', line 3

def configuration
  @configuration
end

Class Method Details

.configure {|configuration| ... } ⇒ Object

Yields:



9
10
11
# File 'lib/ccy_convertor/configuration.rb', line 9

def configure
  yield(configuration) if block_given?
end

.convert(options) ⇒ Object



25
26
27
28
29
# File 'lib/ccy_convertor.rb', line 25

def convert(options)
  amount = rate_provider(options).convert(options)
  return amount if CcyConvertor.configuration.round_up_amount.nil?
  amount.to_f.round(CcyConvertor.configuration.round_up_amount)
end

.rate(options) ⇒ Object



18
19
20
21
22
23
# File 'lib/ccy_convertor.rb', line 18

def rate(options)
  RateProvider.validate_presence_of_hash_keys!(options, [:from_ccy, :to_ccy])
  rate = rate_provider(options).rate(options[:to_ccy], options[:from_ccy])
  return rate if CcyConvertor.configuration.round_up_rate.nil?
  rate.to_f.round(CcyConvertor.configuration.round_up_rate)
end

.rate_provider(options) ⇒ Object



31
32
33
# File 'lib/ccy_convertor.rb', line 31

def rate_provider(options)
  options[:rate_provider] || CcyConvertor.configuration.default_rate_provider
end