brazilian_documents 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -0
  3. data/README.md +263 -15
  4. data/br_documents.gemspec +5 -5
  5. data/lib/br_documents.rb +3 -0
  6. data/lib/br_documents/documents/cnpj.rb +7 -10
  7. data/lib/br_documents/documents/cpf.rb +7 -10
  8. data/lib/br_documents/documents/ie.rb +43 -0
  9. data/lib/br_documents/documents/ie/ac.rb +15 -0
  10. data/lib/br_documents/documents/ie/al.rb +50 -0
  11. data/lib/br_documents/documents/ie/am.rb +12 -0
  12. data/lib/br_documents/documents/ie/ap.rb +61 -0
  13. data/lib/br_documents/documents/ie/ba.rb +84 -0
  14. data/lib/br_documents/documents/ie/ba/base.rb +37 -0
  15. data/lib/br_documents/documents/ie/ba/digits8/modulo_10.rb +12 -0
  16. data/lib/br_documents/documents/ie/ba/digits8/modulo_11.rb +12 -0
  17. data/lib/br_documents/documents/ie/ba/digits9/modulo_10.rb +19 -0
  18. data/lib/br_documents/documents/ie/ba/digits9/modulo_11.rb +20 -0
  19. data/lib/br_documents/documents/ie/ba/modulo_10.rb +19 -0
  20. data/lib/br_documents/documents/ie/ba/modulo_11.rb +18 -0
  21. data/lib/br_documents/documents/ie/base.rb +79 -0
  22. data/lib/br_documents/documents/ie/ce.rb +14 -0
  23. data/lib/br_documents/documents/ie/df.rb +16 -0
  24. data/lib/br_documents/documents/ie/es.rb +12 -0
  25. data/lib/br_documents/documents/ie/go.rb +14 -0
  26. data/lib/br_documents/documents/ie/ma.rb +14 -0
  27. data/lib/br_documents/documents/ie/mg.rb +66 -0
  28. data/lib/br_documents/documents/ie/ms.rb +14 -0
  29. data/lib/br_documents/documents/ie/mt.rb +14 -0
  30. data/lib/br_documents/documents/ie/pa.rb +14 -0
  31. data/lib/br_documents/documents/ie/pb.rb +14 -0
  32. data/lib/br_documents/documents/ie/pe.rb +38 -0
  33. data/lib/br_documents/documents/ie/pe/current.rb +13 -0
  34. data/lib/br_documents/documents/ie/pe/legacy.rb +12 -0
  35. data/lib/br_documents/documents/ie/pi.rb +14 -0
  36. data/lib/br_documents/documents/ie/pr.rb +13 -0
  37. data/lib/br_documents/documents/ie/rj.rb +25 -0
  38. data/lib/br_documents/documents/ie/rn.rb +14 -0
  39. data/lib/br_documents/documents/ie/ro.rb +44 -0
  40. data/lib/br_documents/documents/ie/ro/current.rb +24 -0
  41. data/lib/br_documents/documents/ie/ro/legacy.rb +13 -0
  42. data/lib/br_documents/documents/ie/rr.rb +19 -0
  43. data/lib/br_documents/documents/ie/rs.rb +12 -0
  44. data/lib/br_documents/documents/ie/sc.rb +12 -0
  45. data/lib/br_documents/documents/ie/se.rb +14 -0
  46. data/lib/br_documents/documents/ie/sp.rb +38 -0
  47. data/lib/br_documents/documents/ie/sp/industry.rb +22 -0
  48. data/lib/br_documents/documents/ie/sp/rural.rb +21 -0
  49. data/lib/br_documents/documents/ie/to.rb +14 -0
  50. data/lib/br_documents/version.rb +1 -1
  51. metadata +47 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a00ed4e14230b1dc6dc05f66449535f88c2a4128
4
- data.tar.gz: d746ee8acb43df9a4a7041870fd47ad9937133d2
3
+ metadata.gz: 65008c59e22e63794e434829f0d3cc5e9cf08177
4
+ data.tar.gz: 9debdbb0e043529ce7fa751984bccf6261ddb276
5
5
  SHA512:
6
- metadata.gz: b2d82b3519305678f83bb18940ffaa3eb1834160a6362be63d669764b0674f006e6b6f2247b1721b9bfc9bb1206af774c21f2c5d28aa6b1f7888004a3f6b6ab0
7
- data.tar.gz: c75f0d66da3a47cc9d24ab8cf25650eda95d1f77534c30e5d629dfa440c9ddfc995a02b18ead3f632f2eccad706ced71167ce3a9ca08bd7360aced7689c50711
6
+ metadata.gz: fc761c5adf13c794e00298234f0a4c67bb7f4310db294db5f837648f57c5417b4c13baee6ea029e89bb21142da92c3a1589125374c1ead2d4cf352162d768916
7
+ data.tar.gz: c8b0e5ee77de46928062cda93452104c2965a72506e45ddf4ff65b47ef719e1dd44af3b6e41149cb89e4bef93afbf53088001ae462d91a620e4477cf323c577f
data/Gemfile CHANGED
@@ -2,3 +2,5 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in br_documents.gemspec
4
4
  gemspec
5
+
6
+ gem 'pry'
data/README.md CHANGED
@@ -5,13 +5,12 @@ Atualmente existem **validadores e geradores** para os seguintes documentos:
5
5
 
6
6
  * CPF
7
7
  * CNPJ
8
+ * Inscrição Estadual (dos 27 estados federativos do Brasil)
8
9
  * RG (Carteira de Identidade) [TODO]
9
10
  * Título de Eleitor [TODO]
10
11
 
11
12
  Essa gem é construída em cima da gem [**digit_checksum**](https://github.com/fidelisrafael/digit_checksum), que torna todo o processo muito mais simples e padronizado!
12
13
 
13
- Se você deseja validar `Inscrição Estadual` e integração dos validadores com models do ActiveRecord, veja a gem [`asseinfo/br_documents`](https://github.com/asseinfo/br_documents)
14
-
15
14
  ---
16
15
 
17
16
  ## Instalação
@@ -19,7 +18,7 @@ Se você deseja validar `Inscrição Estadual` e integração dos validadores co
19
18
  Adicione no seu Gemfile:
20
19
 
21
20
  ```ruby
22
- gem 'brazilian_documents'
21
+ gem 'brazilian_documents', '~> 0.1.2'
23
22
  ```
24
23
 
25
24
  E execute:
@@ -32,7 +31,7 @@ Ou então instale separadamente (e globalmente) com:
32
31
 
33
32
  ---
34
33
 
35
- ## Como usar
34
+ ## Como usar
36
35
 
37
36
  Entenda que a proposta dessa gem não é gerar número de documentos, somente validar! A ideia é ser pequena e portátil.
38
37
 
@@ -90,6 +89,7 @@ BRDocuments::CPF.calculate_verify_digits(number)
90
89
  ### Exemplos:
91
90
 
92
91
  # Número válido
92
+ BRDocuments::CPF.calculate_verify_digits("481.455.512-18")
93
93
  BRDocuments::CPF.calculate_verify_digits("481.455.512") # [1, 8]
94
94
 
95
95
  # Número inválido
@@ -101,39 +101,288 @@ BRDocuments::CPF.calculate_verify_digits("481.455.51") # []
101
101
  ```ruby
102
102
  require 'br_documents'
103
103
 
104
- BRDocuments::CPF.pretty_formatted(number) # (XXX.XXX.XXX-XX)
104
+ BRDocuments::CPF.pretty(number) # (XXX.XXX.XXX-XX)
105
105
 
106
106
  # Retorna CPF normalizado como Array ([X,X,X,X,X,X,X,X,X,X,X,X])
107
- BRDocuments::CPF.normalize_number(number)
107
+ BRDocuments::CPF.normalize(number)
108
108
 
109
109
  # Retorna CPF normalizado como String (XXXXXXXXXXXX)
110
- BRDocuments::CPF.normalize_number_to_s(number)
110
+ BRDocuments::CPF.strip(number)
111
111
 
112
112
  ### Exemplos:
113
113
 
114
114
  # Retorna CPF formatado
115
- BRDocuments::CPF.pretty_formatted("48145551218") # 481.455.512-18
115
+ BRDocuments::CPF.pretty("48145551218") # 481.455.512-18
116
116
 
117
117
  # Normaliza número e retorna como Array: [4, 8, 1, 4, 5, 5, 5, 1, 2, 1, 8]
118
- BRDocuments::CPF.normalize_number("481.455.512-18")
118
+ BRDocuments::CPF.normalize("481.455.512-18")
119
+
120
+ BRDocuments::CPF.strip("481.455.512-18") # "48145551218"
121
+ ```
122
+
123
+ ---
124
+
125
+ ## Inscrições Estaduais
126
+
127
+ É possível validar e gerar números de inscrições estaduais utilizando essa biblioteca, sendo que **SEMPRE** será respeitado todos os critérios para a definição de uma Inscrição Estadual, como por exemplo os dígitos fixos adicionados ao inicio de cada número de documento, que varia conforme o estado. (alguns estados não possuem dígitos fixos).
128
+
129
+ Além disso, alguns estados possuem **mais de 1 padrão de inscrição estadual válido** (PQ BRASIL???), que podem ser definidos como **atual** e **legado**, esses estados são:
130
+
131
+ <br />
132
+
133
+ * **BA** - Possui **4 formatos** de números válidos
134
+ * 8 dígitos calculados com modulo 10
135
+ * 8 dígitos calculados com modulo 11
136
+ * 9 dígitos calculados com modulo 10
137
+ * 9 dígitos calculados com modulo 11
138
+
139
+ * **PE** - Possui **2 formatos** de números válidos
140
+ * Legado (14 dígitos)
141
+ * Atual (9 dígitos)
142
+
143
+ * **R** - Possui **2 formatos** de números válidos
144
+ * Legado (9 dígitos)
145
+ * Atual (14 dígitos)
146
+
147
+ * **SP** - Possui **2 formatos** de números válidos
148
+ * Industrial (12 dígitos), com dígitos verificadores no "meio" do número
149
+ * Rural (12 dígitos), com dígitos verificadores no "meio" do número
119
150
 
120
- BRDocuments::CPF.normalize_number_to_s("481.455.512-18") # "48145551218"
151
+ ---
152
+
153
+ ### API Inscrições Estaduais
154
+
155
+ ### Gerar números
156
+
157
+ ```ruby
158
+ # BRDocuments::IE::{ESTADO}.generate
159
+ # {ESTADO} deve ser a sigla de cada unidade federativa do Brasil
160
+ # Para consultar todas as unidades federativas:
161
+
162
+ BRDocuments::IE.available_states
163
+ => [
164
+ "AC", "AL", "AM", "AP", "BA", "CE", "DF", "ES", "GO",
165
+ "MA", "MG", "MS", "MT", "PA", "PB", "PE", "PI", "PR",
166
+ "RJ", "RN", "RO", "RR", "RS", "SE", "SP", "TO"
167
+ ]
168
+
169
+ ## Ex
121
170
 
171
+ BRDocuments::IE::MG.generate # "484322874.82-21"
172
+
173
+ BRDocuments::IE::DF.generate # "07.372.652.746-25"
122
174
  ```
175
+
176
+ Os estados com **mais de 1 tipo de padrão válido** possuem opções para gerar cada um dos formatos, veja:
177
+
178
+
179
+ #### Bahia (BA)
180
+
181
+ ```ruby
182
+ # BA atual - 9 dígitos - modulo 10
183
+ # SEGUNDO dígito da I.E: 0,1,2,3,4,5,8
184
+ BRDocuments::IE::BA.generate
185
+ # => "031.112.264"
186
+
187
+ # BA Atual - 9 dígitos - modulo 11
188
+ # SEGUNDO dígito da I.E: 6, 7 ou 9
189
+ BRDocuments::IE::BA.generate(true, 9, 11)
190
+ => "273.854.609"
191
+
192
+ # BA legado - 8 dígitos - modulo 10
193
+ # PRIMEIRO dígito da I.E: 0,1,2,3,4,5,8
194
+ BRDocuments::IE::BA.generate(true, 8, 10)
195
+ => "476.354.65"
196
+
197
+ # BA legado - 8 dígitos - modulo 11
198
+ # PRIMEIRO dígito da I.E: 6, 7 ou 9
199
+ BRDocuments::IE::BA.generate(true, 8, 11)
200
+ => "612.733.29"
201
+ ```
202
+
203
+ #### Pernambuco (PE)
204
+
205
+ ```ruby
206
+ # Padrão atual: 6 dígitos + 2 dígitos verificadores
207
+ BRDocuments::IE::PE.generate
208
+ => "6920752-67"
209
+
210
+ # Padrão antigo: 13 dígitos + 1 dígito verificador
211
+ BRDocuments::IE::PE.generate(true, true)
212
+ => "01.3.667.8339833-8"
213
+
214
+ # Checar se número é do padrão legado
215
+ BRDocuments::IE::PE.legacy?("01.3.667.8339833-8") # true
216
+ BRDocuments::IE::PE.legacy?("6920752-67") # false
217
+ ```
218
+
219
+ #### Roraima (RO)
220
+
221
+ ```ruby
222
+ # Padrão atual: 13 dígitos + 1 dígito verificador
223
+ BRDocuments::IE::RO.generate
224
+ => "0000000081197-1"
225
+
226
+ # Padrão legado: 3 dígitos(município) + 5 dígitos(inscrição) + 1 dígito verificador
227
+ BRDocuments::IE::RO.generate(true, true)
228
+ => "557.88373-5"
229
+
230
+ # Para converter um número do padrão legado para o padrão atual:
231
+ BRDocuments::IE::RO.convert_legacy("557.88373-5")
232
+ => "0000000088373-5"
233
+
234
+ # Checar se número é do padrão legado
235
+ BRDocuments::IE::RO.legacy?("557.88373-5") # true
236
+ BRDocuments::IE::RO.legacy?("0000000081197-1") # false
237
+ ```
238
+
239
+ #### São Paulo (SP)
240
+
241
+ O estado de São Paulo não possui padrões **legados**, somente o padrão **Industriais** e de **Produtor Rural**, veja:
242
+
243
+ ```ruby
244
+ # Padrão atual com 10 dígitos + 2 dígitos verificadores
245
+ # OBS: Os dígitos verificadores ficam nas posições 8 e 10
246
+ # E não convenialmente no final do documento
247
+ BRDocuments::IE::SP.generate
248
+ => "593.024.470.190"
249
+
250
+ # Padrão de Produtor Rural
251
+ # P + 11 dígitos + 1 dígito verificador
252
+ # OBS: O digíto verificador fica na oitava posição do número
253
+ BRDocuments::IE::SP.generate(true, true)
254
+ => "P-54855620.8/324"
255
+
256
+
257
+ # Checar se número é do padrão legado
258
+ BRDocuments::IE::SP.rural?("P-54855620.8/324") # true
259
+ BRDocuments::IE::SP.rural?("593.024.470.190") # false
260
+ ```
261
+
262
+ ---
263
+
264
+ ### Validar Inscrições Estaduais
265
+
266
+ ```ruby
267
+ BRDocuments::IE::{ESTADO}.generate
268
+ # {ESTADO} deve ser a sigla de cada unidade federativa do Brasil
269
+
270
+ ## Ex:
271
+ BRDocuments::IE::MG.valid?('062013766.01-45') # true
272
+ BRDocuments::IE::SP.valid?('102.614.327.119') # true
273
+ BRDocuments::IE::RS.valid?('029/0487447') # true
274
+ ```
275
+
276
+ ---
277
+
278
+ ### Calcular dígitos verificadores
279
+
280
+ ```ruby
281
+ # número com dígitos verificadores já inclusos
282
+ BRDocuments::IE::SP.calculate_verify_digits('110.042.490.114') # => [0, 4]
283
+
284
+ # Número sem os dígitos verificadores
285
+ BRDocuments::IE::SP.calculate_verify_digits('110.042.49.11') # => [0, 4]
286
+
287
+ # É possível também calcular e adicionar os dígitos verificadores nas posições corretas utilizando:
288
+ # Na IE de SP os dígitos verificadores ficam nas posições 8 e 11.
289
+ # Evite inserir os dígitos verificadores manualmente no final do documento, utilize a API.
290
+ BRDocuments::IE::SP.append_verify_digits!('110.042.49.11') # => "110042490114"
291
+
292
+ BRDocuments::IE::PA.calculate_verify_digits("15.069.665") # => [5]
293
+ ```
294
+ ---
295
+
296
+ ### Formatar Inscrições Estaduais
297
+
298
+ Cada estado possui um padrão diferente de formatação das IE, utilizando a API dessa gem você não precisa se preocupar com isso:
299
+
300
+ ```ruby
301
+ BRDocuments::IE::SP.pretty('P011004243002') # => 'P-01100424.3/002'
302
+
303
+ BRDocuments::IE::PB.pretty('160158230') # => "16.015.823-0"
304
+
305
+ BRDocuments::IE::DF.pretty('0730000100109') # => "07.300.001.001-09"
306
+
307
+ # Para remover a formatação:
308
+ BRDocuments::IE::DF.stripped("07.300.001.001-09") # => "0730000100109"
309
+ ```
310
+
311
+ ---
312
+
313
+ ### PORO - Plain Old Ruby Objects
314
+
315
+ Todos a API demonstrada nessa documentação (geralmente metodos de classe) são **apenas delegações de métodos para a instância de um objeto Ruby**, você pode trabalhar diretamente com os objetos da seguinte maneira:
316
+
317
+ ```ruby
318
+ # A API é a mesma para TODOS os objetos, ex:
319
+
320
+ # object = BRDocuments::IE::DF.new("07.300.001.001-09")
321
+ # object = BRDocuments::IE::MG.new("07.300.001.001-09")
322
+ # object = BRDocuments::CNPJ.new("53.091.177/2847-09")
323
+
324
+ object = BRDocuments::CPF.new('481.455.512-18')
325
+
326
+ object.valid? # true
327
+
328
+ # Tenta obter os digitos verificadores baseado nas posições
329
+ object.current_verify_digits # [1,8]
330
+
331
+ # Remove os digitos verificadores do objeto
332
+ object.remove_verify_digits! # [1,8]
333
+
334
+ # Tenta obter os digitos verificadores baseado nas posições
335
+ object.current_verify_digits # []
336
+
337
+ object.number # object.to_s => 481455512
338
+
339
+ # Somente calcula, não adiciona ao objeto
340
+ object.calculate_verify_digits # [1,8]
341
+
342
+ # Utiliza o método `calculate_verify_digits` e adiciona os dígitos nas posições corretas
343
+ object.append_verify_digits! # "48145551218"
344
+
345
+ object.pretty # "481.455.512-18"
346
+
347
+ object.normalize
348
+ # => [4, 8, 1, 4, 5, 5, 5, 1, 2, 1, 8]
349
+
350
+ object.strip # 48145551218
351
+
352
+ object.size # 11
353
+
354
+ object.root_digits_count # 9
355
+
356
+ object.verify_digits_count # 2
357
+
358
+ # root_digits_count + verify_digits_count
359
+ object.full_size # 11
360
+
361
+ object.verify_digits_positions # [9,10]
362
+ ```
363
+
364
+
365
+ ---
366
+
367
+ ## Ajuda requirida!
368
+
369
+ Olá, que bom que você chegou até aqui! Para o desenvolvimento dessa gem eu me guiei pelo [**péssimo guia**](www.sintegra.gov.br/insc_est.html) do Sintegra, que esquece de citar vários pontos importantes na definição dos padrões de cada estado, muito deles só fui saber enquanto eu testava, pois validei várias inscrições estaduais das maiores empresas de cada estado.
370
+ Por isso, se você tiver conhecimento dos padrões(ex: dígitos iniciais fixos) do seu estado - ou dos demais - por favor, dê uma olhada no código da gem e ajude a tornar a validação e geração mais exata! Obrigado!
371
+
123
372
  ---
124
373
 
125
374
  ## Desenvolvimento
126
375
 
127
376
  Execute `bin/setup` para instalar as dependências to install dependencies. Em seguida execute `rake spec` para executar todos os testes. Você pode também executar `bin/console` para iniciar um shell interativo para seus experimentos
128
377
 
129
- Para instalar essa gem localmente em sua máquina, execute `bundle exec rake install`.
378
+ Para instalar essa gem localmente em sua máquina, execute `bundle exec rake install`.
130
379
 
131
380
  ---
132
381
 
133
382
  ## Contribua!
134
383
 
135
- Você pode enviar bugs reports, pull requests e abrir issues no GitHub: https://github.com/fidelisrafael/br_documents.
136
- Para entender a arquitetura e padrão de cada arquivo, veja a pasta `lib/br_documents/documents` e leia a documentação da gem [**digit_checksum**](https://github.com/fidelisrafael/digit_checksum).
384
+ Você pode enviar bugs reports, pull requests e abrir issues no GitHub: https://github.com/fidelisrafael/br_documents.
385
+ Para entender a arquitetura e padrão de cada arquivo, veja a pasta `lib/br_documents/documents` e leia a documentação da gem [**digit_checksum**](https://github.com/fidelisrafael/digit_checksum).
137
386
  Pense em cada documento como um **adapter** criado em cima da API da Gem `DigitCheckSum`.
138
387
 
139
388
  Obrigado!
@@ -142,5 +391,4 @@ Obrigado!
142
391
 
143
392
  ## Licença
144
393
 
145
- Essa biblioteca está disponível como projeto open source sob os termos da [Licença MIT](http://opensource.org/licenses/MIT).
146
-
394
+ Essa biblioteca está disponível como projeto open source sob os termos da [Licença MIT](http://opensource.org/licenses/MIT.
data/br_documents.gemspec CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
11
11
  spec.email = ["rafa_fidelis@yahoo.com.br"]
12
12
 
13
13
  spec.summary = %q{Coleção de validadores para documentos brasileiros}
14
- spec.description = %q{Esta gem implementa vários validadores de documentos oficiais brasileiros, como CPF, CNPJ, RG e Título de Eleitor}
14
+ spec.description = %q{Esta gem implementa vários validadores de documentos oficiais brasileiros, como CPF, CNPJ, Inscrição estadual, RG e Título de Eleitor}
15
15
  spec.homepage = "https://github.com/fidelisrafael/brazilian_documents"
16
16
  spec.license = "MIT"
17
17
 
@@ -20,8 +20,8 @@ Gem::Specification.new do |spec|
20
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
21
  spec.require_paths = ["lib"]
22
22
 
23
- spec.add_dependency 'digit_checksum', '~> 0.1.1'
24
- spec.add_development_dependency "bundler", "~> 1.12"
25
- spec.add_development_dependency "rake", "~> 10.0"
26
- spec.add_development_dependency "rspec", "~> 3.0"
23
+ spec.add_dependency 'digit_checksum', '~> 0.2.3'
24
+ spec.add_development_dependency 'bundler','~> 1.12'
25
+ spec.add_development_dependency 'rake', '~> 10.0'
26
+ spec.add_development_dependency 'rspec', '~> 3.0'
27
27
  end
data/lib/br_documents.rb CHANGED
@@ -1,6 +1,9 @@
1
+ require "digit_checksum"
2
+
1
3
  require "br_documents/version"
2
4
  require "br_documents/documents/cpf"
3
5
  require "br_documents/documents/cnpj"
6
+ require "br_documents/documents/ie"
4
7
 
5
8
  module BRDocuments
6
9
  end
@@ -1,23 +1,20 @@
1
- require "digit_checksum"
2
-
3
1
  module BRDocuments
4
2
  class CNPJ < ::DigitChecksum::BaseDocument
5
- digits_verify_mask first: %w(5 4 3 2 9 8 7 6 5 4 3 2),
6
- second: %w(6 5 4 3 2 9 8 7 6 5 4 3 2)
3
+ set_verify_digits_weights first: %w(5 4 3 2 9 8 7 6 5 4 3 2),
4
+ second: %w(6 5 4 3 2 9 8 7 6 5 4 3 2)
7
5
 
8
6
  # MOD 11
9
- division_factor_modulo 11
7
+ set_division_modulo 11
10
8
 
11
9
  # remove any non digit from document number
12
- clear_number_regexp %r{[^(\d+)]}
10
+ set_clear_number_regexp %r{[^(\d+)]}
13
11
 
14
12
  # match format such as: 99.999.999/9999-99 | 99-999-999/9999-99 | 99999999/999999 | 99999999999999
15
- valid_format_regexp %r{(\d{2})[-.]?(\d{3})[-.]?(\d{3})[\/]?(\d{4})[-.]?(\d{2})}
13
+ set_format_regexp %r{(\d{2})[-.]?(\d{3})[-.]?(\d{3})[\/]?(\d{4})[-.]?(\d{2})}
16
14
 
17
- # mask utilized to prettify doc number
18
- pretty_format_mask %(%s.%s.%s/%s-%s)
15
+ set_pretty_format_mask %(%s.%s.%s/%s-%s)
19
16
 
20
17
  # numbers sampled to generate new document numbers
21
- generator_numbers (0..9).to_a
18
+ set_generator_numbers (0..9).to_a
22
19
  end
23
20
  end
@@ -1,23 +1,20 @@
1
- require "digit_checksum"
2
-
3
1
  module BRDocuments
4
2
  class CPF < ::DigitChecksum::BaseDocument
5
- digits_verify_mask first: %w(10 9 8 7 6 5 4 3 2),
6
- second: %w(11 10 9 8 7 6 5 4 3 2)
3
+ set_verify_digits_weights first: %w(10 9 8 7 6 5 4 3 2),
4
+ second: %w(11 10 9 8 7 6 5 4 3 2)
7
5
 
8
6
  # MOD 11
9
- division_factor_modulo 11
7
+ set_division_modulo 11
10
8
 
11
9
  # remove any non digit from document number
12
- clear_number_regexp %r{[^(\d+)]}
10
+ set_clear_number_regexp %r{[^(\d+)]}
13
11
 
14
12
  # match format such as: 999.999.999-99 | 999-999-999-99 | 99999999999
15
- valid_format_regexp %r{(\d{3})[-.]?(\d{3})[-.]?(\d{3})[-.]?(\d{2})}
13
+ set_format_regexp %r{(\d{3})[-.]?(\d{3})[-.]?(\d{3})[-.]?(\d{2})}
16
14
 
17
- # mask utilized to prettify doc number
18
- pretty_format_mask %(%s.%s.%s-%s)
15
+ set_pretty_format_mask %(%s.%s.%s-%s)
19
16
 
20
17
  # numbers sampled to generate new document numbers
21
- generator_numbers (0..9).to_a
18
+ set_generator_numbers (0..9).to_a
22
19
  end
23
20
  end