class NFE
Public Class Methods
digit(key44)
click to toggle source
# File lib/nfe.rb, line 8 def self.digit(key44) dig = key44.split("").last.to_i key = key44.split("")[0..42].map(&:to_i) multipliers = ([2,3,4,5,6,7,8,9] * 6).reverse multipliers.shift(5) key_multiplied = [] key[0..key.size-1].size.times do |index| key_multiplied << key[index] * multipliers[index] end rest = key_multiplied.sum % 11 return 0 if rest == 0 || rest == 1 11 - rest end
generate()
click to toggle source
# File lib/nfe.rb, line 23 def self.generate randon_digits_valid = false while !randon_digits_valid do randon_digits = 43.times.map{ Random.rand(0..9) }.join randon_digits_valid = digit([randon_digits, 0].join) end [randon_digits, digit([randon_digits, 0].join)].join end
valid?(key44)
click to toggle source
# File lib/nfe.rb, line 2 def self.valid?(key44) return false if key44.blank? dig = key44.split("").last.to_i dig == digit(key44) end