brazilian_documents 0.1.1 → 0.1.2

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.
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
@@ -0,0 +1,12 @@
1
+ # http://www.sintegra.gov.br/Cad_Estados/cad_RS.html
2
+ module BRDocuments
3
+ class IE::RS < IE::Base
4
+
5
+ set_verify_digits_weights first: %w(2 9 8 7 6 5 4 3 2)
6
+
7
+ set_format_regexp %r{^(\d{3})[-.\/]?(\d{6})[-.]?(\d{1})}
8
+
9
+ set_pretty_format_mask %(%s/%s%s)
10
+
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # http://www.sintegra.gov.br/Cad_Estados/cad_SC.html
2
+ module BRDocuments
3
+ class IE::SC < IE::Base
4
+
5
+ set_verify_digits_weights first: %w(9 8 7 6 5 4 3 2)
6
+
7
+ set_format_regexp %r{^(\d{3})[-.]?(\d{3})[-.]?(\d{2})[-.]?(\d{1})}
8
+
9
+ set_pretty_format_mask %(%s.%s.%s%s)
10
+
11
+ end
12
+ end
@@ -0,0 +1,14 @@
1
+ # http://www.sintegra.gov.br/Cad_Estados/cad_SE.html
2
+ module BRDocuments
3
+ class IE::SE < IE::Base
4
+
5
+ set_verify_digits_weights first: %w(9 8 7 6 5 4 3 2)
6
+
7
+ set_format_regexp %r{^(27)(\d{3})[-.]?(\d{3})[-.]?(\d{1})}
8
+
9
+ set_pretty_format_mask %(%s.%s.%s-%s)
10
+
11
+ set_fixed_digits [2, 7]
12
+
13
+ end
14
+ end
@@ -0,0 +1,38 @@
1
+ # This class is a wrapper/interface to glue all SP IE generators and validators
2
+ module BRDocuments
3
+ module IE::SP
4
+ class << self
5
+
6
+ # Delegate all methods to specific class
7
+ def method_missing(method, *args)
8
+ class_for_number(args[0]).public_send(method, *args)
9
+ end
10
+
11
+ def generate(formatted = true, rural = false)
12
+ class_for(rural).generate(formatted)
13
+ end
14
+
15
+ def generate_root_numbers(rural = false)
16
+ class_for(rural).generate_root_numbers
17
+ end
18
+
19
+ def rural?(number)
20
+ !!(number.to_s.match(/^P/) && [11, 12].member?(number.to_s.gsub(/[^\d]/, '').size))
21
+ end
22
+
23
+ protected
24
+ def class_for_number(number)
25
+ class_for(rural?(number))
26
+ end
27
+
28
+ def class_for(rural)
29
+ class_name = class_name_for(rural)
30
+ IE::SP.const_get(class_name)
31
+ end
32
+
33
+ def class_name_for(rural = false)
34
+ rural ? "Rural" : "Industry"
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,22 @@
1
+ # http://www.sintegra.gov.br/Cad_Estados/cad_SP.html
2
+ module BRDocuments
3
+ module IE::SP
4
+ class Industry < IE::Base
5
+ set_root_digits_count 10
6
+
7
+ set_verify_digits_positions [8, 11]
8
+
9
+ set_verify_digits_weights first: %w(1 3 4 5 6 7 8 10),
10
+ last: %w(3 2 10 9 8 7 6 5 4 3 2)
11
+
12
+ set_format_regexp %r{(\d{3})[-.]?(\d{3})[-.]?(\d{3})[-.]?(\d{3})}
13
+
14
+ set_pretty_format_mask %(%s.%s.%s.%s)
15
+
16
+ # the last number from rest, WHY São Paulo??? IDK
17
+ def calc_verify_digit(quotient_rest)
18
+ quotient_rest.to_i.to_s[-1].to_i
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,21 @@
1
+ # http://www.sintegra.gov.br/Cad_Estados/cad_SP.html
2
+ module BRDocuments
3
+ module IE::SP
4
+ class Rural < IE::Base
5
+ set_root_digits_count 11
6
+
7
+ set_verify_digits_positions [8]
8
+
9
+ set_verify_digits_weights first: %w(1 3 4 5 6 7 8 10)
10
+
11
+ set_format_regexp %r{(P)?[-.]?(\d{8})[-.]?(\d{1})[\/]?(\d{3})}
12
+
13
+ set_pretty_format_mask %(P%s-%s.%s/%s)
14
+
15
+ # the last number from rest, WHY São Paulo??? IDK
16
+ def calc_verify_digit(quotient_rest)
17
+ quotient_rest.to_i.to_s[-1].to_i
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,14 @@
1
+ # http://www.sintegra.gov.br/Cad_Estados/cad_TO.html
2
+ module BRDocuments
3
+ class IE::TO < IE::Base
4
+
5
+ set_verify_digits_weights first: %w(9 8 7 6 5 4 3 2)
6
+
7
+ set_format_regexp %r{^(\d{2})[-.]?(\d{3})[-.]?(\d{3})[-.]?(\d{1})}
8
+
9
+ set_pretty_format_mask %(%s.%s.%s-%s)
10
+
11
+ set_fixed_digits [2, 9]
12
+
13
+ end
14
+ end
@@ -1,3 +1,3 @@
1
1
  module BRDocuments
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brazilian_documents
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rafael Fidelis
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-07-13 00:00:00.000000000 Z
11
+ date: 2016-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: digit_checksum
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.1
19
+ version: 0.2.3
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.1.1
26
+ version: 0.2.3
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '3.0'
69
69
  description: Esta gem implementa vários validadores de documentos oficiais brasileiros,
70
- como CPF, CNPJ, RG e Título de Eleitor
70
+ como CPF, CNPJ, Inscrição estadual, RG e Título de Eleitor
71
71
  email:
72
72
  - rafa_fidelis@yahoo.com.br
73
73
  executables: []
@@ -88,6 +88,48 @@ files:
88
88
  - lib/br_documents.rb
89
89
  - lib/br_documents/documents/cnpj.rb
90
90
  - lib/br_documents/documents/cpf.rb
91
+ - lib/br_documents/documents/ie.rb
92
+ - lib/br_documents/documents/ie/ac.rb
93
+ - lib/br_documents/documents/ie/al.rb
94
+ - lib/br_documents/documents/ie/am.rb
95
+ - lib/br_documents/documents/ie/ap.rb
96
+ - lib/br_documents/documents/ie/ba.rb
97
+ - lib/br_documents/documents/ie/ba/base.rb
98
+ - lib/br_documents/documents/ie/ba/digits8/modulo_10.rb
99
+ - lib/br_documents/documents/ie/ba/digits8/modulo_11.rb
100
+ - lib/br_documents/documents/ie/ba/digits9/modulo_10.rb
101
+ - lib/br_documents/documents/ie/ba/digits9/modulo_11.rb
102
+ - lib/br_documents/documents/ie/ba/modulo_10.rb
103
+ - lib/br_documents/documents/ie/ba/modulo_11.rb
104
+ - lib/br_documents/documents/ie/base.rb
105
+ - lib/br_documents/documents/ie/ce.rb
106
+ - lib/br_documents/documents/ie/df.rb
107
+ - lib/br_documents/documents/ie/es.rb
108
+ - lib/br_documents/documents/ie/go.rb
109
+ - lib/br_documents/documents/ie/ma.rb
110
+ - lib/br_documents/documents/ie/mg.rb
111
+ - lib/br_documents/documents/ie/ms.rb
112
+ - lib/br_documents/documents/ie/mt.rb
113
+ - lib/br_documents/documents/ie/pa.rb
114
+ - lib/br_documents/documents/ie/pb.rb
115
+ - lib/br_documents/documents/ie/pe.rb
116
+ - lib/br_documents/documents/ie/pe/current.rb
117
+ - lib/br_documents/documents/ie/pe/legacy.rb
118
+ - lib/br_documents/documents/ie/pi.rb
119
+ - lib/br_documents/documents/ie/pr.rb
120
+ - lib/br_documents/documents/ie/rj.rb
121
+ - lib/br_documents/documents/ie/rn.rb
122
+ - lib/br_documents/documents/ie/ro.rb
123
+ - lib/br_documents/documents/ie/ro/current.rb
124
+ - lib/br_documents/documents/ie/ro/legacy.rb
125
+ - lib/br_documents/documents/ie/rr.rb
126
+ - lib/br_documents/documents/ie/rs.rb
127
+ - lib/br_documents/documents/ie/sc.rb
128
+ - lib/br_documents/documents/ie/se.rb
129
+ - lib/br_documents/documents/ie/sp.rb
130
+ - lib/br_documents/documents/ie/sp/industry.rb
131
+ - lib/br_documents/documents/ie/sp/rural.rb
132
+ - lib/br_documents/documents/ie/to.rb
91
133
  - lib/br_documents/version.rb
92
134
  - lib/brazilian_documents.rb
93
135
  homepage: https://github.com/fidelisrafael/brazilian_documents