module ECBExchangeRatesApi::SharedMethods
- ::nodoc
Presents API params
Public Class Methods
included(base)
click to toggle source
# File lib/ecb_exchange_rates_api/shared_methods.rb, line 12 def self.included(base) base.send :extend, SharedMethods::Attributes end
Private Instance Methods
current_date()
click to toggle source
# File lib/ecb_exchange_rates_api/shared_methods.rb, line 22 def current_date represent_date(Time.now) end
default_base()
click to toggle source
# File lib/ecb_exchange_rates_api/shared_methods.rb, line 18 def default_base ECBExchangeRatesApi::Constants::DEFAULT_BASE end
represent_date(date)
click to toggle source
# File lib/ecb_exchange_rates_api/shared_methods.rb, line 26 def represent_date(date) return date.strftime("%Y-%m-%d") if time_or_date_instance?(date) return date if date.is_a?(String) && date =~ ECBExchangeRatesApi::Constants::DATE_REGEXP raise InvalidDateFormatError, date end
sanitize_currency_code(code)
click to toggle source
# File lib/ecb_exchange_rates_api/shared_methods.rb, line 55 def sanitize_currency_code(code) code&.strip&.upcase end
supported_currency?(currency)
click to toggle source
# File lib/ecb_exchange_rates_api/shared_methods.rb, line 47 def supported_currency?(currency) ECBExchangeRatesApi::Constants::CURRENCIES.include?(currency) end
time_or_date_instance?(instance)
click to toggle source
# File lib/ecb_exchange_rates_api/shared_methods.rb, line 34 def time_or_date_instance?(instance) instance.is_a?(Date) || instance.is_a?(Time) end
valid_currency_code_format?(currency_code)
click to toggle source
# File lib/ecb_exchange_rates_api/shared_methods.rb, line 51 def valid_currency_code_format?(currency_code) !currency_code.nil? && currency_code =~ ECBExchangeRatesApi::Constants::CURRENCY_REGEXP end
validated_currency_code(code)
click to toggle source
# File lib/ecb_exchange_rates_api/shared_methods.rb, line 38 def validated_currency_code(code) currency = sanitize_currency_code(code) raise InvalidCurrencyCodeError, "Ivalid code format #{code}" unless valid_currency_code_format?(currency) raise InvalidCurrencyCodeError, "Unsupported currency #{code}" unless supported_currency?(currency) currency end