titulo_eleitoral 0.0.2 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ZGE4NTIzOWQ0ZjQwZmQ0OWUxNWYyODYxNjAxNjM2MDU3MGQwYzZmNw==
5
- data.tar.gz: !binary |-
6
- NzRkOTZjYjVmZjc3MTQwZDE2ODZjMTFkYWE1OTUyNDAxNmE3ZTg3Mw==
2
+ SHA1:
3
+ metadata.gz: 3b0941c726e8544f66661570c55a960ff771c933
4
+ data.tar.gz: c709ecb8f4057f46f19fb35e2f89d12ba9ff6e01
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- YTc4YmM1N2I5ZGZlMjcyNDMyYWViMDNkZDYwN2M4YzdmNDljMDA0YmNjZmM3
10
- M2QyMjBiYTg2Njc0MDY5MjY0MmM4NTg2MmI1NWZmZTFjYzU5ODAxZTdlNWEw
11
- NzViMmQ4MzY3YmIyM2MyZmJhMzNhNDdjYTIzMjdjNWEzMGQ5MGM=
12
- data.tar.gz: !binary |-
13
- MzUyNWUyMDRjYjg1ZWYxNmFjMDhhYmMyMjM1ZjU3MDNhODgzODk3Yjk0YmIz
14
- NDE0Y2U4NDIwZDdkZDE0ZThjYjU0NjVlMTdjNjBhMTgzMmFlNmE1ZWE3MDlh
15
- NjFhMzMzYmY0YzM1ZGIyMGY1YTc4Mzc3OTg1OThhZmVlOGJkMDI=
6
+ metadata.gz: a07fae6072e797082bba62ac6a813efd6f493050a3636bef5e833207fc6a8bde7975d16924a32c18ead61245850cf44e9ef84c6f576473612fb37ceacdb70f26
7
+ data.tar.gz: 914cab2e36b548b7813a9a182c29c2ce7be2e71437ddf3150c42100e882554c7673d095559dcd30b303ed7965f505fb2bb33a1b4496f27b84651a9682f1c0e55
@@ -10,7 +10,11 @@ module TituloEleitoral
10
10
  NumeroInscricao.new(numero)
11
11
  end
12
12
 
13
- def self.uf(numero)
14
- numero_inscricao(numero).uf
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
- require 'titulo_eleitoral/constantes'
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 uf
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
- case resto_divisao
78
- when 10
79
- 0
80
- when 0 || 1
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,3 +1,3 @@
1
1
  module TituloEleitoral
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.4'
3
3
  end
@@ -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 um número de inscrição válido com 12 dígitos' do
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 um número com menos de 12 dígitos' do
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 uma string com mais de 12 dígitos' do
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 uma string com dígitos e letras' do
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.uf.must_be_nil
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.uf.must_be_nil
103
+ numero.codigo_uf.must_be_nil
102
104
  end
103
105
  end
104
106
 
105
- describe 'dada uma string formatada com número de inscrição válido' do
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
@@ -1,6 +1,6 @@
1
1
  require 'coveralls'
2
2
  Coveralls.wear!
3
3
 
4
- require 'titulo_eleitoral'
4
+ require_relative '../lib/titulo_eleitoral/numero_inscricao'
5
5
  require 'minitest/autorun'
6
6
  require 'minitest/pride'
@@ -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.2
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: 2014-10-14 00:00:00.000000000 Z
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 21.538
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: []