Class: PolishValidators::NipValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/polish_validators/nip_validator.rb

Instance Method Summary collapse

Constructor Details

#initialize(nip) ⇒ NipValidator

Returns a new instance of NipValidator.



3
4
5
# File 'lib/polish_validators/nip_validator.rb', line 3

def initialize(nip)
  @nip = nip.to_s
end

Instance Method Details

#valid?Boolean

Returns:

  • (Boolean)


7
8
9
10
11
12
13
14
15
# 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