brcobranca 3.2.0 → 4.0.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.
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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f95231aca22a9e14c034c3859fcbcab148e4f47b
4
- data.tar.gz: 9ae0c0ec252a27b78d4fd3afe932cf91b52cc031
3
+ metadata.gz: f621710db8869fc03fddac6155db867578c8547c
4
+ data.tar.gz: 33139ba620fac2fcd94d27fc5128e6c6a45e63af
5
5
  SHA512:
6
- metadata.gz: 6f297afaaacf0d70e94980ab62464a3ecf45bfea3d9f4e2a09c88c9414328d385d13a886b6941971e8df517e583ed805d2b9b1a2d91b82e2a49e27361ef51773
7
- data.tar.gz: 29cbd36a25a62dad1e8a6428cda582174e89686edd0e94beb0d7dd0335d2be7583127f61f39f8661c156f1be83896f69e97a4e436a8a21c54c6bbf9ce4991064
6
+ metadata.gz: 105035109e371e8280b8444f014489a548447d533e7afdfb47c52576e156c8505fc754e6c276142c6cb66d16eb005933f817c446dd82d64b39f2f3b9b28b2425
7
+ data.tar.gz: 42fa245c3dde817e7fe334383fa009683aef6192dab4bfa7392c0d734ad41339d06af8be61fc30537212372bfcbb7353e1e89b3790ba16a419df6b6f4de47e89
data/.rubocop.yml ADDED
@@ -0,0 +1,13 @@
1
+ require: rubocop-rspec
2
+
3
+ Style/AsciiComments:
4
+ Enabled: false
5
+
6
+ Style/CommentAnnotation:
7
+ Enabled: false
8
+
9
+ Style/Documentation:
10
+ Enabled: false
11
+
12
+ Style/LineLength:
13
+ Enabled: false
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.1.2
1
+ 2.1.3
data/.travis.yml CHANGED
@@ -1,11 +1,17 @@
1
1
  language: ruby
2
2
  rvm:
3
- - '2.1.1'
3
+ - '2.1.3'
4
4
  - '2.0.0'
5
5
  - '1.9.3'
6
+ - 'jruby'
7
+ - 'rbx'
6
8
  branches:
7
9
  only:
8
10
  - master
9
11
  addons:
10
12
  code_climate:
11
13
  repo_token: 69a23bee43b8c53271b1a6fbe18b6167de91a06d66ab19908dd52f73158ab71b
14
+ matrix:
15
+ allow_failures:
16
+ - rvm: jruby
17
+ - rvm: rbx
data/Gemfile CHANGED
@@ -2,5 +2,16 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in brcobranca.gemspec
4
4
  gemspec
5
- gem 'codeclimate-test-reporter', group: :test, require: nil
6
- gem 'coveralls', require: false
5
+
6
+ group :development do
7
+ gem 'pry', '~> 0.10.0'
8
+ gem 'rubocop', '~> 0.26.1'
9
+ gem 'rubocop-rspec', '~> 1.2.0'
10
+ end
11
+
12
+ group :test do
13
+ gem 'codeclimate-test-reporter', require: nil
14
+ gem 'coveralls', require: false
15
+ gem 'rspec', '~> 3.1.0'
16
+ gem 'rake', '~> 10.3.2'
17
+ end
data/Rakefile CHANGED
@@ -1,7 +1,7 @@
1
1
  # -*- encoding: utf-8 -*-
2
- require "bundler/gem_tasks"
2
+ require 'bundler/gem_tasks'
3
3
  require 'rspec/core/rake_task'
4
4
 
5
5
  RSpec::Core::RakeTask.new(:spec)
6
6
 
7
- task :default => :spec
7
+ task default: :spec
data/brcobranca.gemspec CHANGED
@@ -1,33 +1,26 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "brcobranca/version"
4
+ require 'brcobranca/version'
5
5
 
6
6
  Gem::Specification.new do |gem|
7
- gem.name = "brcobranca"
7
+ gem.name = 'brcobranca'
8
8
  gem.version = Brcobranca::VERSION
9
- gem.platform = Gem::Platform::RUBY
10
- gem.authors = ["Kivanio Barbosa"]
11
- gem.date = %q{2013-06-17}
12
- gem.description = %q{Gem para emissão de bloquetos de cobrança de bancos brasileiros.}
13
- gem.summary = %q{Gem que permite trabalhar com bloquetos de cobrança para bancos brasileiros.}
14
- gem.email = %q{kivanio@gmail.com}
15
- gem.homepage = %q{http://rubygems.org/gems/brcobranca}
9
+ gem.authors = ['Kivanio Barbosa']
10
+ gem.description = 'Gem para emissão de bloquetos de cobrança de bancos brasileiros.'
11
+ gem.summary = 'Gem que permite trabalhar com bloquetos de cobrança para bancos brasileiros.'
12
+ gem.email = 'kivanio@gmail.com'
13
+ gem.homepage = 'http://rubygems.org/gems/brcobranca'
16
14
 
17
15
  gem.files = `git ls-files`.split($/)
18
- gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
16
+ gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
19
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
20
18
  gem.require_paths = ['lib']
21
19
 
22
- gem.requirements = ["GhostScript > 9.0, para gear PDF e código de Barras"]
23
-
24
- # Gems that must be installed for sift to compile and build
25
- gem.add_development_dependency 'pry', '~> 0.10.0'
26
- gem.add_development_dependency 'rspec', '~> 3.0.0'
27
- gem.add_development_dependency 'rake'
20
+ gem.requirements = ['GhostScript > 9.0, para gear PDF e código de Barras']
28
21
 
29
22
  # Gems that must be intalled for sift to work
30
- gem.add_dependency 'rghost', '0.9.3'
23
+ gem.add_dependency 'rghost', '0.9.5'
31
24
  gem.add_dependency 'rghost_barcode', '~> 0.9'
32
25
  gem.add_dependency 'parseline', '~> 1.0.3'
33
26
  gem.add_dependency 'activemodel', '>= 3'
data/lib/brcobranca.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
- $:.push File.join(File.dirname(__FILE__))
2
+ $LOAD_PATH.push File.join(File.dirname(__FILE__))
3
3
  require 'brcobranca/calculo'
4
4
  require 'brcobranca/limpeza'
5
5
  require 'brcobranca/formatacao'
@@ -18,11 +18,10 @@ begin
18
18
  require 'active_model'
19
19
  rescue LoadError
20
20
  require 'rubygems' unless ENV['NO_RUBYGEMS']
21
- gem 'active_model', ">= 3.0.0"
21
+ gem 'active_model', '>= 3.0.0'
22
22
  require 'active_model'
23
23
  end
24
24
 
25
-
26
25
  module Brcobranca
27
26
  # Exception lançada quando algum tipo de boleto soicitado ainda não tiver sido implementado.
28
27
  class NaoImplementado < NotImplementedError
@@ -34,7 +33,6 @@ module Brcobranca
34
33
  # rescue Brcobranca::BoletoInvalido => invalido
35
34
  # puts invalido.errors
36
35
  class BoletoInvalido < StandardError
37
-
38
36
  # Atribui o objeto boleto e pega seus erros de validação
39
37
  def initialize(boleto)
40
38
  errors = boleto.errors.full_messages.join(', ')
@@ -120,4 +118,3 @@ module Brcobranca
120
118
  autoload :RetornoCnab400, 'brcobranca/retorno/retorno_cnab400'
121
119
  end
122
120
  end
123
-
@@ -2,11 +2,10 @@
2
2
  module Brcobranca
3
3
  module Boleto
4
4
  class BancoBrasil < Base # Banco do Brasil
5
-
6
- validates_length_of :agencia, :maximum => 4, :message => "deve ser menor ou igual a 4 dígitos."
7
- validates_length_of :conta_corrente, :maximum => 8, :message => "deve ser menor ou igual a 8 dígitos."
8
- validates_length_of :carteira, :maximum => 2, :message => "deve ser menor ou igual a 2 dígitos."
9
- validates_length_of :convenio, :in => 4..8, :message => "não existente para este banco."
5
+ validates_length_of :agencia, maximum: 4, message: 'deve ser menor ou igual a 4 dígitos.'
6
+ validates_length_of :conta_corrente, maximum: 8, message: 'deve ser menor ou igual a 8 dígitos.'
7
+ validates_length_of :carteira, maximum: 2, message: 'deve ser menor ou igual a 2 dígitos.'
8
+ validates_length_of :convenio, in: 4..8, message: 'não existente para este banco.'
10
9
 
11
10
  validates_each :numero_documento do |record, attr, value|
12
11
  valor_tamanho = value.to_s.size
@@ -30,8 +29,8 @@ module Brcobranca
30
29
 
31
30
  # Nova instancia do BancoBrasil
32
31
  # @param (see Brcobranca::Boleto::Base#initialize)
33
- def initialize(campos={})
34
- campos = {:carteira => "18", :codigo_servico => false}.merge!(campos)
32
+ def initialize(campos = {})
33
+ campos = { carteira: '18', codigo_servico: false }.merge!(campos)
35
34
  super(campos)
36
35
  end
37
36
 
@@ -39,40 +38,40 @@ module Brcobranca
39
38
  #
40
39
  # @return [String] 3 caracteres numéricos.
41
40
  def banco
42
- "001"
41
+ '001'
43
42
  end
44
43
 
45
44
  # Carteira
46
45
  #
47
46
  # @return [String] 2 caracteres numéricos.
48
47
  def carteira=(valor)
49
- @carteira = valor.to_s.rjust(2,'0') if valor
48
+ @carteira = valor.to_s.rjust(2, '0') if valor
50
49
  end
51
50
 
52
51
  # Dígito verificador do banco
53
52
  #
54
53
  # @return [String] 1 caracteres numéricos.
55
54
  def banco_dv
56
- self.banco.modulo11_9to2_10_como_x
55
+ banco.modulo11_9to2_10_como_x
57
56
  end
58
57
 
59
58
  # Retorna dígito verificador da agência
60
59
  #
61
60
  # @return [String] 1 caracteres numéricos.
62
61
  def agencia_dv
63
- self.agencia.modulo11_9to2_10_como_x
62
+ agencia.modulo11_9to2_10_como_x
64
63
  end
65
64
 
66
65
  # Conta corrente
67
66
  # @return [String] 8 caracteres numéricos.
68
67
  def conta_corrente=(valor)
69
- @conta_corrente = valor.to_s.rjust(8,'0') if valor
68
+ @conta_corrente = valor.to_s.rjust(8, '0') if valor
70
69
  end
71
70
 
72
71
  # Dígito verificador da conta corrente
73
72
  # @return [String] 1 caracteres numéricos.
74
73
  def conta_corrente_dv
75
- self.conta_corrente.modulo11_9to2_10_como_x
74
+ conta_corrente.modulo11_9to2_10_como_x
76
75
  end
77
76
 
78
77
  # Número seqüencial utilizado para identificar o boleto.
@@ -103,18 +102,18 @@ module Brcobranca
103
102
  when 4
104
103
  7
105
104
  when 6
106
- self.codigo_servico ? 17 : 5
105
+ codigo_servico ? 17 : 5
107
106
  else
108
- raise Brcobranca::NaoImplementado.new("Tipo de convênio não implementado.")
107
+ fail Brcobranca::NaoImplementado.new('Tipo de convênio não implementado.')
109
108
  end
110
- quantidade ? @numero_documento.to_s.rjust(quantidade,'0') : @numero_documento
109
+ quantidade ? @numero_documento.to_s.rjust(quantidade, '0') : @numero_documento
111
110
  end
112
111
 
113
112
  # Dígito verificador do nosso número.
114
113
  # @return [String] 1 caracteres numéricos.
115
114
  # @see BancoBrasil#numero_documento
116
115
  def nosso_numero_dv
117
- "#{self.convenio}#{self.numero_documento}".modulo11_9to2_10_como_x
116
+ "#{convenio}#{numero_documento}".modulo11_9to2_10_como_x
118
117
  end
119
118
 
120
119
  # Nosso número para exibir no boleto.
@@ -122,7 +121,7 @@ module Brcobranca
122
121
  # @example
123
122
  # boleto.nosso_numero_boleto #=> "12387989000004042-4"
124
123
  def nosso_numero_boleto
125
- "#{self.convenio}#{self.numero_documento}-#{self.nosso_numero_dv}"
124
+ "#{convenio}#{numero_documento}-#{nosso_numero_dv}"
126
125
  end
127
126
 
128
127
  # Agência + conta corrente do cliente para exibir no boleto.
@@ -130,32 +129,31 @@ module Brcobranca
130
129
  # @example
131
130
  # boleto.agencia_conta_boleto #=> "0548-7 / 00001448-6"
132
131
  def agencia_conta_boleto
133
- "#{self.agencia}-#{self.agencia_dv} / #{self.conta_corrente}-#{self.conta_corrente_dv}"
132
+ "#{agencia}-#{agencia_dv} / #{conta_corrente}-#{conta_corrente_dv}"
134
133
  end
135
134
 
136
135
  # Segunda parte do código de barras.
137
136
  # A montagem é feita baseada na quantidade de dígitos do convênio.
138
137
  # @return [String] 25 caracteres numéricos.
139
138
  def codigo_barras_segunda_parte
140
- case self.convenio.to_s.size
139
+ case convenio.to_s.size
141
140
  when 8 # Nosso Número de 17 dígitos com Convenio de 8 dígitos e numero_documento de 9 dígitos
142
- "000000#{self.convenio}#{self.numero_documento}#{self.carteira}"
141
+ "000000#{convenio}#{numero_documento}#{carteira}"
143
142
  when 7 # Nosso Número de 17 dígitos com Convenio de 7 dígitos e numero_documento de 10 dígitos
144
- "000000#{self.convenio}#{self.numero_documento}#{self.carteira}"
143
+ "000000#{convenio}#{numero_documento}#{carteira}"
145
144
  when 6 # Convenio de 6 dígitos
146
- if self.codigo_servico == false
145
+ if codigo_servico == false
147
146
  # Nosso Número de 11 dígitos com Convenio de 6 dígitos e numero_documento de 5 dígitos
148
- "#{self.convenio}#{self.numero_documento}#{self.agencia}#{self.conta_corrente}#{self.carteira}"
147
+ "#{convenio}#{numero_documento}#{agencia}#{conta_corrente}#{carteira}"
149
148
  else
150
149
  # Nosso Número de 17 dígitos com Convenio de 6 dígitos e sem numero_documento, carteira 16 e 18
151
- raise "Só é permitido emitir boletos com nosso número de 17 dígitos com carteiras 16 ou 18. Sua carteira atual é #{self.carteira}" unless (["16","18"].include?(self.carteira))
152
- "#{self.convenio}#{self.numero_documento}21"
150
+ fail "Só é permitido emitir boletos com nosso número de 17 dígitos com carteiras 16 ou 18. Sua carteira atual é #{carteira}" unless %w(16 18).include?(carteira)
151
+ "#{convenio}#{numero_documento}21"
153
152
  end
154
153
  when 4 # Nosso Número de 7 dígitos com Convenio de 4 dígitos e sem numero_documento
155
- "#{self.convenio}#{self.numero_documento}#{self.agencia}#{self.conta_corrente}#{self.carteira}"
154
+ "#{convenio}#{numero_documento}#{agencia}#{conta_corrente}#{carteira}"
156
155
  end
157
156
  end
158
-
159
157
  end
160
158
  end
161
- end
159
+ end
@@ -73,16 +73,16 @@ module Brcobranca
73
73
  attr_accessor :sacado_documento
74
74
 
75
75
  # Validações
76
- validates_presence_of :agencia, :conta_corrente, :moeda, :especie_documento, :especie, :aceite, :numero_documento, :message => "não pode estar em branco."
77
- validates_numericality_of :convenio, :agencia, :conta_corrente, :numero_documento, :message => "não é um número.", :allow_nil => true
76
+ validates_presence_of :agencia, :conta_corrente, :moeda, :especie_documento, :especie, :aceite, :numero_documento, message: 'não pode estar em branco.'
77
+ validates_numericality_of :convenio, :agencia, :conta_corrente, :numero_documento, message: 'não é um número.', allow_nil: true
78
78
 
79
79
  # Nova instancia da classe Base
80
80
  # @param [Hash] campos
81
- def initialize(campos={})
81
+ def initialize(campos = {})
82
82
  padrao = {
83
- :moeda => "9", :data_documento => Date.today, :dias_vencimento => 1, :quantidade => 1,
84
- :especie_documento => "DM", :especie => "R$", :aceite => "S", :valor => 0.0,
85
- :local_pagamento => "QUALQUER BANCO ATÉ O VENCIMENTO"
83
+ moeda: '9', data_documento: Date.today, dias_vencimento: 1, quantidade: 1,
84
+ especie_documento: 'DM', especie: 'R$', aceite: 'S', valor: 0.0,
85
+ local_pagamento: 'QUALQUER BANCO ATÉ O VENCIMENTO'
86
86
  }
87
87
 
88
88
  campos = padrao.merge!(campos)
@@ -96,53 +96,53 @@ module Brcobranca
96
96
  # Logotipo do banco
97
97
  # @return [Path] Caminho para o arquivo de logotipo do banco.
98
98
  def logotipo
99
- File.join(File.dirname(__FILE__),'..','arquivos','logos',"#{class_name}.jpg")
99
+ File.join(File.dirname(__FILE__), '..', 'arquivos', 'logos', "#{class_name}.eps")
100
100
  end
101
101
 
102
102
  # Dígito verificador do banco
103
103
  # @return [Integer] 1 caracteres numéricos.
104
104
  def banco_dv
105
- self.banco.modulo11_9to2
105
+ banco.modulo11_9to2
106
106
  end
107
107
 
108
108
  # Código da agencia
109
109
  # @return [String] 4 caracteres numéricos.
110
110
  def agencia=(valor)
111
- @agencia = valor.to_s.rjust(4,'0') if valor
111
+ @agencia = valor.to_s.rjust(4, '0') if valor
112
112
  end
113
113
 
114
114
  # Dígito verificador da agência
115
115
  # @return [Integer] 1 caracteres numéricos.
116
116
  def agencia_dv
117
- self.agencia.modulo11_9to2
117
+ agencia.modulo11_9to2
118
118
  end
119
119
 
120
120
  # Dígito verificador da conta corrente
121
121
  # @return [Integer] 1 caracteres numéricos.
122
122
  def conta_corrente_dv
123
- self.conta_corrente.modulo11_9to2
123
+ conta_corrente.modulo11_9to2
124
124
  end
125
125
 
126
126
  # Dígito verificador do nosso número
127
127
  # @return [Integer] 1 caracteres numéricos.
128
128
  def nosso_numero_dv
129
- self.numero_documento.modulo11_9to2
129
+ numero_documento.modulo11_9to2
130
130
  end
131
131
 
132
132
  # @abstract Deverá ser sobreescrito para cada banco.
133
133
  def nosso_numero_boleto
134
- raise Brcobranca::NaoImplementado.new("Sobreescreva este método na classe referente ao banco que você esta criando")
134
+ fail Brcobranca::NaoImplementado.new('Sobreescreva este método na classe referente ao banco que você esta criando')
135
135
  end
136
136
 
137
137
  # @abstract Deverá ser sobreescrito para cada banco.
138
138
  def agencia_conta_boleto
139
- raise Brcobranca::NaoImplementado.new("Sobreescreva este método na classe referente ao banco que você esta criando")
139
+ fail Brcobranca::NaoImplementado.new('Sobreescreva este método na classe referente ao banco que você esta criando')
140
140
  end
141
141
 
142
142
  # Valor total do documento: <b>quantidate * valor</b>
143
143
  # @return [Float]
144
144
  def valor_documento
145
- self.quantidade.to_f * self.valor.to_f
145
+ quantidade.to_f * valor.to_f
146
146
  end
147
147
 
148
148
  # Data de vencimento baseado na <b>data_documento + dias_vencimento</b>
@@ -150,21 +150,21 @@ module Brcobranca
150
150
  # @return [Date]
151
151
  # @raise [ArgumentError] Caso {#data_documento} esteja em branco.
152
152
  def data_vencimento
153
- raise ArgumentError, "data_documento não pode estar em branco." unless self.data_documento
154
- return self.data_documento unless self.dias_vencimento
155
- (self.data_documento + self.dias_vencimento.to_i)
153
+ fail ArgumentError, 'data_documento não pode estar em branco.' unless data_documento
154
+ return data_documento unless dias_vencimento
155
+ (data_documento + dias_vencimento.to_i)
156
156
  end
157
157
 
158
158
  # Fator de vencimento calculado com base na data de vencimento do boleto.
159
159
  # @return [String] 4 caracteres numéricos.
160
160
  def fator_vencimento
161
- self.data_vencimento.fator_vencimento
161
+ data_vencimento.fator_vencimento
162
162
  end
163
163
 
164
164
  # Número da conta corrente
165
165
  # @return [String] 7 caracteres numéricos.
166
166
  def conta_corrente=(valor)
167
- @conta_corrente = valor.to_s.rjust(7,'0') if valor
167
+ @conta_corrente = valor.to_s.rjust(7, '0') if valor
168
168
  end
169
169
 
170
170
  # Codigo de barras do boleto
@@ -181,15 +181,15 @@ module Brcobranca
181
181
  # @raise [Brcobranca::BoletoInvalido] Caso as informações fornecidas não sejam suficientes ou sejam inválidas.
182
182
  # @return [String] código de barras formado por 44 caracteres numéricos.
183
183
  def codigo_barras
184
- raise Brcobranca::BoletoInvalido.new(self) unless self.valid?
185
- codigo = codigo_barras_primeira_parte #18 digitos
186
- codigo << codigo_barras_segunda_parte #25 digitos
184
+ fail Brcobranca::BoletoInvalido.new(self) unless self.valid?
185
+ codigo = codigo_barras_primeira_parte # 18 digitos
186
+ codigo << codigo_barras_segunda_parte # 25 digitos
187
187
  if codigo =~ /^(\d{4})(\d{39})$/
188
188
  codigo_dv = codigo.modulo11_2to9
189
- codigo = "#{$1}#{codigo_dv}#{$2}"
189
+ codigo = "#{Regexp.last_match[1]}#{codigo_dv}#{Regexp.last_match[2]}"
190
190
  codigo
191
191
  else
192
- raise Brcobranca::BoletoInvalido.new(self)
192
+ fail Brcobranca::BoletoInvalido.new(self)
193
193
  end
194
194
  end
195
195
 
@@ -197,7 +197,7 @@ module Brcobranca
197
197
  #
198
198
  # @abstract Deverá ser sobreescrito para cada banco.
199
199
  def codigo_barras_segunda_parte
200
- raise Brcobranca::NaoImplementado.new("Sobreescreva este método na classe referente ao banco que você esta criando")
200
+ fail Brcobranca::NaoImplementado.new('Sobreescreva este método na classe referente ao banco que você esta criando')
201
201
  end
202
202
 
203
203
  private
@@ -205,21 +205,20 @@ module Brcobranca
205
205
  # Monta a primeira parte do código de barras, que é a mesma para todos bancos.
206
206
  # @return [String] 18 caracteres numéricos.
207
207
  def codigo_barras_primeira_parte
208
- "#{self.banco}#{self.moeda}#{self.fator_vencimento}#{valor_documento_formatado}"
208
+ "#{banco}#{moeda}#{fator_vencimento}#{valor_documento_formatado}"
209
209
  end
210
210
 
211
211
  # Valor total do documento
212
212
  # @return [String] 10 caracteres numéricos.
213
213
  def valor_documento_formatado
214
- self.valor_documento.limpa_valor_moeda.to_s.rjust(10,'0')
214
+ valor_documento.round(2).limpa_valor_moeda.to_s.rjust(10, '0')
215
215
  end
216
216
 
217
217
  # Nome da classe do boleto
218
218
  # @return [String]
219
219
  def class_name
220
- self.class.to_s.split("::").last.downcase
220
+ self.class.to_s.split('::').last.downcase
221
221
  end
222
-
223
222
  end
224
223
  end
225
224
  end