br_boleto 0.1.0
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/Gemfile +15 -0
- data/Gemfile.lock +145 -0
- data/History.txt +4 -0
- data/LICENSE +20 -0
- data/README.markdown +156 -0
- data/Rakefile +8 -0
- data/br_boleto.gemspec +26 -0
- data/lib/br_boleto.rb +87 -0
- data/lib/br_boleto/calculos/digitos.rb +35 -0
- data/lib/br_boleto/calculos/fator_vencimento.rb +129 -0
- data/lib/br_boleto/calculos/fatores_de_multiplicacao.rb +67 -0
- data/lib/br_boleto/calculos/linha_digitavel.rb +158 -0
- data/lib/br_boleto/calculos/modulo10.rb +83 -0
- data/lib/br_boleto/calculos/modulo11.rb +54 -0
- data/lib/br_boleto/calculos/modulo11_fator3197.rb +88 -0
- data/lib/br_boleto/calculos/modulo11_fator_de2a7.rb +97 -0
- data/lib/br_boleto/calculos/modulo11_fator_de2a9.rb +83 -0
- data/lib/br_boleto/calculos/modulo11_fator_de2a9_resto_zero.rb +29 -0
- data/lib/br_boleto/calculos/modulo11_fator_de9a2.rb +65 -0
- data/lib/br_boleto/calculos/modulo11_fator_de9a2_resto_x.rb +55 -0
- data/lib/br_boleto/calculos/modulo_numero_de_controle.rb +117 -0
- data/lib/br_boleto/core/boleto.rb +558 -0
- data/lib/br_boleto/core/sicoob.rb +169 -0
- data/lib/br_boleto/version.rb +8 -0
- data/test/br_boleto/calculos/digitos_test.rb +15 -0
- data/test/br_boleto/calculos/fator_vencimento_test.rb +56 -0
- data/test/br_boleto/calculos/fatores_de_multiplicacao_test.rb +66 -0
- data/test/br_boleto/calculos/linha_digitavel_test.rb +58 -0
- data/test/br_boleto/calculos/modulo10_test.rb +54 -0
- data/test/br_boleto/calculos/modulo11_fator3197_test.rb +43 -0
- data/test/br_boleto/calculos/modulo11_fator_de2a7_test.rb +44 -0
- data/test/br_boleto/calculos/modulo11_fator_de2a9_resto_zero_test.rb +40 -0
- data/test/br_boleto/calculos/modulo11_fator_de2a9_test.rb +68 -0
- data/test/br_boleto/calculos/modulo11_fator_de9a2_resto_x_test.rb +38 -0
- data/test/br_boleto/calculos/modulo11_fator_de9a2_test.rb +32 -0
- data/test/br_boleto/calculos/modulo11_test.rb +28 -0
- data/test/br_boleto/calculos/modulo_numero_de_controle_test.rb +38 -0
- data/test/br_boleto/core/boleto_test.rb +221 -0
- data/test/br_boleto/core/sicoob_test.rb +138 -0
- data/test/factories/boleto.rb +22 -0
- data/test/factories/boleto_sicoob.rb +23 -0
- data/test/inheritance/boleto_test.rb +15 -0
- data/test/inheritance/sicoob_test.rb +25 -0
- data/test/test_helper.rb +37 -0
- metadata +151 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 7779abe6dc0c653dd1e82299a4e9c89d2007e7c8
|
4
|
+
data.tar.gz: 95d6fe53fe8ffa6c007e682130176450df534c9b
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 035233e8e9c63da0579d77974df98b43cf9535bea8b184ff9ec94bcdfa865093bdffb3cbb766dd9b93a984fad0997e6c8da7fec02c3fb0afaf89eec915503bff
|
7
|
+
data.tar.gz: b38d7006eb7451b0a765e5d64d03466d33b4d484e12937aab3809a8a683531a0c3112c89bc5f69b9e2968430470885f48a62c0a75211239c0a4b041d16330004
|
data/Gemfile
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
source 'http://rubygems.org'
|
2
|
+
|
3
|
+
gemspec
|
4
|
+
|
5
|
+
group :test do
|
6
|
+
# gem "mocha", :require => false
|
7
|
+
gem "mocha", :require => false
|
8
|
+
gem "factory_girl_rails"
|
9
|
+
gem 'minitest-reporters'
|
10
|
+
gem 'minitest-rails'
|
11
|
+
gem 'minitest-spec-rails'
|
12
|
+
gem 'shoulda-matchers', require: false
|
13
|
+
gem "minitest-matchers_vaccine"
|
14
|
+
gem 'simplecov'
|
15
|
+
end
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,145 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
br_boleto (0.1.0)
|
5
|
+
activemodel (>= 4.1)
|
6
|
+
activesupport (>= 4.1)
|
7
|
+
rake
|
8
|
+
|
9
|
+
GEM
|
10
|
+
remote: http://rubygems.org/
|
11
|
+
specs:
|
12
|
+
actionmailer (4.2.3)
|
13
|
+
actionpack (= 4.2.3)
|
14
|
+
actionview (= 4.2.3)
|
15
|
+
activejob (= 4.2.3)
|
16
|
+
mail (~> 2.5, >= 2.5.4)
|
17
|
+
rails-dom-testing (~> 1.0, >= 1.0.5)
|
18
|
+
actionpack (4.2.3)
|
19
|
+
actionview (= 4.2.3)
|
20
|
+
activesupport (= 4.2.3)
|
21
|
+
rack (~> 1.6)
|
22
|
+
rack-test (~> 0.6.2)
|
23
|
+
rails-dom-testing (~> 1.0, >= 1.0.5)
|
24
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
25
|
+
actionview (4.2.3)
|
26
|
+
activesupport (= 4.2.3)
|
27
|
+
builder (~> 3.1)
|
28
|
+
erubis (~> 2.7.0)
|
29
|
+
rails-dom-testing (~> 1.0, >= 1.0.5)
|
30
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
31
|
+
activejob (4.2.3)
|
32
|
+
activesupport (= 4.2.3)
|
33
|
+
globalid (>= 0.3.0)
|
34
|
+
activemodel (4.2.3)
|
35
|
+
activesupport (= 4.2.3)
|
36
|
+
builder (~> 3.1)
|
37
|
+
activerecord (4.2.3)
|
38
|
+
activemodel (= 4.2.3)
|
39
|
+
activesupport (= 4.2.3)
|
40
|
+
arel (~> 6.0)
|
41
|
+
activesupport (4.2.3)
|
42
|
+
i18n (~> 0.7)
|
43
|
+
json (~> 1.7, >= 1.7.7)
|
44
|
+
minitest (~> 5.1)
|
45
|
+
thread_safe (~> 0.3, >= 0.3.4)
|
46
|
+
tzinfo (~> 1.1)
|
47
|
+
ansi (1.5.0)
|
48
|
+
arel (6.0.2)
|
49
|
+
builder (3.2.2)
|
50
|
+
docile (1.1.5)
|
51
|
+
erubis (2.7.0)
|
52
|
+
factory_girl (4.5.0)
|
53
|
+
activesupport (>= 3.0.0)
|
54
|
+
factory_girl_rails (4.5.0)
|
55
|
+
factory_girl (~> 4.5.0)
|
56
|
+
railties (>= 3.0.0)
|
57
|
+
globalid (0.3.5)
|
58
|
+
activesupport (>= 4.1.0)
|
59
|
+
i18n (0.7.0)
|
60
|
+
json (1.8.3)
|
61
|
+
loofah (2.0.2)
|
62
|
+
nokogiri (>= 1.5.9)
|
63
|
+
mail (2.6.3)
|
64
|
+
mime-types (>= 1.16, < 3)
|
65
|
+
metaclass (0.0.4)
|
66
|
+
mime-types (2.6.1)
|
67
|
+
mini_portile (0.6.2)
|
68
|
+
minitest (5.7.0)
|
69
|
+
minitest-matchers_vaccine (1.0.3)
|
70
|
+
minitest (~> 5.0)
|
71
|
+
minitest-rails (2.2.0)
|
72
|
+
minitest (~> 5.7)
|
73
|
+
railties (~> 4.1)
|
74
|
+
minitest-reporters (1.0.19)
|
75
|
+
ansi
|
76
|
+
builder
|
77
|
+
minitest (>= 5.0)
|
78
|
+
ruby-progressbar
|
79
|
+
minitest-spec-rails (5.2.2)
|
80
|
+
minitest (~> 5.0)
|
81
|
+
rails (~> 4.1)
|
82
|
+
mocha (1.1.0)
|
83
|
+
metaclass (~> 0.0.1)
|
84
|
+
nokogiri (1.6.6.2)
|
85
|
+
mini_portile (~> 0.6.0)
|
86
|
+
rack (1.6.4)
|
87
|
+
rack-test (0.6.3)
|
88
|
+
rack (>= 1.0)
|
89
|
+
rails (4.2.3)
|
90
|
+
actionmailer (= 4.2.3)
|
91
|
+
actionpack (= 4.2.3)
|
92
|
+
actionview (= 4.2.3)
|
93
|
+
activejob (= 4.2.3)
|
94
|
+
activemodel (= 4.2.3)
|
95
|
+
activerecord (= 4.2.3)
|
96
|
+
activesupport (= 4.2.3)
|
97
|
+
bundler (>= 1.3.0, < 2.0)
|
98
|
+
railties (= 4.2.3)
|
99
|
+
sprockets-rails
|
100
|
+
rails-deprecated_sanitizer (1.0.3)
|
101
|
+
activesupport (>= 4.2.0.alpha)
|
102
|
+
rails-dom-testing (1.0.6)
|
103
|
+
activesupport (>= 4.2.0.beta, < 5.0)
|
104
|
+
nokogiri (~> 1.6.0)
|
105
|
+
rails-deprecated_sanitizer (>= 1.0.1)
|
106
|
+
rails-html-sanitizer (1.0.2)
|
107
|
+
loofah (~> 2.0)
|
108
|
+
railties (4.2.3)
|
109
|
+
actionpack (= 4.2.3)
|
110
|
+
activesupport (= 4.2.3)
|
111
|
+
rake (>= 0.8.7)
|
112
|
+
thor (>= 0.18.1, < 2.0)
|
113
|
+
rake (10.4.2)
|
114
|
+
ruby-progressbar (1.7.5)
|
115
|
+
shoulda-matchers (2.8.0)
|
116
|
+
activesupport (>= 3.0.0)
|
117
|
+
simplecov (0.10.0)
|
118
|
+
docile (~> 1.1.0)
|
119
|
+
json (~> 1.8)
|
120
|
+
simplecov-html (~> 0.10.0)
|
121
|
+
simplecov-html (0.10.0)
|
122
|
+
sprockets (3.2.0)
|
123
|
+
rack (~> 1.0)
|
124
|
+
sprockets-rails (2.3.2)
|
125
|
+
actionpack (>= 3.0)
|
126
|
+
activesupport (>= 3.0)
|
127
|
+
sprockets (>= 2.8, < 4.0)
|
128
|
+
thor (0.19.1)
|
129
|
+
thread_safe (0.3.5)
|
130
|
+
tzinfo (1.2.2)
|
131
|
+
thread_safe (~> 0.1)
|
132
|
+
|
133
|
+
PLATFORMS
|
134
|
+
ruby
|
135
|
+
|
136
|
+
DEPENDENCIES
|
137
|
+
br_boleto!
|
138
|
+
factory_girl_rails
|
139
|
+
minitest-matchers_vaccine
|
140
|
+
minitest-rails
|
141
|
+
minitest-reporters
|
142
|
+
minitest-spec-rails
|
143
|
+
mocha
|
144
|
+
shoulda-matchers
|
145
|
+
simplecov
|
data/History.txt
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2015 Bruno M. Mergen
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.markdown
ADDED
@@ -0,0 +1,156 @@
|
|
1
|
+
# BrBoleto
|
2
|
+
|
3
|
+
Emissão de Boletos Bancários em Ruby.
|
4
|
+
|
5
|
+
## Versão 1.0.0
|
6
|
+
|
7
|
+
Por enquanto esta gem apenas faz os cálculos para o banco sicoob.
|
8
|
+
|
9
|
+
## Alternativas
|
10
|
+
|
11
|
+
Essa biblioteca é baseada em outras **ótimas** bibliotecas.
|
12
|
+
**Recomendo analisar muito bem cada solução**:
|
13
|
+
|
14
|
+
* Stella Caelum [http://stella.caelum.com.br/](http://stella.caelum.com.br/)
|
15
|
+
* Novo Gateway de Pagamentos da Locaweb [http://www.locaweb.com.br/produtos/gateway-pagamento.html](http://www.locaweb.com.br/produtos/gateway-pagamento.html)
|
16
|
+
* Brcobranca [https://github.com/kivanio/brcobranca](https://github.com/kivanio/brcobranca)
|
17
|
+
* Boleto Php [http://boletophp.com.br/](http://boletophp.com.br/)
|
18
|
+
* Gem de Boleto Bancário [https://github.com/tomas-stefano/boleto_bancario](https://github.com/tomas-stefano/boleto_bancario)
|
19
|
+
|
20
|
+
## Instalação
|
21
|
+
**Manual**
|
22
|
+
|
23
|
+
gem install br_boleto
|
24
|
+
|
25
|
+
**Instalação via Gemfile**
|
26
|
+
|
27
|
+
gem 'br_boleto'
|
28
|
+
|
29
|
+
## Documentação
|
30
|
+
|
31
|
+
Seguimos as documentações descritas abaixo:
|
32
|
+
|
33
|
+
* [Sicoob](documentacoes_boletos/Sicoob)
|
34
|
+
|
35
|
+
|
36
|
+
## Bancos Suportados
|
37
|
+
|
38
|
+
Para todos os bancos e carteiras implementadas, **seguimos as documentações** que estão dentro do repositório:
|
39
|
+
|
40
|
+
<table>
|
41
|
+
<tr>
|
42
|
+
<th>Nome do Banco</th>
|
43
|
+
<th>Carteiras Suportadas</th>
|
44
|
+
<th>Testada/Homologada no banco</th>
|
45
|
+
</tr>
|
46
|
+
<tr>
|
47
|
+
<td>Sicoob</td>
|
48
|
+
<td>1, 3.</td>
|
49
|
+
<td>Emm andamento...</td>
|
50
|
+
</tr>
|
51
|
+
</table>
|
52
|
+
|
53
|
+
## Usage
|
54
|
+
|
55
|
+
Você pode usar as próprias classes da gem, porém, **recomendo criar uma subclasse** para os bancos que você gostaria de desenvolver.
|
56
|
+
|
57
|
+
### Exemplo
|
58
|
+
|
59
|
+
```ruby
|
60
|
+
class BoletoSicoob < BrBoleto::Sicoob
|
61
|
+
end
|
62
|
+
|
63
|
+
```
|
64
|
+
|
65
|
+
### Criando os boletos / Validações
|
66
|
+
|
67
|
+
Agora você pode emitir um boleto, **usando a classe criada no exemplo acima**:
|
68
|
+
|
69
|
+
```ruby
|
70
|
+
BoletoSicoob.new(agencia: '3195', codigo_cedente: '6532', numero_documento: '1101', carteira: '1', valor_documento: 105.78)
|
71
|
+
```
|
72
|
+
|
73
|
+
Você pode usar blocos se quiser:
|
74
|
+
|
75
|
+
```ruby
|
76
|
+
boleto_sicoob = BoletoSicoob.new do |boleto|
|
77
|
+
boleto.agencia = '0097'
|
78
|
+
boleto.carteira = '1'
|
79
|
+
boleto.cedente = 'Razao Social da Empresa'
|
80
|
+
boleto.codigo_cedente = '90901'
|
81
|
+
boleto.endereco_cedente = 'Rua nome da rua, 9999'
|
82
|
+
boleto.numero_documento = '12345678'
|
83
|
+
boleto.sacado = 'Nome do Sacado'
|
84
|
+
boleto.documento_sacado = '35433793990'
|
85
|
+
boleto.data_vencimento = Date.tomorrow
|
86
|
+
boleto.valor_documento = 31678.99
|
87
|
+
end
|
88
|
+
```
|
89
|
+
|
90
|
+
**Cada banco possui suas próprias validações de campo e de tamanho**.
|
91
|
+
Primeiramente, **antes de renderizar qualquer boleto você precisar verificar se esse o boleto é válido**.
|
92
|
+
|
93
|
+
```ruby
|
94
|
+
if boleto_sicoob.valid?
|
95
|
+
# Renderiza o boleto itau
|
96
|
+
else
|
97
|
+
# Trata os erros
|
98
|
+
end
|
99
|
+
```
|
100
|
+
|
101
|
+
### Campos do Boleto
|
102
|
+
|
103
|
+
Segue abaixo os métodos para serem chamados, no momento de renderizar os boletos. Os campos são de mesmo nome:
|
104
|
+
|
105
|
+
```ruby
|
106
|
+
boleto_sicoob.codigo_banco_formatado # Retorna o código do banco, junto com seu dígito
|
107
|
+
|
108
|
+
boleto_sicoob.codigo_de_barras
|
109
|
+
|
110
|
+
boleto_sicoob.linha_digitavel
|
111
|
+
|
112
|
+
boleto_sicoob.nosso_numero
|
113
|
+
|
114
|
+
boleto_sicoob.agencia_codigo_cedente
|
115
|
+
|
116
|
+
boleto_sicoob.carteira_formatada # Formata a carteira, para mostrar no boleto.
|
117
|
+
|
118
|
+
boleto_sicoob.numero_documento
|
119
|
+
|
120
|
+
boleto_sicoob.valor_documento
|
121
|
+
|
122
|
+
boleto_sicoob.especie
|
123
|
+
|
124
|
+
boleto_sicoob.especie_documento
|
125
|
+
```
|
126
|
+
|
127
|
+
## Sobrescrevendo comportamentos
|
128
|
+
|
129
|
+
Você pode sobrescrever os comportamentos na subclasse.
|
130
|
+
|
131
|
+
Por exemplo, imagine que você quer sobrescrever a forma como é tratada a segunda parte do código de barras.
|
132
|
+
**Seguindo a interface da classe BrBoleto::Boleto** fica bem simples:
|
133
|
+
|
134
|
+
```ruby
|
135
|
+
class BoletoSicoob < BrBoleto::Sicoob
|
136
|
+
def codigo_de_barras_do_banco
|
137
|
+
# Sua implementação ...
|
138
|
+
end
|
139
|
+
end
|
140
|
+
```
|
141
|
+
|
142
|
+
## Contribuições
|
143
|
+
|
144
|
+
Seja um contribuidor. Você pode contribuir de N formas. Seguem elas:
|
145
|
+
|
146
|
+
* Criar boletos para outros bancos.
|
147
|
+
* Homologando boletos junto ao banco.
|
148
|
+
* Fornecendo documentações mais atualizadas dos Bancos.
|
149
|
+
* Escrevendo novos formatos (PDF, PNG), e me avisando para divulgar no Readme.
|
150
|
+
* Refatorando código!!
|
151
|
+
* Fornecendo Feedback construtivo! (Sempre bem vindo!)
|
152
|
+
|
153
|
+
## Licença
|
154
|
+
|
155
|
+
- BSD
|
156
|
+
- Copyleft 2015 Bruno M. Mergen
|
data/Rakefile
ADDED
data/br_boleto.gemspec
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require File.expand_path('../lib/br_boleto/version', __FILE__)
|
3
|
+
|
4
|
+
Gem::Specification.new do |gem|
|
5
|
+
gem.authors = ["Bruno M. Mergen"]
|
6
|
+
gem.email = ["brunomergen@gmail.com"]
|
7
|
+
gem.description = %q{Emissão de Boletos Bancários em Ruby}
|
8
|
+
gem.summary = %q{Emissão de Boletos Bancários em Ruby}
|
9
|
+
gem.homepage = "https://github.com/Brunomm/br_boleto"
|
10
|
+
gem.license = "BSD"
|
11
|
+
|
12
|
+
gem.files = `git ls-files`.split($\).reject { |f| ['.pdf','.xls'].include?(File.extname(f)) }
|
13
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
14
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
15
|
+
gem.name = "br_boleto"
|
16
|
+
gem.require_paths = ["lib"]
|
17
|
+
gem.version = BrBoleto::Version::CURRENT
|
18
|
+
|
19
|
+
gem.required_ruby_version = '>= 2.1'
|
20
|
+
|
21
|
+
|
22
|
+
gem.add_dependency "rake", '>= 0.8.7'
|
23
|
+
gem.add_dependency "activesupport", '~> 4.2'
|
24
|
+
gem.add_dependency "activemodel", '~> 4.2'
|
25
|
+
|
26
|
+
end
|
data/lib/br_boleto.rb
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'br_boleto/version'
|
3
|
+
require 'active_model'
|
4
|
+
require 'active_support/core_ext/class'
|
5
|
+
require 'active_support/core_ext/enumerable'
|
6
|
+
require 'active_support/core_ext/object'
|
7
|
+
require 'active_support/core_ext/string'
|
8
|
+
|
9
|
+
# Copyright (C) 2015 Bruno M. Mergen <http://duobr.com.br>
|
10
|
+
#
|
11
|
+
# @author Bruno Mucelini Mergen <brunomergen@gmail.com>
|
12
|
+
#
|
13
|
+
# == Boleto Bancário
|
14
|
+
#
|
15
|
+
# Emissão de Boletos Bancários em Ruby. Simples e principalmente, flexível.
|
16
|
+
#
|
17
|
+
# Essa biblioteca é baseada em outras <b>ótimas</b> bibliotecas.
|
18
|
+
# Recomendo analisar muito bem cada solução!
|
19
|
+
#
|
20
|
+
# * Novo Gateway de Pagamentos da Locaweb: http://www.locaweb.com.br/produtos/gateway-pagamento.html
|
21
|
+
# * Brcobranca: https://github.com/kivanio/brcobranca
|
22
|
+
# * Boleto Php: http://boletophp.com.br
|
23
|
+
# * Stella Caelum: http://stella.caelum.com.br
|
24
|
+
# * BoletoBancario: https://github.com/tomas-stefano/boleto_bancario
|
25
|
+
#
|
26
|
+
# === Instalação via Rubygems
|
27
|
+
#
|
28
|
+
# gem install br_boleto
|
29
|
+
#
|
30
|
+
# === Instalar via Bundler
|
31
|
+
#
|
32
|
+
# Coloque no Gemfile:
|
33
|
+
#
|
34
|
+
# gem 'br_boleto'
|
35
|
+
#
|
36
|
+
# Depois de colocar no Gemfile:
|
37
|
+
#
|
38
|
+
# bundle install
|
39
|
+
#
|
40
|
+
module BrBoleto
|
41
|
+
# Modulo responsável por guardar todas as regras dos campos de
|
42
|
+
# todos os Boletos Bancários. <b>Contribuicões com novas documentações dos
|
43
|
+
# bancos e homologação dos boletos são extremamente bem vindas!</b>
|
44
|
+
#
|
45
|
+
# Esse módulo também é responsável por guardar todas as regras de validação dos boletos e
|
46
|
+
# contém a forma de chamar os objetos necessários para renderização
|
47
|
+
# dos formatos (pdf, html, etc) e internacionalização dos boletos (caso
|
48
|
+
# você precise mudar os nomes dos campos nos boletos)
|
49
|
+
#
|
50
|
+
module Core
|
51
|
+
extend ActiveSupport::Autoload
|
52
|
+
|
53
|
+
autoload :Boleto
|
54
|
+
autoload :BancoBrasil
|
55
|
+
autoload :Banrisul
|
56
|
+
autoload :Bradesco
|
57
|
+
autoload :Caixa
|
58
|
+
autoload :Hsbc
|
59
|
+
autoload :Itau
|
60
|
+
autoload :Real
|
61
|
+
autoload :Santander
|
62
|
+
autoload :Sicredi
|
63
|
+
autoload :Sicoob
|
64
|
+
end
|
65
|
+
|
66
|
+
# Módulo que possui classes que realizam os cálculos dos campos que serão mostrados nos boletos.
|
67
|
+
#
|
68
|
+
module Calculos
|
69
|
+
extend ActiveSupport::Autoload
|
70
|
+
|
71
|
+
autoload :FatorVencimento
|
72
|
+
autoload :FatoresDeMultiplicacao
|
73
|
+
autoload :LinhaDigitavel
|
74
|
+
autoload :Modulo10
|
75
|
+
autoload :Modulo11
|
76
|
+
autoload :Modulo11FatorDe2a9
|
77
|
+
autoload :Modulo11Fator3197
|
78
|
+
autoload :Modulo11FatorDe2a9RestoZero
|
79
|
+
autoload :Modulo11FatorDe2a7
|
80
|
+
autoload :Modulo11FatorDe9a2
|
81
|
+
autoload :Modulo11FatorDe9a2RestoX
|
82
|
+
autoload :ModuloNumeroDeControle
|
83
|
+
autoload :Digitos
|
84
|
+
end
|
85
|
+
|
86
|
+
include Core
|
87
|
+
end
|