<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>PostInstall.txt</filename>
    </added>
    <added>
      <filename>lib/brcobranca/arquivos/logos/banespa.jpg</filename>
    </added>
    <added>
      <filename>lib/brcobranca/boleto/banco_banespa.rb</filename>
    </added>
    <added>
      <filename>spec/arquivos/CBR64310.RET</filename>
    </added>
    <added>
      <filename>spec/brcobranca/banco_banespa_spec.rb</filename>
    </added>
    <added>
      <filename>spec/brcobranca/banco_bradesco_spec.rb</filename>
    </added>
    <added>
      <filename>spec/brcobranca/banco_brasil_spec.rb</filename>
    </added>
    <added>
      <filename>spec/brcobranca/banco_hsbc_spec.rb</filename>
    </added>
    <added>
      <filename>spec/brcobranca/banco_itau_spec.rb</filename>
    </added>
    <added>
      <filename>spec/brcobranca/banco_real_spec.rb</filename>
    </added>
    <added>
      <filename>spec/brcobranca/banco_unibanco_spec.rb</filename>
    </added>
    <added>
      <filename>spec/brcobranca/base_spec.rb</filename>
    </added>
    <added>
      <filename>spec/brcobranca/core_ext_spec.rb</filename>
    </added>
    <added>
      <filename>spec/brcobranca/currency_spec.rb</filename>
    </added>
    <added>
      <filename>spec/brcobranca/retorno_cbr643_spec.rb</filename>
    </added>
    <added>
      <filename>spec/brcobranca/rghost_spec.rb</filename>
    </added>
    <added>
      <filename>spec/brcobranca/template/rghost_spec.rb</filename>
    </added>
    <added>
      <filename>spec/brcobranca/template/util_spec.rb</filename>
    </added>
    <added>
      <filename>spec/brcobranca_spec.rb</filename>
    </added>
    <added>
      <filename>spec/rcov.opts</filename>
    </added>
    <added>
      <filename>spec/spec.opts</filename>
    </added>
    <added>
      <filename>spec/spec_helper.rb</filename>
    </added>
    <added>
      <filename>tasks/rcov.rake</filename>
    </added>
    <added>
      <filename>tasks/rspec.rake</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,3 +1,7 @@
+== 2.0.6 16-08-2009
+
+* Incluindo boleto para banco Santander Banespa - Diego Lucena
+
 == 2.0.4 04-05-2009
 
 * Solucionado problemas com refatora&#231;&#227;o do retorno.</diff>
      <filename>History.txt</filename>
    </modified>
    <modified>
      <diff>@@ -1,9 +1,11 @@
 History.txt
 Manifest.txt
+PostInstall.txt
 README.rdoc
 Rakefile
 brcobranca.gemspec
 lib/brcobranca.rb
+lib/brcobranca/arquivos/logos/banespa.jpg
 lib/brcobranca/arquivos/logos/bb.jpg
 lib/brcobranca/arquivos/logos/bradesco.jpg
 lib/brcobranca/arquivos/logos/hsbc.jpg
@@ -11,6 +13,7 @@ lib/brcobranca/arquivos/logos/itau.jpg
 lib/brcobranca/arquivos/logos/real.jpg
 lib/brcobranca/arquivos/logos/unibanco.jpg
 lib/brcobranca/arquivos/templates/modelo_generico.eps
+lib/brcobranca/boleto/banco_banespa.rb
 lib/brcobranca/boleto/banco_bradesco.rb
 lib/brcobranca/boleto/banco_brasil.rb
 lib/brcobranca/boleto/banco_hsbc.rb
@@ -25,3 +28,24 @@ lib/brcobranca/core_ext.rb
 lib/brcobranca/currency.rb
 lib/brcobranca/retorno/base.rb
 lib/brcobranca/retorno/retorno_cbr643.rb
+spec/arquivos/CBR64310.RET
+spec/brcobranca/banco_banespa_spec.rb
+spec/brcobranca/banco_bradesco_spec.rb
+spec/brcobranca/banco_brasil_spec.rb
+spec/brcobranca/banco_hsbc_spec.rb
+spec/brcobranca/banco_itau_spec.rb
+spec/brcobranca/banco_real_spec.rb
+spec/brcobranca/banco_unibanco_spec.rb
+spec/brcobranca/base_spec.rb
+spec/brcobranca/core_ext_spec.rb
+spec/brcobranca/currency_spec.rb
+spec/brcobranca/retorno_cbr643_spec.rb
+spec/brcobranca/rghost_spec.rb
+spec/brcobranca/template/rghost_spec.rb
+spec/brcobranca/template/util_spec.rb
+spec/brcobranca_spec.rb
+spec/rcov.opts
+spec/spec.opts
+spec/spec_helper.rb
+tasks/rcov.rake
+tasks/rspec.rake</diff>
      <filename>Manifest.txt</filename>
    </modified>
    <modified>
      <diff>@@ -10,7 +10,7 @@
 
 Gem para emiss&#227;o de bloquetos de cobran&#231;a para bancos brasileiros
 
-== Bancos Dispon&#237;veis 
+== Bancos Dispon&#237;veis
 
 * Banco do Brasil
   * TODAS AS CARTEIRAS PRESENTES NA DOCUMENTA&#199;&#195;O
@@ -20,14 +20,14 @@ Gem para emiss&#227;o de bloquetos de cobran&#231;a para bancos brasileiros
 
 * Banco HSBC
   * CNR
-  
+
 * Banco Real
   * Sem registro
   * Com registro
-  
+
 * Banco Bradesco
   * TODAS AS CARTEIRAS PRESENTES NA DOCUMENTA&#199;&#195;O
-  
+
 * Banco UNIBANCO
   * Sem registro
   * Com registro</diff>
      <filename>README.rdoc</filename>
    </modified>
    <modified>
      <diff>@@ -2,33 +2,36 @@ require 'rubygems'
 gem 'hoe', '&gt;= 2.1.0'
 require 'hoe'
 require 'fileutils'
-require File.dirname(__FILE__) + '/lib/brcobranca'
+require './lib/brcobranca'
 
 Hoe.plugin :newgem
 Hoe.plugin :website
+# Hoe.plugin :cucumberfeatures
 
 # Generate all the Rake tasks
 # Run 'rake -T' to see list of generated tasks (from gem root directory)
 $hoe = Hoe.spec 'brcobranca' do
-  self.developer('Kivanio Barbosa', 'kivanio@gmail.com')
-  self.rubyforge_name       = self.name
+  self.developer 'Kivanio Barbosa', 'kivanio@gmail.com'
+  self.post_install_message = 'PostInstall.txt' # TODO remove if post-install message not required
+  self.rubyforge_name       = self.name # TODO this is default value
   self.extra_deps         = [
     ['rghost','&gt;= 0.8.7'],
     ['rghost_barcode','&gt;= 0.8'],
     ['parseline','&gt;= 1.0.3']
   ]
 
-  # self.rdoc_pattern = /rb$|rdoc$/
-  self.summary = 'Gem que permite trabalhar com cobran&#231;as via bancos brasileiros.'
+  self.summary = 'Gem que permite trabalhar com bloquetos de cobran&#231;a para bancos brasileiros.'
   self.description = 'Gem para emiss&#227;o de bloquetos de cobran&#231;a de bancos brasileiros.'
   self.clean_globs |= %w[**/.DS_Store tmp *.log]
+  # self.rdoc_pattern = /rb$|rdoc$/
   path = (self.rubyforge_name == self.name) ? self.rubyforge_name : &quot;\#{self.rubyforge_name}/\#{self.name}&quot;
   self.remote_rdoc_dir = File.join(path.gsub(/^#{self.rubyforge_name}\/?/,''), 'rdoc')
   self.rsync_args = '-av --delete --ignore-errors'
 end
 
-require 'newgem/tasks' # load /tasks/*.rake
+require 'newgem/tasks'
 Dir['tasks/**/*.rake'].each { |t| load t }
 
 # TODO - want other tests/tasks run by default? Add them to the list
+# remove_task :default
 # task :default =&gt; [:spec, :features]
\ No newline at end of file</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -2,22 +2,22 @@
 
 Gem::Specification.new do |s|
   s.name = %q{brcobranca}
-  s.version = &quot;2.0.5&quot;
+  s.version = &quot;3.0.0&quot;
 
   s.required_rubygems_version = Gem::Requirement.new(&quot;&gt;= 0&quot;) if s.respond_to? :required_rubygems_version=
   s.authors = [&quot;Kivanio Barbosa&quot;]
-  s.date = %q{2009-07-23}
+  s.date = %q{2009-08-15}
   s.description = %q{Gem para emiss&#227;o de bloquetos de cobran&#231;a de bancos brasileiros.}
   s.email = [&quot;kivanio@gmail.com&quot;]
-  s.extra_rdoc_files = [&quot;History.txt&quot;, &quot;Manifest.txt&quot;]
-  s.files = [&quot;History.txt&quot;, &quot;Manifest.txt&quot;, &quot;README.rdoc&quot;, &quot;Rakefile&quot;, &quot;brcobranca.gemspec&quot;, &quot;lib/brcobranca.rb&quot;, &quot;lib/brcobranca/arquivos/logos/bb.jpg&quot;, &quot;lib/brcobranca/arquivos/logos/bradesco.jpg&quot;, &quot;lib/brcobranca/arquivos/logos/hsbc.jpg&quot;, &quot;lib/brcobranca/arquivos/logos/itau.jpg&quot;, &quot;lib/brcobranca/arquivos/logos/real.jpg&quot;, &quot;lib/brcobranca/arquivos/logos/unibanco.jpg&quot;, &quot;lib/brcobranca/arquivos/templates/modelo_generico.eps&quot;, &quot;lib/brcobranca/boleto/banco_bradesco.rb&quot;, &quot;lib/brcobranca/boleto/banco_brasil.rb&quot;, &quot;lib/brcobranca/boleto/banco_hsbc.rb&quot;, &quot;lib/brcobranca/boleto/banco_itau.rb&quot;, &quot;lib/brcobranca/boleto/banco_real.rb&quot;, &quot;lib/brcobranca/boleto/banco_unibanco.rb&quot;, &quot;lib/brcobranca/boleto/base.rb&quot;, &quot;lib/brcobranca/boleto/template/rghost.rb&quot;, &quot;lib/brcobranca/boleto/template/util.rb&quot;, &quot;lib/brcobranca/config.rb&quot;, &quot;lib/brcobranca/core_ext.rb&quot;, &quot;lib/brcobranca/currency.rb&quot;, &quot;lib/brcobranca/retorno/base.rb&quot;, &quot;lib/brcobranca/retorno/retorno_cbr643.rb&quot;, &quot;test/test_banco_bradesco.rb&quot;, &quot;test/test_banco_brasil.rb&quot;, &quot;test/test_banco_hsbc.rb&quot;, &quot;test/test_banco_itau.rb&quot;, &quot;test/test_banco_real.rb&quot;, &quot;test/test_banco_unibanco.rb&quot;, &quot;test/test_base.rb&quot;, &quot;test/test_core_ext.rb&quot;, &quot;test/test_currency.rb&quot;, &quot;test/test_helper.rb&quot;, &quot;test/test_retorno_cbr643.rb&quot;, &quot;test/test_rghost.rb&quot;]
+  s.extra_rdoc_files = [&quot;History.txt&quot;, &quot;Manifest.txt&quot;, &quot;PostInstall.txt&quot;]
+  s.files = [&quot;History.txt&quot;, &quot;Manifest.txt&quot;, &quot;PostInstall.txt&quot;, &quot;README.rdoc&quot;, &quot;Rakefile&quot;, &quot;brcobranca.gemspec&quot;, &quot;lib/brcobranca.rb&quot;, &quot;lib/brcobranca/arquivos/logos/banespa.jpg&quot;, &quot;lib/brcobranca/arquivos/logos/bb.jpg&quot;, &quot;lib/brcobranca/arquivos/logos/bradesco.jpg&quot;, &quot;lib/brcobranca/arquivos/logos/hsbc.jpg&quot;, &quot;lib/brcobranca/arquivos/logos/itau.jpg&quot;, &quot;lib/brcobranca/arquivos/logos/real.jpg&quot;, &quot;lib/brcobranca/arquivos/logos/unibanco.jpg&quot;, &quot;lib/brcobranca/arquivos/templates/modelo_generico.eps&quot;, &quot;lib/brcobranca/boleto/banco_banespa.rb&quot;, &quot;lib/brcobranca/boleto/banco_bradesco.rb&quot;, &quot;lib/brcobranca/boleto/banco_brasil.rb&quot;, &quot;lib/brcobranca/boleto/banco_hsbc.rb&quot;, &quot;lib/brcobranca/boleto/banco_itau.rb&quot;, &quot;lib/brcobranca/boleto/banco_real.rb&quot;, &quot;lib/brcobranca/boleto/banco_unibanco.rb&quot;, &quot;lib/brcobranca/boleto/base.rb&quot;, &quot;lib/brcobranca/boleto/template/rghost.rb&quot;, &quot;lib/brcobranca/boleto/template/util.rb&quot;, &quot;lib/brcobranca/config.rb&quot;, &quot;lib/brcobranca/core_ext.rb&quot;, &quot;lib/brcobranca/currency.rb&quot;, &quot;lib/brcobranca/retorno/base.rb&quot;, &quot;lib/brcobranca/retorno/retorno_cbr643.rb&quot;, &quot;spec/arquivos/CBR64310.RET&quot;, &quot;spec/brcobranca/banco_banespa_spec.rb&quot;, &quot;spec/brcobranca/banco_bradesco_spec.rb&quot;, &quot;spec/brcobranca/banco_brasil_spec.rb&quot;, &quot;spec/brcobranca/banco_hsbc_spec.rb&quot;, &quot;spec/brcobranca/banco_itau_spec.rb&quot;, &quot;spec/brcobranca/banco_real_spec.rb&quot;, &quot;spec/brcobranca/banco_unibanco_spec.rb&quot;, &quot;spec/brcobranca/base_spec.rb&quot;, &quot;spec/brcobranca/core_ext_spec.rb&quot;, &quot;spec/brcobranca/currency_spec.rb&quot;, &quot;spec/brcobranca/retorno_cbr643_spec.rb&quot;, &quot;spec/brcobranca/rghost_spec.rb&quot;, &quot;spec/brcobranca/template/rghost_spec.rb&quot;, &quot;spec/brcobranca/template/util_spec.rb&quot;, &quot;spec/brcobranca_spec.rb&quot;, &quot;spec/rcov.opts&quot;, &quot;spec/spec.opts&quot;, &quot;spec/spec_helper.rb&quot;, &quot;tasks/rcov.rake&quot;, &quot;tasks/rspec.rake&quot;]
   s.homepage = %q{http://brcobranca.rubyforge.org}
+  s.post_install_message = %q{PostInstall.txt}
   s.rdoc_options = [&quot;--main&quot;, &quot;README.rdoc&quot;]
   s.require_paths = [&quot;lib&quot;]
   s.rubyforge_project = %q{brcobranca}
   s.rubygems_version = %q{1.3.5}
   s.summary = %q{Gem que permite trabalhar com cobran&#231;as via bancos brasileiros.}
-  s.test_files = [&quot;test/test_banco_bradesco.rb&quot;, &quot;test/test_banco_brasil.rb&quot;, &quot;test/test_banco_hsbc.rb&quot;, &quot;test/test_banco_itau.rb&quot;, &quot;test/test_banco_real.rb&quot;, &quot;test/test_banco_unibanco.rb&quot;, &quot;test/test_base.rb&quot;, &quot;test/test_core_ext.rb&quot;, &quot;test/test_currency.rb&quot;, &quot;test/test_helper.rb&quot;, &quot;test/test_retorno_cbr643.rb&quot;, &quot;test/test_rghost.rb&quot;]
 
   if s.respond_to? :specification_version then
     current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
@@ -27,17 +27,17 @@ Gem::Specification.new do |s|
       s.add_runtime_dependency(%q&lt;rghost&gt;, [&quot;&gt;= 0.8.7&quot;])
       s.add_runtime_dependency(%q&lt;rghost_barcode&gt;, [&quot;&gt;= 0.8&quot;])
       s.add_runtime_dependency(%q&lt;parseline&gt;, [&quot;&gt;= 1.0.3&quot;])
-      s.add_development_dependency(%q&lt;hoe&gt;, [&quot;&gt;= 2.3.2&quot;])
+      s.add_development_dependency(%q&lt;hoe&gt;, [&quot;&gt;= 2.3.3&quot;])
     else
       s.add_dependency(%q&lt;rghost&gt;, [&quot;&gt;= 0.8.7&quot;])
       s.add_dependency(%q&lt;rghost_barcode&gt;, [&quot;&gt;= 0.8&quot;])
       s.add_dependency(%q&lt;parseline&gt;, [&quot;&gt;= 1.0.3&quot;])
-      s.add_dependency(%q&lt;hoe&gt;, [&quot;&gt;= 2.3.2&quot;])
+      s.add_dependency(%q&lt;hoe&gt;, [&quot;&gt;= 2.3.3&quot;])
     end
   else
     s.add_dependency(%q&lt;rghost&gt;, [&quot;&gt;= 0.8.7&quot;])
     s.add_dependency(%q&lt;rghost_barcode&gt;, [&quot;&gt;= 0.8&quot;])
     s.add_dependency(%q&lt;parseline&gt;, [&quot;&gt;= 1.0.3&quot;])
-    s.add_dependency(%q&lt;hoe&gt;, [&quot;&gt;= 2.3.2&quot;])
+    s.add_dependency(%q&lt;hoe&gt;, [&quot;&gt;= 2.3.3&quot;])
   end
 end</diff>
      <filename>brcobranca.gemspec</filename>
    </modified>
    <modified>
      <diff>@@ -1,8 +1,16 @@
 $:.unshift(File.dirname(__FILE__)) unless $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
 
+begin
+  require 'date'
+rescue LoadError
+  require 'rubygems' unless ENV['NO_RUBYGEMS']
+  gem 'date'
+  require 'date'
+end
+
 %w(core_ext currency config).each {|req| require File.join(File.dirname(__FILE__),&quot;brcobranca&quot;,req) }
 
-%w(base banco_brasil banco_itau banco_hsbc banco_real banco_bradesco banco_unibanco).each {|req| require File.join(File.dirname(__FILE__),&quot;brcobranca&quot;,&quot;boleto&quot;,req) }
+%w(base banco_brasil banco_itau banco_hsbc banco_real banco_bradesco banco_unibanco banco_banespa).each {|req| require File.join(File.dirname(__FILE__),&quot;brcobranca&quot;,&quot;boleto&quot;,req) }
 
 %w(util rghost).each {|req| require File.join(File.dirname(__FILE__),&quot;brcobranca&quot;,&quot;boleto&quot;,&quot;template&quot;,req) }
 
@@ -23,5 +31,5 @@ else
 end
 
 module Brcobranca
-  VERSION = '2.0.5'
+  VERSION = '3.0.0'
 end
\ No newline at end of file</diff>
      <filename>lib/brcobranca.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,6 +6,18 @@ class BancoBradesco &lt; Brcobranca::Boleto::Base
     campos = padrao.merge!(campos)
     super(campos)
   end
+  
+  # Campo usado apenas na exibi&#231;&#227;o no boleto
+  #  Dever&#225; ser sobreescrito para cada banco
+  def nosso_numero_boleto
+   &quot;#{self.carteira}/#{self.numero_documento.zeros_esquerda(:tamanho =&gt; 11)}-#{self.nosso_numero_dv}&quot;
+  end
+
+  # Campo usado apenas na exibi&#231;&#227;o no boleto
+  #  Dever&#225; ser sobreescrito para cada banco
+  def agencia_conta_boleto
+   &quot;#{self.agencia}-#{self.agencia_dv} / #{self.conta_corrente}-#{self.conta_corrente_dv}&quot;
+  end
 
   # Respons&#225;vel por montar uma String com 43 caracteres que ser&#225; usado na cria&#231;&#227;o do c&#243;digo de barras
   #   As posi&#231;&#245;es do campo livre ficam a crit&#233;rio de cada Banco arrecadador, sendo que o
@@ -26,6 +38,7 @@ class BancoBradesco &lt; Brcobranca::Boleto::Base
     numero_documento = self.numero_documento.zeros_esquerda(:tamanho =&gt; 11)
     conta = self.conta_corrente.zeros_esquerda(:tamanho =&gt; 7)
 
-    &quot;#{banco}#{self.moeda}#{fator}#{valor_documento}#{agencia}#{carteira}#{numero_documento}#{conta}0&quot;
+    numero = &quot;#{banco}#{self.moeda}#{fator}#{valor_documento}#{agencia}#{carteira}#{numero_documento}#{conta}0&quot;
+    numero.size == 43 ? numero : nil
   end
 end
\ No newline at end of file</diff>
      <filename>lib/brcobranca/boleto/banco_bradesco.rb</filename>
    </modified>
    <modified>
      <diff>@@ -28,10 +28,17 @@ class BancoBrasil &lt; Brcobranca::Boleto::Base
   def nosso_numero_dv
     &quot;#{self.convenio}#{self.numero_documento}&quot;.modulo11_9to2_10_como_x
   end
+  
+  # Campo usado apenas na exibi&#231;&#227;o no boleto
+  #  Dever&#225; ser sobreescrito para cada banco
+  def nosso_numero_boleto
+   &quot;#{self.convenio}#{self.numero_documento}-#{self.nosso_numero_dv}&quot;
+  end
 
-  # N&#250;mero sequencial utilizado para distinguir os boletos na ag&#234;ncia
-  def nosso_numero
-    &quot;#{self.convenio}#{self.numero_documento}-#{self.nosso_numero_dv}&quot;
+  # Campo usado apenas na exibi&#231;&#227;o no boleto
+  #  Dever&#225; ser sobreescrito para cada banco
+  def agencia_conta_boleto
+   &quot;#{self.agencia}-#{self.agencia_dv} / #{self.conta_corrente}-#{self.conta_corrente_dv}&quot;
   end
 
   # Responsavel por montar uma String com 43 caracteres que ser&#225; usado na criacao do codigo de barras
@@ -45,11 +52,11 @@ class BancoBrasil &lt; Brcobranca::Boleto::Base
     when 8 # Nosso Numero de 17 d&#237;gitos com Convenio de 8 d&#237;gitos e numero_documento de 9 d&#237;gitos
       numero_documento = self.numero_documento.zeros_esquerda(:tamanho =&gt; 9)
       raise &quot;Seu complemento est&#225; com #{numero_documento.size} d&#237;gitos. Com conv&#234;nio de 8 d&#237;gitos, somente permite-se at&#233; 9 d&#237;gitos no numero_documento do nosso numero.&quot; if numero_documento.size &gt; 9
-      &quot;#{banco}#{self.moeda}#{fator}#{valor_documento}000000#{convenio}#{numero_documento}#{self.carteira}&quot;
+      numero = &quot;#{banco}#{self.moeda}#{fator}#{valor_documento}000000#{convenio}#{numero_documento}#{self.carteira}&quot;
     when 7 # Nosso Numero de 17 d&#237;gitos com Convenio de 7 d&#237;gitos e numero_documento de 10 d&#237;gitos
       numero_documento = self.numero_documento.zeros_esquerda(:tamanho =&gt; 10)
       raise &quot;Seu complemento est&#225; com #{numero_documento.size} d&#237;gitos. Com conv&#234;nio de 7 d&#237;gitos, somente permite-se at&#233; 10 d&#237;gitos no numero_documento do nosso numero.&quot; if numero_documento.size &gt; 10
-      &quot;#{banco}#{self.moeda}#{fator}#{valor_documento}000000#{convenio}#{numero_documento}#{self.carteira}&quot;
+      numero = &quot;#{banco}#{self.moeda}#{fator}#{valor_documento}000000#{convenio}#{numero_documento}#{self.carteira}&quot;
     when 6 # Convenio de 6 d&#237;gitos
       if self.codigo_servico == false
         # Nosso Numero de 11 d&#237;gitos com Convenio de 6 d&#237;gitos e numero_documento de 5 digitos
@@ -57,23 +64,25 @@ class BancoBrasil &lt; Brcobranca::Boleto::Base
         raise &quot;Seu numero_documento est&#225; com #{numero_documento.size} d&#237;gitos. Com conv&#234;nio de 6 d&#237;gitos, somente permite-se at&#233; 5 d&#237;gitos no numero_documento do nosso numero. Para emitir boletos com nosso numero de 17 d&#237;gitos, coloque o atributo codigo_servico=true&quot; if numero_documento.size &gt; 5
         agencia = self.agencia.zeros_esquerda(:tamanho =&gt; 4)
         conta = self.conta_corrente.zeros_esquerda(:tamanho =&gt; 8)
-        &quot;#{banco}#{self.moeda}#{fator}#{valor_documento}#{convenio}#{numero_documento}#{agencia}#{conta}#{self.carteira}&quot;
+        numero = &quot;#{banco}#{self.moeda}#{fator}#{valor_documento}#{convenio}#{numero_documento}#{agencia}#{conta}#{self.carteira}&quot;
       else
         # Nosso Numero de 17 d&#237;gitos com Convenio de 6 d&#237;gitos e sem numero_documento, carteira 16 e 18
         numero_documento = self.numero_documento.zeros_esquerda(:tamanho =&gt; 17)
         raise &quot;Seu numero_documento est&#225; com #{numero_documento.size} d&#237;gitos. Com conv&#234;nio de 6 d&#237;gitos, somente permite-se at&#233; 17 d&#237;gitos no numero_documento do nosso numero.&quot; if (numero_documento.size &gt; 17)
         raise &quot;S&#243; &#233; permitido emitir boletos com nosso n&#250;mero de 17 d&#237;gitos com carteiras 16 ou 18. Sua carteira atual &#233; #{self.carteira}&quot; unless ([&quot;16&quot;,&quot;18&quot;].include?(self.carteira))
-        &quot;#{banco}#{self.moeda}#{fator}#{valor_documento}#{convenio}#{numero_documento}21&quot;
+        numero = &quot;#{banco}#{self.moeda}#{fator}#{valor_documento}#{convenio}#{numero_documento}21&quot;
       end
     when 4 # Nosso Numero de 7 d&#237;gitos com Convenio de 4 d&#237;gitos e sem numero_documento
       numero_documento = self.numero_documento.zeros_esquerda(:tamanho =&gt; 7)
       raise &quot;Seu numero_documento est&#225; com #{numero_documento.size} d&#237;gitos. Com conv&#234;nio de 4 d&#237;gitos, somente permite-se at&#233; 7 d&#237;gitos no numero_documento do nosso numero.&quot; if numero_documento.size &gt; 7
       agencia = self.agencia.zeros_esquerda(:tamanho =&gt; 4)
       conta = self.conta_corrente.zeros_esquerda(:tamanho =&gt; 8)
-      &quot;#{banco}#{self.moeda}#{fator}#{valor_documento}#{convenio}#{numero_documento}#{agencia}#{conta}#{self.carteira}&quot;
+      numero = &quot;#{banco}#{self.moeda}#{fator}#{valor_documento}#{convenio}#{numero_documento}#{agencia}#{conta}#{self.carteira}&quot;
     else
-      return nil
+      numero = &quot;&quot;
     end
+
+    numero.size == 43 ? numero : nil
   end
 
 end
\ No newline at end of file</diff>
      <filename>lib/brcobranca/boleto/banco_brasil.rb</filename>
    </modified>
    <modified>
      <diff>@@ -10,7 +10,7 @@ class BancoHsbc &lt; Brcobranca::Boleto::Base
 
   # N&#250;mero sequencial utilizado para distinguir os boletos na ag&#234;ncia
   def nosso_numero
-    if self.data_vencimento
+    if self.data_vencimento.kind_of?(Date)
       self.codigo_servico = 4
       dia = self.data_vencimento.day.to_s.zeros_esquerda(:tamanho =&gt; 2)
       mes = self.data_vencimento.month.to_s.zeros_esquerda(:tamanho =&gt; 2)
@@ -29,6 +29,18 @@ class BancoHsbc &lt; Brcobranca::Boleto::Base
       numero
     end
   end
+  
+  # Campo usado apenas na exibi&#231;&#227;o no boleto
+  #  Dever&#225; ser sobreescrito para cada banco
+  def nosso_numero_boleto
+   &quot;#{self.nosso_numero}&quot;
+  end
+
+  # Campo usado apenas na exibi&#231;&#227;o no boleto
+  #  Dever&#225; ser sobreescrito para cada banco
+  def agencia_conta_boleto
+   &quot;#{self.conta_corrente}&quot;
+  end
 
   # Respons&#225;vel por montar uma String com 43 caracteres que ser&#225; usado na cria&#231;&#227;o do c&#243;digo de barras
   def monta_codigo_43_digitos
@@ -39,23 +51,25 @@ class BancoHsbc &lt; Brcobranca::Boleto::Base
 
     # Montagem &#233; baseada no tipo de carteira e na presen&#231;a da data de vencimento
     if self.carteira == &quot;CNR&quot;
-      if self.data_vencimento
+      if self.data_vencimento.kind_of?(Date)
         raise &quot;numero_documento pode ser de no m&#225;ximo 13 caracteres.&quot; if (self.numero_documento.to_s.size &gt; 13)
         fator = self.data_vencimento.fator_vencimento
         dias_julianos = self.data_vencimento.to_juliano
         self.codigo_servico = 4
-        numero_documento = self.numero_documento.zeros_esquerda(:tamanho =&gt; 13)       
-        &quot;#{banco}#{self.moeda}#{fator}#{valor_documento}#{conta}#{numero_documento}#{dias_julianos}2&quot;
+        numero_documento = self.numero_documento.zeros_esquerda(:tamanho =&gt; 13)
+        numero = &quot;#{banco}#{self.moeda}#{fator}#{valor_documento}#{conta}#{numero_documento}#{dias_julianos}2&quot;
+        numero.size == 43 ? numero : nil
       else
         # TODO
         nil
       end
     else
-      raise &quot;numero_documento pode ser de no m&#225;ximo 6 caracteres.&quot; if (self.numero_documento.to_s.size &gt; 6)
-      numero_documento = self.numero_documento.zeros_esquerda(:tamanho =&gt; 6)
-      nosso_numero = self.nosso_numero.zeros_esquerda(:tamanho =&gt; 9)
-      self.codigo_servico = 5
       # TODO
+      # raise &quot;numero_documento pode ser de no m&#225;ximo 6 caracteres.&quot; if (self.numero_documento.to_s.size &gt; 6)
+      # numero_documento = self.numero_documento.zeros_esquerda(:tamanho =&gt; 6)
+      # nosso_numero = self.nosso_numero.zeros_esquerda(:tamanho =&gt; 9)
+      # self.codigo_servico = 5
+      
       nil
     end
   end</diff>
      <filename>lib/brcobranca/boleto/banco_hsbc.rb</filename>
    </modified>
    <modified>
      <diff>@@ -10,10 +10,10 @@ class BancoItau &lt; Brcobranca::Boleto::Base
     super(campos)
   end
 
-  # Retorna d&#237;gito verificador do nosso n&#250;mero, calculado com modulo10. 
-  # Para a grande maioria das carteiras, s&#227;o considerados para a obten&#231;&#227;o do DAC/DV, os dados 
-  # &quot;AGENCIA(sem DAC/DV)/CONTA(sem DAC/DV)/CARTEIRA/NOSSO NUMERO&quot;, calculado pelo criterio do Modulo 10. 
-  # A excecao, est&#227;o as carteiras 126, 131, 146, 150 e 168 cuja obten&#231;&#227;o esta baseada apenas nos 
+  # Retorna d&#237;gito verificador do nosso n&#250;mero, calculado com modulo10.
+  # Para a grande maioria das carteiras, s&#227;o considerados para a obten&#231;&#227;o do DAC/DV, os dados
+  # &quot;AGENCIA(sem DAC/DV)/CONTA(sem DAC/DV)/CARTEIRA/NOSSO NUMERO&quot;, calculado pelo criterio do Modulo 10.
+  # A excecao, est&#227;o as carteiras 126, 131, 146, 150 e 168 cuja obten&#231;&#227;o esta baseada apenas nos
   # dados &quot;CARTEIRA/NOSSO NUMERO&quot;.
   def nosso_numero_dv
     if %w(126 131 146 150 168).include?(self.carteira)
@@ -24,16 +24,23 @@ class BancoItau &lt; Brcobranca::Boleto::Base
     end
   end
 
-  # N&#250;mero sequencial utilizado para distinguir os boletos na ag&#234;ncia
-  def nosso_numero
-    &quot;#{self.carteira}/#{self.numero_documento}-#{self.nosso_numero_dv}&quot;
-  end
-
-  # Calcula o d&#237;gito verificador para conta corrente do Itau. 
+  # Calcula o d&#237;gito verificador para conta corrente do Itau.
   # Retorna apenas o d&#237;gito verificador da conta ou nil caso seja imposs&#237;vel calcular.
   def agencia_conta_corrente_dv
     &quot;#{self.agencia}#{self.conta_corrente}&quot;.modulo10
   end
+  
+  # Campo usado apenas na exibi&#231;&#227;o no boleto
+  #  Dever&#225; ser sobreescrito para cada banco
+  def nosso_numero_boleto
+   &quot;#{self.carteira}/#{self.numero_documento}-#{self.nosso_numero_dv}&quot;
+  end
+  
+  # Campo usado apenas na exibi&#231;&#227;o no boleto
+  #  Dever&#225; ser sobreescrito para cada banco
+  def agencia_conta_boleto
+   &quot;#{self.agencia}-#{self.agencia_dv} / #{self.conta_corrente}-#{self.conta_corrente_dv}&quot;
+  end
 
   # Respons&#225;vel por montar uma String com 43 caracteres que ser&#225; usado na cria&#231;&#227;o do c&#243;digo de barras.
   def monta_codigo_43_digitos
@@ -61,6 +68,7 @@ class BancoItau &lt; Brcobranca::Boleto::Base
       codigo = &quot;#{self.banco}#{self.moeda}#{fator_vencimento}#{valor_documento_formatado}#{self.carteira}&quot;
       codigo &lt;&lt; &quot;#{numero_documento}#{self.nosso_numero_dv}#{self.agencia}#{self.conta_corrente}#{self.agencia_conta_corrente_dv}000&quot;
       codigo
+      codigo.size == 43 ? codigo : nil
     when 198, 106, 107, 122, 142, 143, 195, 196
       # CARTEIRAS 198, 106, 107,122, 142, 143, 195 e 196
       # 01 a 03 03 9(3) C&#243;digo do Banco na C&#226;mara de Compensa&#231;&#227;o = &#8216;341&#8217;
@@ -83,6 +91,7 @@ class BancoItau &lt; Brcobranca::Boleto::Base
       codigo = &quot;#{self.banco}#{self.moeda}#{fator_vencimento}#{valor_documento_formatado}#{self.carteira}&quot;
       codigo &lt;&lt; &quot;#{numero_documento}#{seu_numero}#{convenio}#{dv}0&quot;
       codigo
+      codigo.size == 43 ? codigo : nil
     else
       # DEMAIS CARTEIRAS
       # 01 a 03 03 9(03) C&#243;digo do Banco na C&#226;mara de Compensa&#231;&#227;o = '341'
@@ -100,6 +109,7 @@ class BancoItau &lt; Brcobranca::Boleto::Base
       codigo = &quot;#{self.banco}#{self.moeda}#{fator_vencimento}#{valor_documento_formatado}#{self.carteira}&quot;
       codigo &lt;&lt; &quot;#{numero_documento}#{self.nosso_numero_dv}#{self.agencia}#{self.conta_corrente}#{self.agencia_conta_corrente_dv}000&quot;
       codigo
+      codigo.size == 43 ? codigo : nil
     end
   end
 end
\ No newline at end of file</diff>
      <filename>lib/brcobranca/boleto/banco_itau.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,19 @@ class BancoReal &lt; Brcobranca::Boleto::Base
     campos = padrao.merge!(campos)
     super(campos)
   end
+  
+  # Campo usado apenas na exibi&#231;&#227;o no boleto
+  #  Dever&#225; ser sobreescrito para cada banco
+  def nosso_numero_boleto
+   &quot;#{self.numero_documento}-#{self.nosso_numero_dv}&quot;
+  end
 
+  # Campo usado apenas na exibi&#231;&#227;o no boleto
+  #  Dever&#225; ser sobreescrito para cada banco
+  def agencia_conta_boleto
+   &quot;#{self.agencia}-#{self.agencia_dv} / #{self.conta_corrente}-#{self.conta_corrente_dv}&quot;
+  end
+  
   # CALCULO DO DIGITO:
   #  APLICA-SE OS PESOS 2,1,2,1,.... AOS ALGARISMOS DO NUMERO COMPOSTO POR:
   #  NUMERO DO BANCO : COM 7 DIGITOS P/ COBRANCA REGISTRADA
@@ -46,11 +58,13 @@ class BancoReal &lt; Brcobranca::Boleto::Base
       # Carteira sem registro
     when 57
       numero_documento = self.numero_documento.zeros_esquerda(:tamanho =&gt; 13)
-      &quot;#{banco}#{self.moeda}#{fator}#{valor_documento}#{agencia}#{conta}#{self.agencia_conta_corrente_nosso_numero_dv}#{numero_documento}&quot;
+      codigo = &quot;#{banco}#{self.moeda}#{fator}#{valor_documento}#{agencia}#{conta}#{self.agencia_conta_corrente_nosso_numero_dv}#{numero_documento}&quot;
+      codigo.size == 43 ? codigo : nil
     else
       # TODO verificar com o banco, pois n&#227;o consta na documenta&#231;&#227;o
       numero_documento = self.numero_documento.zeros_esquerda(:tamanho =&gt; 7)
-      &quot;#{banco}#{self.moeda}#{fator}#{valor_documento}000000#{agencia}#{conta}#{self.agencia_conta_corrente_nosso_numero_dv}#{numero_documento}&quot;
+      codigo = &quot;#{banco}#{self.moeda}#{fator}#{valor_documento}000000#{agencia}#{conta}#{self.agencia_conta_corrente_nosso_numero_dv}#{numero_documento}&quot;
+      codigo.size == 43 ? codigo : nil
     end
   end
 end
\ No newline at end of file</diff>
      <filename>lib/brcobranca/boleto/banco_real.rb</filename>
    </modified>
    <modified>
      <diff>@@ -10,7 +10,19 @@ class BancoUnibanco &lt; Brcobranca::Boleto::Base
   end
 
   def nosso_numero_dv
-    self.numero_documento.zeros_esquerda(:tamanho =&gt; 11).modulo11_2to9
+    self.numero_documento.modulo11_2to9
+  end
+  
+  # Campo usado apenas na exibi&#231;&#227;o no boleto
+  #  Dever&#225; ser sobreescrito para cada banco
+  def nosso_numero_boleto
+   &quot;#{self.numero_documento.zeros_esquerda(:tamanho =&gt; 14)}-#{self.nosso_numero_dv}&quot;
+  end
+
+  # Campo usado apenas na exibi&#231;&#227;o no boleto
+  #  Dever&#225; ser sobreescrito para cada banco
+  def agencia_conta_boleto
+   &quot;#{self.agencia} / #{self.conta_corrente}-#{self.conta_corrente_dv}&quot;
   end
 
   # Respons&#225;vel por montar uma String com 43 caracteres que ser&#225; usado na cria&#231;&#227;o do c&#243;digo de barras
@@ -34,11 +46,12 @@ class BancoUnibanco &lt; Brcobranca::Boleto::Base
       # 21 a 27 7 n&#250;mero do cliente no C&#211;DIGO DE BARRAS + d&#237;gito verificador
       # 28 a 29 2 vago. Usar 00 (n&#250;mero FIXO)
       # 30 a 43 14  N&#250;mero de refer&#234;ncia do cliente
-      # 44  1 D&#237;gito verificador 
+      # 44  1 D&#237;gito verificador
 
       convenio = self.convenio.zeros_esquerda(:tamanho =&gt; 6)
       numero_documento = self.numero_documento.zeros_esquerda(:tamanho =&gt; 14)
-      &quot;#{banco}#{self.moeda}#{fator}#{valor_documento}#{carteira}#{convenio}00#{numero_documento}#{self.nosso_numero_dv}&quot;
+      codigo = &quot;#{banco}#{self.moeda}#{fator}#{valor_documento}#{carteira}#{convenio}00#{numero_documento}#{self.nosso_numero_dv}&quot;
+      codigo.size == 43 ? codigo : nil
     when 4
 
       # Cobran&#231;a com registro (C&#211;DIGO DE BARRAS)
@@ -46,7 +59,7 @@ class BancoUnibanco &lt; Brcobranca::Boleto::Base
       #      1 a 3  3 N&#250;mero de identifica&#231;&#227;o do Unibanco: 409 (n&#250;mero FIXO)
       #      4  1 C&#243;digo da moeda. Real (R$)=9 (n&#250;mero FIXO)
       #      5  1 d&#237;gito verificador do C&#211;DIGO DE BARRAS
-      #      6 a 9  4 fator de vencimento em 4 algarismos, conforme tabela da p&#225;gina 14 
+      #      6 a 9  4 fator de vencimento em 4 algarismos, conforme tabela da p&#225;gina 14
       #      10 a 19  10  valor do t&#237;tulo com zeros &#224; esquerda
       #      20 a 21  2 C&#243;digo para transa&#231;&#227;o CVT: 04 (n&#250;mero FIXO) (04=5539-5)
       #      22 a 27  6 data de vencimento (AAMMDD)
@@ -57,7 +70,8 @@ class BancoUnibanco &lt; Brcobranca::Boleto::Base
       data = self.data_vencimento.strftime('%y%m%d')
       agencia = self.agencia.zeros_esquerda(:tamanho =&gt; 4)
       numero_documento = self.numero_documento.zeros_esquerda(:tamanho =&gt; 11)
-      &quot;#{banco}#{self.moeda}#{fator}#{valor_documento}0#{carteira}#{data}#{agencia}#{self.agencia_dv}#{numero_documento}#{self.nosso_numero_dv}&quot;
+      codigo = &quot;#{banco}#{self.moeda}#{fator}#{valor_documento}0#{carteira}#{data}#{agencia}#{self.agencia_dv}#{numero_documento}#{self.nosso_numero_dv}&quot;
+      codigo.size == 43 ? codigo : nil
     else
       nil
     end</diff>
      <filename>lib/brcobranca/boleto/banco_unibanco.rb</filename>
    </modified>
    <modified>
      <diff>@@ -66,7 +66,7 @@ module Brcobranca
       # Respons&#225;vel por definir dados iniciais quando se cria uma nova int&#226;ncia da classe Base.
       def initialize(campos={})
         padrao = { :moeda =&gt; &quot;9&quot;, :data_documento =&gt; Date.today, :dias_vencimento =&gt; 1, :quantidade =&gt; 1,
-          :especie_documento =&gt; &quot;DM&quot;, :especie =&gt; &quot;R$&quot;, :aceite =&gt; &quot;S&quot;, :valor =&gt; 0.0, 
+          :especie_documento =&gt; &quot;DM&quot;, :especie =&gt; &quot;R$&quot;, :aceite =&gt; &quot;S&quot;, :valor =&gt; 0.0,
           :local_pagamento =&gt; &quot;QUALQUER BANCO AT&#201; O VENCIMENTO&quot;}
 
           campos = padrao.merge!(campos)
@@ -100,23 +100,28 @@ module Brcobranca
           self.numero_documento
         end
 
+        # Campo usado apenas na exibi&#231;&#227;o no boleto
+        #  Dever&#225; ser sobreescrito para cada banco
+        def nosso_numero_boleto
+          &quot;Sobreescreva este m&#233;todo na classe referente ao banco que voc&#234; esta criando&quot;
+        end
+
+        # Campo usado apenas na exibi&#231;&#227;o no boleto
+        #  Dever&#225; ser sobreescrito para cada banco
+        def agencia_conta_boleto
+          &quot;Sobreescreva este m&#233;todo na classe referente ao banco que voc&#234; esta criando&quot;
+        end
+
         # Retorna o valor total do documento: &lt;b&gt;quantidate * valor&lt;/b&gt; ou &lt;b&gt;zero(0)&lt;/b&gt; caso n&#227;o consiga efetuar o c&#225;lculo.
         def valor_documento
-          begin
-            self.quantidade * self.valor.to_f
-          rescue
-            0
-          end
+          return 0 unless self.quantidade.kind_of?(Numeric) &amp;&amp; self.valor.kind_of?(Numeric)
+          self.quantidade * self.valor.to_f
         end
 
         # Retorna data de vencimento baseado na &lt;b&gt;data_documento + dias_vencimento&lt;/b&gt; ou &lt;b&gt;false&lt;/b&gt; caso n&#227;o consiga efetuar o c&#225;lculo.
         def data_vencimento
-          begin
-            return false unless self.data_documento.kind_of?(Date)
-            (self.data_documento + self.dias_vencimento.to_i)
-          rescue
-            false
-          end
+          return nil unless self.data_documento.kind_of?(Date) &amp;&amp; self.dias_vencimento.kind_of?(Numeric)
+          (self.data_documento + self.dias_vencimento.to_i)
         end
 
         # Retorna uma String com 44 caracteres representando o codigo de barras do boleto
@@ -131,18 +136,19 @@ module Brcobranca
         #   As posi&#231;&#245;es do campo livre ficam a crit&#233;rio de cada Banco arrecadador.
         def codigo_barras
           codigo = monta_codigo_43_digitos
-          return nil unless codigo
-          return nil if codigo.size != 43
+          return unless codigo
+          return if codigo.size != 43
           codigo_dv = codigo.modulo11_2to9
 
           &quot;#{codigo[0..3]}#{codigo_dv}#{codigo[4..42]}&quot;
         end
 
         # Respons&#225;vel por montar uma String com 43 caracteres que ser&#225; usado na cria&#231;&#227;o do c&#243;digo de barras
-        #  Este metodo precisa ser reescrito para cada classe de boleto a ser criada. 
+        #  Este metodo precisa ser reescrito para cada classe de boleto a ser criada.
         def monta_codigo_43_digitos
           &quot;Sobreescreva este m&#233;todo na classe referente ao banco que voc&#234; esta criando&quot;
         end
+        
       end
     end
   end
\ No newline at end of file</diff>
      <filename>lib/brcobranca/boleto/base.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,12 +1,17 @@
 begin
-  require 'rghost' 
+  require 'rghost'
 rescue LoadError
-  puts 'Por favor execute `sudo gem install rghost` para usar o brcobranca'
+  require 'rubygems' unless ENV['NO_RUBYGEMS']
+  gem 'rghost'
+  require 'rghost'
 end
+
 begin
-  require 'rghost_barcode' 
+  require 'rghost_barcode'
 rescue LoadError
-  puts 'Por favor execute `sudo gem install rghost_barcode` para usar o brcobranca'
+  require 'rubygems' unless ENV['NO_RUBYGEMS']
+  gem 'rghost_barcode'
+  require 'rghost_barcode'
 end
 
 module Brcobranca
@@ -15,13 +20,14 @@ module Brcobranca
       # Templates para usar com Rghost
       module Rghost
         include RGhost unless self.include?(RGhost)
-        
+
         # Gera o boleto em usando o formato desejado [:pdf, :jpg, :tif, :png, :ps, :laserjet, ... etc]
         #  Veja mais formatos na documenta&#231;&#227;o do rghost: http://wiki.github.com/shairontoledo/rghost/supported-devices-drivers-and-formats
-        def to(formato)
+        # TODO - Usar define_method para criar um metodo em tempo real to_{pdf,jpg}
+        def to(formato=Brcobranca::Config::OPCOES[:tipo])
           modelo_generico(:tipo =&gt; formato)
         end
-        
+
         # Respons&#225;vel por setar os valores necess&#225;rios no template gen&#233;rico
         # Retorna um stream pronto para grava&#231;&#224;o
         #
@@ -43,7 +49,7 @@ module Brcobranca
           doc.define_tags do
             tag :grande, :size =&gt; 13
           end
-          
+
           # Busca logo automaticamente
           logo = monta_logo
 
@@ -58,7 +64,7 @@ module Brcobranca
           doc.moveto :x =&gt; '0.7 cm' , :y =&gt; '23 cm'
           doc.show self.cedente
           doc.moveto :x =&gt; '11 cm' , :y =&gt; '23 cm'
-          doc.show &quot;#{self.agencia}-#{self.agencia_dv}/#{self.conta_corrente}-#{self.conta_corrente_dv}&quot;
+          doc.show self.agencia_conta_boleto
           doc.moveto :x =&gt; '14.2 cm' , :y =&gt; '23 cm'
           doc.show self.especie
           doc.moveto :x =&gt; '15.7 cm' , :y =&gt; '23 cm'
@@ -70,7 +76,7 @@ module Brcobranca
           doc.moveto :x =&gt; '12 cm' , :y =&gt; '22.2 cm'
           doc.show self.data_vencimento.to_s_br
           doc.moveto :x =&gt; '16.5 cm' , :y =&gt; '23 cm'
-          doc.show self.nosso_numero
+          doc.show self.nosso_numero_boleto
           doc.moveto :x =&gt; '16.5 cm' , :y =&gt; '22.2 cm'
           doc.show self.valor_documento.to_currency
           doc.moveto :x =&gt; '1.4 cm' , :y =&gt; '20.9 cm'
@@ -93,7 +99,7 @@ module Brcobranca
           doc.moveto :x =&gt; '0.7 cm' , :y =&gt; '15.2 cm'
           doc.show self.cedente if self.cedente
           doc.moveto :x =&gt; '16.5 cm' , :y =&gt; '15.2 cm'
-          doc.show &quot;#{self.agencia}-#{self.agencia_dv}/#{self.conta_corrente}-#{self.conta_corrente_dv}&quot;
+          doc.show self.agencia_conta_boleto
           doc.moveto :x =&gt; '0.7 cm' , :y =&gt; '14.4 cm'
           doc.show self.data_documento.to_s_br if self.data_documento
           doc.moveto :x =&gt; '4.2 cm' , :y =&gt; '14.4 cm'
@@ -105,7 +111,7 @@ module Brcobranca
           doc.moveto :x =&gt; '13 cm' , :y =&gt; '14.4 cm'
           doc.show self.data_processamento.to_s_br if self.data_processamento
           doc.moveto :x =&gt; '16.5 cm' , :y =&gt; '14.4 cm'
-          doc.show self.nosso_numero
+          doc.show self.nosso_numero_boleto
           doc.moveto :x =&gt; '4.4 cm' , :y =&gt; '13.5 cm'
           doc.show self.carteira if self.carteira
           doc.moveto :x =&gt; '6.4 cm' , :y =&gt; '13.5 cm'
@@ -138,10 +144,6 @@ module Brcobranca
           doc.barcode_interleaved2of5(self.codigo_barras, :width =&gt; '10.3 cm', :height =&gt; '1.3 cm', :x =&gt; '0.7 cm', :y =&gt; '5.8 cm' ) if self.codigo_barras
 
           # Gerando stream
-          unless options[:tipo]
-            options[:tipo] = Brcobranca::Config::OPCOES[:tipo]
-          end
-
           options[:tipo] = options[:tipo].to_sym unless options[:tipo].kind_of?(Symbol)
           doc.render_stream(options[:tipo])
         end</diff>
      <filename>lib/brcobranca/boleto/template/rghost.rb</filename>
    </modified>
    <modified>
      <diff>@@ -19,6 +19,8 @@ module Brcobranca
             imagem = 'bradesco.jpg'
           when &quot;BancoUnibanco&quot;
             imagem = 'unibanco.jpg'
+          when &quot;BancoBanespa&quot;
+            imagem = 'banespa.jpg'
           else
             return false
           end</diff>
      <filename>lib/brcobranca/boleto/template/util.rb</filename>
    </modified>
    <modified>
      <diff>@@ -24,7 +24,7 @@ module Brcobranca
       when 14 then self.to_br_cnpj
       else
         self
-      end     
+      end
     end
 
     # Remove caracteres que n&#227;o sejam num&#233;ricos do tipo MOEDA
@@ -54,9 +54,9 @@ module Brcobranca
       return ((&quot;0&quot; * diferenca) + valor_inicial )
     end
 
-    # Monta a linha digit&#225;vel padr&#227;o para todos os bancos segundo a BACEN. 
-    # Retorna + nil + para Codigo de Barras em branco, 
-    # Codigo de Barras com tamanho diferente de 44 d&#237;gitos e 
+    # Monta a linha digit&#225;vel padr&#227;o para todos os bancos segundo a BACEN.
+    # Retorna + nil + para Codigo de Barras em branco,
+    # Codigo de Barras com tamanho diferente de 44 d&#237;gitos e
     # Codigo de Barras que n&#227;o tenham somente caracteres num&#233;ricos.
     #   A linha digit&#225;vel ser&#225; composta por cinco campos:
     #   1&#186; campo
@@ -76,7 +76,9 @@ module Brcobranca
     #   interpretada por um ponto (.) e a 2&#170; por um espa&#231;o em branco.
     def linha_digitavel
       valor_inicial = self.kind_of?(String) ? self : self.to_s
-      return nil if (valor_inicial !~ /\S/) || valor_inicial.size != 44 || (!valor_inicial.scan(/\D/).empty?)
+      raise ArgumentError, &quot;N&#250;mero em branco&quot; if valor_inicial.nil?
+      raise ArgumentError, &quot;Somente n&#250;meros&quot; unless valor_inicial.numeric?
+      raise ArgumentError, &quot;Precisa conter 44 caracteres e voc&#234; passou um valor com #{valor_inicial.size} caracteres&quot; if valor_inicial.size != 44
 
       dv_1 = (&quot;#{valor_inicial[0..3]}#{valor_inicial[19..23]}&quot;).modulo10
       campo_1_dv = &quot;#{valor_inicial[0..3]}#{valor_inicial[19..23]}#{dv_1}&quot;
@@ -103,7 +105,7 @@ module Brcobranca
     # M&#233;todo padr&#227;o para c&#225;lculo de m&#243;dulo 10 segundo a BACEN.
     def modulo10
       valor_inicial = self.kind_of?(String) ? self : self.to_s
-      return nil if (valor_inicial !~ /\S/)
+      raise ArgumentError, &quot;Somente n&#250;meros&quot; unless valor_inicial.numeric?
 
       total = 0
       multiplicador = 2
@@ -117,47 +119,40 @@ module Brcobranca
       valor == 10 ? 0 : valor
     end
 
-    # M&#233;todo padr&#227;o para c&#225;lculo de m&#243;dulo 11 com multiplicaroes de 9 a 2 segundo a BACEN. 
+    # M&#233;todo padr&#227;o para c&#225;lculo de m&#243;dulo 11 com multiplicaroes de 9 a 2 segundo a BACEN.
     # Usado no DV do Nosso Numero, Ag&#234;ncia e Cedente.
     #  Retorna + nil + para todos os parametros que nao forem String
     #  Retorna + nil + para String em branco
     def modulo11_9to2
-      valor_inicial = self.kind_of?(String) ? self : self.to_s
-      return nil if (valor_inicial !~ /\S/)
-
-      multiplicadores = [9,8,7,6,5,4,3,2]
-      total = 0
-      multiplicador_posicao = 0
-
-      valor_inicial.split(//).reverse!.each do |caracter|
-        multiplicador_posicao = 0 if (multiplicador_posicao == 8)
-        total += (caracter.to_i * multiplicadores[multiplicador_posicao])
-        multiplicador_posicao += 1
-      end
+      total = self.multiplicador([9,8,7,6,5,4,3,2])
 
       return (total % 11 )
     end
 
-    # M&#233;todo padr&#227;o para c&#225;lculo de m&#243;dulo 11 com multiplicaroes de 2 a 9 segundo a BACEN. 
+    # M&#233;todo padr&#227;o para c&#225;lculo de m&#243;dulo 11 com multiplicaroes de 2 a 9 segundo a BACEN.
     # Usado no DV do C&#243;digo de Barras.
     #  Retorna + nil + para todos os parametros que n&#227;o forem String
     #  Retorna + nil + para String em branco
     def modulo11_2to9
+      total = self.multiplicador([2,3,4,5,6,7,8,9])
+
+      valor = (11 - (total % 11))
+      return [0,10,11].include?(valor) ? 1 : valor
+    end
+
+    def modulo_10_banespa
       valor_inicial = self.kind_of?(String) ? self : self.to_s
-      return nil if (valor_inicial !~ /\S/)
+      raise ArgumentError, &quot;Somente n&#250;meros&quot; unless valor_inicial.numeric?
 
-      multiplicadores = [2,3,4,5,6,7,8,9]
+      fatores = [7,3,1,9,7,3,1,9,7,3]
       total = 0
-      multiplicador_posicao = 0
-
-      valor_inicial.split(//).reverse!.each do |caracter|
-        multiplicador_posicao = 0 if (multiplicador_posicao == 8)
-        total += (caracter.to_i * multiplicadores[multiplicador_posicao])
-        multiplicador_posicao += 1
+      posicao = 0
+      valor_inicial.split(//).each do |digito|
+        total += (digito.to_i * fatores[posicao]).to_s.split(//)[-1].to_i
+        posicao = (posicao &lt; (fatores.size - 1)) ? (posicao + 1) : 0
       end
-
-      valor = (11 - (total % 11))
-      return [0,10,11].include?(valor) ? 1 : valor
+      dv = 10 - total.to_s.split(//)[-1].to_i
+      dv == 10 ? 0 : dv
     end
 
     # Retorna o d&#237;gito verificador de &lt;b&gt;modulo 11(9-2)&lt;/b&gt; trocando retorno &lt;b&gt;10 por X&lt;/b&gt;.
@@ -174,7 +169,7 @@ module Brcobranca
       valor == 10 ? 0 : valor
     end
 
-    # Soma n&#250;meros inteiros positivos com 2 d&#237;gitos ou mais 
+    # Soma n&#250;meros inteiros positivos com 2 d&#237;gitos ou mais
     # Retorna &lt;b&gt;0(zero)&lt;/b&gt; caso seja imposs&#237;vel.
     #  Ex. 1 = 1
     #  Ex. 11 = (1+1) = 2
@@ -191,6 +186,20 @@ module Brcobranca
 
       return total
     end
+
+    def multiplicador(fatores)
+      valor_inicial = self.kind_of?(String) ? self : self.to_s
+      raise ArgumentError, &quot;Somente n&#250;meros&quot; unless valor_inicial.numeric?
+
+      total = 0
+      multiplicador_posicao = 0
+
+      valor_inicial.split(//).reverse!.each do |caracter|
+        total += (caracter.to_i * fatores[multiplicador_posicao])
+        multiplicador_posicao = (multiplicador_posicao &lt; (fatores.size - 1)) ? (multiplicador_posicao + 1) : 0
+      end
+      total.to_i
+    end
   end
 
   # M&#233;todos auxiliares de verifica&#231;&#227;o e valida&#231;&#227;o.
@@ -200,8 +209,8 @@ module Brcobranca
     #  Ex. -1.232.33
     #  Ex. 1.232.33
     def moeda?
-      return false unless self.kind_of?(String)
-      self =~ /^(\+|-)?\d+((\.|,)\d{3}*)*((\.|,)\d{2}*)$/ ? true : false
+      value = self.kind_of?(String) ? self : self.to_s
+      value =~ /^(\+|-)?\d+((\.|,)\d{3}*)*((\.|,)\d{2}*)$/ ? true : false
     end
   end
 
@@ -209,7 +218,6 @@ module Brcobranca
   module Limpeza
     # Retorna uma String contendo exatamente o valor FLOAT
     def limpa_valor_moeda
-      return self unless self.kind_of?(Float)
       valor_inicial = self.to_s
       (valor_inicial + (&quot;0&quot; * (2 - valor_inicial.split(/\./).last.size ))).somente_numeros
     end
@@ -231,7 +239,7 @@ module Brcobranca
       self.strftime('%d/%m/%Y')
     end
     # Retorna string contendo n&#250;mero de dias julianos:
-    #  O c&#225;lculo &#233; feito subtraindo-se a data atual, pelo &#250;ltimo dia v&#225;lido do ano anterior, 
+    #  O c&#225;lculo &#233; feito subtraindo-se a data atual, pelo &#250;ltimo dia v&#225;lido do ano anterior,
     #  acrescentando-se o &#250;ltimo algarismo do ano atual na quarta posi&#231;&#227;o.
     #  Deve retornar string com 4 digitos.
     #  Ex. Data atual = 11/02/2009
@@ -249,21 +257,23 @@ module Brcobranca
   end
 end
 
-class String #:nodoc:[all]
-  include Brcobranca::Formatacao
-  include Brcobranca::Validacao
-  include Brcobranca::Calculo
+# NEW AND COOL
+[ String, Numeric ].each do |klass|
+  klass.class_eval { include Brcobranca::Formatacao }
+end
+
+[ String, Numeric ].each do |klass|
+  klass.class_eval { include Brcobranca::Validacao }
 end
 
-class Integer #:nodoc:[all]
-  include Brcobranca::Formatacao
-  include Brcobranca::Calculo
+[ String, Numeric ].each do |klass|
+  klass.class_eval { include Brcobranca::Calculo }
 end
 
-class Float #:nodoc:[all]
-  include Brcobranca::Limpeza
+[ Float ].each do |klass|
+  klass.class_eval { include Brcobranca::Limpeza }
 end
 
-class Date #:nodoc:[all]
-  include Brcobranca::CalculoData
+[ Date ].each do |klass|
+  klass.class_eval { include Brcobranca::CalculoData }
 end
\ No newline at end of file</diff>
      <filename>lib/brcobranca/core_ext.rb</filename>
    </modified>
    <modified>
      <diff>@@ -56,15 +56,12 @@ module Brcobranca #:nodoc:[all]
   end
 end
 
-class Fixnum #:nodoc:[all]
-  include Brcobranca::Currency::Number
+# TODO - porque n&#227;o incluir somente na Numeric?
+# [ Fixnum, Bignum, Float ].each do |klass|
+[ Numeric].each do |klass|
+  klass.class_eval { include Brcobranca::Currency::Number }
 end
-class Bignum #:nodoc:[all]
-  include Brcobranca::Currency::Number
-end
-class Float #:nodoc:[all]
-  include Brcobranca::Currency::Number
-end
-class String #:nodoc:[all]
-  include Brcobranca::Currency::String
+
+[ String ].each do |klass|
+  klass.class_eval { include Brcobranca::Currency::String }
 end
\ No newline at end of file</diff>
      <filename>lib/brcobranca/currency.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,6 +5,6 @@ irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
 libs =  &quot; -r irb/completion&quot;
 # Perhaps use a console_lib to store any extra methods I may want available in the cosole
 # libs &lt;&lt; &quot; -r #{File.dirname(__FILE__) + '/../lib/console_lib/console_logger.rb'}&quot;
-# libs &lt;&lt;  &quot; -r #{File.dirname(__FILE__) + '/../lib/1gem.rb'}&quot;
-# puts &quot;Loading 1gem gem&quot;
+libs &lt;&lt;  &quot; -r #{File.dirname(__FILE__) + '/../lib/brcobranca.rb'}&quot;
+puts &quot;Loading brcobranca gem&quot;
 exec &quot;#{irb} #{libs} --simple-prompt&quot;
\ No newline at end of file</diff>
      <filename>script/console</filename>
    </modified>
    <modified>
      <diff>@@ -1,89 +1,11 @@
-&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
-&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;
-&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;
-&lt;head&gt;
-  &lt;link rel=&quot;stylesheet&quot; href=&quot;stylesheets/screen.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot; /&gt;
-  &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
-  &lt;title&gt;
-      brcobranca
-  &lt;/title&gt;
-  &lt;script src=&quot;javascripts/rounded_corners_lite.inc.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
-&lt;style&gt;
-
-&lt;/style&gt;
-  &lt;script type=&quot;text/javascript&quot;&gt;
-    window.onload = function() {
-      settings = {
-          tl: { radius: 10 },
-          tr: { radius: 10 },
-          bl: { radius: 10 },
-          br: { radius: 10 },
-          antiAlias: true,
-          autoPad: true,
-          validTags: [&quot;div&quot;]
-      }
-      var versionBox = new curvyCorners(settings, document.getElementById(&quot;version&quot;));
-      versionBox.applyCornersToAll();
-    }
-  &lt;/script&gt;
-&lt;/head&gt;
-&lt;body&gt;
-&lt;div id=&quot;main&quot;&gt;
-
-    &lt;h1&gt;brcobranca&lt;/h1&gt;
-    &lt;div class=&quot;sidebar&quot;&gt;
-      &lt;div id=&quot;version&quot; class=&quot;clickable&quot; onclick='document.location = &quot;http://rubyforge.org/projects/brcobranca&quot;; return false'&gt;
-        &lt;p&gt;Fazer download&lt;/p&gt;
-        &lt;a href=&quot;http://rubyforge.org/projects/brcobranca&quot; class=&quot;numbers&quot;&gt;2.0.5&lt;/a&gt;
-      &lt;/div&gt;
-    &lt;/div&gt;
-    &lt;p&gt;Gerador de bloquetos de cobran&#231;a para bancos brasileiros.&lt;/p&gt;
-&lt;h2&gt;Instalando&lt;/h2&gt;
-&lt;p&gt;&lt;pre class='syntax'&gt;&lt;span class=&quot;ident&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;ident&quot;&gt;gem&lt;/span&gt; &lt;span class=&quot;ident&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;ident&quot;&gt;brcobranca&lt;/span&gt;&lt;/pre&gt;&lt;/p&gt;
-&lt;h2&gt;Documenta&#231;&#227;o&lt;/h2&gt;
-&lt;ul&gt;
-	&lt;li&gt;&lt;a href=&quot;http://brcobranca.rubyforge.org/rdoc&quot;&gt;http://brcobranca.rubyforge.org/rdoc&lt;/a&gt;&lt;/li&gt;
-&lt;/ul&gt;
-&lt;h2&gt;Exemplo&lt;/h2&gt;
-&lt;ul&gt;
-	&lt;li&gt;&lt;a href=&quot;http://www.boletorails.com.br&quot;&gt;http://www.boletorails.com.br&lt;/a&gt;&lt;/li&gt;
-&lt;/ul&gt;
-&lt;h2&gt;Fontes&lt;/h2&gt;
-&lt;ul&gt;
-	&lt;li&gt;github: &lt;a href=&quot;http://github.com/kivanio/brcobranca/tree/master&quot;&gt;http://github.com/kivanio/brcobranca/tree/master&lt;/a&gt;&lt;/li&gt;
-&lt;/ul&gt;
-&lt;pre&gt;git clone git://github.com/kivanio/brcobranca.git&lt;/pre&gt;
-&lt;h3&gt;Se preferir compilar direto do fonte&lt;/h3&gt;
-&lt;pre&gt;cd brcobranca
-rake test
-rake install_gem&lt;/pre&gt;
-&lt;h2&gt;Bugs&lt;/h2&gt;
-&lt;ul&gt;
-	&lt;li&gt;&lt;a href=&quot;http://github.com/kivanio/brcobranca/issues&quot;&gt;http://github.com/kivanio/brcobranca/issues&lt;/a&gt;&lt;/li&gt;
-&lt;/ul&gt;
-&lt;h2&gt;Licensa&lt;/h2&gt;
-&lt;p&gt;Esta gem &#233; licenciada pel licensa &lt;span class=&quot;caps&quot;&gt;BSD&lt;/span&gt;&lt;/p&gt;
-&lt;h2&gt;Gostou?&lt;/h2&gt;
-&lt;ul&gt;
-	&lt;li&gt;Recomende-nos no &lt;a href=&quot;http://www.workingwithrails.com/recommendation/new/person/5679-kivanio-pereira-barbosa&quot;&gt;workingwithrails.com&lt;/a&gt;&lt;/li&gt;
-&lt;/ul&gt;
-&lt;h2&gt;Contato&lt;/h2&gt;
-&lt;p&gt;De brasileiro para brasileiros.&lt;/p&gt;
-&lt;p&gt;Copyleft 2009 Kivanio Barbosa, kivanio@gmail.com&lt;/p&gt;
-    &lt;p class=&quot;coda&quot;&gt;
-      Theme extended from &lt;a href=&quot;http://rb2js.rubyforge.org/&quot;&gt;Paul Battley&lt;/a&gt;
-    &lt;/p&gt;
-&lt;/div&gt;
-
-&lt;script type=&quot;text/javascript&quot;&gt;
-var gaJsHost = ((&quot;https:&quot; == document.location.protocol) ? &quot;https://ssl.&quot; : &quot;http://www.&quot;);
-document.write(unescape(&quot;%3Cscript src='&quot; + gaJsHost + &quot;google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E&quot;));
-&lt;/script&gt;
-&lt;script type=&quot;text/javascript&quot;&gt;
-try {
-var pageTracker = _gat._getTracker(&quot;UA-576056-45&quot;);
-pageTracker._trackPageview();
-} catch(err) {}&lt;/script&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
+&lt;html&gt;
+	&lt;head&gt;
+		&lt;meta http-equiv=&quot;Content-type&quot; content=&quot;text/html; charset=utf-8&quot;&gt;
+		&lt;title&gt;brcobranca&lt;/title&gt;
+		
+	&lt;/head&gt;
+	&lt;body id=&quot;body&quot;&gt;
+		&lt;p&gt;This page has not yet been created for RubyGem &lt;code&gt;brcobranca&lt;/code&gt;&lt;/p&gt;
+		&lt;p&gt;To the developer: To generate it, update website/index.txt and run the rake task &lt;code&gt;website&lt;/code&gt; to generate this &lt;code&gt;index.html&lt;/code&gt; file.&lt;/p&gt;
+	&lt;/body&gt;
+&lt;/html&gt;
\ No newline at end of file</diff>
      <filename>website/index.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,12 +1,12 @@
 h1. brcobranca
 
-Gerador de bloquetos de cobran&#231;a para bancos brasileiros.
+Gerador de bloquetos de cobran&#8730;&#223;a para bancos brasileiros.
 
 h2. Instalando
 
 &lt;pre syntax=&quot;ruby&quot;&gt;sudo gem install brcobranca&lt;/pre&gt;
 
-h2. Documenta&#231;&#227;o
+h2. Documenta&#8730;&#223;&#8730;&#163;o
 
 * &quot;http://brcobranca.rubyforge.org/rdoc&quot;:http://brcobranca.rubyforge.org/rdoc
 
@@ -33,7 +33,7 @@ h2. Bugs
 
 h2. Licensa
 
-Esta gem &#233; licenciada pel licensa BSD
+Esta gem &#8730;&#169; licenciada pel licensa BSD
 
 h2. Gostou?
 </diff>
      <filename>website/index.txt</filename>
    </modified>
    <modified>
      <filename>website/javascripts/rounded_corners_lite.inc.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 body {
-  background-color: #FFFFFF;
+  background-color: #8DBD82;
   font-family: &quot;Georgia&quot;, sans-serif;
   font-size: 16px;
   line-height: 1.6em;</diff>
      <filename>website/stylesheets/screen.css</filename>
    </modified>
    <modified>
      <diff>@@ -33,12 +33,13 @@
     &lt;h1&gt;&lt;%= title %&gt;&lt;/h1&gt;
     &lt;div class=&quot;sidebar&quot;&gt;
       &lt;div id=&quot;version&quot; class=&quot;clickable&quot; onclick='document.location = &quot;&lt;%= download %&gt;&quot;; return false'&gt;
-        &lt;p&gt;Fazer download&lt;/p&gt;
+        &lt;p&gt;Get Version&lt;/p&gt;
         &lt;a href=&quot;&lt;%= download %&gt;&quot; class=&quot;numbers&quot;&gt;&lt;%= version %&gt;&lt;/a&gt;
       &lt;/div&gt;
     &lt;/div&gt;
     &lt;%= body %&gt;
     &lt;p class=&quot;coda&quot;&gt;
+      &lt;a href=&quot;kivanio@gmail.com&quot;&gt;Kivanio Barbosa&lt;/a&gt;, &lt;%= modified.pretty %&gt;&lt;br&gt;
       Theme extended from &lt;a href=&quot;http://rb2js.rubyforge.org/&quot;&gt;Paul Battley&lt;/a&gt;
     &lt;/p&gt;
 &lt;/div&gt;</diff>
      <filename>website/template.html.erb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>test/arquivos/CBR64310.RET</filename>
    </removed>
    <removed>
      <filename>test/test_banco_bradesco.rb</filename>
    </removed>
    <removed>
      <filename>test/test_banco_brasil.rb</filename>
    </removed>
    <removed>
      <filename>test/test_banco_hsbc.rb</filename>
    </removed>
    <removed>
      <filename>test/test_banco_itau.rb</filename>
    </removed>
    <removed>
      <filename>test/test_banco_real.rb</filename>
    </removed>
    <removed>
      <filename>test/test_banco_unibanco.rb</filename>
    </removed>
    <removed>
      <filename>test/test_base.rb</filename>
    </removed>
    <removed>
      <filename>test/test_core_ext.rb</filename>
    </removed>
    <removed>
      <filename>test/test_currency.rb</filename>
    </removed>
    <removed>
      <filename>test/test_helper.rb</filename>
    </removed>
    <removed>
      <filename>test/test_retorno_cbr643.rb</filename>
    </removed>
    <removed>
      <filename>test/test_rghost.rb</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>c3e372a83371ab44a129414ccd08cd6f34143262</id>
    </parent>
  </parents>
  <author>
    <name>Kivanio Barbosa</name>
    <email>kivanio@gmail.com</email>
  </author>
  <url>http://github.com/kivanio/brcobranca/commit/db951590cbedfb87fcf997290eac137bf0a6b118</url>
  <id>db951590cbedfb87fcf997290eac137bf0a6b118</id>
  <committed-date>2009-08-15T16:26:34-07:00</committed-date>
  <authored-date>2009-08-15T16:26:34-07:00</authored-date>
  <message>Incluindo testes com spec.
Incluindo banco banespa, contribui&#231;&#227;o do Diego Lucena</message>
  <tree>e72307ea7dc10f7355fde3c34b0d74febc4a9107</tree>
  <committer>
    <name>Kivanio Barbosa</name>
    <email>kivanio@gmail.com</email>
  </committer>
</commit>
