documentos_br 1.0.1
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 +10 -0
- data/Gemfile +14 -0
- data/LICENSE.txt +22 -0
- data/README.md +255 -0
- data/Rakefile +1 -0
- data/documentos_br.gemspec +30 -0
- data/lib/documentos_br/version.rb +3 -0
- data/lib/documentos_br.rb +154 -0
- data/spec/documentos_br_spec.rb +114 -0
- data/spec/spec_helper.rb +14 -0
- data/spec/string_spec.rb +235 -0
- metadata +147 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6e5a5e28315e2f98cc7170023ed77b943a81e45f
|
4
|
+
data.tar.gz: 49eda89c30c687af63f4dec81051897a79d458c6
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 59a84d2abaf7308b1435130bbd29bd88fd2c213929d4581e49e0ec53428efaae63030e13503ea1fe7681619131fb8d707376efef2c5824fe2b2e362cf094b324
|
7
|
+
data.tar.gz: 0ad9bdde3699cbb41bccbd8ddd0ae8a9776da1d46477c6a47f03420288e2d879254b9ee7d3dafbf435bd5747fcd29135298fd3361f805cd129d83e3c6c7fda30
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
|
3
|
+
# Code Climate Test Reporter
|
4
|
+
gem "codeclimate-test-reporter", group: :test, require: nil
|
5
|
+
|
6
|
+
# Code coverage for Ruby 1.9+ with a powerful configuration library and
|
7
|
+
# automatic merging of coverage across test suites
|
8
|
+
gem 'simplecov', '~> 0.7.1', group: :test, require: nil
|
9
|
+
|
10
|
+
# A Ruby implementation of the Coveralls API.
|
11
|
+
gem 'coveralls', require: false
|
12
|
+
|
13
|
+
# Specify your gem's dependencies in cpf_utils.gemspec
|
14
|
+
gemspec
|
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,255 @@
|
|
1
|
+
# DocumentosBr
|
2
|
+
[](http://badge.fury.io/rb/documentos_br)
|
3
|
+
[](https://travis-ci.org/jacksonpires/documentos_br)
|
4
|
+
[](https://codeclimate.com/github/jacksonpires/documentos_br)
|
5
|
+
[](https://coveralls.io/r/jacksonpires/documentos_br?branch=master)
|
6
|
+
|
7
|
+
DocumentosBr é um 'wrapper' para a suíte de funcionalidades das Gems 'CpfUtils', 'CnpjUtils' e 'TituloEleitorUtils'.
|
8
|
+
O DocumentosBr é capaz de gerar CPF, CNPJ e Título de Eleitor para testes no formado tradicional ou apenas numérico, testa se determinado número de CPF, CNPJ ou Título de Eleitor é válido, gera dígitos verificadores para determinado número candidato a CPF, CNPJ ou Título de Eleitor, dentre outras coisas.
|
9
|
+
|
10
|
+
*PS: Devido à inconsistência entre as formatações/máscaras usadas para o Título de Eleitor 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.*
|
11
|
+
|
12
|
+
## Compatibilidade
|
13
|
+
|
14
|
+
O DocumentosBr usa o Travis-CI para efetuar testes em diferentes versões do Ruby. As versões testadas e aprovadas, por enquanto, são:
|
15
|
+
|
16
|
+
* MRI 1.9.2, 1.9.3, 2.0.0, 2.1.0
|
17
|
+
* JRuby 1.9.x
|
18
|
+
|
19
|
+
## Instalação
|
20
|
+
|
21
|
+
Adicione essa linha na Gemfile da sua aplicação:
|
22
|
+
|
23
|
+
```ruby
|
24
|
+
gem 'documentos_br'
|
25
|
+
```
|
26
|
+
|
27
|
+
E então execute:
|
28
|
+
|
29
|
+
```ruby
|
30
|
+
$ bundle
|
31
|
+
```
|
32
|
+
|
33
|
+
Ou instale você mesmo, conforme abaixo:
|
34
|
+
|
35
|
+
```ruby
|
36
|
+
$ gem install documentos_br
|
37
|
+
```
|
38
|
+
|
39
|
+
## Uso
|
40
|
+
|
41
|
+
O DocumentosBr é muito fácil de usar. Veja os exemplos abaixo:
|
42
|
+
|
43
|
+
###### CPF
|
44
|
+
|
45
|
+
```ruby
|
46
|
+
# Para gerar um número de CPF:
|
47
|
+
DocumentosBr.cpf => # "45698394823"
|
48
|
+
|
49
|
+
# Para gerar um CPF formatado:
|
50
|
+
DocumentosBr.cpf_formatted => # "456.983.948-23"
|
51
|
+
|
52
|
+
# Para verificar se um CPF é válido:
|
53
|
+
DocumentosBr.valid_cpf?("47238051923") => # true
|
54
|
+
DocumentosBr.valid_cpf?(47238051923) => # true
|
55
|
+
DocumentosBr.valid_cpf?("472.380.519-23") => # true
|
56
|
+
|
57
|
+
# Outra forma de verificar se um CPF é válido:
|
58
|
+
"45698394823".valid_cpf? => # true
|
59
|
+
"456.983.948-23".valid_cpf? => # true
|
60
|
+
|
61
|
+
# Para verificar se uma máscara de CPF é válida:
|
62
|
+
"456.983.948-23".valid_cpf_mask? => # true
|
63
|
+
"456.983..948-23".valid_cpf_mask? => # false
|
64
|
+
|
65
|
+
# Para formatar um número válido de CPF:
|
66
|
+
"45698394823".to_cpf_format => # "456.983.948-23"
|
67
|
+
|
68
|
+
# Para gerar um número de CPF a partir de um número candidato de 9 dígitos:
|
69
|
+
"456983948".generate_cpf => # "45698394823"
|
70
|
+
|
71
|
+
# Para gerar um número de CPF formatado a partir de um número candidato de 9 dígitos:
|
72
|
+
"456983948".generate_cpf_formatted => # "456.983.948-23"
|
73
|
+
```
|
74
|
+
|
75
|
+
###### CNPJ
|
76
|
+
|
77
|
+
```ruby
|
78
|
+
# Para gerar um número de CNPJ:
|
79
|
+
DocumentosBr.cnpj => # "61287395000140"
|
80
|
+
|
81
|
+
# Para gerar um CNPJ formatado:
|
82
|
+
DocumentosBr.cnpj_formatted => # "61.287.395/0001-40"
|
83
|
+
|
84
|
+
# Para verificar se um CNPJ é válido:
|
85
|
+
DocumentosBr.valid_cnpj?("61287395000140") => # true
|
86
|
+
DocumentosBr.valid_cnpj?(61287395000140) => # true
|
87
|
+
DocumentosBr.valid_cnpj?("61.287.395/0001-40") => # true
|
88
|
+
|
89
|
+
# Outra forma de verificar se um CNPJ é válido:
|
90
|
+
"61287395000140".valid_cnpj? => # true
|
91
|
+
"61.287.395/0001-40".valid_cnpj? => # true
|
92
|
+
|
93
|
+
# Para verificar se uma máscara de CNPJ é válida:
|
94
|
+
"61.287.395/0001-40".valid_cnpj_mask? => # true
|
95
|
+
"61.287..395/0001-40".valid_cnpj_mask? => # false
|
96
|
+
|
97
|
+
# Para formatar um número válido de CNPJ:
|
98
|
+
"61287395000140".to_cnpj_format => # "61.287.395/0001-40"
|
99
|
+
|
100
|
+
# Para gerar um número de CNPJ a partir de um número candidato de 12 dígitos:
|
101
|
+
"612873950001".generate_cnpj => # "61287395000140"
|
102
|
+
|
103
|
+
# Para gerar um número de CNPJ formatado a partir de um número candidato de 12 dígitos:
|
104
|
+
"612873950001".generate_cnpj_formatted => # "61.287.395/0001-40"
|
105
|
+
```
|
106
|
+
|
107
|
+
###### Título de Eleitor
|
108
|
+
|
109
|
+
```ruby
|
110
|
+
# Para gerar um número de Título de Eleitor:
|
111
|
+
DocumentosBr.titulo_eleitor => # "023434561340"
|
112
|
+
|
113
|
+
# Para gerar um Título de Eleitor formatado:
|
114
|
+
DocumentosBr.titulo_eleitor_formatted => # "0234.3456.1340"
|
115
|
+
|
116
|
+
# Para verificar se um Título de Eleitor é válido:
|
117
|
+
DocumentosBr.valid_titulo_eleitor?("023434561340") => # true
|
118
|
+
DocumentosBr.valid_titulo_eleitor?(023434561340) => # true
|
119
|
+
DocumentosBr.valid_titulo_eleitor?("0234.3456.1340") => # true
|
120
|
+
|
121
|
+
# Outra forma de verificar se um Título de Eleitor é válido:
|
122
|
+
"023434561340".valid_titulo_eleitor? => # true
|
123
|
+
"0234.3456.1340".valid_titulo_eleitor? => # true
|
124
|
+
|
125
|
+
# Para verificar se uma máscara de Título de Eleitor é válida:
|
126
|
+
"0234.3456.1340".valid_titulo_eleitor_mask? => # true
|
127
|
+
"0234.3456..1340".valid_titulo_eleitor_mask? => # false
|
128
|
+
|
129
|
+
# Para formatar um número válido de Título de Eleitor:
|
130
|
+
"023434561340".to_titulo_eleitor_format => # "0234.3456.1340"
|
131
|
+
|
132
|
+
# Para gerar um número de Título de Eleitor a partir de um número candidato de 10 dígitos:
|
133
|
+
"612873950001".generate_titulo_eleitor => # "023434561340"
|
134
|
+
|
135
|
+
# Para gerar um número de Título de Eleitor formatado a partir de um número candidato de 10 dígitos:
|
136
|
+
"612873950001".generate_titulo_eleitor_formatted => # "0234.3456.1340"
|
137
|
+
|
138
|
+
# Para saber a qual unidade federativa o Título de Eleitor pertence:
|
139
|
+
DocumentosBr.titulo_eleitor_province("759026311727") => # "TO"
|
140
|
+
"759026311727".titulo_eleitor_province => # "TO"
|
141
|
+
```
|
142
|
+
|
143
|
+
Também é possível usar métodos em português:
|
144
|
+
|
145
|
+
###### CPF - Em português
|
146
|
+
|
147
|
+
```ruby
|
148
|
+
# Para gerar um número de CPF:
|
149
|
+
DocumentosBr.cpf => # "45698394823"
|
150
|
+
|
151
|
+
# Para gerar um CPF formatado:
|
152
|
+
DocumentosBr.cpf_formatado => # "456.983.948-23"
|
153
|
+
|
154
|
+
# Para verificar se um CPF é válido:
|
155
|
+
DocumentosBr.cpf_valido?("47238051923") => # true
|
156
|
+
DocumentosBr.cpf_valido?(47238051923) => # true
|
157
|
+
DocumentosBr.cpf_valido?("472.380.519-23") => # true
|
158
|
+
|
159
|
+
# Outra forma de verificar se um CPF é válido:
|
160
|
+
"45698394823".cpf_valido? => # true
|
161
|
+
"456.983.948-23".cpf_valido? => # true
|
162
|
+
|
163
|
+
# Para verificar se uma máscara de CPF é válida:
|
164
|
+
"456.983.948-23".mascara_de_cpf_valida? => # true
|
165
|
+
"456.983..948-23".mascara_de_cpf_valida? => # false
|
166
|
+
|
167
|
+
# Para formatar um número válido de CPF:
|
168
|
+
"45698394823".para_formato_cpf => # "456.983.948-23"
|
169
|
+
|
170
|
+
# Para gerar um número de CPF a partir de um número candidato de 9 dígitos:
|
171
|
+
"456983948".gerar_cpf => # "45698394823"
|
172
|
+
|
173
|
+
# Para gerar um número de CPF formatado a partir de um número candidato de 9 dígitos:
|
174
|
+
"456983948".gerar_cpf_formatado => # "456.983.948-23"
|
175
|
+
```
|
176
|
+
|
177
|
+
###### CNPJ - Em português
|
178
|
+
|
179
|
+
```ruby
|
180
|
+
# Para gerar um número de CNPJ:
|
181
|
+
DocumentosBr.cnpj => # "61287395000140"
|
182
|
+
|
183
|
+
# Para gerar um CNPJ formatado:
|
184
|
+
DocumentosBr.cnpj_formatado => # "61.287.395/0001-40"
|
185
|
+
|
186
|
+
# Para verificar se um CNPJ é válido:
|
187
|
+
DocumentosBr.cnpj_valido?("61287395000140") => # true
|
188
|
+
DocumentosBr.cnpj_valido?(61287395000140) => # true
|
189
|
+
DocumentosBr.cnpj_valido?("61.287.395/0001-40") => # true
|
190
|
+
|
191
|
+
# Outra forma de verificar se um CNPJ é válido:
|
192
|
+
"61287395000140".cnpj_valido? => # true
|
193
|
+
"61.287.395/0001-40".cnpj_valido? => # true
|
194
|
+
|
195
|
+
# Para verificar se uma máscara de CNPJ é válida:
|
196
|
+
"61.287.395/0001-40".mascara_de_cnpj_valida? => # true
|
197
|
+
"61.287..395/0001-40".mascara_de_cnpj_valida? => # false
|
198
|
+
|
199
|
+
# Para formatar um número válido de CNPJ:
|
200
|
+
"61287395000140".para_formato_cnpj => # "61.287.395/0001-40"
|
201
|
+
|
202
|
+
# Para gerar um número de CNPJ a partir de um número candidato de 12 dígitos:
|
203
|
+
"612873950001".gerar_cnpj => # "61287395000140"
|
204
|
+
|
205
|
+
# Para gerar um número de CNPJ formatado a partir de um número candidato de 12 dígitos:
|
206
|
+
"612873950001".gerar_cnpj_formatado => # "61.287.395/0001-40"
|
207
|
+
```
|
208
|
+
|
209
|
+
###### Título de Eleitor - Em português
|
210
|
+
|
211
|
+
```ruby
|
212
|
+
# Para gerar um número de Título de Eleitor:
|
213
|
+
DocumentosBr.titulo_eleitor => # "023434561340"
|
214
|
+
|
215
|
+
# Para gerar um Título de Eleitor formatado:
|
216
|
+
DocumentosBr.titulo_eleitor_formatado => # "0234.3456.1340"
|
217
|
+
|
218
|
+
# Para verificar se um Título de Eleitor é válido:
|
219
|
+
DocumentosBr.titulo_eleitor_valido?("023434561340") => # true
|
220
|
+
DocumentosBr.titulo_eleitor_valido?(023434561340) => # true
|
221
|
+
DocumentosBr.titulo_eleitor_valido?("0234.3456.1340") => # true
|
222
|
+
|
223
|
+
# Outra forma de verificar se um Título de Eleitor é válido:
|
224
|
+
"023434561340".titulo_eleitor_valido? => # true
|
225
|
+
"0234.3456.1340".titulo_eleitor_valido? => # true
|
226
|
+
|
227
|
+
# Para verificar se uma máscara de Título de Eleitor é válida:
|
228
|
+
"0234.3456.1340".mascara_de_titulo_eleitor_valida? => # true
|
229
|
+
"0234.3456..1340".mascara_de_titulo_eleitor_valida? => # false
|
230
|
+
|
231
|
+
# Para formatar um número válido de Título de Eleitor:
|
232
|
+
"023434561340".para_formato_titulo_eleitor => # "0234.3456.1340"
|
233
|
+
|
234
|
+
# Para gerar um número de Título de Eleitor a partir de um número candidato de 10 dígitos:
|
235
|
+
"612873950001".gerar_titulo_eleitor => # "023434561340"
|
236
|
+
|
237
|
+
# Para gerar um número de Título de Eleitor formatado a partir de um número candidato de 10 dígitos:
|
238
|
+
"612873950001".gerar_titulo_eleitor_formatado => # "0234.3456.1340"
|
239
|
+
|
240
|
+
# Para saber a qual unidade federativa o Título de Eleitor pertence:
|
241
|
+
DocumentosBr.uf_do_titulo_eleitor("759026311727") => # "TO"
|
242
|
+
"759026311727".uf_do_titulo_eleitor => # "TO"
|
243
|
+
```
|
244
|
+
|
245
|
+
## Recomende
|
246
|
+
|
247
|
+
Gostou dessa gem? Recomende-me no [Working With Rails](http://www.workingwithrails.com/people/148426)!
|
248
|
+
|
249
|
+
## Contribuindo
|
250
|
+
|
251
|
+
1. Faça um Fork
|
252
|
+
2. Crie um branch para a nova funcionalidade (`git checkout -b minha-nova-funcionalidade`)
|
253
|
+
3. Faça o commit de suas alterações (`git commit -am 'Adicionada nova funcionalidade'`)
|
254
|
+
4. Faça um push da sua nova funconalidade (`git push origin minha-nova-funcionalidade`)
|
255
|
+
5. Submeta uma nova Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'documentos_br/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "documentos_br"
|
8
|
+
spec.version = DocumentosBr::VERSION
|
9
|
+
spec.authors = ["Jackson Pires"]
|
10
|
+
spec.email = ["jackson.pires@gmail.com"]
|
11
|
+
spec.description = %q{Uma 'wrapper' para as Gems 'CpfUtils', 'CnpjUtils' e
|
12
|
+
'TituloEleitorUtils'.}
|
13
|
+
spec.summary = %q{DocumentosBr é um 'wrapper' para a suíte de
|
14
|
+
funcionalidades das Gems 'CpfUtils', 'CnpjUtils' e
|
15
|
+
'TituloEleitorUtils'.}
|
16
|
+
spec.homepage = "https://github.com/jacksonpires/documentos_br"
|
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
|
+
spec.add_development_dependency "cpf_utils", "~> 1.1.0"
|
28
|
+
spec.add_development_dependency "cnpj_utils", "~> 1.0.0"
|
29
|
+
spec.add_development_dependency "titulo_eleitor_utils", "~> 1.0.0"
|
30
|
+
end
|
@@ -0,0 +1,154 @@
|
|
1
|
+
require "documentos_br/version"
|
2
|
+
require "cpf_utils"
|
3
|
+
require "cnpj_utils"
|
4
|
+
require "titulo_eleitor_utils"
|
5
|
+
|
6
|
+
module DocumentosBr
|
7
|
+
# Gera um número de CPF.
|
8
|
+
#
|
9
|
+
# Exemplo:
|
10
|
+
# DocumentosBr.cpf => # "45698394823"
|
11
|
+
def self.cpf
|
12
|
+
CpfUtils.cpf
|
13
|
+
end
|
14
|
+
|
15
|
+
# Gera um número de CPF formatado.
|
16
|
+
#
|
17
|
+
# Exemplo:
|
18
|
+
# DocumentosBr.cpf_formatted => # "456.983.948-23"
|
19
|
+
def self.cpf_formatted
|
20
|
+
CpfUtils.cpf_formatted
|
21
|
+
end
|
22
|
+
|
23
|
+
# Gera um número de CPF formatado.
|
24
|
+
#
|
25
|
+
# Exemplo:
|
26
|
+
# DocumentosBr.cpf_formatado => # "456.983.948-23"
|
27
|
+
def self.cpf_formatado
|
28
|
+
self.cpf_formatted
|
29
|
+
end
|
30
|
+
|
31
|
+
# Verifica se um CPF é válido.
|
32
|
+
#
|
33
|
+
# Exemplo:
|
34
|
+
# DocumentosBr.valid_cpf?(45698394823) => # true
|
35
|
+
# DocumentosBr.valid_cpf?("45698394823") => # true
|
36
|
+
# DocumentosBr.valid_cpf?("456.983.948-23") => # true
|
37
|
+
def self.valid_cpf?(cpf_number)
|
38
|
+
cpf_number.to_s.valid_cpf?
|
39
|
+
end
|
40
|
+
|
41
|
+
# Verifica se um CPF é válido.
|
42
|
+
#
|
43
|
+
# Exemplo:
|
44
|
+
# DocumentosBr.cpf_valido?(45698394823) => # true
|
45
|
+
# DocumentosBr.cpf_valido?("45698394823") => # true
|
46
|
+
# DocumentosBr.cpf_valido?("456.983.948-23") => # true
|
47
|
+
def self.cpf_valido?(cpf_number)
|
48
|
+
self.valid_cpf?(cpf_number)
|
49
|
+
end
|
50
|
+
|
51
|
+
# Gera um número de CNPJ.
|
52
|
+
#
|
53
|
+
# Exemplo:
|
54
|
+
# DocumentosBr.cnpj => # "61287395000140"
|
55
|
+
def self.cnpj
|
56
|
+
CnpjUtils.cnpj
|
57
|
+
end
|
58
|
+
|
59
|
+
# Gera um número de Cnpj formatado.
|
60
|
+
#
|
61
|
+
# Exemplo:
|
62
|
+
# DocumentosBr.cnpj_formatted => # "61.287.395/0001-40"
|
63
|
+
def self.cnpj_formatted
|
64
|
+
CnpjUtils.cnpj_formatted
|
65
|
+
end
|
66
|
+
|
67
|
+
# Gera um número de Cnpj formatado.
|
68
|
+
#
|
69
|
+
# Exemplo:
|
70
|
+
# DocumentosBr.cnpj_formatado => # "61.287.395/0001-40"
|
71
|
+
def self.cnpj_formatado
|
72
|
+
self.cnpj_formatted
|
73
|
+
end
|
74
|
+
|
75
|
+
# Verifica se um Cnpj é válido.
|
76
|
+
#
|
77
|
+
# Exemplo:
|
78
|
+
# DocumentosBr.valid_cnpj?(61287395000140) => # true
|
79
|
+
# DocumentosBr.valid_cnpj?("61287395000140") => # true
|
80
|
+
# DocumentosBr.valid_cnpj?("61.287.395/0001-40") => # true
|
81
|
+
def self.valid_cnpj?(cnpj_number)
|
82
|
+
cnpj_number.to_s.valid_cnpj?
|
83
|
+
end
|
84
|
+
|
85
|
+
# Verifica se um Cnpj é válido.
|
86
|
+
#
|
87
|
+
# Exemplo:
|
88
|
+
# DocumentosBr.cnpj_valido?(61287395000140) => # true
|
89
|
+
# DocumentosBr.cnpj_valido?("61287395000140") => # true
|
90
|
+
# DocumentosBr.cnpj_valido?("61.287.395/0001-40") => # true
|
91
|
+
def self.cnpj_valido?(cnpj_number)
|
92
|
+
self.valid_cnpj?(cnpj_number)
|
93
|
+
end
|
94
|
+
|
95
|
+
# Gera um número de Título de Eleitor.
|
96
|
+
#
|
97
|
+
# Exemplo:
|
98
|
+
# DocumentosBr.titulo_eleitor => # "023434561340"
|
99
|
+
def self.titulo_eleitor
|
100
|
+
TituloEleitorUtils.titulo_eleitor
|
101
|
+
end
|
102
|
+
|
103
|
+
# Gera um número de Título de Eleitor formatado.
|
104
|
+
#
|
105
|
+
# Exemplo:
|
106
|
+
# DocumentosBr.titulo_eleitor_formatted => # "0234.3456.1340"
|
107
|
+
def self.titulo_eleitor_formatted
|
108
|
+
TituloEleitorUtils.titulo_eleitor_formatted
|
109
|
+
end
|
110
|
+
|
111
|
+
# Gera um número de Título de Eleitor formatado.
|
112
|
+
#
|
113
|
+
# Exemplo:
|
114
|
+
# DocumentosBr.titulo_eleitor_formatado => # "0234.3456.1340"
|
115
|
+
def self.titulo_eleitor_formatado
|
116
|
+
self.titulo_eleitor_formatted
|
117
|
+
end
|
118
|
+
|
119
|
+
# Verifica se um Título de Eleitor é válido.
|
120
|
+
#
|
121
|
+
# Exemplo:
|
122
|
+
# DocumentosBr.valid_titulo_eleitor?(023434561340) => # true
|
123
|
+
# DocumentosBr.valid_titulo_eleitor?("023434561340") => # true
|
124
|
+
# DocumentosBr.valid_titulo_eleitor?("0234.3456.1340") => # true
|
125
|
+
def self.valid_titulo_eleitor?(titulo_eleitor_number)
|
126
|
+
titulo_eleitor_number.valid_titulo_eleitor?
|
127
|
+
end
|
128
|
+
|
129
|
+
# Verifica se um Título de Eleitor é válido.
|
130
|
+
#
|
131
|
+
# Exemplo:
|
132
|
+
# DocumentosBr.titulo_eleitor_valido?(023434561340) => # true
|
133
|
+
# DocumentosBr.titulo_eleitor_valido?("023434561340") => # true
|
134
|
+
# DocumentosBr.titulo_eleitor_valido?("0234.3456.1340") => # true
|
135
|
+
def self.titulo_eleitor_valido?(titulo_eleitor_number)
|
136
|
+
self.valid_titulo_eleitor?(titulo_eleitor_number)
|
137
|
+
end
|
138
|
+
|
139
|
+
# Para saber a qual unidade federativa o Título de Eleitor pertence:
|
140
|
+
#
|
141
|
+
# Exemplo:
|
142
|
+
# DocumentosBr.titulo_eleitor_province("759026311727") => # "TO"
|
143
|
+
def self.titulo_eleitor_province(titulo_eleitor_number)
|
144
|
+
TituloEleitorUtils.titulo_eleitor_province(titulo_eleitor_number)
|
145
|
+
end
|
146
|
+
|
147
|
+
# Para saber a qual unidade federativa o Título de Eleitor pertence:
|
148
|
+
#
|
149
|
+
# Exemplo:
|
150
|
+
# DocumentosBr.uf_do_titulo_eleitor("759026311727") => # "TO"
|
151
|
+
def self.uf_do_titulo_eleitor(titulo_eleitor_number)
|
152
|
+
self.titulo_eleitor_province(titulo_eleitor_number)
|
153
|
+
end
|
154
|
+
end
|
@@ -0,0 +1,114 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "DocumentosBr" do
|
4
|
+
context 'CPFUtils' do
|
5
|
+
it ".cpf" do
|
6
|
+
valid_cpf = DocumentosBr.cpf
|
7
|
+
expect(valid_cpf).to be_a_kind_of(String)
|
8
|
+
expect(valid_cpf.length).to eql(11)
|
9
|
+
end
|
10
|
+
|
11
|
+
it ".cpf_formatted" do
|
12
|
+
valid_cpf = DocumentosBr.cpf_formatted
|
13
|
+
expect(valid_cpf).to match(/^[+-]?[0-9]{3}\.[0-9]{3}\.[0-9]{3}-[0-9]{2}+$/)
|
14
|
+
end
|
15
|
+
|
16
|
+
it ".cpf_formatado" do
|
17
|
+
valid_cpf = DocumentosBr.cpf_formatado
|
18
|
+
expect(valid_cpf).to match(/^[+-]?[0-9]{3}\.[0-9]{3}\.[0-9]{3}-[0-9]{2}+$/)
|
19
|
+
end
|
20
|
+
|
21
|
+
it ".valid_cpf?" do
|
22
|
+
valid_cpf = DocumentosBr.cpf
|
23
|
+
expect(DocumentosBr.valid_cpf? valid_cpf).to be_true
|
24
|
+
end
|
25
|
+
|
26
|
+
it ".cpf_valido?" do
|
27
|
+
cpf_valido = DocumentosBr.cpf
|
28
|
+
expect(DocumentosBr.cpf_valido? cpf_valido).to be_true
|
29
|
+
end
|
30
|
+
|
31
|
+
it ".valid_cpf? - be false" do
|
32
|
+
invalid_cpf = "123.456.789-12"
|
33
|
+
expect(DocumentosBr.valid_cpf? invalid_cpf).to be_false
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
context 'CnpjUtils' do
|
38
|
+
it ".cnpj" do
|
39
|
+
valid_cnpj = DocumentosBr.cnpj
|
40
|
+
expect(valid_cnpj).to be_a_kind_of(String)
|
41
|
+
expect(valid_cnpj.length).to eql(14)
|
42
|
+
end
|
43
|
+
|
44
|
+
it ".cnpj_formatted" do
|
45
|
+
valid_cnpj = DocumentosBr.cnpj_formatted
|
46
|
+
expect(valid_cnpj).to match(/^[+-]?[0-9]{2}\.[0-9]{3}\.[0-9]{3}\/[0-9]{4}-[0-9]{2}+$/)
|
47
|
+
end
|
48
|
+
|
49
|
+
it ".cnpj_formatado" do
|
50
|
+
valid_cnpj = DocumentosBr.cnpj_formatado
|
51
|
+
expect(valid_cnpj).to match(/^[+-]?[0-9]{2}\.[0-9]{3}\.[0-9]{3}\/[0-9]{4}-[0-9]{2}+$/)
|
52
|
+
end
|
53
|
+
|
54
|
+
it ".valid_cnpj?" do
|
55
|
+
valid_cnpj = DocumentosBr.cnpj
|
56
|
+
expect(DocumentosBr.valid_cnpj? valid_cnpj).to be_true
|
57
|
+
end
|
58
|
+
|
59
|
+
it ".cnpj_valido?" do
|
60
|
+
cnpj_valido = DocumentosBr.cnpj
|
61
|
+
expect(DocumentosBr.cnpj_valido? cnpj_valido).to be_true
|
62
|
+
end
|
63
|
+
|
64
|
+
it ".valid_cnpj? - be false" do
|
65
|
+
invalid_cnpj = "12.345.678/0001-12"
|
66
|
+
expect(DocumentosBr.valid_cnpj? invalid_cnpj).to be_false
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
context 'TituloEleitorUtils' do
|
71
|
+
it ".titulo_eleitor" do
|
72
|
+
valid_titulo_eleitor = DocumentosBr.titulo_eleitor
|
73
|
+
expect(valid_titulo_eleitor).to be_a_kind_of(String)
|
74
|
+
expect(valid_titulo_eleitor[8,2].to_i).to be >= 1
|
75
|
+
expect(valid_titulo_eleitor[8,2].to_i).to be <= 28
|
76
|
+
expect(valid_titulo_eleitor.length).to eql(12)
|
77
|
+
end
|
78
|
+
|
79
|
+
it ".titulo_eleitor_formatted" do
|
80
|
+
valid_titulo_eleitor = DocumentosBr.titulo_eleitor_formatted
|
81
|
+
expect(valid_titulo_eleitor).to match(/^[0-9]{4}\.[0-9]{4}\.[0-9]{4}+$/)
|
82
|
+
end
|
83
|
+
|
84
|
+
it ".titulo_eleitor_formatado" do
|
85
|
+
valid_titulo_eleitor = DocumentosBr.titulo_eleitor_formatado
|
86
|
+
expect(valid_titulo_eleitor).to match(/^[0-9]{4}\.[0-9]{4}\.[0-9]{4}+$/)
|
87
|
+
end
|
88
|
+
|
89
|
+
it ".valid_titulo_eleitor?" do
|
90
|
+
valid_titulo_eleitor = DocumentosBr.titulo_eleitor
|
91
|
+
expect(DocumentosBr.valid_titulo_eleitor? valid_titulo_eleitor).to be_true
|
92
|
+
end
|
93
|
+
|
94
|
+
it ".titulo_eleitor_valido?" do
|
95
|
+
titulo_eleitor_valido = DocumentosBr.titulo_eleitor
|
96
|
+
expect(DocumentosBr.titulo_eleitor_valido? titulo_eleitor_valido).to be_true
|
97
|
+
end
|
98
|
+
|
99
|
+
it ".valid_titulo_eleitor? - be false" do
|
100
|
+
invalid_titulo_eleitor = "1234.5678.9101"
|
101
|
+
expect(DocumentosBr.valid_titulo_eleitor? invalid_titulo_eleitor).to be_false
|
102
|
+
end
|
103
|
+
|
104
|
+
it ".titulo_eleitor_province" do
|
105
|
+
state = DocumentosBr.titulo_eleitor_province("759026311727")
|
106
|
+
expect(state).to eql("TO")
|
107
|
+
end
|
108
|
+
|
109
|
+
it ".uf_do_titulo_eleitor" do
|
110
|
+
state = DocumentosBr.uf_do_titulo_eleitor("759026311727")
|
111
|
+
expect(state).to eql("TO")
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
# Require Code Climate Test Reporter
|
2
|
+
require "codeclimate-test-reporter"
|
3
|
+
|
4
|
+
# Starts Code Climate Test Reporter
|
5
|
+
CodeClimate::TestReporter.start
|
6
|
+
|
7
|
+
# Require Coveralls for Test cover
|
8
|
+
require 'coveralls'
|
9
|
+
|
10
|
+
# Starts Coderalls
|
11
|
+
Coveralls.wear!
|
12
|
+
|
13
|
+
# Require other files of project
|
14
|
+
require "documentos_br"
|
data/spec/string_spec.rb
ADDED
@@ -0,0 +1,235 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe String do
|
4
|
+
context 'CpfUtils' do
|
5
|
+
it "#valid_cpf_mask?" do
|
6
|
+
expect("123.456.789-12".valid_cpf_mask?).to be_true
|
7
|
+
expect("12345678912".valid_cpf_mask?).to be_true
|
8
|
+
end
|
9
|
+
|
10
|
+
it "#mascara_de_cpf_valida?" do
|
11
|
+
expect("123.456.789-12".mascara_de_cpf_valida?).to be_true
|
12
|
+
expect("12345678912".mascara_de_cpf_valida?).to be_true
|
13
|
+
end
|
14
|
+
|
15
|
+
it "#valid_cpf_mask? - be false" do
|
16
|
+
expect("123..456.789-12".valid_cpf_mask?).to be_false
|
17
|
+
expect("123.456.789--12".valid_cpf_mask?).to be_false
|
18
|
+
expect("123.456.789-1E".valid_cpf_mask?).to be_false
|
19
|
+
end
|
20
|
+
|
21
|
+
it "#mascara_de_cpf_valida? - be false" do
|
22
|
+
expect("123..456.789-12".mascara_de_cpf_valida?).to be_false
|
23
|
+
expect("123.456.789--12".mascara_de_cpf_valida?).to be_false
|
24
|
+
expect("123.456.789-1E".mascara_de_cpf_valida?).to be_false
|
25
|
+
end
|
26
|
+
|
27
|
+
it "#valid_cpf?" do
|
28
|
+
cpf = DocumentosBr.cpf
|
29
|
+
expect(cpf.valid_cpf?).to be_true
|
30
|
+
end
|
31
|
+
|
32
|
+
it "#cpf_valido?" do
|
33
|
+
cpf = DocumentosBr.cpf
|
34
|
+
expect(cpf.cpf_valido?).to be_true
|
35
|
+
end
|
36
|
+
|
37
|
+
it "#to_cpf_format?" do
|
38
|
+
cpf = DocumentosBr.cpf
|
39
|
+
expect(cpf.to_cpf_format).to match(/^[+-]?[0-9]{3}\.[0-9]{3}\.[0-9]{3}-[0-9]{2}+$/)
|
40
|
+
end
|
41
|
+
|
42
|
+
it "#para_formato_cpf?" do
|
43
|
+
cpf = DocumentosBr.cpf
|
44
|
+
expect(cpf.para_formato_cpf).to match(/^[+-]?[0-9]{3}\.[0-9]{3}\.[0-9]{3}-[0-9]{2}+$/)
|
45
|
+
end
|
46
|
+
|
47
|
+
it "#generate_cpf" do
|
48
|
+
valid_cpf = DocumentosBr.cpf
|
49
|
+
final_cpf = valid_cpf[0..8].generate_cpf
|
50
|
+
|
51
|
+
expect(final_cpf).to be_a_kind_of(String)
|
52
|
+
expect(final_cpf.length).to eql(11)
|
53
|
+
end
|
54
|
+
|
55
|
+
it "#gerar_cpf" do
|
56
|
+
valid_cpf = DocumentosBr.cpf
|
57
|
+
final_cpf = valid_cpf[0..8].gerar_cpf
|
58
|
+
|
59
|
+
expect(final_cpf).to be_a_kind_of(String)
|
60
|
+
expect(final_cpf.length).to eql(11)
|
61
|
+
end
|
62
|
+
|
63
|
+
it "#gerar_cpf_formatado" do
|
64
|
+
valid_cpf = DocumentosBr.cpf
|
65
|
+
final_cpf = valid_cpf[0..8].gerar_cpf_formatado
|
66
|
+
|
67
|
+
expect(final_cpf).to match(/^[+-]?[0-9]{3}\.[0-9]{3}\.[0-9]{3}-[0-9]{2}+$/)
|
68
|
+
end
|
69
|
+
|
70
|
+
it "#generate_cpf_formatted" do
|
71
|
+
valid_cpf = DocumentosBr.cpf
|
72
|
+
final_cpf = valid_cpf[0..8].generate_cpf_formatted
|
73
|
+
|
74
|
+
expect(final_cpf).to match(/^[+-]?[0-9]{3}\.[0-9]{3}\.[0-9]{3}-[0-9]{2}+$/)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
context 'CnpjUtils' do
|
79
|
+
it "#valid_cnpj_mask?" do
|
80
|
+
expect("61.287.395/0001-40".valid_cnpj_mask?).to be_true
|
81
|
+
expect("61287395000140".valid_cnpj_mask?).to be_true
|
82
|
+
end
|
83
|
+
|
84
|
+
it "#mascara_de_cnpj_valida?" do
|
85
|
+
expect("61.287.395/0001-40".mascara_de_cnpj_valida?).to be_true
|
86
|
+
expect("61287395000140".mascara_de_cnpj_valida?).to be_true
|
87
|
+
end
|
88
|
+
|
89
|
+
it "#valid_cnpj_mask? - be false" do
|
90
|
+
expect("45.698.394//0001-54".valid_cnpj_mask?).to be_false
|
91
|
+
expect("45.698..394/0001-54".valid_cnpj_mask?).to be_false
|
92
|
+
expect("45.698.394/00O1-54".valid_cnpj_mask?).to be_false
|
93
|
+
end
|
94
|
+
|
95
|
+
it "#mascara_de_cnpj_valida? - be false" do
|
96
|
+
expect("45.698.394//0001-54".mascara_de_cnpj_valida?).to be_false
|
97
|
+
expect("45.698..394/0001-54".mascara_de_cnpj_valida?).to be_false
|
98
|
+
expect("45.698.394/00O1-54".mascara_de_cnpj_valida?).to be_false
|
99
|
+
end
|
100
|
+
|
101
|
+
it "#valid_cnpj?" do
|
102
|
+
cnpj = CnpjUtils.cnpj
|
103
|
+
expect(cnpj.valid_cnpj?).to be_true
|
104
|
+
end
|
105
|
+
|
106
|
+
it "#cnpj_valido?" do
|
107
|
+
cnpj = CnpjUtils.cnpj
|
108
|
+
expect(cnpj.cnpj_valido?).to be_true
|
109
|
+
end
|
110
|
+
|
111
|
+
it "#to_cnpj_format?" do
|
112
|
+
cnpj = CnpjUtils.cnpj
|
113
|
+
expect(cnpj.to_cnpj_format).to match(/^[+-]?[0-9]{2}\.[0-9]{3}\.[0-9]{3}\/[0-9]{4}-[0-9]{2}+$/)
|
114
|
+
end
|
115
|
+
|
116
|
+
it "#para_formato_cnpj?" do
|
117
|
+
cnpj = CnpjUtils.cnpj
|
118
|
+
expect(cnpj.para_formato_cnpj).to match(/^[+-]?[0-9]{2}\.[0-9]{3}\.[0-9]{3}\/[0-9]{4}-[0-9]{2}+$/)
|
119
|
+
end
|
120
|
+
|
121
|
+
it "#generate_cnpj" do
|
122
|
+
valid_cnpj = CnpjUtils.cnpj
|
123
|
+
final_cnpj = valid_cnpj[0..11].generate_cnpj
|
124
|
+
|
125
|
+
expect(final_cnpj).to be_a_kind_of(String)
|
126
|
+
expect(final_cnpj.length).to eql(14)
|
127
|
+
end
|
128
|
+
|
129
|
+
it "#gerar_cnpj" do
|
130
|
+
valid_cnpj = CnpjUtils.cnpj
|
131
|
+
final_cnpj = valid_cnpj[0..11].gerar_cnpj
|
132
|
+
|
133
|
+
expect(final_cnpj).to be_a_kind_of(String)
|
134
|
+
expect(final_cnpj.length).to eql(14)
|
135
|
+
end
|
136
|
+
|
137
|
+
it "#gerar_cnpj_formatado" do
|
138
|
+
valid_cnpj = CnpjUtils.cnpj
|
139
|
+
final_cnpj = valid_cnpj[0..11].gerar_cnpj_formatado
|
140
|
+
|
141
|
+
expect(final_cnpj).to match(/^[+-]?[0-9]{2}\.[0-9]{3}\.[0-9]{3}\/[0-9]{4}-[0-9]{2}+$/)
|
142
|
+
end
|
143
|
+
|
144
|
+
it "#generate_cnpj_formatted" do
|
145
|
+
valid_cnpj = CnpjUtils.cnpj
|
146
|
+
final_cnpj = valid_cnpj[0..11].generate_cnpj_formatted
|
147
|
+
|
148
|
+
expect(final_cnpj).to match(/^[+-]?[0-9]{2}\.[0-9]{3}\.[0-9]{3}\/[0-9]{4}-[0-9]{2}+$/)
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
context 'TituloEleitorUtils' do
|
153
|
+
it "#valid_titulo_eleitor_mask?" do
|
154
|
+
expect("7590.2631.1727".valid_titulo_eleitor_mask?).to be_true
|
155
|
+
expect("759026311727".valid_titulo_eleitor_mask?).to be_true
|
156
|
+
end
|
157
|
+
|
158
|
+
it "#mascara_de_titulo_eleitor_valida?" do
|
159
|
+
expect("7590.2631.1727".mascara_de_titulo_eleitor_valida?).to be_true
|
160
|
+
expect("759026311727".mascara_de_titulo_eleitor_valida?).to be_true
|
161
|
+
end
|
162
|
+
|
163
|
+
it "#valid_titulo_eleitor_mask? - be false" do
|
164
|
+
expect("7590.26E1.1727".valid_titulo_eleitor_mask?).to be_false
|
165
|
+
expect("7590..2631.1727".valid_titulo_eleitor_mask?).to be_false
|
166
|
+
expect("7590.26311727".valid_titulo_eleitor_mask?).to be_false
|
167
|
+
end
|
168
|
+
|
169
|
+
it "#mascara_de_titulo_eleitor_valida? - be false" do
|
170
|
+
expect("7590.26E1.1727".mascara_de_titulo_eleitor_valida?).to be_false
|
171
|
+
expect("7590..2631.1727".mascara_de_titulo_eleitor_valida?).to be_false
|
172
|
+
expect("7590.2631..1727".mascara_de_titulo_eleitor_valida?).to be_false
|
173
|
+
end
|
174
|
+
|
175
|
+
it "#valid_titulo_eleitor?" do
|
176
|
+
titulo_eleitor = DocumentosBr.titulo_eleitor
|
177
|
+
expect(titulo_eleitor.valid_titulo_eleitor?).to be_true
|
178
|
+
end
|
179
|
+
|
180
|
+
it "#titulo_eleitor_valido?" do
|
181
|
+
titulo_eleitor = DocumentosBr.titulo_eleitor
|
182
|
+
expect(titulo_eleitor.titulo_eleitor_valido?).to be_true
|
183
|
+
end
|
184
|
+
|
185
|
+
it "#to_titulo_eleitor_format?" do
|
186
|
+
titulo_eleitor = DocumentosBr.titulo_eleitor
|
187
|
+
expect(titulo_eleitor.to_titulo_eleitor_format).to match(/^[0-9]{4}\.[0-9]{4}\.[0-9]{4}+$/)
|
188
|
+
end
|
189
|
+
|
190
|
+
it "#para_formato_titulo_eleitor?" do
|
191
|
+
titulo_eleitor = DocumentosBr.titulo_eleitor
|
192
|
+
expect(titulo_eleitor.para_formato_titulo_eleitor).to match(/^[0-9]{4}\.[0-9]{4}\.[0-9]{4}+$/)
|
193
|
+
end
|
194
|
+
|
195
|
+
it "#generate_titulo_eleitor" do
|
196
|
+
valid_titulo_eleitor = DocumentosBr.titulo_eleitor
|
197
|
+
final_titulo_eleitor = valid_titulo_eleitor[0..9].generate_titulo_eleitor
|
198
|
+
|
199
|
+
expect(final_titulo_eleitor).to be_a_kind_of(String)
|
200
|
+
expect(final_titulo_eleitor.size).to eql(12)
|
201
|
+
end
|
202
|
+
|
203
|
+
it "#gerar_titulo_eleitor" do
|
204
|
+
valid_titulo_eleitor = DocumentosBr.titulo_eleitor
|
205
|
+
final_titulo_eleitor = valid_titulo_eleitor[0..9].gerar_titulo_eleitor
|
206
|
+
|
207
|
+
expect(final_titulo_eleitor).to be_a_kind_of(String)
|
208
|
+
expect(final_titulo_eleitor.size).to eql(12)
|
209
|
+
end
|
210
|
+
|
211
|
+
it "#gerar_titulo_eleitor_formatado" do
|
212
|
+
valid_titulo_eleitor = DocumentosBr.titulo_eleitor
|
213
|
+
final_titulo_eleitor = valid_titulo_eleitor[0..9].gerar_titulo_eleitor_formatado
|
214
|
+
|
215
|
+
expect(final_titulo_eleitor).to match(/^[0-9]{4}\.[0-9]{4}\.[0-9]{4}+$/)
|
216
|
+
end
|
217
|
+
|
218
|
+
it "#generate_titulo_eleitor_formatted" do
|
219
|
+
valid_titulo_eleitor = DocumentosBr.titulo_eleitor
|
220
|
+
final_titulo_eleitor = valid_titulo_eleitor[0..9].generate_titulo_eleitor_formatted
|
221
|
+
|
222
|
+
expect(final_titulo_eleitor).to match(/^[0-9]{4}\.[0-9]{4}\.[0-9]{4}+$/)
|
223
|
+
end
|
224
|
+
|
225
|
+
it "#titulo_eleitor_province" do
|
226
|
+
state = "759026311727".titulo_eleitor_province
|
227
|
+
expect(state).to eql("TO")
|
228
|
+
end
|
229
|
+
|
230
|
+
it "#uf_do_titulo_eleitor" do
|
231
|
+
state = "759026311727".uf_do_titulo_eleitor
|
232
|
+
expect(state).to eql("TO")
|
233
|
+
end
|
234
|
+
end
|
235
|
+
end
|
metadata
ADDED
@@ -0,0 +1,147 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: documentos_br
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jackson Pires
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-04-12 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
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: cpf_utils
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.1.0
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 1.1.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: cnpj_utils
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 1.0.0
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 1.0.0
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: titulo_eleitor_utils
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ~>
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 1.0.0
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ~>
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 1.0.0
|
97
|
+
description: |-
|
98
|
+
Uma 'wrapper' para as Gems 'CpfUtils', 'CnpjUtils' e
|
99
|
+
'TituloEleitorUtils'.
|
100
|
+
email:
|
101
|
+
- jackson.pires@gmail.com
|
102
|
+
executables: []
|
103
|
+
extensions: []
|
104
|
+
extra_rdoc_files: []
|
105
|
+
files:
|
106
|
+
- .gitignore
|
107
|
+
- .rspec
|
108
|
+
- .travis.yml
|
109
|
+
- Gemfile
|
110
|
+
- LICENSE.txt
|
111
|
+
- README.md
|
112
|
+
- Rakefile
|
113
|
+
- documentos_br.gemspec
|
114
|
+
- lib/documentos_br.rb
|
115
|
+
- lib/documentos_br/version.rb
|
116
|
+
- spec/documentos_br_spec.rb
|
117
|
+
- spec/spec_helper.rb
|
118
|
+
- spec/string_spec.rb
|
119
|
+
homepage: https://github.com/jacksonpires/documentos_br
|
120
|
+
licenses:
|
121
|
+
- MIT
|
122
|
+
metadata: {}
|
123
|
+
post_install_message:
|
124
|
+
rdoc_options: []
|
125
|
+
require_paths:
|
126
|
+
- lib
|
127
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
133
|
+
requirements:
|
134
|
+
- - '>='
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: '0'
|
137
|
+
requirements: []
|
138
|
+
rubyforge_project:
|
139
|
+
rubygems_version: 2.0.3
|
140
|
+
signing_key:
|
141
|
+
specification_version: 4
|
142
|
+
summary: DocumentosBr é um 'wrapper' para a suíte de funcionalidades das Gems 'CpfUtils',
|
143
|
+
'CnpjUtils' e 'TituloEleitorUtils'.
|
144
|
+
test_files:
|
145
|
+
- spec/documentos_br_spec.rb
|
146
|
+
- spec/spec_helper.rb
|
147
|
+
- spec/string_spec.rb
|