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
@@ -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