cnab 0.0.1 → 0.0.2

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.
data/.gitignore CHANGED
@@ -3,6 +3,7 @@
3
3
  .bundle
4
4
  .config
5
5
  .yardoc
6
+ .coveralls.yml
6
7
  Gemfile.lock
7
8
  InstalledFiles
8
9
  _yardoc
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --colour --format documentation --profile
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ cnab
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ ruby-1.9.3-p374
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # Cnab
2
2
 
3
- TODO: Write a gem description
3
+ [![Gem Version](https://badge.fury.io/rb/cnab.png)](http://badge.fury.io/rb/cnab) [![Build Status](https://travis-ci.org/zertico/cnab.png)](https://travis-ci.org/zertico/cnab) [![Dependency Status](https://gemnasium.com/zertico/cnab.png)](https://gemnasium.com/zertico/cnab) [![Coverage Status](https://coveralls.io/repos/zertico/cnab/badge.png?branch=master)](https://coveralls.io/r/zertico/cnab) [![Code Climate](https://codeclimate.com/github/zertico/cnab.png)](https://codeclimate.com/github/zertico/cnab)
4
+
5
+ Gem used to parse return from Brazil banks in format of cnab files.
4
6
 
5
7
  ## Installation
6
8
 
@@ -20,6 +22,10 @@ Or install it yourself as:
20
22
 
21
23
  TODO: Write usage instructions here
22
24
 
25
+ ## Mantainers
26
+ [@plribeiro3000](https://github.com/plribeiro3000)
27
+ [@mfbmina](https://github.com/mfbmina)
28
+
23
29
  ## Contributing
24
30
 
25
31
  1. Fork it
data/Rakefile CHANGED
@@ -1 +1,7 @@
1
1
  require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new
5
+
6
+ desc "Default Task"
7
+ task :default => [ :spec ]
data/cnab.gemspec CHANGED
@@ -6,8 +6,8 @@ require 'cnab/version'
6
6
  Gem::Specification.new do |gem|
7
7
  gem.name = "cnab"
8
8
  gem.version = Cnab::VERSION
9
- gem.authors = ["Paulo Henrique Lopes Ribeiro"]
10
- gem.email = ["plribeiro3000@gmail.com"]
9
+ gem.authors = ["Paulo Henrique Lopes Ribeiro", "Matheus Mina"]
10
+ gem.email = ["plribeiro3000@gmail.com", "mfbmina@gmail.com"]
11
11
  gem.description = %q{Gem used to parse CNAB files}
12
12
  gem.summary = %q{It parse CNAB files}
13
13
 
@@ -15,4 +15,8 @@ Gem::Specification.new do |gem|
15
15
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
16
16
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
17
17
  gem.require_paths = ["lib"]
18
+
19
+ gem.add_development_dependency "rake"
20
+ gem.add_development_dependency "rspec"
21
+ gem.add_development_dependency "coveralls"
18
22
  end
data/lib/cnab.rb CHANGED
@@ -1,4 +1,11 @@
1
1
  require "cnab/version"
2
2
 
3
3
  module Cnab
4
+ autoload :HeaderArquivo, 'cnab/header_arquivo'
5
+ autoload :HeaderLote, 'cnab/header_lote'
6
+ autoload :TrailerArquivo, 'cnab/trailer_arquivo'
7
+ autoload :TrailerLote, 'cnab/trailer_lote'
8
+ autoload :Detalhe, 'cnab/detalhe'
9
+
10
+ autoload :Helper, 'cnab/helper'
4
11
  end
@@ -0,0 +1,6 @@
1
+ module Cnab
2
+ module Detalhe
3
+ autoload :SegmentoT, 'cnab/detalhe/segmento_t'
4
+ autoload :SegmentoU, 'cnab/detalhe/segmento_u'
5
+ end
6
+ end
@@ -0,0 +1,39 @@
1
+ module Cnab
2
+ module Detalhe
3
+ class SegmentoT
4
+ include Helper
5
+
6
+ def initialize(line)
7
+ @banco = line[0..2]
8
+ @lote = line[3..6]
9
+ @tipo_registro = line[7..7]
10
+ @num_registro = line[8..12]
11
+ @segmento = line[13..13]
12
+ @res_cnab1 = line[14..14]
13
+ @cod_movimentacao = line[15..16]
14
+ @agencia = line[17..21]
15
+ @dv_agencia = line[22..22]
16
+ @conta_corrente = line[23..34]
17
+ @dv_conta = line[35..35]
18
+ @dv_conta_agencia = line[36..36]
19
+ @id_titulo = line[37..56]
20
+ @carteira = line[57..57]
21
+ @doc_cobranca = line[58..72]
22
+ @vencimento = line[73..80]
23
+ @valor_titulo = line[81..95]
24
+ @banco_recebimento = line[96..98]
25
+ @ag_recebimento = line[99..103]
26
+ @dv_ag_recebimento = line[104..104]
27
+ @id_titulo_empresa = line[105..129]
28
+ @cod_moeda = line[130..131]
29
+ @tipo_inscricao = line[132..132]
30
+ @num_inscricao = line[133..147]
31
+ @nome = line[148..187]
32
+ @num_contrato = line[188..197]
33
+ @tarifa = line[198..212]
34
+ @motivo = line[213..222]
35
+ @res_cnab2 = line[223..239]
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,34 @@
1
+ module Cnab
2
+ module Detalhe
3
+ class SegmentoU
4
+ include Helper
5
+
6
+ def initialize(line)
7
+ @banco = line[0..2]
8
+ @lote = line[3..6]
9
+ @tipo_registro = line[7..7]
10
+ @num_registro = line[8..12]
11
+ @segmento = line[13..13]
12
+ @res_cnab1 = line[14..14]
13
+ @cod_movimentacao = line[15..16]
14
+ @acrescimos = line[17..31]
15
+ @valor_desconto = line[32..46]
16
+ @valor_abatimento = line[47..61]
17
+ @valor_iof = line[62..76]
18
+ @valor_pago = line[77..91]
19
+ @valor_liquido = line[92..106]
20
+ @outras_despesas = line[107..122]
21
+ @outros_creditos = line[123..136]
22
+ @data_ocorrencia = line[137..144]
23
+ @data_credito = line[145..152]
24
+ @cod_ocorrencia_sacado = line[153..156]
25
+ @data_ocorrencia_sacado = line[157..164]
26
+ @valor_ocorrencia_sacado = line[165..179]
27
+ @compl_ocorrencia_sacado = line[180..209]
28
+ @banco_compensacao = line[210..212]
29
+ @banco_enviado = line[213..232]
30
+ @res_cnab2 = line[233..239]
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,32 @@
1
+ module Cnab
2
+ class HeaderArquivo
3
+ include Helper
4
+
5
+ def initialize(line)
6
+ @banco = line[0..2]
7
+ @lote = line[3..6]
8
+ @registro = line[7..7]
9
+ @res_cnab1 = line[8..16]
10
+ @tipo_empresa = line[17..17]
11
+ @num_empresa = line[18..31]
12
+ @convenio = line[32..51]
13
+ @agencia = line[52..56]
14
+ @dv_agencia = line[57..57]
15
+ @conta_corrente = line[58..69]
16
+ @dv_conta = line[70..70]
17
+ @dv_conta_agencia = line[71..71]
18
+ @nome_empresa = line[72..101]
19
+ @nome_banco = line[102..131]
20
+ @res_cnab2 = line[132..141]
21
+ @cod_retorno = line[142..142]
22
+ @data_geracao_arq = line[143..150]
23
+ @hora_geracao_arq = line[151..156]
24
+ @sequencia = line[157..162]
25
+ @versao = line[163..165]
26
+ @densidade = line[166..170]
27
+ @res_banco = line[171..190]
28
+ @res_empresa = line[191..210]
29
+ @res_cnab3 = line[211..239]
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,5 @@
1
+ module Cnab
2
+ module HeaderLote
3
+ autoload :Cobranca, 'cnab/header_lote/cobranca'
4
+ end
5
+ end
@@ -0,0 +1,33 @@
1
+ module Cnab
2
+ module HeaderLote
3
+ class Cobranca
4
+ include Helper
5
+
6
+ def initialize(line)
7
+ @banco = line[0..2]
8
+ @lote = line[3..6]
9
+ @registro = line[7..7]
10
+ @tipo_operacao = line[8..8]
11
+ @tipo_servico = line[9..10]
12
+ @res_cnab1 = line[11..12]
13
+ @layout_lote = line[13..15]
14
+ @res_cnab2 = line[16..16]
15
+ @tipo_empresa = line[17..17]
16
+ @num_empresa = line[18..32]
17
+ @convenio = line[33..52]
18
+ @agencia = line[53..57]
19
+ @dv_agencia = line[58..58]
20
+ @conta_corrente = line[59..70]
21
+ @dv_conta = line[71..71]
22
+ @dv_conta_agencia = line[72..72]
23
+ @nome_empresa = line[73..102]
24
+ @informacao1 = line[103..142]
25
+ @informacao2 = line[143..182]
26
+ @numero_remessa = line[183..190]
27
+ @data_gravacao = line[191..198]
28
+ @data_credito = line[199..206]
29
+ @res_cnab3 = line[207..239]
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,7 @@
1
+ module Cnab
2
+ module Helper
3
+ def method_missing(method)
4
+ instance_variable_get("@#{method}")
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,16 @@
1
+ module Cnab
2
+ class TrailerArquivo
3
+ include Helper
4
+
5
+ def initialize(line)
6
+ @banco = line[0..2]
7
+ @lote = line[3..6]
8
+ @registro = line[7..7]
9
+ @res_cnab1 = line[8..16]
10
+ @qtd_lotes = line[17..22]
11
+ @qtd_registros = line[23..28]
12
+ @qtd_contas = line[29..34]
13
+ @res_cnab2 = line[35..239]
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,5 @@
1
+ module Cnab
2
+ module TrailerLote
3
+ autoload :Cobranca, 'cnab/trailer_lote/cobranca'
4
+ end
5
+ end
@@ -0,0 +1,25 @@
1
+ module Cnab
2
+ module TrailerLote
3
+ class Cobranca
4
+ include Helper
5
+
6
+ def initialize(line)
7
+ @banco = line[0..2]
8
+ @lote = line[3..6]
9
+ @registro = line[7..7]
10
+ @res_cnab1 = line[8..16]
11
+ @qtd_registros = line[17..22]
12
+ @qtd_titulos_simples = line[23..28]
13
+ @valor_titulos_simples = line[29..45]
14
+ @qtd_titulos_vinculada = line[46..51]
15
+ @valor_titulos_simples = line[52..68]
16
+ @qtd_titulos_caucionada = line[69..74]
17
+ @valor_titulos_caucionada = line[75..91]
18
+ @qtd_titulos_descontada = line[92..97]
19
+ @valor_titulos_descontada = line[98..114]
20
+ @num_aviso = line[115..122]
21
+ @res_cnab3 = line[123..239]
22
+ end
23
+ end
24
+ end
25
+ end
data/lib/cnab/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Cnab
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -0,0 +1,125 @@
1
+ require 'spec_helper'
2
+
3
+ describe Cnab::Detalhe::SegmentoT do
4
+ describe "#initialize" do
5
+ before :each do
6
+ @segmento_t = Cnab::Detalhe::SegmentoT.new(LINE)
7
+ end
8
+
9
+ it "should set #banco" do
10
+ @segmento_t.banco.should == "012"
11
+ end
12
+
13
+ it "should set #lote" do
14
+ @segmento_t.lote.should == "3456"
15
+ end
16
+
17
+ it "should set #tipo_registro" do
18
+ @segmento_t.tipo_registro.should == "7"
19
+ end
20
+
21
+ it "should set #num_registro" do
22
+ @segmento_t.num_registro.should == "89012"
23
+ end
24
+
25
+ it "should set #segmento" do
26
+ @segmento_t.segmento.should == "3"
27
+ end
28
+
29
+ it "should set #res_cnab1" do
30
+ @segmento_t.res_cnab1.should == "4"
31
+ end
32
+
33
+ it "should set #cod_movimentacao" do
34
+ @segmento_t.cod_movimentacao.should == "56"
35
+ end
36
+
37
+ it "should set #agencia" do
38
+ @segmento_t.agencia.should == "78901"
39
+ end
40
+
41
+ it "should set #dv_agencia" do
42
+ @segmento_t.dv_agencia.should == "2"
43
+ end
44
+
45
+ it "should set #conta_corrente" do
46
+ @segmento_t.conta_corrente.should == "345678901234"
47
+ end
48
+
49
+ it "should set #dv_conta" do
50
+ @segmento_t.dv_conta.should == "5"
51
+ end
52
+
53
+ it "should set #dv_conta_agencia" do
54
+ @segmento_t.dv_conta_agencia.should == "6"
55
+ end
56
+
57
+ it "should set #id_titulo" do
58
+ @segmento_t.id_titulo.should == "78901234567890123456"
59
+ end
60
+
61
+ it "should set #carteira" do
62
+ @segmento_t.carteira.should == "7"
63
+ end
64
+
65
+ it "should set #doc_cobranca" do
66
+ @segmento_t.doc_cobranca.should == "890123456789012"
67
+ end
68
+
69
+ it "should set #vencimento" do
70
+ @segmento_t.vencimento.should == "34567890"
71
+ end
72
+
73
+ it "should set #valor_titulo" do
74
+ @segmento_t.valor_titulo.should == "123456789012345"
75
+ end
76
+
77
+ it "should set #banco_recebimento" do
78
+ @segmento_t.banco_recebimento.should == "678"
79
+ end
80
+
81
+ it "should set #ag_recebimento" do
82
+ @segmento_t.ag_recebimento.should == "90123"
83
+ end
84
+
85
+ it "should set #dv_ag_recebimento" do
86
+ @segmento_t.dv_ag_recebimento.should == "4"
87
+ end
88
+
89
+ it "should set #id_titulo_empresa" do
90
+ @segmento_t.id_titulo_empresa.should == "5678901234567890123456789"
91
+ end
92
+
93
+ it "should set #cod_moeda" do
94
+ @segmento_t.cod_moeda.should == "01"
95
+ end
96
+
97
+ it "should set #tipo_inscricao" do
98
+ @segmento_t.tipo_inscricao.should == "2"
99
+ end
100
+
101
+ it "should set #num_inscricao" do
102
+ @segmento_t.num_inscricao.should == "345678901234567"
103
+ end
104
+
105
+ it "should set #nome" do
106
+ @segmento_t.nome.should == "8901234567890123456789012345678901234567"
107
+ end
108
+
109
+ it "should set #num_contrato" do
110
+ @segmento_t.num_contrato.should == "8901234567"
111
+ end
112
+
113
+ it "should set #tarifa" do
114
+ @segmento_t.tarifa.should == "890123456789012"
115
+ end
116
+
117
+ it "should set #motivo" do
118
+ @segmento_t.motivo.should == "3456789012"
119
+ end
120
+
121
+ it "should set #res_cnab2" do
122
+ @segmento_t.res_cnab2.should == "34567890123456789"
123
+ end
124
+ end
125
+ end
@@ -0,0 +1,105 @@
1
+ require 'spec_helper'
2
+
3
+ describe Cnab::Detalhe::SegmentoU do
4
+ describe "#initialize" do
5
+ before :each do
6
+ @segmento_u = Cnab::Detalhe::SegmentoU.new(LINE)
7
+ end
8
+
9
+ it "should set #banco" do
10
+ @segmento_u.banco.should == "012"
11
+ end
12
+
13
+ it "should set #lote" do
14
+ @segmento_u.lote.should == "3456"
15
+ end
16
+
17
+ it "should set #tipo_registro" do
18
+ @segmento_u.tipo_registro.should == "7"
19
+ end
20
+
21
+ it "should set #num_registro" do
22
+ @segmento_u.num_registro.should == "89012"
23
+ end
24
+
25
+ it "should set #segmento" do
26
+ @segmento_u.segmento.should == "3"
27
+ end
28
+
29
+ it "should set #res_cnab1" do
30
+ @segmento_u.res_cnab1.should == "4"
31
+ end
32
+
33
+ it "should set #cod_movimentacao" do
34
+ @segmento_u.cod_movimentacao.should == "56"
35
+ end
36
+
37
+ it "should set #acrescimos" do
38
+ @segmento_u.acrescimos.should == "789012345678901"
39
+ end
40
+
41
+ it "should set #valor_desconto" do
42
+ @segmento_u.valor_desconto.should == "234567890123456"
43
+ end
44
+
45
+ it "should set #valor_abatimento" do
46
+ @segmento_u.valor_abatimento.should == "789012345678901"
47
+ end
48
+
49
+ it "should set #valor_iof" do
50
+ @segmento_u.valor_iof.should == "234567890123456"
51
+ end
52
+
53
+ it "should set #valor_pago" do
54
+ @segmento_u.valor_pago.should == "789012345678901"
55
+ end
56
+
57
+ it "should set #valor_liquido" do
58
+ @segmento_u.valor_liquido.should == "234567890123456"
59
+ end
60
+
61
+ it "should set #outras_despesas" do
62
+ @segmento_u.outras_despesas.should == "7890123456789012"
63
+ end
64
+
65
+ it "should set #outros_creditos" do
66
+ @segmento_u.outros_creditos.should == "34567890123456"
67
+ end
68
+
69
+ it "should set #data_ocorrencia" do
70
+ @segmento_u.data_ocorrencia.should == "78901234"
71
+ end
72
+
73
+ it "should set #data_credito" do
74
+ @segmento_u.data_credito.should == "56789012"
75
+ end
76
+
77
+ it "should set #cod_ocorrencia_sacado" do
78
+ @segmento_u.cod_ocorrencia_sacado.should == "3456"
79
+ end
80
+
81
+ it "should set #data_ocorrencia_sacado" do
82
+ @segmento_u.data_ocorrencia_sacado.should == "78901234"
83
+ end
84
+
85
+ it "should set #valor_ocorrencia_sacado" do
86
+ @segmento_u.valor_ocorrencia_sacado.should == "567890123456789"
87
+ end
88
+
89
+ it "should set #compl_ocorrencia_sacado" do
90
+ @segmento_u.compl_ocorrencia_sacado.should == "012345678901234567890123456789"
91
+ end
92
+
93
+ it "should set #banco_compensacao" do
94
+ @segmento_u.banco_compensacao.should == "012"
95
+ end
96
+
97
+ it "should set #banco_enviado" do
98
+ @segmento_u.banco_enviado.should == "34567890123456789012"
99
+ end
100
+
101
+ it "should set #res_cnab2" do
102
+ @segmento_u.res_cnab2.should == "3456789"
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,105 @@
1
+ require 'spec_helper'
2
+
3
+ describe Cnab::HeaderArquivo do
4
+ describe "#initialize" do
5
+ before :each do
6
+ @header_arquivo = Cnab::HeaderArquivo.new(LINE)
7
+ end
8
+
9
+ it "should set #banco" do
10
+ @header_arquivo.banco.should == "012"
11
+ end
12
+
13
+ it "should set #lote" do
14
+ @header_arquivo.lote.should == "3456"
15
+ end
16
+
17
+ it "should set #registro" do
18
+ @header_arquivo.registro.should == "7"
19
+ end
20
+
21
+ it "should set #res_cnab1" do
22
+ @header_arquivo.res_cnab1.should == "890123456"
23
+ end
24
+
25
+ it "should set #tipo_empresa" do
26
+ @header_arquivo.tipo_empresa.should == "7"
27
+ end
28
+
29
+ it "should set #num_empresa" do
30
+ @header_arquivo.num_empresa.should == "89012345678901"
31
+ end
32
+
33
+ it "should set #convenio" do
34
+ @header_arquivo.convenio.should == "23456789012345678901"
35
+ end
36
+
37
+ it "should set #agencia" do
38
+ @header_arquivo.agencia.should == "23456"
39
+ end
40
+
41
+ it "should set #dv_agencia" do
42
+ @header_arquivo.dv_agencia.should == "7"
43
+ end
44
+
45
+ it "should set #conta_corrente" do
46
+ @header_arquivo.conta_corrente.should == "890123456789"
47
+ end
48
+
49
+ it "should set #dv_conta" do
50
+ @header_arquivo.dv_conta.should == "0"
51
+ end
52
+
53
+ it "should set #dv_conta_agencia" do
54
+ @header_arquivo.dv_conta_agencia.should == "1"
55
+ end
56
+
57
+ it "should set #nome_empresa" do
58
+ @header_arquivo.nome_empresa.should == "234567890123456789012345678901"
59
+ end
60
+
61
+ it "should set #nome_banco" do
62
+ @header_arquivo.nome_banco.should == "234567890123456789012345678901"
63
+ end
64
+
65
+ it "should set #res_cnab2" do
66
+ @header_arquivo.res_cnab2.should == "2345678901"
67
+ end
68
+
69
+ it "should set #cod_retorno" do
70
+ @header_arquivo.cod_retorno.should == "2"
71
+ end
72
+
73
+ it "should set #data_geracao_arq" do
74
+ @header_arquivo.data_geracao_arq.should == "34567890"
75
+ end
76
+
77
+ it "should set #hora_geracao_arq" do
78
+ @header_arquivo.hora_geracao_arq.should == "123456"
79
+ end
80
+
81
+ it "should set #sequencia" do
82
+ @header_arquivo.sequencia.should == "789012"
83
+ end
84
+
85
+ it "should set #versao" do
86
+ @header_arquivo.versao.should == "345"
87
+ end
88
+
89
+ it "should set #densidade" do
90
+ @header_arquivo.densidade.should == "67890"
91
+ end
92
+
93
+ it "should set #res_banco" do
94
+ @header_arquivo.res_banco.should == "12345678901234567890"
95
+ end
96
+
97
+ it "should set #res_empresa" do
98
+ @header_arquivo.res_empresa.should == "12345678901234567890"
99
+ end
100
+
101
+ it "should set #res_cnab3" do
102
+ @header_arquivo.res_cnab3.should == "12345678901234567890123456789"
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,101 @@
1
+ require 'spec_helper'
2
+
3
+ describe Cnab::HeaderLote::Cobranca do
4
+ describe "#initialize" do
5
+ before :each do
6
+ @cobranca = Cnab::HeaderLote::Cobranca.new(LINE)
7
+ end
8
+
9
+ it "should set #banco" do
10
+ @cobranca.banco.should == "012"
11
+ end
12
+
13
+ it "should set #lote" do
14
+ @cobranca.lote.should == "3456"
15
+ end
16
+
17
+ it "should set #registro" do
18
+ @cobranca.registro.should == "7"
19
+ end
20
+
21
+ it "should set #tipo_operacao" do
22
+ @cobranca.tipo_operacao.should == "8"
23
+ end
24
+
25
+ it "should set #tipo_servico" do
26
+ @cobranca.tipo_servico.should == "90"
27
+ end
28
+
29
+ it "should set #res_cnab1" do
30
+ @cobranca.res_cnab1.should == "12"
31
+ end
32
+
33
+ it "should set #layout_lote" do
34
+ @cobranca.layout_lote.should == "345"
35
+ end
36
+
37
+ it "should set #res_cnab2" do
38
+ @cobranca.res_cnab2.should == "6"
39
+ end
40
+
41
+ it "should set #tipo_empresa" do
42
+ @cobranca.tipo_empresa.should == "7"
43
+ end
44
+
45
+ it "should set #num_empresa" do
46
+ @cobranca.num_empresa.should == "890123456789012"
47
+ end
48
+
49
+ it "should set #convenio" do
50
+ @cobranca.convenio.should == "34567890123456789012"
51
+ end
52
+
53
+ it "should set #agencia" do
54
+ @cobranca.agencia.should == "34567"
55
+ end
56
+
57
+ it "should set #dv_agencia" do
58
+ @cobranca.dv_agencia.should == "8"
59
+ end
60
+
61
+ it "should set #conta_corrente" do
62
+ @cobranca.conta_corrente.should == "901234567890"
63
+ end
64
+
65
+ it "should set #dv_conta" do
66
+ @cobranca.dv_conta.should == "1"
67
+ end
68
+
69
+ it "should set #dv_conta_agencia" do
70
+ @cobranca.dv_conta_agencia.should == "2"
71
+ end
72
+
73
+ it "should set #nome_empresa" do
74
+ @cobranca.nome_empresa.should == "345678901234567890123456789012"
75
+ end
76
+
77
+ it "should set #informacao1" do
78
+ @cobranca.informacao1.should == "3456789012345678901234567890123456789012"
79
+ end
80
+
81
+ it "should set #informacao2" do
82
+ @cobranca.informacao2.should == "3456789012345678901234567890123456789012"
83
+ end
84
+
85
+ it "should set #numero_remessa" do
86
+ @cobranca.numero_remessa.should == "34567890"
87
+ end
88
+
89
+ it "should set #data_gravacao" do
90
+ @cobranca.data_gravacao.should == "12345678"
91
+ end
92
+
93
+ it "should set #data_credito" do
94
+ @cobranca.data_credito.should == "90123456"
95
+ end
96
+
97
+ it "should set #res_cnab3" do
98
+ @cobranca.res_cnab3.should == "789012345678901234567890123456789"
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,41 @@
1
+ require 'spec_helper'
2
+
3
+ describe Cnab::TrailerArquivo do
4
+ describe "#initialize" do
5
+ before :each do
6
+ @trailer_arquivo = Cnab::TrailerArquivo.new(LINE)
7
+ end
8
+
9
+ it "should set #banco" do
10
+ @trailer_arquivo.banco.should == "012"
11
+ end
12
+
13
+ it "should set #lote" do
14
+ @trailer_arquivo.lote.should == "3456"
15
+ end
16
+
17
+ it "should set #registro" do
18
+ @trailer_arquivo.registro.should == "7"
19
+ end
20
+
21
+ it "should set #res_cnab1" do
22
+ @trailer_arquivo.res_cnab1.should == "890123456"
23
+ end
24
+
25
+ it "should set #qtd_lotes" do
26
+ @trailer_arquivo.qtd_lotes.should == "789012"
27
+ end
28
+
29
+ it "should set #qtd_registros" do
30
+ @trailer_arquivo.qtd_registros.should == "345678"
31
+ end
32
+
33
+ it "should set #qtd_contas" do
34
+ @trailer_arquivo.qtd_contas.should == "901234"
35
+ end
36
+
37
+ it "should set #res_cnab2" do
38
+ @trailer_arquivo.res_cnab2.should == "5678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,8 @@
1
+ require "rspec"
2
+ require "coveralls"
3
+
4
+ Coveralls.wear!
5
+
6
+ require File.dirname(__FILE__) + "/../lib/cnab"
7
+
8
+ LINE = (0..239).to_a.map { |i| i = i % 10 }.join("")
metadata CHANGED
@@ -1,31 +1,100 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cnab
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Paulo Henrique Lopes Ribeiro
9
+ - Matheus Mina
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2013-03-22 00:00:00.000000000 Z
13
- dependencies: []
13
+ date: 2013-03-25 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rake
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '0'
31
+ - !ruby/object:Gem::Dependency
32
+ name: rspec
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ type: :development
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: coveralls
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
14
63
  description: Gem used to parse CNAB files
15
64
  email:
16
65
  - plribeiro3000@gmail.com
66
+ - mfbmina@gmail.com
17
67
  executables: []
18
68
  extensions: []
19
69
  extra_rdoc_files: []
20
70
  files:
21
71
  - .gitignore
72
+ - .rspec
73
+ - .ruby-gemset
74
+ - .ruby-version
22
75
  - Gemfile
23
76
  - LICENSE.txt
24
77
  - README.md
25
78
  - Rakefile
26
79
  - cnab.gemspec
27
80
  - lib/cnab.rb
81
+ - lib/cnab/detalhe.rb
82
+ - lib/cnab/detalhe/segmento_t.rb
83
+ - lib/cnab/detalhe/segmento_u.rb
84
+ - lib/cnab/header_arquivo.rb
85
+ - lib/cnab/header_lote.rb
86
+ - lib/cnab/header_lote/cobranca.rb
87
+ - lib/cnab/helper.rb
88
+ - lib/cnab/trailer_arquivo.rb
89
+ - lib/cnab/trailer_lote.rb
90
+ - lib/cnab/trailer_lote/cobranca.rb
28
91
  - lib/cnab/version.rb
92
+ - spec/cnab/detalhe/segmento_t_spec.rb
93
+ - spec/cnab/detalhe/segmento_u_spec.rb
94
+ - spec/cnab/header_arquivo_spec.rb
95
+ - spec/cnab/header_lote/cobranca_spec.rb
96
+ - spec/cnab/trailer_arquivo_spec.rb
97
+ - spec/spec_helper.rb
29
98
  homepage:
30
99
  licenses: []
31
100
  post_install_message:
@@ -38,16 +107,28 @@ required_ruby_version: !ruby/object:Gem::Requirement
38
107
  - - ! '>='
39
108
  - !ruby/object:Gem::Version
40
109
  version: '0'
110
+ segments:
111
+ - 0
112
+ hash: -4151617072035159123
41
113
  required_rubygems_version: !ruby/object:Gem::Requirement
42
114
  none: false
43
115
  requirements:
44
116
  - - ! '>='
45
117
  - !ruby/object:Gem::Version
46
118
  version: '0'
119
+ segments:
120
+ - 0
121
+ hash: -4151617072035159123
47
122
  requirements: []
48
123
  rubyforge_project:
49
124
  rubygems_version: 1.8.25
50
125
  signing_key:
51
126
  specification_version: 3
52
127
  summary: It parse CNAB files
53
- test_files: []
128
+ test_files:
129
+ - spec/cnab/detalhe/segmento_t_spec.rb
130
+ - spec/cnab/detalhe/segmento_u_spec.rb
131
+ - spec/cnab/header_arquivo_spec.rb
132
+ - spec/cnab/header_lote/cobranca_spec.rb
133
+ - spec/cnab/trailer_arquivo_spec.rb
134
+ - spec/spec_helper.rb