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