documentos_br 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
[![Gem Version](https://badge.fury.io/rb/documentos_br.png)](http://badge.fury.io/rb/documentos_br)
|
3
|
+
[![Build Status](https://travis-ci.org/jacksonpires/documentos_br.svg?branch=master)](https://travis-ci.org/jacksonpires/documentos_br)
|
4
|
+
[![Code Climate](https://codeclimate.com/github/jacksonpires/documentos_br.png)](https://codeclimate.com/github/jacksonpires/documentos_br)
|
5
|
+
[![Coverage Status](https://coveralls.io/repos/jacksonpires/documentos_br/badge.png?branch=master)](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
|