Module: Valvat::Checksum

Defined in:
lib/valvat/checksum.rb,
lib/valvat/checksum/at.rb,
lib/valvat/checksum/be.rb,
lib/valvat/checksum/bg.rb,
lib/valvat/checksum/cy.rb,
lib/valvat/checksum/de.rb,
lib/valvat/checksum/dk.rb,
lib/valvat/checksum/ee.rb,
lib/valvat/checksum/es.rb,
lib/valvat/checksum/fi.rb,
lib/valvat/checksum/fr.rb,
lib/valvat/checksum/gb.rb,
lib/valvat/checksum/gr.rb,
lib/valvat/checksum/hr.rb,
lib/valvat/checksum/hu.rb,
lib/valvat/checksum/ie.rb,
lib/valvat/checksum/it.rb,
lib/valvat/checksum/lt.rb,
lib/valvat/checksum/lu.rb,
lib/valvat/checksum/mt.rb,
lib/valvat/checksum/nl.rb,
lib/valvat/checksum/pl.rb,
lib/valvat/checksum/pt.rb,
lib/valvat/checksum/ro.rb,
lib/valvat/checksum/se.rb,
lib/valvat/checksum/si.rb

Defined Under Namespace

Classes: AT, BE, BG, Base, CY, DE, DK, EE, ES, FI, FR, GB, GR, HR, HU, IE, IT, LT, LU, MT, NL, PL, PT, RO, SE, SI

Constant Summary collapse

ALGORITHMS =
Dir[File.join(__dir__, 'checksum', '*.rb')].each_with_object({}) do |path, algos|
  require path.gsub(/\.rb$/, '')

  classname = File.basename(path, '.rb').upcase
  algos[classname] = ['Valvat', 'Checksum', classname].inject(Object, :const_get)
end.freeze

Class Method Summary collapse

Class Method Details

.validate(vat) ⇒ Object



65
66
67
68
69
# File 'lib/valvat/checksum.rb', line 65

def self.validate(vat)
  vat = Valvat(vat)
  algo = ALGORITHMS[vat.iso_country_code]
  Valvat::Syntax.validate(vat) && !!(algo.nil? || algo.new(vat).validate)
end