module Sjekksum::Primitive97

Module for calculation and validation of Primitive97 checksums

This primitive checksum is based on the modulo 97 (calculation of check digits) and modulo 9 (reduction to a single digit).

Public Instance Methods

checksum(number)
Alias for: of
convert(number) click to toggle source

Transforms a number by appending the Primitive97 checksum digit

@example

Sjekksum::Primitive97.convert(23569) #=> 235695

@param number [Integer, String] number without a checksum

@return [Integer, String] final number including the checksum

# File lib/sjekksum/primitive97.rb, line 51
def convert number
  raise_on_type_mismatch number
  typed_conversion number
end
Also aliased as: transform
is_valid?(number)
Alias for: valid?
of(number) click to toggle source

Calculates Primitive97 checksum

@example

Sjekksum::Primitive97.of(23569) #=> 5

@param number [Integer, String] number for which the checksum should be calculated

@return [Integer] calculated checksum

# File lib/sjekksum/primitive97.rb, line 20
def of number
  raise_on_type_mismatch number
  (convert_to_int(number) % 97) % 9
end
Also aliased as: checksum
transform(number)
Alias for: convert
valid?(number) click to toggle source

Primitive97 validation of provided number

@example

Sjekksum::Primitive97.valid?(235695) #=> true

@param number [Integer, String] number with included checksum

@return [Boolean]

# File lib/sjekksum/primitive97.rb, line 35
def valid? number
  raise_on_type_mismatch number
  num, check = split_number(number)
  self.of(num) == check
end
Also aliased as: is_valid?