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 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: []