Class: NisValidator::Nis
- Inherits:
-
Object
- Object
- NisValidator::Nis
- Defined in:
- lib/nis_validator/nis.rb
Instance Attribute Summary collapse
-
#number ⇒ Object
Returns the value of attribute number.
-
#x ⇒ Object
Returns the value of attribute x.
Class Method Summary collapse
Instance Method Summary collapse
- #digit ⇒ Object
- #digits ⇒ Object
- #identifier ⇒ Object
- #identifier_digits ⇒ Object
-
#initialize(number = '') ⇒ Nis
constructor
A new instance of Nis.
- #plain ⇒ Object
- #valid? ⇒ Boolean
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
#number ⇒ Object
Returns the value of attribute number.
6 7 8 |
# File 'lib/nis_validator/nis.rb', line 6 def number @number end |
#x ⇒ Object
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
2 3 4 |
# File 'lib/nis_validator/nis.rb', line 2 def self.valid?(number) new(number).valid? end |
Instance Method Details
#digit ⇒ Object
20 21 22 |
# File 'lib/nis_validator/nis.rb', line 20 def digit @digit ||= digits.last end |
#digits ⇒ Object
12 13 14 |
# File 'lib/nis_validator/nis.rb', line 12 def digits @digits ||= number.scan(/\d/).map(&:to_i) end |
#identifier ⇒ Object
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_digits ⇒ Object
29 30 31 |
# File 'lib/nis_validator/nis.rb', line 29 def identifier_digits @identifier_digits ||= identifier.scan(/\d/).map(&:to_i) end |
#plain ⇒ Object
16 17 18 |
# File 'lib/nis_validator/nis.rb', line 16 def plain @plain ||= digits.join end |
#valid? ⇒ 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 |