Sha256: 014094b4cf1df9de8605e62e1e7610338e4e6ba34f3abc2beb7f9b9caa229f4c

Contents?: true

Size: 497 Bytes

Versions: 1

Compression:

Stored size: 497 Bytes

Contents

class Valabn
  class Utils
    def self.valid_format?(number)
      number = number.to_s.gsub(/\W/, '')

      if !!( number =~ /\A\d+{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
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
valabn-0.1.0 lib/valabn/utils.rb