class PolishValidators::NipValidator

Public Class Methods

new(nip) click to toggle source
# File lib/polish_validators/nip_validator.rb, line 3
def initialize(nip)
  @nip = nip.to_s
end

Public Instance Methods

valid?() click to toggle source
# File lib/polish_validators/nip_validator.rb, line 7
def valid?
  return unless @nip =~ /\A\d{10}\Z/

  weights = [6, 5, 7, 2, 3, 4, 5, 6, 7]
  nip = @nip.split(//).collect(&:to_i)
  checksum = weights.reduce(0) { |a, e| a + nip.shift * e }

  checksum % 11 == nip.shift
end