module Valvat::Utils

Constants

CONVERT_ISO_TO_VAT_COUNTRY
CONVERT_VAT_TO_ISO_COUNTRY
COUNTRY_PATTERN
EU_MEMBER_STATES
NORMALIZE_PATTERN
SUPPORTED_STATES

Public Class Methods

country_is_supported?(iso_country) click to toggle source
# File lib/valvat/utils.rb, line 33
def self.country_is_supported?(iso_country)
  SUPPORTED_STATES.include?(iso_country)
end
deep_symbolize_keys(value) click to toggle source
# File lib/valvat/utils.rb, line 37
def self.deep_symbolize_keys(value)
  value = value.transform_keys do |key|
    key.to_sym
  rescue StandardError
    key
  end

  value.transform_values! do |val|
    val.is_a?(Hash) ? deep_symbolize_keys(val) : val
  end
end
iso_country_to_vat_country(iso_country) click to toggle source
# File lib/valvat/utils.rb, line 29
def self.iso_country_to_vat_country(iso_country)
  CONVERT_ISO_TO_VAT_COUNTRY[iso_country] || iso_country
end
normalize(vat) click to toggle source
# File lib/valvat/utils.rb, line 21
def self.normalize(vat)
  vat.to_s.upcase.gsub(NORMALIZE_PATTERN, '')
end
split(vat) click to toggle source
# File lib/valvat/utils.rb, line 14
def self.split(vat)
  COUNTRY_PATTERN =~ vat
  result = [Regexp.last_match(1), Regexp.last_match(2)]
  iso_country = vat_country_to_iso_country(result[0])
  country_is_supported?(iso_country) ? result : [nil, nil]
end
vat_country_to_iso_country(vat_country) click to toggle source
# File lib/valvat/utils.rb, line 25
def self.vat_country_to_iso_country(vat_country)
  CONVERT_VAT_TO_ISO_COUNTRY[vat_country] || vat_country
end