module Faker::Russian::Snils
Public Instance Methods
snils(options = {})
click to toggle source
# File lib/faker/russian/snils.rb, line 4 def snils(options = {}) options.assert_valid_keys(:sequence_number) sequence = find_sequence(options[:sequence_number]) snils_digits = '%09d' % sequence.rand(1_000_000_000) snils_digits + check_digits(snils_digits) end
Private Instance Methods
check_digits(snils_digits)
click to toggle source
# File lib/faker/russian/snils.rb, line 15 def check_digits(snils_digits) digits = snils_digits.split('').map(&:to_i) checksum = digits.each_with_index.inject(0) do |sum, (digit, index)| sum + digit * (9 - index) end % 101 % 100 '%02d' % checksum end