brcobranca 3.2.0 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +13 -0
  3. data/.ruby-version +1 -1
  4. data/.travis.yml +7 -1
  5. data/Gemfile +13 -2
  6. data/Rakefile +2 -2
  7. data/brcobranca.gemspec +10 -17
  8. data/lib/brcobranca.rb +2 -5
  9. data/lib/brcobranca/arquivos/logos/bancobrasil.eps +0 -0
  10. data/lib/brcobranca/arquivos/logos/bradesco.eps +0 -0
  11. data/lib/brcobranca/arquivos/logos/caixa.eps +0 -0
  12. data/lib/brcobranca/arquivos/logos/hsbc.eps +0 -0
  13. data/lib/brcobranca/arquivos/logos/itau.eps +0 -0
  14. data/lib/brcobranca/arquivos/logos/santander.eps +0 -0
  15. data/lib/brcobranca/arquivos/logos/sicredi.eps +0 -0
  16. data/lib/brcobranca/arquivos/templates/modelo_generico.eps +0 -0
  17. data/lib/brcobranca/boleto/banco_brasil.rb +27 -29
  18. data/lib/brcobranca/boleto/base.rb +29 -30
  19. data/lib/brcobranca/boleto/bradesco.rb +14 -15
  20. data/lib/brcobranca/boleto/caixa.rb +25 -23
  21. data/lib/brcobranca/boleto/hsbc.rb +30 -34
  22. data/lib/brcobranca/boleto/itau.rb +23 -25
  23. data/lib/brcobranca/boleto/santander.rb +17 -19
  24. data/lib/brcobranca/boleto/sicredi.rb +19 -19
  25. data/lib/brcobranca/boleto/template/base.rb +0 -2
  26. data/lib/brcobranca/boleto/template/rghost.rb +72 -74
  27. data/lib/brcobranca/boleto/template/rghost_carne.rb +105 -118
  28. data/lib/brcobranca/calculo.rb +22 -22
  29. data/lib/brcobranca/calculo_data.rb +8 -8
  30. data/lib/brcobranca/currency.rb +11 -11
  31. data/lib/brcobranca/formatacao.rb +16 -16
  32. data/lib/brcobranca/limpeza.rb +4 -4
  33. data/lib/brcobranca/retorno/base.rb +0 -1
  34. data/lib/brcobranca/retorno/retorno_cbr643.rb +35 -35
  35. data/lib/brcobranca/retorno/retorno_cnab240.rb +39 -40
  36. data/lib/brcobranca/retorno/retorno_cnab400.rb +21 -26
  37. data/lib/brcobranca/version.rb +2 -2
  38. data/spec/brcobranca/banco_bradesco_spec.rb +113 -113
  39. data/spec/brcobranca/banco_brasil_spec.rb +167 -167
  40. data/spec/brcobranca/banco_caixa_spec.rb +58 -58
  41. data/spec/brcobranca/banco_hsbc_spec.rb +117 -118
  42. data/spec/brcobranca/banco_sicredi_spec.rb +92 -93
  43. data/spec/brcobranca/base_spec.rb +78 -78
  44. data/spec/brcobranca/boletos_em_lote_spec.rb +22 -22
  45. data/spec/brcobranca/core_ext_spec.rb +134 -135
  46. data/spec/brcobranca/currency_spec.rb +59 -59
  47. data/spec/brcobranca/itau_spec.rb +137 -137
  48. data/spec/brcobranca/retorno_cbr643_spec.rb +32 -32
  49. data/spec/brcobranca/retorno_cnab400_spec.rb +40 -42
  50. data/spec/brcobranca/retorno_cnab_240_spec.rb +17 -19
  51. data/spec/brcobranca/rghost_spec.rb +21 -21
  52. data/spec/brcobranca/santander_spec.rb +80 -80
  53. data/spec/brcobranca_spec.rb +4 -4
  54. data/spec/spec_helper.rb +1 -1
  55. metadata +12 -54
  56. data/VERSION +0 -1
  57. data/lib/brcobranca/arquivos/logos/bancobrasil.jpg +0 -0
  58. data/lib/brcobranca/arquivos/logos/bradesco.jpg +0 -0
  59. data/lib/brcobranca/arquivos/logos/caixa.jpg +0 -0
  60. data/lib/brcobranca/arquivos/logos/hsbc.jpg +0 -0
  61. data/lib/brcobranca/arquivos/logos/itau.jpg +0 -0
  62. data/lib/brcobranca/arquivos/logos/santander.jpg +0 -0
  63. data/lib/brcobranca/arquivos/logos/sicredi.jpg +0 -0
@@ -12,16 +12,16 @@ module Brcobranca
12
12
  # <b>REQUERIDO</b>: Byte de identificação do cedente do bloqueto utilizado para compor o nosso número.
13
13
  attr_accessor :byte_idt
14
14
 
15
- validates_length_of :agencia, :maximum => 4, :message => 'deve ser menor ou igual a 4 dígitos.'
16
- validates_length_of :numero_documento, :maximum => 5, :message => 'deve ser menor ou igual a 5 dígitos.'
17
- validates_length_of :conta_corrente, :maximum => 5, :message => 'deve ser menor ou igual a 5 dígitos.'
18
- validates_length_of :carteira, :maximum => 2, :message => 'deve ser menor ou igual a 2 dígitos.'
19
- validates_length_of :byte_idt, :is => 1, :message => 'deve ser 1 se o numero foi gerado pela agencia ou 2-9 se foi gerado pelo cedente'
15
+ validates_length_of :agencia, maximum: 4, message: 'deve ser menor ou igual a 4 dígitos.'
16
+ validates_length_of :numero_documento, maximum: 5, message: 'deve ser menor ou igual a 5 dígitos.'
17
+ validates_length_of :conta_corrente, maximum: 5, message: 'deve ser menor ou igual a 5 dígitos.'
18
+ validates_length_of :carteira, maximum: 2, message: 'deve ser menor ou igual a 2 dígitos.'
19
+ validates_length_of :byte_idt, is: 1, message: 'deve ser 1 se o numero foi gerado pela agencia ou 2-9 se foi gerado pelo beneficiário'
20
20
 
21
21
  # Nova instancia do Bradesco
22
22
  # @param (see Brcobranca::Boleto::Base#initialize)
23
- def initialize(campos={})
24
- campos = {:carteira => "03", :especie_documento => "A"}.merge!(campos)
23
+ def initialize(campos = {})
24
+ campos = { carteira: '03', especie_documento: 'A' }.merge!(campos)
25
25
  super(campos)
26
26
  end
27
27
 
@@ -29,14 +29,14 @@ module Brcobranca
29
29
  #
30
30
  # @return [String] 3 caracteres numéricos.
31
31
  def banco
32
- "748"
32
+ '748'
33
33
  end
34
34
 
35
35
  # Carteira
36
36
  #
37
37
  # @return [String] 2 caracteres numéricos.
38
38
  def carteira=(valor)
39
- @carteira = valor.to_s.rjust(2,'0') if valor
39
+ @carteira = valor.to_s.rjust(2, '0') if valor
40
40
  end
41
41
 
42
42
  # Posto
@@ -49,7 +49,7 @@ module Brcobranca
49
49
  # Número da conta corrente
50
50
  # @return [String] 5 caracteres numéricos.
51
51
  def conta_corrente=(valor)
52
- @conta_corrente = valor.to_s.rjust(5,'0') if valor
52
+ @conta_corrente = valor.to_s.rjust(5, '0') if valor
53
53
  end
54
54
 
55
55
  # Dígito verificador do banco
@@ -63,30 +63,30 @@ module Brcobranca
63
63
  # @example
64
64
  # boleto.nosso_numero_boleto #=> "14/200022-5"
65
65
  def nosso_numero_boleto
66
- "#{numero_documento_with_byte_idt[0..1]}/#{numero_documento_with_byte_idt[2..-1]}-#{self.nosso_numero_dv}"
66
+ "#{numero_documento_with_byte_idt[0..1]}/#{numero_documento_with_byte_idt[2..-1]}-#{nosso_numero_dv}"
67
67
  end
68
68
 
69
69
  def numero_documento_with_byte_idt
70
- "#{self.data_documento.strftime('%y')}#{self.byte_idt}#{self.numero_documento}"
70
+ "#{data_documento.strftime('%y')}#{byte_idt}#{numero_documento}"
71
71
  end
72
72
 
73
73
  # Número seqüencial utilizado para identificar o boleto.
74
74
  # @return [String] 5 caracteres numéricos.
75
75
  def numero_documento=(valor)
76
- @numero_documento = valor.to_s.rjust(5,'0') if valor
76
+ @numero_documento = valor.to_s.rjust(5, '0') if valor
77
77
  end
78
78
 
79
79
  # Codigo referente ao tipo de cobrança
80
80
  # @return [String]: 1 caractere numérico
81
81
  def tipo_cobranca
82
- "3"
82
+ '3'
83
83
  end
84
84
 
85
85
  # Codigo referente ao tipo de carteira
86
86
  # @return [String]: 1 caractere numérico
87
87
  def tipo_carteira
88
- if self.carteira == "03"
89
- "1"
88
+ if carteira == '03'
89
+ '1'
90
90
  end
91
91
  end
92
92
  # Dígito verificador do nosso número
@@ -96,16 +96,16 @@ module Brcobranca
96
96
  end
97
97
 
98
98
  def agencia_conta_boleto
99
- "#{self.agencia}.#{self.posto}.#{conta_corrente}"
99
+ "#{agencia}.#{posto}.#{conta_corrente}"
100
100
  end
101
101
 
102
102
  def agencia_posto_conta
103
- "#{self.agencia}#{self.posto}#{conta_corrente}"
103
+ "#{agencia}#{posto}#{conta_corrente}"
104
104
  end
105
105
 
106
106
  # Segunda parte do código de barras.
107
107
  def codigo_barras_segunda_parte
108
- campo_livre = "#{self.tipo_cobranca}#{self.tipo_carteira}#{self.nosso_numero_boleto.gsub(/\D/, '')}#{self.agencia_posto_conta}10"
108
+ campo_livre = "#{tipo_cobranca}#{tipo_carteira}#{nosso_numero_boleto.gsub(/\D/, '')}#{agencia_posto_conta}10"
109
109
  campo_livre + campo_livre.modulo11_9to2_10_como_zero.to_s
110
110
  end
111
111
  end
@@ -7,7 +7,6 @@ module Brcobranca
7
7
  extend self
8
8
 
9
9
  def define_template(template)
10
-
11
10
  case template
12
11
  when :rghost
13
12
  return Brcobranca::Boleto::Template::Rghost
@@ -16,7 +15,6 @@ module Brcobranca
16
15
  else
17
16
  return Brcobranca::Boleto::Template::Rghost
18
17
  end
19
-
20
18
  end
21
19
  end
22
20
  end
@@ -30,8 +30,8 @@ module Brcobranca
30
30
  # @return [Stream]
31
31
  # @see http://wiki.github.com/shairontoledo/rghost/supported-devices-drivers-and-formats Veja mais formatos na documentação do rghost.
32
32
  # @see Rghost#modelo_generico Recebe os mesmos parâmetros do Rghost#modelo_generico.
33
- def to(formato, options={})
34
- modelo_generico(self, options.merge!({:formato => formato}))
33
+ def to(formato, options = {})
34
+ modelo_generico(self, options.merge!(formato: formato))
35
35
  end
36
36
 
37
37
  # Gera o boleto em usando o formato desejado [:pdf, :jpg, :tif, :png, :ps, :laserjet, ... etc]
@@ -39,7 +39,7 @@ module Brcobranca
39
39
  # @return [Stream]
40
40
  # @see http://wiki.github.com/shairontoledo/rghost/supported-devices-drivers-and-formats Veja mais formatos na documentação do rghost.
41
41
  # @see Rghost#modelo_generico Recebe os mesmos parâmetros do Rghost#modelo_generico.
42
- def lote(boletos, options={})
42
+ def lote(boletos, options = {})
43
43
  modelo_generico_multipage(boletos, options)
44
44
  end
45
45
 
@@ -51,8 +51,8 @@ module Brcobranca
51
51
  # @boleto.to_pdf #=> boleto gerado no formato pdf
52
52
  def method_missing(m, *args)
53
53
  method = m.to_s
54
- if method.start_with?("to_")
55
- modelo_generico(self, (args.first || {}).merge!({:formato => method[3..-1]}))
54
+ if method.start_with?('to_')
55
+ modelo_generico(self, (args.first || {}).merge!(formato: method[3..-1]))
56
56
  else
57
57
  super
58
58
  end
@@ -67,24 +67,24 @@ module Brcobranca
67
67
  # @param [Hash] options Opção para a criação do boleto.
68
68
  # @option options [Symbol] :resolucao Resolução em pixels.
69
69
  # @option options [Symbol] :formato Formato desejado [:pdf, :jpg, :tif, :png, :ps, :laserjet, ... etc]
70
- def modelo_generico(boleto, options={})
71
- doc=Document.new :paper => :A4 # 210x297
70
+ def modelo_generico(boleto, options = {})
71
+ doc = Document.new paper: :A4 # 210x297
72
72
 
73
- template_path = File.join(File.dirname(__FILE__),'..','..','arquivos','templates','modelo_generico.eps')
73
+ template_path = File.join(File.dirname(__FILE__), '..', '..', 'arquivos', 'templates', 'modelo_generico.eps')
74
74
 
75
- raise "Não foi possível encontrar o template. Verifique o caminho" unless File.exist?(template_path)
75
+ fail 'Não foi possível encontrar o template. Verifique o caminho' unless File.exist?(template_path)
76
76
 
77
77
  modelo_generico_template(doc, boleto, template_path)
78
78
  modelo_generico_cabecalho(doc, boleto)
79
79
  modelo_generico_rodape(doc, boleto)
80
80
 
81
- #Gerando codigo de barra com rghost_barcode
82
- doc.barcode_interleaved2of5(boleto.codigo_barras, :width => '10.3 cm', :height => '1.3 cm', :x => '0.7 cm', :y => '5.8 cm' ) if boleto.codigo_barras
81
+ # Gerando codigo de barra com rghost_barcode
82
+ doc.barcode_interleaved2of5(boleto.codigo_barras, width: '10.3 cm', height: '1.3 cm', x: '0.7 cm', y: '5.8 cm') if boleto.codigo_barras
83
83
 
84
84
  # Gerando stream
85
85
  formato = (options.delete(:formato) || Brcobranca.configuration.formato)
86
86
  resolucao = (options.delete(:resolucao) || Brcobranca.configuration.resolucao)
87
- doc.render_stream(formato.to_sym, :resolution => resolucao)
87
+ doc.render_stream(formato.to_sym, resolution: resolucao)
88
88
  end
89
89
 
90
90
  # Retorna um stream para multiplos boletos pronto para gravação em arquivo.
@@ -94,12 +94,12 @@ module Brcobranca
94
94
  # @param [Hash] options Opção para a criação do boleto.
95
95
  # @option options [Symbol] :resolucao Resolução em pixels.
96
96
  # @option options [Symbol] :formato Formato desejado [:pdf, :jpg, :tif, :png, :ps, :laserjet, ... etc]
97
- def modelo_generico_multipage(boletos, options={})
98
- doc=Document.new :paper => :A4 # 210x297
97
+ def modelo_generico_multipage(boletos, options = {})
98
+ doc = Document.new paper: :A4 # 210x297
99
99
 
100
- template_path = File.join(File.dirname(__FILE__),'..','..','arquivos','templates','modelo_generico.eps')
100
+ template_path = File.join(File.dirname(__FILE__), '..', '..', 'arquivos', 'templates', 'modelo_generico.eps')
101
101
 
102
- raise "Não foi possível encontrar o template. Verifique o caminho" unless File.exist?(template_path)
102
+ fail 'Não foi possível encontrar o template. Verifique o caminho' unless File.exist?(template_path)
103
103
 
104
104
  boletos.each_with_index do |boleto, index|
105
105
 
@@ -107,123 +107,121 @@ module Brcobranca
107
107
  modelo_generico_cabecalho(doc, boleto)
108
108
  modelo_generico_rodape(doc, boleto)
109
109
 
110
- #Gerando codigo de barra com rghost_barcode
111
- doc.barcode_interleaved2of5(boleto.codigo_barras, :width => '10.3 cm', :height => '1.3 cm', :x => '0.7 cm', :y => '5.8 cm' ) if boleto.codigo_barras
112
- #Cria nova página se não for o último boleto
113
- doc.next_page unless index == boletos.length-1
110
+ # Gerando codigo de barra com rghost_barcode
111
+ doc.barcode_interleaved2of5(boleto.codigo_barras, width: '10.3 cm', height: '1.3 cm', x: '0.7 cm', y: '5.8 cm') if boleto.codigo_barras
112
+ # Cria nova página se não for o último boleto
113
+ doc.next_page unless index == boletos.length - 1
114
114
 
115
115
  end
116
116
  # Gerando stream
117
117
  formato = (options.delete(:formato) || Brcobranca.configuration.formato)
118
118
  resolucao = (options.delete(:resolucao) || Brcobranca.configuration.resolucao)
119
- doc.render_stream(formato.to_sym, :resolution => resolucao)
119
+ doc.render_stream(formato.to_sym, resolution: resolucao)
120
120
  end
121
121
 
122
122
  # Define o template a ser usado no boleto
123
- def modelo_generico_template(doc, boleto, template_path)
124
- doc.define_template(:template, template_path, :x => '0.3 cm', :y => "0 cm")
123
+ def modelo_generico_template(doc, _boleto, template_path)
124
+ doc.define_template(:template, template_path, x: '0.3 cm', y: '0 cm')
125
125
  doc.use_template :template
126
126
 
127
127
  doc.define_tags do
128
- tag :grande, :size => 13
128
+ tag :grande, size: 13
129
129
  end
130
130
  end
131
131
 
132
132
  # Monta o cabeçalho do layout do boleto
133
133
  def modelo_generico_cabecalho(doc, boleto)
134
- #INICIO Primeira parte do BOLETO
134
+ # INICIO Primeira parte do BOLETO
135
135
  # LOGOTIPO do BANCO
136
- doc.image(boleto.logotipo, :x => '0.5 cm', :y => '23.85 cm', :zoom => 80)
136
+ doc.image(boleto.logotipo, x: '0.5 cm', y: '23.85 cm', zoom: 80)
137
137
  # Dados
138
- doc.moveto :x => '5.2 cm' , :y => '23.85 cm'
139
- doc.show "#{boleto.banco}-#{boleto.banco_dv}", :tag => :grande
140
- doc.moveto :x => '7.5 cm' , :y => '23.85 cm'
141
- doc.show boleto.codigo_barras.linha_digitavel, :tag => :grande
142
- doc.moveto :x => '0.7 cm' , :y => '23 cm'
138
+ doc.moveto x: '5.2 cm', y: '23.85 cm'
139
+ doc.show "#{boleto.banco}-#{boleto.banco_dv}", tag: :grande
140
+ doc.moveto x: '7.5 cm', y: '23.85 cm'
141
+ doc.show boleto.codigo_barras.linha_digitavel, tag: :grande
142
+ doc.moveto x: '0.7 cm', y: '23 cm'
143
143
  doc.show boleto.cedente
144
- doc.moveto :x => '11 cm' , :y => '23 cm'
144
+ doc.moveto x: '11 cm', y: '23 cm'
145
145
  doc.show boleto.agencia_conta_boleto
146
- doc.moveto :x => '14.2 cm' , :y => '23 cm'
146
+ doc.moveto x: '14.2 cm', y: '23 cm'
147
147
  doc.show boleto.especie
148
- doc.moveto :x => '15.7 cm' , :y => '23 cm'
148
+ doc.moveto x: '15.7 cm', y: '23 cm'
149
149
  doc.show boleto.quantidade
150
- doc.moveto :x => '0.7 cm' , :y => '22.2 cm'
150
+ doc.moveto x: '0.7 cm', y: '22.2 cm'
151
151
  doc.show boleto.numero_documento
152
- doc.moveto :x => '7 cm' , :y => '22.2 cm'
152
+ doc.moveto x: '7 cm', y: '22.2 cm'
153
153
  doc.show "#{boleto.documento_cedente.formata_documento}"
154
- doc.moveto :x => '12 cm' , :y => '22.2 cm'
154
+ doc.moveto x: '12 cm', y: '22.2 cm'
155
155
  doc.show boleto.data_vencimento.to_s_br
156
- doc.moveto :x => '16.5 cm' , :y => '23 cm'
156
+ doc.moveto x: '16.5 cm', y: '23 cm'
157
157
  doc.show boleto.nosso_numero_boleto
158
- doc.moveto :x => '16.5 cm' , :y => '22.2 cm'
158
+ doc.moveto x: '16.5 cm', y: '22.2 cm'
159
159
  doc.show boleto.valor_documento.to_currency
160
- doc.moveto :x => '1.4 cm' , :y => '20.9 cm'
160
+ doc.moveto x: '1.4 cm', y: '20.9 cm'
161
161
  doc.show "#{boleto.sacado} - #{boleto.sacado_documento.formata_documento}"
162
- doc.moveto :x => '1.4 cm' , :y => '20.6 cm'
162
+ doc.moveto x: '1.4 cm', y: '20.6 cm'
163
163
  doc.show "#{boleto.sacado_endereco}"
164
- #FIM Primeira parte do BOLETO
164
+ # FIM Primeira parte do BOLETO
165
165
  end
166
166
 
167
167
  # Monta o corpo e rodapé do layout do boleto
168
168
  def modelo_generico_rodape(doc, boleto)
169
- #INICIO Segunda parte do BOLETO BB
169
+ # INICIO Segunda parte do BOLETO BB
170
170
  # LOGOTIPO do BANCO
171
- doc.image(boleto.logotipo, :x => '0.5 cm', :y => '16.8 cm', :zoom => 80)
172
- doc.moveto :x => '5.2 cm' , :y => '16.8 cm'
173
- doc.show "#{boleto.banco}-#{boleto.banco_dv}", :tag => :grande
174
- doc.moveto :x => '7.5 cm' , :y => '16.8 cm'
175
- doc.show boleto.codigo_barras.linha_digitavel, :tag => :grande
176
- doc.moveto :x => '0.7 cm' , :y => '16 cm'
171
+ doc.image(boleto.logotipo, x: '0.5 cm', y: '16.8 cm', zoom: 80)
172
+ doc.moveto x: '5.2 cm', y: '16.8 cm'
173
+ doc.show "#{boleto.banco}-#{boleto.banco_dv}", tag: :grande
174
+ doc.moveto x: '7.5 cm', y: '16.8 cm'
175
+ doc.show boleto.codigo_barras.linha_digitavel, tag: :grande
176
+ doc.moveto x: '0.7 cm', y: '16 cm'
177
177
  doc.show boleto.local_pagamento
178
- doc.moveto :x => '16.5 cm' , :y => '16 cm'
178
+ doc.moveto x: '16.5 cm', y: '16 cm'
179
179
  doc.show boleto.data_vencimento.to_s_br if boleto.data_vencimento
180
- doc.moveto :x => '0.7 cm' , :y => '15.2 cm'
180
+ doc.moveto x: '0.7 cm', y: '15.2 cm'
181
181
  doc.show boleto.cedente
182
- doc.moveto :x => '16.5 cm' , :y => '15.2 cm'
182
+ doc.moveto x: '16.5 cm', y: '15.2 cm'
183
183
  doc.show boleto.agencia_conta_boleto
184
- doc.moveto :x => '0.7 cm' , :y => '14.4 cm'
184
+ doc.moveto x: '0.7 cm', y: '14.4 cm'
185
185
  doc.show boleto.data_documento.to_s_br if boleto.data_documento
186
- doc.moveto :x => '4.2 cm' , :y => '14.4 cm'
186
+ doc.moveto x: '4.2 cm', y: '14.4 cm'
187
187
  doc.show boleto.numero_documento
188
- doc.moveto :x => '10 cm' , :y => '14.4 cm'
188
+ doc.moveto x: '10 cm', y: '14.4 cm'
189
189
  doc.show boleto.especie_documento
190
- doc.moveto :x => '11.7 cm' , :y => '14.4 cm'
190
+ doc.moveto x: '11.7 cm', y: '14.4 cm'
191
191
  doc.show boleto.aceite
192
- doc.moveto :x => '13 cm' , :y => '14.4 cm'
192
+ doc.moveto x: '13 cm', y: '14.4 cm'
193
193
  doc.show boleto.data_processamento.to_s_br if boleto.data_processamento
194
- doc.moveto :x => '16.5 cm' , :y => '14.4 cm'
194
+ doc.moveto x: '16.5 cm', y: '14.4 cm'
195
195
  doc.show boleto.nosso_numero_boleto
196
- doc.moveto :x => '4.4 cm' , :y => '13.5 cm'
196
+ doc.moveto x: '4.4 cm', y: '13.5 cm'
197
197
  doc.show boleto.carteira
198
- doc.moveto :x => '6.4 cm' , :y => '13.5 cm'
198
+ doc.moveto x: '6.4 cm', y: '13.5 cm'
199
199
  doc.show boleto.especie
200
- doc.moveto :x => '8 cm' , :y => '13.5 cm'
200
+ doc.moveto x: '8 cm', y: '13.5 cm'
201
201
  doc.show boleto.quantidade
202
202
  # doc.moveto :x => '11 cm' , :y => '13.5 cm'
203
203
  # doc.show boleto.valor.to_currency
204
- doc.moveto :x => '16.5 cm' , :y => '13.5 cm'
204
+ doc.moveto x: '16.5 cm', y: '13.5 cm'
205
205
  doc.show boleto.valor_documento.to_currency
206
- doc.moveto :x => '0.7 cm' , :y => '12.7 cm'
206
+ doc.moveto x: '0.7 cm', y: '12.7 cm'
207
207
  doc.show boleto.instrucao1
208
- doc.moveto :x => '0.7 cm' , :y => '12.3 cm'
208
+ doc.moveto x: '0.7 cm', y: '12.3 cm'
209
209
  doc.show boleto.instrucao2
210
- doc.moveto :x => '0.7 cm' , :y => '11.9 cm'
210
+ doc.moveto x: '0.7 cm', y: '11.9 cm'
211
211
  doc.show boleto.instrucao3
212
- doc.moveto :x => '0.7 cm' , :y => '11.5 cm'
212
+ doc.moveto x: '0.7 cm', y: '11.5 cm'
213
213
  doc.show boleto.instrucao4
214
- doc.moveto :x => '0.7 cm' , :y => '11.1 cm'
214
+ doc.moveto x: '0.7 cm', y: '11.1 cm'
215
215
  doc.show boleto.instrucao5
216
- doc.moveto :x => '0.7 cm' , :y => '10.7 cm'
216
+ doc.moveto x: '0.7 cm', y: '10.7 cm'
217
217
  doc.show boleto.instrucao6
218
- doc.moveto :x => '1.2 cm' , :y => '8.8 cm'
218
+ doc.moveto x: '1.2 cm', y: '8.8 cm'
219
219
  doc.show "#{boleto.sacado} - #{boleto.sacado_documento.formata_documento}" if boleto.sacado && boleto.sacado_documento
220
- doc.moveto :x => '1.2 cm' , :y => '8.4 cm'
220
+ doc.moveto x: '1.2 cm', y: '8.4 cm'
221
221
  doc.show "#{boleto.sacado_endereco}"
222
- #FIM Segunda parte do BOLETO
222
+ # FIM Segunda parte do BOLETO
223
223
  end
224
-
225
- end #Base
224
+ end # Base
226
225
  end
227
226
  end
228
227
  end
229
-
@@ -30,8 +30,8 @@ module Brcobranca
30
30
  # @return [Stream]
31
31
  # @see http://wiki.github.com/shairontoledo/rghost/supported-devices-drivers-and-formats Veja mais formatos na documentação do rghost.
32
32
  # @see Rghost#modelo_carne Recebe os mesmos parâmetros do Rghost#modelo_carne.
33
- def to(formato, options={})
34
- modelo_carne(self, options.merge!({:formato => formato}))
33
+ def to(formato, options = {})
34
+ modelo_carne(self, options.merge!(formato: formato))
35
35
  end
36
36
 
37
37
  # Gera o boleto em usando o formato desejado [:pdf, :jpg, :tif, :png, :ps, :laserjet, ... etc]
@@ -39,7 +39,7 @@ module Brcobranca
39
39
  # @return [Stream]
40
40
  # @see http://wiki.github.com/shairontoledo/rghost/supported-devices-drivers-and-formats Veja mais formatos na documentação do rghost.
41
41
  # @see Rghost#modelo_carne Recebe os mesmos parâmetros do Rghost#modelo_carne.
42
- def lote(boletos, options={})
42
+ def lote(boletos, options = {})
43
43
  modelo_carne_multipage(boletos, options)
44
44
  end
45
45
 
@@ -51,8 +51,8 @@ module Brcobranca
51
51
  # @boleto.to_pdf #=> boleto gerado no formato pdf
52
52
  def method_missing(m, *args)
53
53
  method = m.to_s
54
- if method.start_with?("to_")
55
- modelo_carne(self, (args.first || {}).merge!({:formato => method[3..-1]}))
54
+ if method.start_with?('to_')
55
+ modelo_carne(self, (args.first || {}).merge!(formato: method[3..-1]))
56
56
  else
57
57
  super
58
58
  end
@@ -67,14 +67,13 @@ module Brcobranca
67
67
  # @param [Hash] options Opção para a criação do boleto.
68
68
  # @option options [Symbol] :resolucao Resolução em pixels.
69
69
  # @option options [Symbol] :formato Formato desejado [:pdf, :jpg, :tif, :png, :ps, :laserjet, ... etc]
70
- def modelo_carne(boleto, options={})
71
- doc=Document.new :paper => [21,9]
70
+ def modelo_carne(boleto, options = {})
71
+ doc = Document.new paper: [21, 9]
72
72
 
73
73
  colunas = calc_colunas 1
74
74
  linhas = calc_linhas 0
75
75
 
76
-
77
- modelo_carne_load_background(doc,0)
76
+ modelo_carne_load_background(doc, 0)
78
77
 
79
78
  modelo_carne_define_tags(doc)
80
79
 
@@ -84,11 +83,9 @@ module Brcobranca
84
83
  # Gerando stream
85
84
  formato = (options.delete(:formato) || Brcobranca.configuration.formato)
86
85
  resolucao = (options.delete(:resolucao) || Brcobranca.configuration.resolucao)
87
- doc.render_stream(formato.to_sym, :resolution => resolucao)
86
+ doc.render_stream(formato.to_sym, resolution: resolucao)
88
87
  end
89
88
 
90
-
91
-
92
89
  # Retorna um stream para multiplos boletos pronto para gravação em arquivo.
93
90
  #
94
91
  # @return [Stream]
@@ -96,21 +93,20 @@ module Brcobranca
96
93
  # @param [Hash] options Opção para a criação do boleto.
97
94
  # @option options [Symbol] :resolucao Resolução em pixels.
98
95
  # @option options [Symbol] :formato Formato desejado [:pdf, :jpg, :tif, :png, :ps, :laserjet, ... etc]
99
- def modelo_carne_multipage(boletos, options={})
100
- doc=Document.new :paper => :A4
101
-
96
+ def modelo_carne_multipage(boletos, options = {})
97
+ doc = Document.new paper: :A4
102
98
 
103
99
  max_per_page = 3
104
100
  curr_page_position = 0
105
- heigth_template = 9 #altura do template é de 9 cm
106
- initial_margin_bottom = 1.4 #margin inicial abaixo
101
+ heigth_template = 9 # altura do template é de 9 cm
102
+ initial_margin_bottom = 1.4 # margin inicial abaixo
107
103
 
108
104
  modelo_carne_define_tags(doc)
109
105
 
110
106
  boletos.each_with_index do |boleto, index|
111
- curr_page_position = curr_page_position+1
107
+ curr_page_position = curr_page_position + 1
112
108
 
113
- margin_bottom = initial_margin_bottom + ( heigth_template * (max_per_page-curr_page_position) ) #onde o boleto sera impresso na pagina A4
109
+ margin_bottom = initial_margin_bottom + (heigth_template * (max_per_page - curr_page_position)) # onde o boleto sera impresso na pagina A4
114
110
 
115
111
  modelo_carne_load_background doc, margin_bottom
116
112
 
@@ -120,12 +116,11 @@ module Brcobranca
120
116
  modelo_carne_build_data_left(doc, boleto, colunas, linhas)
121
117
  modelo_carne_build_data_right(doc, boleto, colunas, linhas)
122
118
 
123
-
124
119
  if curr_page_position >= max_per_page # maximo 3 boletos por pagina
125
- #Cria nova página se não for o último boleto
126
- doc.next_page unless index == boletos.length-1
120
+ # Cria nova página se não for o último boleto
121
+ doc.next_page unless index == boletos.length - 1
127
122
 
128
- curr_page_position = 0 #reinicia contador por página
123
+ curr_page_position = 0 # reinicia contador por página
129
124
  end
130
125
 
131
126
  end
@@ -134,194 +129,186 @@ module Brcobranca
134
129
  formato = (options.delete(:formato) || Brcobranca.configuration.formato)
135
130
  resolucao = (options.delete(:resolucao) || Brcobranca.configuration.resolucao)
136
131
 
137
- doc.render_stream(formato.to_sym, :resolution => resolucao)
132
+ doc.render_stream(formato.to_sym, resolution: resolucao)
138
133
  end
139
134
 
140
- #carrega background do boleto
141
- def modelo_carne_load_background(doc,margin_bottom)
142
- template_path = File.join(File.dirname(__FILE__),'..','..','arquivos','templates','modelo_carne.eps')
143
- raise "Não foi possível encontrar o template. Verifique o caminho" unless File.exist?(template_path)
135
+ # carrega background do boleto
136
+ def modelo_carne_load_background(doc, margin_bottom)
137
+ template_path = File.join(File.dirname(__FILE__), '..', '..', 'arquivos', 'templates', 'modelo_carne.eps')
138
+ fail 'Não foi possível encontrar o template. Verifique o caminho' unless File.exist?(template_path)
144
139
 
145
- doc.image template_path, :x => 1, :y => margin_bottom
140
+ doc.image template_path, x: 1, y: margin_bottom
146
141
  end
147
142
 
148
- #define os tamanhos
143
+ # define os tamanhos
149
144
  def modelo_carne_define_tags(doc)
150
145
  doc.define_tags do
151
- tag :grande, :size => 13
152
- tag :media, :size => 10
146
+ tag :grande, size: 13
147
+ tag :media, size: 10
153
148
  end
154
149
  end
155
150
 
156
- #define as colunas do documento, conforme margem lateral esquerda
151
+ # define as colunas do documento, conforme margem lateral esquerda
157
152
  def calc_colunas(margin_left)
158
- colunas = [0.1,3.4,4.5,7.1,7.8,8.5,9.1,9.7,11,12.4,13.3,15]
153
+ colunas = [0.1, 3.4, 4.5, 7.1, 7.8, 8.5, 9.1, 9.7, 11, 12.4, 13.3, 15]
159
154
 
160
- colunas.each_with_index do |v,i|
161
- colunas[i] = v+margin_left
155
+ colunas.each_with_index do |v, i|
156
+ colunas[i] = v + margin_left
162
157
  end
163
158
 
164
159
  colunas
165
160
  end
166
161
 
167
- #define as linhas do documento conforme margem inferior
162
+ # define as linhas do documento conforme margem inferior
168
163
  def calc_linhas(margin_bottom)
169
- linhas = [8.2,7.5,6.92,6.34,5.74,5.1,4.7,4.3,3.9,3.5,3.1,2.32,1.92,1.69,0.1]
164
+ linhas = [8.2, 7.5, 6.92, 6.34, 5.74, 5.1, 4.7, 4.3, 3.9, 3.5, 3.1, 2.32, 1.92, 1.69, 0.1]
170
165
 
171
- linhas.each_with_index do |v,i|
172
- linhas[i] = v+margin_bottom
166
+ linhas.each_with_index do |v, i|
167
+ linhas[i] = v + margin_bottom
173
168
  end
174
169
 
175
170
  linhas
176
171
  end
177
172
 
178
173
  # aplica dados do lado esquerdo
179
- def modelo_carne_build_data_left(doc, boleto,colunas,linhas)
180
-
174
+ def modelo_carne_build_data_left(doc, boleto, colunas, linhas)
181
175
  # LOGOTIPO do BANCO
182
- doc.image(boleto.logotipo, :x => (colunas[0]-0.1), :y => linhas[0], :zoom => 50)
176
+ doc.image(boleto.logotipo, x: (colunas[0] - 0.1), y: linhas[0], zoom: 50)
183
177
 
184
178
  # Dados
185
179
 
186
- #Numero do banco
187
- doc.moveto :x => colunas[1] , :y => linhas[0]
180
+ # Numero do banco
181
+ doc.moveto x: colunas[1], y: linhas[0]
188
182
  doc.show "#{boleto.banco}-#{boleto.banco_dv}"
189
183
 
190
- #vencimento
191
- doc.moveto :x => colunas[0] , :y => linhas[1]
184
+ # vencimento
185
+ doc.moveto x: colunas[0], y: linhas[1]
192
186
  doc.show boleto.data_vencimento.to_s_br
193
187
 
194
- #agencia/codigo cedente
195
- doc.moveto :x => colunas[0] , :y => linhas[2]
188
+ # agencia/codigo cedente
189
+ doc.moveto x: colunas[0], y: linhas[2]
196
190
  doc.show boleto.agencia_conta_boleto
197
191
 
198
- #nosso numero
199
- doc.moveto :x => colunas[0] , :y => linhas[3]
192
+ # nosso numero
193
+ doc.moveto x: colunas[0], y: linhas[3]
200
194
  doc.show boleto.nosso_numero_boleto
201
195
 
202
- #valor do documento
203
- doc.moveto :x => colunas[0] , :y => linhas[4]
196
+ # valor do documento
197
+ doc.moveto x: colunas[0], y: linhas[4]
204
198
  doc.show boleto.valor_documento.to_currency
205
199
 
206
- #numero documento
207
- doc.moveto :x => colunas[0] , :y => linhas[11]
200
+ # numero documento
201
+ doc.moveto x: colunas[0], y: linhas[11]
208
202
  doc.show boleto.numero_documento
209
203
 
210
- #sacado
211
- doc.moveto :x => colunas[0] , :y => linhas[13]
204
+ # sacado
205
+ doc.moveto x: colunas[0], y: linhas[13]
212
206
  doc.show "#{boleto.sacado}"
213
-
214
207
  end
215
208
 
216
209
  # aplica dados do lado direito
217
- def modelo_carne_build_data_right(doc, boleto,colunas,linhas)
218
-
210
+ def modelo_carne_build_data_right(doc, boleto, colunas, linhas)
219
211
  # LOGOTIPO do BANCO
220
- doc.image(boleto.logotipo, :x => colunas[2], :y => linhas[0], :zoom => 50)
212
+ doc.image(boleto.logotipo, x: colunas[2], y: linhas[0], zoom: 50)
221
213
 
222
- #Numero do banco
223
- doc.moveto :x => colunas[4] , :y => linhas[0]
224
- doc.show "#{boleto.banco}-#{boleto.banco_dv}", :tag => :grande
214
+ # Numero do banco
215
+ doc.moveto x: colunas[4], y: linhas[0]
216
+ doc.show "#{boleto.banco}-#{boleto.banco_dv}", tag: :grande
225
217
 
226
- #linha digitavel
227
- doc.moveto :x => colunas[6] , :y => linhas[0]
228
- doc.show boleto.codigo_barras.linha_digitavel, :tag => :media
218
+ # linha digitavel
219
+ doc.moveto x: colunas[6], y: linhas[0]
220
+ doc.show boleto.codigo_barras.linha_digitavel, tag: :media
229
221
 
230
- #local de pagamento
231
- doc.moveto :x => colunas[2] , :y => linhas[1]
222
+ # local de pagamento
223
+ doc.moveto x: colunas[2], y: linhas[1]
232
224
  doc.show boleto.local_pagamento
233
225
 
234
- #vencimento
235
- doc.moveto :x => colunas[11] , :y => linhas[1]
226
+ # vencimento
227
+ doc.moveto x: colunas[11], y: linhas[1]
236
228
  doc.show boleto.data_vencimento.to_s_br
237
229
 
238
- #cedente
239
- doc.moveto :x => colunas[2] , :y => linhas[2]
230
+ # cedente
231
+ doc.moveto x: colunas[2], y: linhas[2]
240
232
  doc.show boleto.cedente
241
233
 
242
- #agencia/codigo cedente
243
- doc.moveto :x => colunas[11] , :y => linhas[2]
234
+ # agencia/codigo cedente
235
+ doc.moveto x: colunas[11], y: linhas[2]
244
236
  doc.show boleto.agencia_conta_boleto
245
237
 
246
- #data do documento
247
- doc.moveto :x => colunas[2] , :y => linhas[3]
238
+ # data do documento
239
+ doc.moveto x: colunas[2], y: linhas[3]
248
240
  doc.show boleto.data_documento.to_s_br if boleto.data_documento
249
241
 
250
- #numero documento
251
- doc.moveto :x => colunas[3] , :y => linhas[3]
242
+ # numero documento
243
+ doc.moveto x: colunas[3], y: linhas[3]
252
244
  doc.show boleto.numero_documento
253
245
 
254
- #especie doc.
255
- doc.moveto :x => colunas[8] , :y => linhas[3]
246
+ # especie doc.
247
+ doc.moveto x: colunas[8], y: linhas[3]
256
248
  doc.show boleto.especie
257
249
 
258
- #aceite
259
- doc.moveto :x => colunas[9] , :y => linhas[3]
250
+ # aceite
251
+ doc.moveto x: colunas[9], y: linhas[3]
260
252
  doc.show boleto.aceite
261
253
 
262
- #dt processamento
263
- doc.moveto :x => colunas[10] , :y => linhas[3]
254
+ # dt processamento
255
+ doc.moveto x: colunas[10], y: linhas[3]
264
256
  doc.show boleto.data_processamento.to_s_br if boleto.data_processamento
265
257
 
266
-
267
- #nosso numero
268
- doc.moveto :x => colunas[11] , :y => linhas[3]
258
+ # nosso numero
259
+ doc.moveto x: colunas[11], y: linhas[3]
269
260
  doc.show boleto.nosso_numero_boleto
270
261
 
271
- #uso do banco
262
+ # uso do banco
272
263
  ## nada...
273
264
 
274
-
275
- #carteira
276
- doc.moveto :x => colunas[3] , :y => linhas[4]
265
+ # carteira
266
+ doc.moveto x: colunas[3], y: linhas[4]
277
267
  doc.show boleto.carteira
278
268
 
279
- #especie
280
- doc.moveto :x => colunas[5] , :y => linhas[4]
269
+ # especie
270
+ doc.moveto x: colunas[5], y: linhas[4]
281
271
  doc.show boleto.moeda
282
272
 
283
- #quantidade
284
- doc.moveto :x => colunas[7] , :y => linhas[4]
273
+ # quantidade
274
+ doc.moveto x: colunas[7], y: linhas[4]
285
275
  doc.show boleto.quantidade
286
276
 
287
- #valor documento
288
- doc.moveto :x => colunas[8] , :y => linhas[4]
277
+ # valor documento
278
+ doc.moveto x: colunas[8], y: linhas[4]
289
279
  doc.show boleto.valor_documento.to_currency
290
280
 
291
- #valor do documento
292
- doc.moveto :x => colunas[11] , :y => linhas[4]
281
+ # valor do documento
282
+ doc.moveto x: colunas[11], y: linhas[4]
293
283
  doc.show boleto.valor_documento.to_currency
294
284
 
295
- #Instruções
296
- doc.moveto :x => colunas[2] , :y => linhas[5]
285
+ # Instruções
286
+ doc.moveto x: colunas[2], y: linhas[5]
297
287
  doc.show boleto.instrucao1
298
- doc.moveto :x => colunas[2] , :y => linhas[6]
288
+ doc.moveto x: colunas[2], y: linhas[6]
299
289
  doc.show boleto.instrucao2
300
- doc.moveto :x => colunas[2] , :y => linhas[7]
290
+ doc.moveto x: colunas[2], y: linhas[7]
301
291
  doc.show boleto.instrucao3
302
- doc.moveto :x => colunas[2] , :y => linhas[8]
292
+ doc.moveto x: colunas[2], y: linhas[8]
303
293
  doc.show boleto.instrucao4
304
- doc.moveto :x => colunas[2] , :y => linhas[9]
294
+ doc.moveto x: colunas[2], y: linhas[9]
305
295
  doc.show boleto.instrucao5
306
- doc.moveto :x => colunas[2] , :y => linhas[10]
296
+ doc.moveto x: colunas[2], y: linhas[10]
307
297
  doc.show boleto.instrucao6
308
298
 
309
- #Sacado
310
- doc.moveto :x => colunas[2] , :y => linhas[11]
299
+ # Sacado
300
+ doc.moveto x: colunas[2], y: linhas[11]
311
301
  doc.show "#{boleto.sacado} - #{boleto.sacado_documento.formata_documento}" if boleto.sacado && boleto.sacado_documento
312
302
 
313
- #Sacado endereço
314
- doc.moveto :x => colunas[2] , :y => linhas[12]
303
+ # Sacado endereço
304
+ doc.moveto x: colunas[2], y: linhas[12]
315
305
  doc.show "#{boleto.sacado_endereco}"
316
306
 
317
- #codigo de barras
318
- #Gerando codigo de barra com rghost_barcode
319
- doc.barcode_interleaved2of5(boleto.codigo_barras, :width => '10.3 cm', :height => '1.2 cm', :x => colunas[2], :y => linhas[14] ) if boleto.codigo_barras
320
-
307
+ # codigo de barras
308
+ # Gerando codigo de barra com rghost_barcode
309
+ doc.barcode_interleaved2of5(boleto.codigo_barras, width: '10.3 cm', height: '1.2 cm', x: colunas[2], y: linhas[14]) if boleto.codigo_barras
321
310
  end
322
-
323
- end #Base
311
+ end # Base
324
312
  end
325
313
  end
326
314
  end
327
-