titulo_eleitoral 0.0.2 → 0.0.4
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 +5 -13
- data/lib/titulo_eleitoral.rb +6 -2
- data/lib/titulo_eleitoral/numero_inscricao.rb +15 -7
- data/lib/titulo_eleitoral/version.rb +1 -1
- data/test/numero_inscricao_test.rb +31 -16
- data/test/test_helper.rb +1 -1
- data/titulo_eleitoral.gemspec +1 -1
- metadata +20 -19
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
NzRkOTZjYjVmZjc3MTQwZDE2ODZjMTFkYWE1OTUyNDAxNmE3ZTg3Mw==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 3b0941c726e8544f66661570c55a960ff771c933
|
4
|
+
data.tar.gz: c709ecb8f4057f46f19fb35e2f89d12ba9ff6e01
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
M2QyMjBiYTg2Njc0MDY5MjY0MmM4NTg2MmI1NWZmZTFjYzU5ODAxZTdlNWEw
|
11
|
-
NzViMmQ4MzY3YmIyM2MyZmJhMzNhNDdjYTIzMjdjNWEzMGQ5MGM=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MzUyNWUyMDRjYjg1ZWYxNmFjMDhhYmMyMjM1ZjU3MDNhODgzODk3Yjk0YmIz
|
14
|
-
NDE0Y2U4NDIwZDdkZDE0ZThjYjU0NjVlMTdjNjBhMTgzMmFlNmE1ZWE3MDlh
|
15
|
-
NjFhMzMzYmY0YzM1ZGIyMGY1YTc4Mzc3OTg1OThhZmVlOGJkMDI=
|
6
|
+
metadata.gz: a07fae6072e797082bba62ac6a813efd6f493050a3636bef5e833207fc6a8bde7975d16924a32c18ead61245850cf44e9ef84c6f576473612fb37ceacdb70f26
|
7
|
+
data.tar.gz: 914cab2e36b548b7813a9a182c29c2ce7be2e71437ddf3150c42100e882554c7673d095559dcd30b303ed7965f505fb2bb33a1b4496f27b84651a9682f1c0e55
|
data/lib/titulo_eleitoral.rb
CHANGED
@@ -10,7 +10,11 @@ module TituloEleitoral
|
|
10
10
|
NumeroInscricao.new(numero)
|
11
11
|
end
|
12
12
|
|
13
|
-
def self.
|
14
|
-
numero_inscricao(numero).
|
13
|
+
def self.codigo_uf(numero)
|
14
|
+
numero_inscricao(numero).codigo_uf
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.sigla_uf(numero)
|
18
|
+
numero_inscricao(numero).sigla_uf
|
15
19
|
end
|
16
20
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
require_relative 'constantes'
|
2
2
|
|
3
3
|
module TituloEleitoral
|
4
4
|
class NumeroInscricao
|
@@ -6,6 +6,9 @@ module TituloEleitoral
|
|
6
6
|
|
7
7
|
#http://www.tse.jus.br/legislacao/codigo-eleitoral/normas-editadas-pelo-tse/resolucao-nb0-21.538-de-14-de-outubro-de-2003-brasilia-2013-df
|
8
8
|
#http://www.exceldoseujeito.com.br/2008/12/19/validar-cpf-cnpj-e-titulo-de-eleitor-parte-ii/
|
9
|
+
#http://cdn.tse.jus.br/saae/util/scriptsGerais.js
|
10
|
+
#http://ef3cinco.com/2011/09/07/como-validar-titulo-de-eleitor-usando-java-netbeans/
|
11
|
+
|
9
12
|
def initialize(numero)
|
10
13
|
@numero_original = divide_em_array(numero)
|
11
14
|
@numero = normaliza_quantidade_digitos(numero_original)
|
@@ -14,11 +17,15 @@ module TituloEleitoral
|
|
14
17
|
end
|
15
18
|
|
16
19
|
def valido?
|
17
|
-
return false if numero.size > NUMERO_DIGITOS
|
20
|
+
return false if (numero.size > NUMERO_DIGITOS) || (codigo_uf.nil?)
|
18
21
|
digitos_verificadores == digitos_verificadores_calculados
|
19
22
|
end
|
20
23
|
|
21
|
-
def
|
24
|
+
def codigo_uf
|
25
|
+
digitos_uf if uf_valida?
|
26
|
+
end
|
27
|
+
|
28
|
+
def sigla_uf
|
22
29
|
UFS[digitos_uf] if uf_valida?
|
23
30
|
end
|
24
31
|
|
@@ -74,13 +81,14 @@ module TituloEleitoral
|
|
74
81
|
end
|
75
82
|
|
76
83
|
def verifica_resto(resto_divisao)
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
84
|
+
if resto_divisao == 10
|
85
|
+
0
|
86
|
+
else
|
87
|
+
if (resto_divisao == 0) && ((sigla_uf == 'SP') || (sigla_uf == 'MG'))
|
81
88
|
1
|
82
89
|
else
|
83
90
|
resto_divisao
|
91
|
+
end
|
84
92
|
end
|
85
93
|
end
|
86
94
|
|
@@ -1,10 +1,8 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
1
|
require_relative 'test_helper'
|
4
2
|
|
5
3
|
describe TituloEleitoral::NumeroInscricao do
|
6
4
|
|
7
|
-
describe 'dado
|
5
|
+
describe 'dado o número de inscrição válido - 316820550159' do
|
8
6
|
before do
|
9
7
|
@valor = 316820550159
|
10
8
|
@numero = TituloEleitoral::NumeroInscricao.new(@valor)
|
@@ -14,14 +12,22 @@ describe TituloEleitoral::NumeroInscricao do
|
|
14
12
|
@numero.valido?.must_equal true
|
15
13
|
end
|
16
14
|
|
17
|
-
it 'deve retornar DV1' do
|
15
|
+
it 'deve retornar DV1 == 5' do
|
18
16
|
@numero.dv1.must_equal 5
|
19
17
|
end
|
20
18
|
|
21
|
-
it 'deve retornar DV2' do
|
19
|
+
it 'deve retornar DV2 == 9' do
|
22
20
|
@numero.dv2.must_equal 9
|
23
21
|
end
|
24
22
|
|
23
|
+
it 'deve retornar código UF == 01' do
|
24
|
+
@numero.codigo_uf.must_equal '01'
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'deve retornar sigla UF == SP' do
|
28
|
+
@numero.sigla_uf.must_equal 'SP'
|
29
|
+
end
|
30
|
+
|
25
31
|
it 'deve retornar número original como array de strings' do
|
26
32
|
@numero.numero_original.must_be_instance_of Array
|
27
33
|
end
|
@@ -30,10 +36,6 @@ describe TituloEleitoral::NumeroInscricao do
|
|
30
36
|
teste = @valor.to_s.split('')
|
31
37
|
@numero.numero.must_equal teste
|
32
38
|
end
|
33
|
-
|
34
|
-
it 'deve retornar a UF do título' do
|
35
|
-
@numero.uf.wont_be_nil
|
36
|
-
end
|
37
39
|
end
|
38
40
|
|
39
41
|
describe 'dada uma string válida com 12 dígitos' do
|
@@ -47,7 +49,7 @@ describe TituloEleitoral::NumeroInscricao do
|
|
47
49
|
end
|
48
50
|
end
|
49
51
|
|
50
|
-
describe 'dado
|
52
|
+
describe 'dado o número - 67735700132 - com menos de 12 dígitos' do
|
51
53
|
before do
|
52
54
|
@valor3 = 67735700132
|
53
55
|
@numero3 = TituloEleitoral::NumeroInscricao.new(@valor3)
|
@@ -59,7 +61,7 @@ describe TituloEleitoral::NumeroInscricao do
|
|
59
61
|
end
|
60
62
|
end
|
61
63
|
|
62
|
-
describe 'dada
|
64
|
+
describe 'dada a string "0677357001321" com mais de 12 dígitos' do
|
63
65
|
before do
|
64
66
|
@valor4 = '0677357001321'
|
65
67
|
@numero4 = TituloEleitoral::NumeroInscricao.new(@valor4)
|
@@ -70,7 +72,7 @@ describe TituloEleitoral::NumeroInscricao do
|
|
70
72
|
end
|
71
73
|
end
|
72
74
|
|
73
|
-
describe 'dada
|
75
|
+
describe 'dada a string "6773570013AB" com dígitos e letras' do
|
74
76
|
before do
|
75
77
|
@valor5 = '6773570013AB'
|
76
78
|
@somente_numeros = '6773570013'
|
@@ -85,7 +87,7 @@ describe TituloEleitoral::NumeroInscricao do
|
|
85
87
|
@numero5.numero_original.must_equal @somente_numeros.to_s.split('')
|
86
88
|
end
|
87
89
|
|
88
|
-
it 'número deve ser um array preenchido com zeros' do
|
90
|
+
it 'número deve ser um array de 12 elementos preenchido com zeros à esquerda quando necessário' do
|
89
91
|
@numero5.numero.must_equal @somente_numeros.rjust(12, '0').split('')
|
90
92
|
end
|
91
93
|
end
|
@@ -93,16 +95,16 @@ describe TituloEleitoral::NumeroInscricao do
|
|
93
95
|
describe 'dada uma string válida de 12 dígitos e dígitos da UF menores que 01 ou maiores que 28' do
|
94
96
|
it 'dígitos da UF menor que 01 retorna nil' do
|
95
97
|
numero = TituloEleitoral::NumeroInscricao.new('067735700032')
|
96
|
-
numero.
|
98
|
+
numero.codigo_uf.must_be_nil
|
97
99
|
end
|
98
100
|
|
99
101
|
it 'dígitos da UF maior que 28 retorna nil' do
|
100
102
|
numero = TituloEleitoral::NumeroInscricao.new('067735702932')
|
101
|
-
numero.
|
103
|
+
numero.codigo_uf.must_be_nil
|
102
104
|
end
|
103
105
|
end
|
104
106
|
|
105
|
-
describe 'dada
|
107
|
+
describe 'dada a string formatada "3168.2055.0159"' do
|
106
108
|
before do
|
107
109
|
@valor6 = '3168.2055.0159'
|
108
110
|
@numero6 = TituloEleitoral::NumeroInscricao.new(@valor6)
|
@@ -113,4 +115,17 @@ describe TituloEleitoral::NumeroInscricao do
|
|
113
115
|
end
|
114
116
|
end
|
115
117
|
|
118
|
+
describe 'dado um número de inscrição com UF SP ou MG e resto 0 durante cálculo do DV1 ou DV2' do
|
119
|
+
it 'deve retornar como resultado o valor 1 e não 0' do
|
120
|
+
numero = TituloEleitoral::NumeroInscricao.new(113382030116)
|
121
|
+
numero.dv1.must_equal 1
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
describe 'dado um número de inscrição com UF diferente de SP ou MG e resto 0 durante cálculo do DV1 ou DV2' do
|
126
|
+
it 'deve retornar como resultado o valor igual ao resto da divisão e não 1' do
|
127
|
+
numero = TituloEleitoral::NumeroInscricao.new(113382030308)
|
128
|
+
numero.dv1.must_equal 0
|
129
|
+
end
|
130
|
+
end
|
116
131
|
end
|
data/test/test_helper.rb
CHANGED
data/titulo_eleitoral.gemspec
CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ['Eduardo de O. Hernandes']
|
10
10
|
spec.email = ['eduardodeoh@gmail.com']
|
11
11
|
spec.summary = %q{Validação do número de inscrição do título eleitoral.}
|
12
|
-
spec.description = %q{Valida o número de inscrição do título eleitoral conforme resolução 21.538 (14/10/2003) do TSE, artigo 12.}
|
12
|
+
spec.description = %q{Valida o número de inscrição do título eleitoral conforme resolução 21.538 (14/10/2003) do TSE, artigo 12. A verificação também pode ser feita através do site: http://www.tse.jus.br/eleitor/servicos/situacao-eleitoral/consulta-por-titulo}
|
13
13
|
spec.homepage = 'https://github.com/eduardodeoh/titulo_eleitoral'
|
14
14
|
spec.license = 'MIT'
|
15
15
|
|
metadata
CHANGED
@@ -1,96 +1,97 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: titulo_eleitoral
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eduardo de O. Hernandes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.6'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.6'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: minitest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: coveralls
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: pry
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
-
description: Valida o número de inscrição do título eleitoral conforme resolução
|
84
|
-
(14/10/2003) do TSE, artigo 12.
|
83
|
+
description: 'Valida o número de inscrição do título eleitoral conforme resolução
|
84
|
+
21.538 (14/10/2003) do TSE, artigo 12. A verificação também pode ser feita através
|
85
|
+
do site: http://www.tse.jus.br/eleitor/servicos/situacao-eleitoral/consulta-por-titulo'
|
85
86
|
email:
|
86
87
|
- eduardodeoh@gmail.com
|
87
88
|
executables: []
|
88
89
|
extensions: []
|
89
90
|
extra_rdoc_files: []
|
90
91
|
files:
|
91
|
-
- .coveralls.yml
|
92
|
-
- .gitignore
|
93
|
-
- .travis.yml
|
92
|
+
- ".coveralls.yml"
|
93
|
+
- ".gitignore"
|
94
|
+
- ".travis.yml"
|
94
95
|
- Gemfile
|
95
96
|
- LICENSE.txt
|
96
97
|
- README.md
|
@@ -113,12 +114,12 @@ require_paths:
|
|
113
114
|
- lib
|
114
115
|
required_ruby_version: !ruby/object:Gem::Requirement
|
115
116
|
requirements:
|
116
|
-
- -
|
117
|
+
- - ">="
|
117
118
|
- !ruby/object:Gem::Version
|
118
119
|
version: '0'
|
119
120
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
120
121
|
requirements:
|
121
|
-
- -
|
122
|
+
- - ">="
|
122
123
|
- !ruby/object:Gem::Version
|
123
124
|
version: '0'
|
124
125
|
requirements: []
|