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