conectiva-boleto_bancario 0.0.2.beta
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +18 -0
- data/.rspec +1 -0
- data/.rvmrc +1 -0
- data/Changelog.markdown +10 -0
- data/Gemfile +3 -0
- data/LICENSE +22 -0
- data/Planning.markdown +137 -0
- data/README.markdown +215 -0
- data/Rakefile +9 -0
- data/TODO.markdown +11 -0
- data/boleto_bancario.gemspec +25 -0
- data/documentacoes_dos_boletos/Bradesco/Manual_BRADESCO.PDF +0 -0
- data/lib/boleto_bancario.rb +85 -0
- data/lib/boleto_bancario/calculos/digitos.rb +35 -0
- data/lib/boleto_bancario/calculos/fator_vencimento.rb +87 -0
- data/lib/boleto_bancario/calculos/fatores_de_multiplicacao.rb +67 -0
- data/lib/boleto_bancario/calculos/linha_digitavel.rb +158 -0
- data/lib/boleto_bancario/calculos/modulo10.rb +83 -0
- data/lib/boleto_bancario/calculos/modulo11.rb +54 -0
- data/lib/boleto_bancario/calculos/modulo11_fator_de2a7.rb +97 -0
- data/lib/boleto_bancario/calculos/modulo11_fator_de2a9.rb +83 -0
- data/lib/boleto_bancario/calculos/modulo11_fator_de2a9_resto_zero.rb +29 -0
- data/lib/boleto_bancario/calculos/modulo11_fator_de9a2_resto_x.rb +101 -0
- data/lib/boleto_bancario/calculos/modulo_numero_de_controle.rb +117 -0
- data/lib/boleto_bancario/core/banco_brasil.rb +532 -0
- data/lib/boleto_bancario/core/banrisul.rb +182 -0
- data/lib/boleto_bancario/core/boleto.rb +559 -0
- data/lib/boleto_bancario/core/bradesco.rb +285 -0
- data/lib/boleto_bancario/core/itau.rb +455 -0
- data/lib/boleto_bancario/core/santander.rb +273 -0
- data/lib/boleto_bancario/version.rb +4 -0
- data/spec/boleto_bancario/calculos/digitos_spec.rb +19 -0
- data/spec/boleto_bancario/calculos/fator_vencimento_spec.rb +59 -0
- data/spec/boleto_bancario/calculos/fatores_de_multiplicacao_spec.rb +69 -0
- data/spec/boleto_bancario/calculos/linha_digitavel_spec.rb +57 -0
- data/spec/boleto_bancario/calculos/modulo10_spec.rb +53 -0
- data/spec/boleto_bancario/calculos/modulo11_fator_de2a7_spec.rb +43 -0
- data/spec/boleto_bancario/calculos/modulo11_fator_de2a9_resto_zero_spec.rb +39 -0
- data/spec/boleto_bancario/calculos/modulo11_fator_de2a9_spec.rb +67 -0
- data/spec/boleto_bancario/calculos/modulo11_fator_de9a2_resto_x_spec.rb +37 -0
- data/spec/boleto_bancario/calculos/modulo11_spec.rb +19 -0
- data/spec/boleto_bancario/calculos/modulo_numero_de_controle_spec.rb +37 -0
- data/spec/boleto_bancario/core/banco_brasil_spec.rb +383 -0
- data/spec/boleto_bancario/core/banrisul_spec.rb +130 -0
- data/spec/boleto_bancario/core/boleto_spec.rb +161 -0
- data/spec/boleto_bancario/core/bradesco_spec.rb +170 -0
- data/spec/boleto_bancario/core/itau_spec.rb +336 -0
- data/spec/boleto_bancario/core/santander_spec.rb +135 -0
- data/spec/shared_examples/boleto_bancario_shared_example.rb +157 -0
- data/spec/spec_helper.rb +14 -0
- metadata +211 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 298fc3490e425163cd1e07ec2048f99588e45ab0
|
4
|
+
data.tar.gz: d1b03969c89da2e59f1add6971f1a60e2da32fad
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e0ad2738b0e28ababe687be5ef35630ce0c57ff0bd625003512e04310a189a78a65cd49f6b65029296d1498eae410e899734ac1232427b1855da3eaac8cbd0cc
|
7
|
+
data.tar.gz: 24d3efc46215911a1db98e56b003de385905dc4a43c6980c6753daf0d797b4d069382cfa5084344d8726cd68d08495c75914ba3be932ab5164b35abc950c8988
|
data/.gitignore
ADDED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color -f d
|
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm 1.9.3@boleto_bancario --create
|
data/Changelog.markdown
ADDED
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2012 Tomas D'Stefano http://successoft.com
|
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/Planning.markdown
ADDED
@@ -0,0 +1,137 @@
|
|
1
|
+
# BoletoBancario
|
2
|
+
|
3
|
+
Emissão de Boletos Bancários em Ruby. Simples, fácil e principalmente, flexível.
|
4
|
+
|
5
|
+
## Alternativas
|
6
|
+
|
7
|
+
Essa biblioteca é baseada em outras **ótimas** bibliotecas (**Recomendo analisar muito bem cada solução e usar a que resolver o seu problema!**):
|
8
|
+
|
9
|
+
* Stella Caelum [http://stella.caelum.com.br/](http://stella.caelum.com.br/)
|
10
|
+
* Novo Gateway de Pagamentos da Locaweb [http://www.locaweb.com.br/produtos/gateway-pagamento.html](http://www.locaweb.com.br/produtos/gateway-pagamento.html)
|
11
|
+
* Brcobranca [https://github.com/kivanio/brcobranca](https://github.com/kivanio/brcobranca)
|
12
|
+
* Boleto Php [http://boletophp.com.br/](http://boletophp.com.br/)
|
13
|
+
* Gem de Boleto Bancário (essa gem) [https://github.com/tomas-stefano/boleto_bancario](https://github.com/tomas-stefano/boleto_bancario)
|
14
|
+
|
15
|
+
## Instalação
|
16
|
+
|
17
|
+
gem install boleto_bancario
|
18
|
+
|
19
|
+
## Bancos Suportados
|
20
|
+
|
21
|
+
* TODO: Precisa escrever essa parte
|
22
|
+
|
23
|
+
## Usage
|
24
|
+
|
25
|
+
Você pode usar as próprias classes da gem, porém, **recomendo criar uma subclasse** para os bancos que você gostaria de desenvolver.
|
26
|
+
|
27
|
+
Exemplo:
|
28
|
+
|
29
|
+
```ruby
|
30
|
+
class Itau < BoletoBancario::Itau
|
31
|
+
end
|
32
|
+
|
33
|
+
class Santander < BoletoBancario::Santander
|
34
|
+
end
|
35
|
+
|
36
|
+
class Bradesco < BoletoBancario::Bradesco
|
37
|
+
end
|
38
|
+
|
39
|
+
class BancoBrasil < BoletoBancario::BancoBrasil
|
40
|
+
end
|
41
|
+
```
|
42
|
+
|
43
|
+
## Attributos
|
44
|
+
|
45
|
+
* TODO: Precisa escrever essa parte
|
46
|
+
|
47
|
+
## Internacionalização (i18n)
|
48
|
+
|
49
|
+
* TODO: Precisa escrever essa parte
|
50
|
+
|
51
|
+
## Validações
|
52
|
+
|
53
|
+
* TODO: Precisa escrever essa parte
|
54
|
+
|
55
|
+
## Código do Banco
|
56
|
+
|
57
|
+
* TODO: Precisa escrever essa parte
|
58
|
+
|
59
|
+
## Agência / Código do Cedente
|
60
|
+
|
61
|
+
* TODO: Precisa escrever essa parte
|
62
|
+
|
63
|
+
## Nosso Número
|
64
|
+
|
65
|
+
* TODO: Precisa escrever essa parte
|
66
|
+
|
67
|
+
## Código de Barras
|
68
|
+
|
69
|
+
* TODO: Precisa escrever essa parte
|
70
|
+
|
71
|
+
## Linha digitável
|
72
|
+
|
73
|
+
* TODO: Precisa escrever essa parte
|
74
|
+
|
75
|
+
## Documentação
|
76
|
+
|
77
|
+
* TODO: Precisa escrever essa parte
|
78
|
+
|
79
|
+
## Formatos
|
80
|
+
|
81
|
+
* TODO: Essa parte ainda pode mudar até a versão 0.0.1.
|
82
|
+
|
83
|
+
Colocar na classe:
|
84
|
+
|
85
|
+
```ruby
|
86
|
+
class BoletoItau < BoletoBancario::Itau
|
87
|
+
respond_to :html, :pdf, :png
|
88
|
+
end
|
89
|
+
```
|
90
|
+
|
91
|
+
Para renderizar o html:
|
92
|
+
|
93
|
+
```ruby
|
94
|
+
itau = BoletoItau.new
|
95
|
+
|
96
|
+
itau.respond_with # Irá chamar o método render da instância do objeto passado no método format.
|
97
|
+
|
98
|
+
itau.respond_with(:pdf)
|
99
|
+
```
|
100
|
+
|
101
|
+
### Criando um novo Formato
|
102
|
+
|
103
|
+
Em relação a parte de formatos a gem de boleto bancário é extremamente flexível.
|
104
|
+
|
105
|
+
Basta criar um objeto que responda ao método **render**:
|
106
|
+
|
107
|
+
```ruby
|
108
|
+
module BoletoBancario
|
109
|
+
module Formato
|
110
|
+
class Html < Boleto
|
111
|
+
def render(*args)
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
```
|
117
|
+
|
118
|
+
```ruby
|
119
|
+
module BoletoBancario
|
120
|
+
module Formato
|
121
|
+
class Pdf < Boleto
|
122
|
+
def render(*args)
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
127
|
+
```
|
128
|
+
|
129
|
+
## Contribuições
|
130
|
+
|
131
|
+
Seja um contribuidor. Você pode contribuir de N formas. Seguem elas:
|
132
|
+
|
133
|
+
* Homologando boletos junto ao banco.
|
134
|
+
* Fornecendo documentações mais atualizadas dos Bancos.
|
135
|
+
* Escrevendo novos formatos (PDF, PNG), e me avisando para divulgar no Readme.
|
136
|
+
* Refatorando código!!
|
137
|
+
* Fornecendo Feedback construtivo! (Sempre bem vindo!)
|
data/README.markdown
ADDED
@@ -0,0 +1,215 @@
|
|
1
|
+
# BoletoBancario
|
2
|
+
|
3
|
+
Emissão de Boletos Bancários em Ruby.
|
4
|
+
|
5
|
+
Foi colocado um esforço enorme para tornar a gem **simples e principalmente, flexível**.
|
6
|
+
|
7
|
+
## Versão Beta
|
8
|
+
|
9
|
+
Essa gem ainda está em versão beta. Algumas coisas podem mudar até que a versão oficial seja lançada.
|
10
|
+
|
11
|
+
## Alternativas
|
12
|
+
|
13
|
+
Essa biblioteca é baseada em outras **ótimas** bibliotecas.
|
14
|
+
**Recomendo analisar muito bem cada solução**:
|
15
|
+
|
16
|
+
* Stella Caelum [http://stella.caelum.com.br/](http://stella.caelum.com.br/)
|
17
|
+
* Novo Gateway de Pagamentos da Locaweb [http://www.locaweb.com.br/produtos/gateway-pagamento.html](http://www.locaweb.com.br/produtos/gateway-pagamento.html)
|
18
|
+
* Brcobranca [https://github.com/kivanio/brcobranca](https://github.com/kivanio/brcobranca)
|
19
|
+
* Boleto Php [http://boletophp.com.br/](http://boletophp.com.br/)
|
20
|
+
* Gem de Boleto Bancário (essa gem) [https://github.com/tomas-stefano/boleto_bancario](https://github.com/tomas-stefano/boleto_bancario)
|
21
|
+
|
22
|
+
## Instalação
|
23
|
+
|
24
|
+
gem install boleto_bancario
|
25
|
+
|
26
|
+
## Documentação
|
27
|
+
|
28
|
+
Seguimos todas as documentações descritas abaixo:
|
29
|
+
|
30
|
+
* [Bradesco](https://github.com/tomas-stefano/boleto_bancario/tree/master/documentacoes_dos_boletos/bradesco)
|
31
|
+
* [Banco do Brasil](https://github.com/tomas-stefano/boleto_bancario/tree/master/documentacoes_dos_boletos/banco_brasil)
|
32
|
+
* [Itaú](https://github.com/tomas-stefano/boleto_bancario/tree/master/documentacoes_dos_boletos/itau)
|
33
|
+
* [Santander](https://github.com/tomas-stefano/boleto_bancario/tree/master/documentacoes_dos_boletos/santander)
|
34
|
+
|
35
|
+
Se você tiver uma documentação do boleto, **mais atualizada**, gostaria de pedir que você me enviasse. :)
|
36
|
+
|
37
|
+
## Bancos Suportados
|
38
|
+
|
39
|
+
Para todos os bancos e carteiras implementadas, **seguimos as documentações** que estão dentro do repositório:
|
40
|
+
|
41
|
+
<table>
|
42
|
+
<tr>
|
43
|
+
<th>Nome do Banco</th>
|
44
|
+
<th>Carteiras Suportadas</th>
|
45
|
+
<th>Testada/Homologada no banco</th>
|
46
|
+
</tr>
|
47
|
+
<tr>
|
48
|
+
<td>Banco do Brasil</td>
|
49
|
+
<td>
|
50
|
+
12 com código do cedente de 6 dígitos,
|
51
|
+
16 e 18 com código do cedente de 4 dígitos,
|
52
|
+
16 e 18 com código do cedente e nosso número de 17 dígitos,
|
53
|
+
16 e 18 com código do cedente de 6 dígitos,
|
54
|
+
16, 17 e 18 código do cedente de 7 e 8 dígitos.
|
55
|
+
</td>
|
56
|
+
<td>Esperando Contribuição</td>
|
57
|
+
</tr>
|
58
|
+
<tr>
|
59
|
+
<td>Itaú</td>
|
60
|
+
<td>107, 109, 122, 142, 143, 126, 174, 175, 196, 198, 131, 146, 150, 168.</td>
|
61
|
+
<td>Esperando Contribuição</td>
|
62
|
+
</tr>
|
63
|
+
<tr>
|
64
|
+
<td>Bradesco</td>
|
65
|
+
<td>03, 06, 09, 19, 21, 22.</td>
|
66
|
+
<td>Esperando Contribuição</td>
|
67
|
+
</tr>
|
68
|
+
<tr>
|
69
|
+
<td>Santander</td>
|
70
|
+
<td>101, 102, 121.</td>
|
71
|
+
<td>Esperando Contribuição</td>
|
72
|
+
</tr>
|
73
|
+
</table>
|
74
|
+
|
75
|
+
**OBS.: Caso a homologação seja aceita junto ao banco, contribua e mude a seção acima. Caso recuse alguma carteira acima, por favor me avise, para tirar dessa lista.**
|
76
|
+
|
77
|
+
## Homologação no Banco
|
78
|
+
|
79
|
+
Uma ótima forma de contribuir para a gem, é validar junto ao banco os boletos implementados acima.
|
80
|
+
|
81
|
+
## Usage
|
82
|
+
|
83
|
+
Você pode usar as próprias classes da gem, porém, **recomendo criar uma subclasse** para os bancos que você gostaria de desenvolver.
|
84
|
+
|
85
|
+
### Exemplo
|
86
|
+
|
87
|
+
```ruby
|
88
|
+
class BoletoItau < BoletoBancario::Itau
|
89
|
+
end
|
90
|
+
|
91
|
+
class BoletoSantander < BoletoBancario::Santander
|
92
|
+
end
|
93
|
+
|
94
|
+
class BoletoBradesco < BoletoBancario::Bradesco
|
95
|
+
end
|
96
|
+
|
97
|
+
class BoletoBancoBrasil < BoletoBancario::BancoBrasil
|
98
|
+
end
|
99
|
+
```
|
100
|
+
|
101
|
+
Segue os attributos dos boletos:
|
102
|
+
|
103
|
+
* Agência
|
104
|
+
* Dígito da agência
|
105
|
+
* Conta Corrente
|
106
|
+
* Dígito da Conta Corrente
|
107
|
+
* Carteira
|
108
|
+
* Cedente
|
109
|
+
* Código do Cedente
|
110
|
+
* Documento do Cedente
|
111
|
+
* Endereço do Cedente
|
112
|
+
* Sacado
|
113
|
+
* Documento do Sacado
|
114
|
+
* Código da Moeda
|
115
|
+
* Data do documento
|
116
|
+
* Data do vencimento
|
117
|
+
* Número do documento
|
118
|
+
* Valor do documento (valor do boleto)
|
119
|
+
* Espécie
|
120
|
+
* Espécie do documento
|
121
|
+
|
122
|
+
### Criando os boletos / Validações
|
123
|
+
|
124
|
+
Agora você pode emitir um boleto, **usando a classe criada no exemplo acima**:
|
125
|
+
|
126
|
+
BoletoItau.new(conta_corrente: '89755', agencia: '0097', :carteira => '195')
|
127
|
+
|
128
|
+
Você pode usar blocos se quiser:
|
129
|
+
|
130
|
+
BoletoItau.new do |boleto|
|
131
|
+
boleto_itau.conta_corrente = '89755'
|
132
|
+
boleto_itau.digito_conta_corrente = '1'
|
133
|
+
boleto_itau.agencia = '0097'
|
134
|
+
boleto_itau.carteira = '198'
|
135
|
+
boleto_itau.cedente = 'Razao Social da Empresa'
|
136
|
+
boleto_itau.codigo_cedente = '90901'
|
137
|
+
boleto_itau.endereco_cedente = 'Rua nome da rua, 9999'
|
138
|
+
boleto_itau.numero_documento = '12345678'
|
139
|
+
boleto_itau.sacado = 'Nome do Sacado'
|
140
|
+
boleto_itau.documento_sacado = '35433793990'
|
141
|
+
boleto_itau.data_vencimento = Date.tomorrow
|
142
|
+
boleto_itau.valor_documento = 31678.99
|
143
|
+
boleto_itau.seu_numero = 1234
|
144
|
+
end
|
145
|
+
|
146
|
+
**Cada banco possui suas próprias validações de campo e de tamanho**.
|
147
|
+
Primeiramente, **antes de renderizar qualquer boleto você precisar verificar se esse o boleto é válido**.
|
148
|
+
|
149
|
+
if boleto_itau.valid?
|
150
|
+
# Renderiza o boleto itau
|
151
|
+
else
|
152
|
+
# Trata os erros
|
153
|
+
end
|
154
|
+
|
155
|
+
### Campos do Boleto
|
156
|
+
|
157
|
+
Segue abaixo os métodos para serem chamados, no momento de renderizar os boletos. Os campos são de mesmo nome:
|
158
|
+
|
159
|
+
boleto_itau.codigo_banco_formatado # Retorna o código do banco, junto com seu dígito
|
160
|
+
|
161
|
+
boleto_itau.codigo_de_barras
|
162
|
+
|
163
|
+
boleto_itau.linha_digitavel
|
164
|
+
|
165
|
+
boleto_itau.nosso_numero
|
166
|
+
|
167
|
+
boleto_itau.agencia_codigo_cedente
|
168
|
+
|
169
|
+
boleto_itau.carteira_formatada # Formata a carteira, para mostrar no boleto.
|
170
|
+
|
171
|
+
boleto_itau.numero_documento
|
172
|
+
|
173
|
+
boleto_itau.valor_documento
|
174
|
+
|
175
|
+
boleto_itau.especie
|
176
|
+
|
177
|
+
boleto_itau.especie_documento
|
178
|
+
|
179
|
+
## Sobrescrevendo comportamentos
|
180
|
+
|
181
|
+
Você pode sobrescrever os comportamentos na subclasse.
|
182
|
+
|
183
|
+
Por exemplo, imagine que você quer sobrescrever a forma como é tratada a segunda parte do código de barras.
|
184
|
+
**Seguindo a interface da classe BoletoBancario::Boleto** fica bem simples:
|
185
|
+
|
186
|
+
class BoletoItau < BoletoBancario::Itau
|
187
|
+
def codigo_de_barras_do_banco
|
188
|
+
# Sua implementação ...
|
189
|
+
end
|
190
|
+
end
|
191
|
+
|
192
|
+
## Formatos (HTML, PDF e PNG)
|
193
|
+
|
194
|
+
**Objetivos para as próximas versões: criar os formatos dos boletos de:**
|
195
|
+
|
196
|
+
* HTML
|
197
|
+
* PDF
|
198
|
+
* PNG
|
199
|
+
|
200
|
+
## O que a gem não faz
|
201
|
+
|
202
|
+
A gem não trata os arquivos de remessa e os arquivos de retorno do banco.
|
203
|
+
|
204
|
+
Na minha opinião não deveria ser responsabilidade dessa gem.
|
205
|
+
Essa gem **apenas emite o boleto**, com todas as informações necessárias do boleto.
|
206
|
+
|
207
|
+
## Contribuições
|
208
|
+
|
209
|
+
Seja um contribuidor. Você pode contribuir de N formas. Seguem elas:
|
210
|
+
|
211
|
+
* Homologando boletos junto ao banco.
|
212
|
+
* Fornecendo documentações mais atualizadas dos Bancos.
|
213
|
+
* Escrevendo novos formatos (PDF, PNG), e me avisando para divulgar no Readme.
|
214
|
+
* Refatorando código!!
|
215
|
+
* Fornecendo Feedback construtivo! (Sempre bem vindo!)
|
data/Rakefile
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'bundler/gem_tasks'
|
3
|
+
require 'yard'
|
4
|
+
|
5
|
+
desc 'Generate documentation'
|
6
|
+
YARD::Rake::YardocTask.new do |t|
|
7
|
+
t.files = ['lib/**/*.rb', '-', 'LICENSE']
|
8
|
+
t.options = ['--main', 'README.markdown', '--no-private', '--title', "Boleto Bancário #{BoletoBancario::VERSION}"]
|
9
|
+
end
|
data/TODO.markdown
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
* Logo.
|
2
|
+
* Formatacao documento (CPF/CNPJ).
|
3
|
+
* Aceite.
|
4
|
+
* Instruções.
|
5
|
+
* Colocar exemplos melhores na documentação de cada banco.
|
6
|
+
* Nos exemplos de cada banco colocar os métodos que são chamados pelo objeto.
|
7
|
+
* Verificar as validações e suas mensagens de erro.
|
8
|
+
* Código de barras como imagem (usar a gem Barby).
|
9
|
+
* Internacionalização / Locales.
|
10
|
+
* Verificar a questão dos formatos (html, pdf, png).
|
11
|
+
* Criar páginas explicando cada banco.
|