Class: NisValidator::Nis

Inherits:
Object
  • Object
show all
Defined in:
lib/nis_validator/nis.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(number = '') ⇒ Nis

Returns a new instance of Nis.



8
9
10
# File 'lib/nis_validator/nis.rb', line 8

def initialize(number = '')
  @number = number.to_s
end

Instance Attribute Details

#numberObject

Returns the value of attribute number.



6
7
8
# File 'lib/nis_validator/nis.rb', line 6

def number
  @number
end

#xObject

Returns the value of attribute x.



6
7
8
# File 'lib/nis_validator/nis.rb', line 6

def x
  @x
end

Class Method Details

.valid?(number) ⇒ Boolean

Returns:

  • (Boolean)


2
3
4
# File 'lib/nis_validator/nis.rb', line 2

def self.valid?(number)
  new(number).valid?
end

Instance Method Details

#digitObject



20
21
22
# File 'lib/nis_validator/nis.rb', line 20

def digit
  @digit ||= digits.last
end

#digitsObject



12
13
14
# File 'lib/nis_validator/nis.rb', line 12

def digits
  @digits ||= number.scan(/\d/).map(&:to_i)
end

#identifierObject



24
25
26
27
# File 'lib/nis_validator/nis.rb', line 24

def identifier
  last_eleven = digits.last(11)
  @identifier ||= last_eleven.join[0..-2]
end

#identifier_digitsObject



29
30
31
# File 'lib/nis_validator/nis.rb', line 29

def identifier_digits
  @identifier_digits ||= identifier.scan(/\d/).map(&:to_i)
end

#plainObject



16
17
18
# File 'lib/nis_validator/nis.rb', line 16

def plain
  @plain ||= digits.join
end

#valid?Boolean

Returns:

  • (Boolean)


33
34
35
36
37
38
# File 'lib/nis_validator/nis.rb', line 33

def valid?
  return false if digits.size < 11
  return false if black_list.include?(number)
  result = (11 - (sum_products % 11))
  true if ((result == digit) || (result == 10 && digit == 0) || (result == 11 && digit == 0))
end