titulo_eleitor_utils 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/.rspec +2 -0
- data/.travis.yml +6 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +98 -0
- data/Rakefile +1 -0
- data/lib/titulo_eleitor_utils/string.rb +103 -0
- data/lib/titulo_eleitor_utils/titulo_eleitor.rb +71 -0
- data/lib/titulo_eleitor_utils/version.rb +3 -0
- data/lib/titulo_eleitor_utils.rb +85 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/titulo_eleitor_utils_spec.rb +54 -0
- data/titulo_eleitor_utils.gemspec +27 -0
- metadata +104 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: ddbf8b673976820d00779c3bfcad007f32d28d9f
|
4
|
+
data.tar.gz: 7a407ed477ecaa9ea24768e28be9e43855fa9e6d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: db54d07eee3e9fa194e59fb92a532c1e019bf9217ba3aaef3191b3b4eca891131c52a56268aeed1b6c0eb714df9f0131f4552523a7a223ba48860feb150652a0
|
7
|
+
data.tar.gz: d599fd3dc1063a6266a31e524785963911f0ceb9690d9100842ec27a9ca75e3d4872eb8b2568beb3f978f1ff4bc1981903d15b99584b1cb4a7f41204d4023ffb
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2014 Jackson Pires
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
# TituloEleitorUtils
|
2
|
+
|
3
|
+
TituloEleitorUtils é uma suíte de funcionalidades para Título de Eleitor.
|
4
|
+
O TituloEleitorUtils é capaz de gerar números de Título de Eleitor para testes no formado tradicional ou apenas numérico, verifica a qual UF o Título de Eleitor pertence, testa se determinado número de Título de Eleitor é válido, gera dígitos verificadores para determinado número candidato a Título de Eleitor, dentre outras coisas.
|
5
|
+
|
6
|
+
*PS: Devido à inconsistência entre as formatações/máscaras usadas em todo território nacional, optamos por usar uma formatação/máscara próxima à que Justiça Eleitoral usa nos comprovantes de votação. Nossa formatação/máscara será ####.####.####, visto que o título eleitoral é formado por 12 dígitos.*
|
7
|
+
|
8
|
+
## Instalação
|
9
|
+
|
10
|
+
Adicione essa linha na Gemfile da sua aplicação:
|
11
|
+
|
12
|
+
gem 'titulo_eleitor_utils'
|
13
|
+
|
14
|
+
E então execute:
|
15
|
+
|
16
|
+
$ bundle
|
17
|
+
|
18
|
+
Ou instale você mesmo, conforme abaixo:
|
19
|
+
|
20
|
+
$ gem install titulo_eleitor_utils
|
21
|
+
|
22
|
+
## Uso
|
23
|
+
|
24
|
+
O TituloEleitorUtils é muito fácil de usar, por exempo:
|
25
|
+
|
26
|
+
# Para gerar um número de Título de Eleitor:
|
27
|
+
TituloEleitorUtils.titulo_eleitor => # "023434561340"
|
28
|
+
|
29
|
+
# Para gerar um Título de Eleitor formatado:
|
30
|
+
TituloEleitorUtils.titulo_eleitor_formatted => # "0234.3456.1340"
|
31
|
+
|
32
|
+
# Para verificar se um Título de Eleitor é válido:
|
33
|
+
TituloEleitorUtils.valid_titulo_eleitor?("023434561340") => # true
|
34
|
+
TituloEleitorUtils.valid_titulo_eleitor?(023434561340) => # true
|
35
|
+
TituloEleitorUtils.valid_titulo_eleitor?("0234.3456.1340") => # true
|
36
|
+
|
37
|
+
# Outra forma de verificar se um Título de Eleitor é válido:
|
38
|
+
"023434561340".valid_titulo_eleitor? => # true
|
39
|
+
"0234.3456.1340".valid_titulo_eleitor? => # true
|
40
|
+
|
41
|
+
# Para verificar se uma máscara de Título de Eleitor é válida:
|
42
|
+
"0234.3456.1340".valid_titulo_eleitor_mask? => # true
|
43
|
+
"0234.3456..1340".valid_titulo_eleitor_mask? => # false
|
44
|
+
|
45
|
+
# Para formatar um número válido de Título de Eleitor:
|
46
|
+
"023434561340".to_titulo_eleitor_format => # "0234.3456.1340"
|
47
|
+
|
48
|
+
# Para gerar um número de Título de Eleitor a partir de um número candidato de 10 dígitos:
|
49
|
+
"612873950001".generate_titulo_eleitor => # "023434561340"
|
50
|
+
|
51
|
+
# Para gerar um número de Título de Eleitor formatado a partir de um número candidato de 10 dígitos:
|
52
|
+
"612873950001".generate_titulo_eleitor_formatted => # "0234.3456.1340"
|
53
|
+
|
54
|
+
# Para saber a qual unidade federativa o Título de Eleitor pertence:
|
55
|
+
TituloEleitor.titulo_eleitor_province("759026311727") => # "TO"
|
56
|
+
"759026311727".titulo_eleitor_province => # "TO"
|
57
|
+
|
58
|
+
Também é possível usar métodos em português:
|
59
|
+
|
60
|
+
# Para gerar um número de Título de Eleitor:
|
61
|
+
TituloEleitorUtils.titulo_eleitor => # "023434561340"
|
62
|
+
|
63
|
+
# Para gerar um Título de Eleitor formatado:
|
64
|
+
TituloEleitorUtils.titulo_eleitor_formatado => # "0234.3456.1340"
|
65
|
+
|
66
|
+
# Para verificar se um Título de Eleitor é válido:
|
67
|
+
TituloEleitorUtils.titulo_eleitor_valido?("023434561340") => # true
|
68
|
+
TituloEleitorUtils.titulo_eleitor_valido?(023434561340) => # true
|
69
|
+
TituloEleitorUtils.titulo_eleitor_valido?("0234.3456.1340") => # true
|
70
|
+
|
71
|
+
# Outra forma de verificar se um Título de Eleitor é válido:
|
72
|
+
"023434561340".titulo_eleitor_valido? => # true
|
73
|
+
"0234.3456.1340".titulo_eleitor_valido? => # true
|
74
|
+
|
75
|
+
# Para verificar se uma máscara de Título de Eleitor é válida:
|
76
|
+
"0234.3456.1340".mascara_de_titulo_eleitor_valida? => # true
|
77
|
+
"0234.3456..1340".mascara_de_titulo_eleitor_valida? => # false
|
78
|
+
|
79
|
+
# Para formatar um número válido de Título de Eleitor:
|
80
|
+
"023434561340".para_formato_titulo_eleitor => # "0234.3456.1340"
|
81
|
+
|
82
|
+
# Para gerar um número de Título de Eleitor a partir de um número candidato de 10 dígitos:
|
83
|
+
"612873950001".gerar_titulo_eleitor => # "023434561340"
|
84
|
+
|
85
|
+
# Para gerar um número de Título de Eleitor formatado a partir de um número candidato de 10 dígitos:
|
86
|
+
"612873950001".gerar_titulo_eleitor_formatado => # "0234.3456.1340"
|
87
|
+
|
88
|
+
# Para saber a qual unidade federativa o Título de Eleitor pertence:
|
89
|
+
TituloEleitorUtils.uf_do_titulo_eleitor("759026311727") => # "TO"
|
90
|
+
"759026311727".uf_do_titulo_eleitor => # "TO"
|
91
|
+
|
92
|
+
## Contribuindo
|
93
|
+
|
94
|
+
1. Faça um Fork
|
95
|
+
2. Crie um branch para a nova funcionalidade (`git checkout -b minha-nova-funcionalidade`)
|
96
|
+
3. Faça o commit de suas alterações (`git commit -am 'Adicionada nova funcionalidade'`)
|
97
|
+
4. Faça um push da sua nova funconalidade (`git push origin minha-nova-funcionalidade`)
|
98
|
+
5. Submeta uma nova Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
@@ -0,0 +1,103 @@
|
|
1
|
+
class String
|
2
|
+
|
3
|
+
# Verifica se uma máscara de Título de Eleitor é válida:
|
4
|
+
#
|
5
|
+
# "7590.2631.1727".valid_titulo_eleitor_mask? => # true
|
6
|
+
def valid_titulo_eleitor_mask?
|
7
|
+
without_mask = !!(self =~ /^[0-9]{12}+$/)
|
8
|
+
with_mask = !!(self =~ /^[0-9]{4}\.[0-9]{4}\.[0-9]{4}+$/)
|
9
|
+
with_mask || without_mask
|
10
|
+
end
|
11
|
+
|
12
|
+
# Verifica se um Título de Eleitor é válido:
|
13
|
+
#
|
14
|
+
# "759026311727".valid_titulo_eleitor? => # true
|
15
|
+
# "7590.2631.1727".valid_titulo_eleitor? => # true
|
16
|
+
def valid_titulo_eleitor?
|
17
|
+
valid_state = TituloEleitorUtils::TituloEleitor.valid_state?(self)
|
18
|
+
|
19
|
+
if valid_titulo_eleitor_mask? && valid_state
|
20
|
+
original_titulo_eleitor = self.gsub(/\.?/,"",)
|
21
|
+
tested_titulo_eleitor = original_titulo_eleitor[0..9]
|
22
|
+
|
23
|
+
tested_titulo_eleitor << (
|
24
|
+
TituloEleitorUtils::TituloEleitor.new(
|
25
|
+
original_titulo_eleitor[0..9]
|
26
|
+
).first_digit.to_s
|
27
|
+
)
|
28
|
+
|
29
|
+
tested_titulo_eleitor << (
|
30
|
+
TituloEleitorUtils::TituloEleitor.new(
|
31
|
+
tested_titulo_eleitor[0..11]
|
32
|
+
).second_digit.to_s
|
33
|
+
)
|
34
|
+
|
35
|
+
tested_titulo_eleitor == original_titulo_eleitor ? true : false
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
# Para formatar um número válido de Título de Eleitor:
|
40
|
+
#
|
41
|
+
# "759026311727".to_titulo_eleitor_format => # "7590.2631.1727"
|
42
|
+
def to_titulo_eleitor_format
|
43
|
+
if self.valid_titulo_eleitor?
|
44
|
+
"#{self[0..3]}.#{self[4..7]}.#{self[8..11]}"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
# Gera um número de Título de Eleitor a partir de um número candidato:
|
49
|
+
#
|
50
|
+
# "7590263117".generate_titulo_eleitor => # "759026311727"
|
51
|
+
def generate_titulo_eleitor
|
52
|
+
if !!(self =~ /^[0-9]{10}+$/)
|
53
|
+
final_titulo_eleitor = self
|
54
|
+
|
55
|
+
final_titulo_eleitor << (
|
56
|
+
TituloEleitorUtils::TituloEleitor.new(
|
57
|
+
final_titulo_eleitor[0..9]
|
58
|
+
).first_digit.to_s
|
59
|
+
)
|
60
|
+
|
61
|
+
final_titulo_eleitor << (
|
62
|
+
TituloEleitorUtils::TituloEleitor.new(
|
63
|
+
final_titulo_eleitor[0..10]
|
64
|
+
).second_digit.to_s
|
65
|
+
)
|
66
|
+
|
67
|
+
final_titulo_eleitor
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
# Para gerar um número de Título de Eleitor formatado a partir de um número candidato:
|
72
|
+
#
|
73
|
+
# "759026311727".generate_titulo_eleitor_formatted => # "7590.2631.1727"
|
74
|
+
def generate_titulo_eleitor_formatted
|
75
|
+
generate_titulo_eleitor.to_titulo_eleitor_format
|
76
|
+
end
|
77
|
+
|
78
|
+
# Para saber a qual unidade federativa o Título de Eleitor pertence:
|
79
|
+
#
|
80
|
+
# "759026311727".titulo_eleitor_province => # "TO"
|
81
|
+
def titulo_eleitor_province
|
82
|
+
TituloEleitorUtils.titulo_eleitor_province(self)
|
83
|
+
end
|
84
|
+
|
85
|
+
# Apelido 'mascara_de_titulo_eleitor_valida' para o método valid_titulo_eleitor_mask
|
86
|
+
alias_method :mascara_de_titulo_eleitor_valida?, :valid_titulo_eleitor_mask?
|
87
|
+
|
88
|
+
# Apelido 'titulo_eleitor_valido?' para o método valid_titulo_eleitor?
|
89
|
+
alias_method :titulo_eleitor_valido?, :valid_titulo_eleitor?
|
90
|
+
|
91
|
+
# Apelido 'para_formato_titulo_eleitor' para o método to_titulo_eleitor_format
|
92
|
+
alias_method :para_formato_titulo_eleitor, :to_titulo_eleitor_format
|
93
|
+
|
94
|
+
# Apelido 'gerar_titulo_eleitor' para o método generate_titulo_eleitor
|
95
|
+
alias_method :gerar_titulo_eleitor, :generate_titulo_eleitor
|
96
|
+
|
97
|
+
# Apelido 'gerar_titulo_eleitor_formatado' para o método generate_titulo_eleitor_formatted
|
98
|
+
alias_method :gerar_titulo_eleitor_formatado, :generate_titulo_eleitor_formatted
|
99
|
+
|
100
|
+
# Apelido 'uf_do_titulo_eleitor' para o método titulo_eleitor_province
|
101
|
+
alias_method :uf_do_titulo_eleitor, :titulo_eleitor_province
|
102
|
+
|
103
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
module TituloEleitorUtils
|
2
|
+
class TituloEleitor
|
3
|
+
|
4
|
+
# Acessor de leitura para os números
|
5
|
+
attr_reader :numbers
|
6
|
+
|
7
|
+
# Inicializador da classe
|
8
|
+
def initialize(numbers)
|
9
|
+
if numbers.is_a? String
|
10
|
+
numbers = numbers.split('')
|
11
|
+
elsif numbers.is_a? Fixnum
|
12
|
+
numbers = numbers.to_s.split('')
|
13
|
+
end
|
14
|
+
|
15
|
+
@numbers = numbers
|
16
|
+
end
|
17
|
+
|
18
|
+
# Gera o Título de Eleitor propriamente dito
|
19
|
+
def generate_titulo_eleitor
|
20
|
+
@numbers << first_digit
|
21
|
+
@numbers << second_digit
|
22
|
+
@numbers.join("")
|
23
|
+
end
|
24
|
+
|
25
|
+
# Gera o primeiro dígito verificador
|
26
|
+
def first_digit
|
27
|
+
if @numbers.size == 10
|
28
|
+
value = 0
|
29
|
+
multipliers = [2,3,4,5,6,7,8,9]
|
30
|
+
|
31
|
+
multipliers.each_with_index do |mult, index|
|
32
|
+
value += @numbers[index].to_i * mult
|
33
|
+
end
|
34
|
+
|
35
|
+
check_remainder(value % 11)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
# Gera o segundo dígito verificador
|
40
|
+
def second_digit
|
41
|
+
if @numbers.size == 11
|
42
|
+
last_three_digits = [@numbers[8], @numbers[9], @numbers[10]]
|
43
|
+
value = 0
|
44
|
+
multipliers = [7,8,9]
|
45
|
+
|
46
|
+
multipliers.each_with_index do |mult, index|
|
47
|
+
value += last_three_digits[index].to_i * mult
|
48
|
+
end
|
49
|
+
|
50
|
+
check_remainder(value % 11)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# Checa o resto da divisão
|
55
|
+
def check_remainder(remainder)
|
56
|
+
if remainder < 2
|
57
|
+
0
|
58
|
+
else
|
59
|
+
(11 - remainder)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
# Verifica se o valor do dígito do estado é válido
|
64
|
+
def self.valid_state?(titulo_eleitor_number)
|
65
|
+
if titulo_eleitor_number.gsub!(/\.?/,"",).size == 12
|
66
|
+
state_number = titulo_eleitor_number[8,2].to_i
|
67
|
+
((state_number >= 1) && (state_number <= 28)) ? true : false
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
require "titulo_eleitor_utils/version"
|
2
|
+
require "titulo_eleitor_utils/string"
|
3
|
+
require "titulo_eleitor_utils/titulo_eleitor"
|
4
|
+
|
5
|
+
module TituloEleitorUtils
|
6
|
+
|
7
|
+
# Gera um número de Título de Eleitor.
|
8
|
+
#
|
9
|
+
# Exemplo:
|
10
|
+
# TituloEleitorUtils.titulo_eleitor => # "023434561340"
|
11
|
+
def self.titulo_eleitor
|
12
|
+
TituloEleitor.new(sample_numbers).generate_titulo_eleitor
|
13
|
+
end
|
14
|
+
|
15
|
+
# Gera um número de Título de Eleitor formatado.
|
16
|
+
#
|
17
|
+
# Exemplo:
|
18
|
+
# TituloEleitor.titulo_eleitor_formatted => # "0234.3456.1340"
|
19
|
+
def self.titulo_eleitor_formatted
|
20
|
+
TituloEleitor.new(sample_numbers)
|
21
|
+
.generate_titulo_eleitor.to_titulo_eleitor_format
|
22
|
+
end
|
23
|
+
|
24
|
+
# Gera um número de Título de Eleitor formatado.
|
25
|
+
#
|
26
|
+
# Exemplo:
|
27
|
+
# TituloEleitor.titulo_eleitor_formatado => # "0234.3456.1340"
|
28
|
+
def self.titulo_eleitor_formatado
|
29
|
+
self.titulo_eleitor_formatted
|
30
|
+
end
|
31
|
+
|
32
|
+
# Verifica se um Título de Eleitor é válido.
|
33
|
+
#
|
34
|
+
# Exemplo:
|
35
|
+
# TituloEleitor.valid_titulo_eleitor?(023434561340) => # true
|
36
|
+
# TituloEleitor.valid_titulo_eleitor?("023434561340") => # true
|
37
|
+
# TituloEleitor.valid_titulo_eleitor?("0234.3456.1340") => # true
|
38
|
+
def self.valid_titulo_eleitor?(titulo_eleitor_number)
|
39
|
+
titulo_eleitor_number.to_s.valid_titulo_eleitor?
|
40
|
+
end
|
41
|
+
|
42
|
+
# Verifica se um Título de Eleitor é válido.
|
43
|
+
#
|
44
|
+
# Exemplo:
|
45
|
+
# TituloEleitor.titulo_eleitor_valido?(023434561340) => # true
|
46
|
+
# TituloEleitor.titulo_eleitor_valido?("023434561340") => # true
|
47
|
+
# TituloEleitor.titulo_eleitor_valido?("0234.3456.1340") => # true
|
48
|
+
def self.titulo_eleitor_valido?(titulo_eleitor_number)
|
49
|
+
self.valid_titulo_eleitor?(titulo_eleitor_number)
|
50
|
+
end
|
51
|
+
|
52
|
+
# Para saber a qual unidade federativa o Título de Eleitor pertence:
|
53
|
+
#
|
54
|
+
# Exemplo:
|
55
|
+
# TituloEleitor.titulo_eleitor_province("759026311727") => # "TO"
|
56
|
+
def self.titulo_eleitor_province(titulo_eleitor_number)
|
57
|
+
provinces = ["SP","MG","RJ","RS","BA","PR","CE","PE","SC","GO","MA","PB",
|
58
|
+
"PA","ES","PI","RN","AL","MT","MS","DF","SE","AM","RO","AC",
|
59
|
+
"AP","RR","TO","ZZ"]
|
60
|
+
|
61
|
+
provinces[titulo_eleitor_number[10..11].to_i - 1]
|
62
|
+
end
|
63
|
+
|
64
|
+
# Para saber a qual unidade federativa o Título de Eleitor pertence:
|
65
|
+
#
|
66
|
+
# Exemplo:
|
67
|
+
# TituloEleitor.uf_do_titulo_eleitor("759026311727") => # "TO"
|
68
|
+
def self.uf_do_titulo_eleitor(titulo_eleitor_number)
|
69
|
+
titulo_eleitor_province(titulo_eleitor_number)
|
70
|
+
end
|
71
|
+
|
72
|
+
private
|
73
|
+
|
74
|
+
# Sorteia 10 números para compor um novo Título de Eleitor
|
75
|
+
def self.sample_numbers
|
76
|
+
titulo_eleitor_candidate = [*0..9].sample(8)
|
77
|
+
titulo_eleitor_candidate.concat sample_state
|
78
|
+
end
|
79
|
+
|
80
|
+
# Sorteia um número entre 01 e 28, representando os estados + exterior
|
81
|
+
def self.sample_state
|
82
|
+
state_number = "%02d" % [*1..28].sample.to_s
|
83
|
+
[state_number[0].to_i, state_number[1].to_i]
|
84
|
+
end
|
85
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe TituloEleitorUtils do
|
4
|
+
it ".titulo_eleitor" do
|
5
|
+
valid_titulo_eleitor = TituloEleitorUtils.titulo_eleitor
|
6
|
+
expect(valid_titulo_eleitor).to be_a_kind_of(String)
|
7
|
+
expect(valid_titulo_eleitor[8,2].to_i).to be >= 1
|
8
|
+
expect(valid_titulo_eleitor[8,2].to_i).to be <= 28
|
9
|
+
expect(valid_titulo_eleitor.length).to eql(12)
|
10
|
+
end
|
11
|
+
|
12
|
+
it ".titulo_eleitor_formatted" do
|
13
|
+
valid_titulo_eleitor = TituloEleitorUtils.titulo_eleitor_formatted
|
14
|
+
expect(valid_titulo_eleitor).to match(/^[0-9]{4}\.[0-9]{4}\.[0-9]{4}+$/)
|
15
|
+
end
|
16
|
+
|
17
|
+
it ".titulo_eleitor_formatado" do
|
18
|
+
valid_titulo_eleitor = TituloEleitorUtils.titulo_eleitor_formatado
|
19
|
+
expect(valid_titulo_eleitor).to match(/^[0-9]{4}\.[0-9]{4}\.[0-9]{4}+$/)
|
20
|
+
end
|
21
|
+
|
22
|
+
it ".valid_titulo_eleitor?" do
|
23
|
+
valid_titulo_eleitor = TituloEleitorUtils.titulo_eleitor
|
24
|
+
expect(TituloEleitorUtils.valid_titulo_eleitor? valid_titulo_eleitor).to be_true
|
25
|
+
end
|
26
|
+
|
27
|
+
it ".titulo_eleitor_valido?" do
|
28
|
+
titulo_eleitor_valido = TituloEleitorUtils.titulo_eleitor
|
29
|
+
expect(TituloEleitorUtils.titulo_eleitor_valido? titulo_eleitor_valido).to be_true
|
30
|
+
end
|
31
|
+
|
32
|
+
it ".valid_titulo_eleitor? - be false" do
|
33
|
+
invalid_titulo_eleitor = "1234.5678.9101"
|
34
|
+
expect(TituloEleitorUtils.valid_titulo_eleitor? invalid_titulo_eleitor).to be_false
|
35
|
+
end
|
36
|
+
|
37
|
+
it ".sample_numbers" do
|
38
|
+
numbers = TituloEleitorUtils.sample_numbers
|
39
|
+
expect(numbers.size).to eql(10)
|
40
|
+
expect(numbers).to be_a_kind_of(Array)
|
41
|
+
expect(numbers.join("")[8,2].to_i).to be >= 1
|
42
|
+
expect(numbers.join("")[8,2].to_i).to be <= 28
|
43
|
+
end
|
44
|
+
|
45
|
+
it ".titulo_eleitor_province" do
|
46
|
+
state = TituloEleitorUtils.titulo_eleitor_province("759026311727")
|
47
|
+
expect(state).to eql("TO")
|
48
|
+
end
|
49
|
+
|
50
|
+
it ".uf_do_titulo_eleitor" do
|
51
|
+
state = TituloEleitorUtils.uf_do_titulo_eleitor("759026311727")
|
52
|
+
expect(state).to eql("TO")
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'titulo_eleitor_utils/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "titulo_eleitor_utils"
|
8
|
+
spec.version = TituloEleitorUtils::VERSION
|
9
|
+
spec.authors = ["Jackson Pires"]
|
10
|
+
spec.email = ["jackson.pires@gmail.com"]
|
11
|
+
spec.description = %q{Uma suíte de funcionalidades para o Título de Eleitor.}
|
12
|
+
spec.summary = %q{Gera Título de Eleitor para testes no formado
|
13
|
+
tradicional ou apenas numérico, testa se determinado
|
14
|
+
número de Título de Eleitor é válido, além muitas
|
15
|
+
outras funcionalidades descritas na documentação.}
|
16
|
+
spec.homepage = "https://github.com/jacksonpires/titulo_eleitor_utils"
|
17
|
+
spec.license = "MIT"
|
18
|
+
|
19
|
+
spec.files = `git ls-files`.split($/)
|
20
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
21
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
22
|
+
spec.require_paths = ["lib"]
|
23
|
+
|
24
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
25
|
+
spec.add_development_dependency "rake"
|
26
|
+
spec.add_development_dependency "rspec", "~> 2.14.1"
|
27
|
+
end
|
metadata
ADDED
@@ -0,0 +1,104 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: titulo_eleitor_utils
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jackson Pires
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-03-27 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.3'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 2.14.1
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 2.14.1
|
55
|
+
description: Uma suíte de funcionalidades para o Título de Eleitor.
|
56
|
+
email:
|
57
|
+
- jackson.pires@gmail.com
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- .gitignore
|
63
|
+
- .rspec
|
64
|
+
- .travis.yml
|
65
|
+
- Gemfile
|
66
|
+
- LICENSE.txt
|
67
|
+
- README.md
|
68
|
+
- Rakefile
|
69
|
+
- lib/titulo_eleitor_utils.rb
|
70
|
+
- lib/titulo_eleitor_utils/string.rb
|
71
|
+
- lib/titulo_eleitor_utils/titulo_eleitor.rb
|
72
|
+
- lib/titulo_eleitor_utils/version.rb
|
73
|
+
- spec/spec_helper.rb
|
74
|
+
- spec/titulo_eleitor_utils_spec.rb
|
75
|
+
- titulo_eleitor_utils.gemspec
|
76
|
+
homepage: https://github.com/jacksonpires/titulo_eleitor_utils
|
77
|
+
licenses:
|
78
|
+
- MIT
|
79
|
+
metadata: {}
|
80
|
+
post_install_message:
|
81
|
+
rdoc_options: []
|
82
|
+
require_paths:
|
83
|
+
- lib
|
84
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - '>='
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- - '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
requirements: []
|
95
|
+
rubyforge_project:
|
96
|
+
rubygems_version: 2.0.3
|
97
|
+
signing_key:
|
98
|
+
specification_version: 4
|
99
|
+
summary: Gera Título de Eleitor para testes no formado tradicional ou apenas numérico,
|
100
|
+
testa se determinado número de Título de Eleitor é válido, além muitas outras funcionalidades
|
101
|
+
descritas na documentação.
|
102
|
+
test_files:
|
103
|
+
- spec/spec_helper.rb
|
104
|
+
- spec/titulo_eleitor_utils_spec.rb
|