Module: Olyx::Guardrails::Pii::SinValidator

Defined in:
lib/olyx/guardrails/pii/sin_validator.rb

Overview

Validates Canadian Social Insurance Numbers with the same Luhn checksum as card numbers, but at SIN's fixed 9-digit length — LuhnValidator enforces its own 13-digit floor for card use, so this applies SIN's length rule against LuhnChecksum directly.

Constant Summary collapse

LENGTH =
9

Class Method Summary collapse

Class Method Details

.call(sin) ⇒ Object



17
18
19
20
# File 'lib/olyx/guardrails/pii/sin_validator.rb', line 17

def call(sin)
  digits = LuhnChecksum.digits(sin)
  digits.length == LENGTH && LuhnChecksum.valid?(digits)
end