class String

Extends the String class in order to validate UC Student Numbers.

Public Instance Methods

valid_uc_number?() click to toggle source

Validation method.

Example:

>> '11533513'.valid_uc_number?
=> false
# File lib/string_validator.rb, line 10
def valid_uc_number?
  last_num = self[-1, 1].upcase
  rest_num = reverse[1..-1].split('').map(&:to_i)

  sum = 0
  rest_num.each_with_index { |digit, index| sum += digit * ((index + 2) % 9) }

  verification_digit = (11 - sum % 11 != 10 ? (11 - sum % 11).to_s : 'J')
  verification_digit = verification_digit == '11' ? '0' : verification_digit
  last_num == verification_digit
end