class TituloEleitorUtils::TituloEleitor
Attributes
numbers[R]
Acessor de leitura para os números
Public Class Methods
new(numbers)
click to toggle source
Inicializador da classe
# File lib/titulo_eleitor_utils/titulo_eleitor.rb, line 8 def initialize(numbers) if numbers.is_a? String numbers = numbers.split('') elsif numbers.is_a? Integer numbers = numbers.to_s.split('') end @numbers = numbers end
valid_state?(titulo_eleitor_number)
click to toggle source
Verifica se o valor do dígito do estado é válido
# File lib/titulo_eleitor_utils/titulo_eleitor.rb, line 64 def self.valid_state?(titulo_eleitor_number) if titulo_eleitor_number.gsub!(/\.?/,"",).size == 12 state_number = titulo_eleitor_number[8,2].to_i ((state_number >= 1) && (state_number <= 28)) ? true : false end end
Public Instance Methods
check_remainder(remainder)
click to toggle source
Checa o resto da divisão
# File lib/titulo_eleitor_utils/titulo_eleitor.rb, line 55 def check_remainder(remainder) if remainder < 2 0 else (11 - remainder) end end
first_digit()
click to toggle source
Gera o primeiro dígito verificador
# File lib/titulo_eleitor_utils/titulo_eleitor.rb, line 26 def first_digit if @numbers.size == 10 value = 0 multipliers = [2,3,4,5,6,7,8,9] multipliers.each_with_index do |mult, index| value += @numbers[index].to_i * mult end check_remainder(value % 11) end end
generate_titulo_eleitor()
click to toggle source
Gera o Título de Eleitor propriamente dito
# File lib/titulo_eleitor_utils/titulo_eleitor.rb, line 19 def generate_titulo_eleitor @numbers << first_digit @numbers << second_digit @numbers.join("") end
second_digit()
click to toggle source
Gera o segundo dígito verificador
# File lib/titulo_eleitor_utils/titulo_eleitor.rb, line 40 def second_digit if @numbers.size == 11 last_three_digits = [@numbers[8], @numbers[9], @numbers[10]] value = 0 multipliers = [7,8,9] multipliers.each_with_index do |mult, index| value += last_three_digits[index].to_i * mult end check_remainder(value % 11) end end