class Valabn::Utils

Public Class Methods

valid_format?(number) click to toggle source
# File lib/valabn/utils.rb, line 3
def self.valid_format?(number)
  number = number.to_s.gsub(/\W/, '')

  if !!( number =~ /\A[0-9]{11}\z/)
    weights = [10, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
    sum = 0

    numbers = number.split('').map(&:to_i)
    numbers[0] = numbers[0] - 1

    numbers = numbers.zip(weights).map { |x, y| x * y }
    sum = numbers.inject(0, :+)

    (sum % 89).zero?
  else
    false
  end
end