cnab 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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