Class: Virtuaaliviivakoodi::ReferenceNormalizer

Inherits:
Object
  • Object
show all
Defined in:
lib/virtuaaliviivakoodi/reference_normalizer.rb

Constant Summary collapse

REFERENCE_INTERNATIONAL_PATTERN =
/^RF[0-9]{3,23}$/
REFERENCE_NATIONAL_PATTERN =
/^[0-9]{4,20}$/

Class Method Summary collapse

Class Method Details

.call(reference) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/virtuaaliviivakoodi/reference_normalizer.rb', line 6

def self.call(reference)
  reference_without_whitespace = reference.to_s.gsub(/\s/, "")
  case reference_without_whitespace
  when REFERENCE_INTERNATIONAL_PATTERN
    # Pad everything after checksum
    reference_without_whitespace[2..3] + Virtuaaliviivakoodi.pad(reference_without_whitespace[4..-1], 21)
  when REFERENCE_NATIONAL_PATTERN
    # Pad everything
    Virtuaaliviivakoodi.pad(reference_without_whitespace, 20)
  else
    raise ArgumentError, "Reference is not valid"
  end
end