cnab240 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. data/.gitignore +0 -1
  2. data/lib/cnab240/arquivo/arquivo.rb +11 -3
  3. data/lib/cnab240/arquivo/estrutura.rb +60 -0
  4. data/lib/cnab240/arquivo/lote.rb +12 -7
  5. data/lib/cnab240/pagamentos/titulos/header.rb +46 -0
  6. data/lib/cnab240/pagamentos/titulos/trailer.rb +18 -0
  7. data/lib/cnab240/pagamentos/trailer.rb +10 -10
  8. data/lib/cnab240/pagamentos/tributos/header.rb +47 -0
  9. data/lib/cnab240/pagamentos/tributos/trailer.rb +17 -0
  10. data/lib/cnab240/segmentos/segmento_j.rb +33 -0
  11. data/lib/cnab240/segmentos/segmento_j52.rb +33 -0
  12. data/lib/cnab240/segmentos/segmento_n.rb +26 -0
  13. data/lib/cnab240/segmentos/segmento_o.rb +27 -0
  14. data/lib/cnab240/segmentos/segmento_w.rb +24 -0
  15. data/lib/cnab240/segmentos/segmento_w1.rb +16 -0
  16. data/lib/cnab240/segmentos/segmento_z.rb +18 -0
  17. data/lib/cnab240/version.rb +1 -1
  18. data/lib/cnab240.rb +13 -8
  19. data/spec/arquivo/arquivo_spec.rb +3 -3
  20. data/spec/pagamentos/lote_spec.rb +6 -5
  21. data/spec/pagamentos/titulos/header_spec.rb +51 -0
  22. data/spec/pagamentos/titulos/lote_spec.rb +35 -0
  23. data/spec/pagamentos/titulos/trailer_spec.rb +30 -0
  24. data/spec/pagamentos/tributos/header_spec.rb +53 -0
  25. data/spec/pagamentos/tributos/lote_spec.rb +41 -0
  26. data/spec/pagamentos/tributos/trailer_spec.rb +27 -0
  27. data/spec/segmentos/segmento_j52_spec.rb +46 -0
  28. data/spec/segmentos/segmento_j_spec.rb +46 -0
  29. data/spec/segmentos/segmento_n_spec.rb +39 -0
  30. data/spec/segmentos/segmento_o_spec.rb +41 -0
  31. data/spec/segmentos/segmento_w_spec.rb +42 -0
  32. data/spec/segmentos/segmento_z_spec.rb +33 -0
  33. data/spec/tmp/.gitkeep +0 -0
  34. metadata +42 -4
data/.gitignore CHANGED
@@ -16,4 +16,3 @@ rdoc
16
16
  spec/reports
17
17
  test/tmp
18
18
  test/version_tmp
19
- tmp
@@ -28,7 +28,10 @@ module Cnab240::Arquivo
28
28
  end
29
29
 
30
30
  def save_to_file(filename)
31
- File.delete(filename) # LoL
31
+ begin
32
+ File.delete(filename) # LoL
33
+ rescue
34
+ end
32
35
  File.open(filename, 'w') {|f| f.write(string) }
33
36
  end
34
37
 
@@ -39,19 +42,24 @@ module Cnab240::Arquivo
39
42
  line.gsub!("\n", "")
40
43
  line_number = line_number + 1
41
44
  raise "Invalid line length: #{line.length} expected 240 at line number #{line_number}\n\t Line: [#{line}]" unless line.length == 240
42
- case line[7]
45
+ case line[7..7] # ruby 1.8.7 requires this fuck
43
46
  when '0' # header de arquivo
44
47
  arquivos << Arquivo.new
45
48
  arquivos.last.header = Header.read(line)
46
49
  when '1'
50
+ # raise NotImplementedError.new("Tipo de registro not implemented")
47
51
  when '2'
52
+ # raise NotImplementedError.new("Tipo de registro not implemented")
48
53
  when '3'
54
+ # raise NotImplementedError.new("Tipo de registro not implemented")
49
55
  when '4'
56
+ # raise NotImplementedError.new("Tipo de registro not implemented")
50
57
  when '5'
58
+ # raise NotImplementedError.new("Tipo de registro not implemented")
51
59
  when '9'
52
60
  arquivos.last.header = Trailer.read(line)
53
61
  else
54
- raise 'Invalid tipo de registro: #{line[7]}.'
62
+ raise "Invalid tipo de registro: #{line[7]} at line #{line_number} \n\t Line: [#{line}]"
55
63
  end
56
64
  end
57
65
  arquivos
@@ -0,0 +1,60 @@
1
+ module Cnab240
2
+
3
+ ESTRUTURA = {
4
+ :pagamento => {
5
+ :header => Cnab240::Pagamentos::Header,
6
+ :trailer => Cnab240::Pagamentos::Trailer,
7
+ :segmentos => [:a, :b, :c],
8
+ :a => {
9
+ :remessa => true,
10
+ :retorno => true
11
+ },
12
+ :b => {
13
+ :remessa => true,
14
+ :retorno => true
15
+ },
16
+ :c => {
17
+ :remessa => false,
18
+ :retorno => false
19
+ }
20
+ },
21
+
22
+ :pagamento_titulo_cobranca => {
23
+ :header => Cnab240::PagamentosTitulos::Header,
24
+ :trailer => Cnab240::PagamentosTitulos::Trailer,
25
+ :segmentos => [:j, :j52],
26
+ :j => {
27
+ :remessa => true,
28
+ :retorno => true
29
+ },
30
+ :j52 => {
31
+ :remessa => false,
32
+ :retorno => false
33
+ }
34
+ },
35
+
36
+ :pagamento_titulo_tributos => {
37
+ :header => Cnab240::PagamentosTributos::Header,
38
+ :trailer => Cnab240::PagamentosTributos::Trailer,
39
+ :segmentos => [:o, :n, :w, :z],
40
+ :o => {
41
+ :remessa => true,
42
+ :retorno => true
43
+ },
44
+ :n => {
45
+ :remessa => true,
46
+ :retorno => true
47
+ },
48
+ :w => {
49
+ :remessa => false,
50
+ :retorno => false
51
+ },
52
+ :z => {
53
+ :remessa => false,
54
+ :retorno => false
55
+ }
56
+ }
57
+
58
+ }
59
+
60
+ end
@@ -4,21 +4,26 @@ module Cnab240
4
4
  attr_accessor :segmentos
5
5
  attr_accessor :trailer
6
6
  attr_accessor :operacao
7
+ attr_accessor :tipo
7
8
 
8
- def initialize(op = nil)
9
+ def initialize(options = {})
9
10
  @segmentos = {}
11
+
12
+ @operacao ||= options[:operacao]
13
+ @tipo ||= options[:tipo]
14
+
15
+ raise "Operacao nao suportada: #{operacao}" if ESTRUTURA[operacao].nil?
10
16
 
11
- unless @operacao = op
12
- return
13
- end
14
-
15
17
  estrutura = ESTRUTURA[operacao]
16
18
 
17
19
  @header = estrutura[:header].new
18
20
  @trailer = estrutura[:trailer].new
19
21
 
20
22
  estrutura[:segmentos].each do |s|
21
- self << s
23
+ raise "Tipo nao suportado: [#{s}][#{tipo}]" if estrutura[s][tipo].nil?
24
+ if estrutura[s][tipo] == true
25
+ self << s
26
+ end
22
27
  end
23
28
  end
24
29
 
@@ -32,7 +37,7 @@ module Cnab240
32
37
  estrutura = ESTRUTURA[operacao]
33
38
  seg_array << @header.linha
34
39
  estrutura[:segmentos].each do |s|
35
- seg_array << @segmentos[s].linha
40
+ seg_array << @segmentos[s].linha unless @segmentos[s].nil?
36
41
  end
37
42
  seg_array << @trailer.linha
38
43
  seg_array
@@ -0,0 +1,46 @@
1
+ module Cnab240::PagamentosTitulos
2
+ class Header < BinData::Record
3
+
4
+ include Cnab240::DefaultMixin
5
+
6
+ string :controle_banco, :length => 3, :pad_byte => '0'
7
+ string :controle_lote, :length => 4, :pad_byte => '0'
8
+ string :controle_registro, :length => 1, :initial_value => '1', :pad_byte => '0'
9
+
10
+ string :servico_operacao, :value => 'C', :pad_byte => ' '
11
+ string :servico_tipo, :length => 2 , :pad_byte => '0'
12
+ string :servico_forma, :length => 2, :pad_byte => '0'
13
+ string :servico_layout, :value => '040', :pad_byte => '0'
14
+
15
+ string :cnab_g004_1, :length => 1, :pad_byte => ' '
16
+
17
+ string :empresa_tipo, :length => 1, :pad_byte => '0'
18
+ string :empresa_numero, :length => 14, :pad_byte => '0'
19
+ string :empresa_convenio, :length => 20, :pad_byte => ' '
20
+ string :empresa_agencia_codigo, :length => 5, :pad_byte => '0'
21
+ string :empresa_agencia_dv, :length => 1, :pad_byte => ' '
22
+ string :empresa_conta_numero, :length => 12, :pad_byte => '0'
23
+ string :empresa_conta_dv, :length => 1, :pad_byte => ' '
24
+ string :empresa_agencia_conta_dv, :length => 1, :pad_byte => ' '
25
+ string :empresa_nome, :length => 30, :pad_byte => ' '
26
+
27
+ string :informacao_1, :length => 40, :pad_byte => ' '
28
+
29
+ string :endereco_logradouro, :length => 30, :pad_byte => ' '
30
+ string :endereco_numero, :length => 5, :pad_byte => '0'
31
+ string :endereco_complemento, :length => 15, :pad_byte => ' '
32
+ string :endereco_cidade, :length => 20, :pad_byte => ' '
33
+ string :endereco_cep, :length => 5, :pad_byte => '0'
34
+ string :endereco_complemento_cep, :length => 3, :pad_byte => '0'
35
+ string :endereco_estado, :length => 2, :pad_byte => ' '
36
+
37
+ string :cnab_g004_2, :length => 8, :pad_byte => ' '
38
+ string :ocorrencias, :length => 10, :pad_byte => ' '
39
+
40
+ private
41
+
42
+ def auto_fill
43
+
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,18 @@
1
+ module Cnab240::PagamentosTitulos
2
+ class Trailer < BinData::Record
3
+
4
+ include Cnab240::DefaultMixin
5
+
6
+ string :controle_banco, :length => 3, :pad_byte => '0'
7
+ string :controle_lote, :length => 4, :pad_byte => '0'
8
+ string :controle_registro, :value => '5', :pad_byte => '0'
9
+
10
+ string :cnab_g004_1, :length => 9, :pad_byte => '0'
11
+ string :totais_qtde_registros, :length => 6, :pad_byte => '0'
12
+ string :totais_valor, :length => 18, :pad_byte => '0'
13
+ string :totais_qtde_moeda, :length => 18, :pad_byte => '0'
14
+ string :numero_aviso_debito, :length => 6, :pad_byte => '0'
15
+ string :cnab_g004_2, :length => 165, :pad_byte => ' '
16
+ string :ocorrencias, :length => 10, :pad_byte => ' '
17
+ end
18
+ end
@@ -3,16 +3,16 @@ module Cnab240::Pagamentos
3
3
 
4
4
  include Cnab240::DefaultMixin
5
5
 
6
- string :controle_banco, :length => 3
7
- string :controle_lote, :length => 4
8
- string :controle_registro, :value => '5'
6
+ string :controle_banco, :length => 3, :pad_byte => '0'
7
+ string :controle_lote, :length => 4, :pad_byte => '0'
8
+ string :controle_registro, :value => '5', :pad_byte => '0'
9
9
 
10
- string :cnab_g004_1, :length => 9
11
- string :totais_qtde_registros, :length => 6
12
- string :totais_valor, :length => 18
13
- string :totais_qtde_moeda, :length => 18
14
- string :numero_aviso_debito, :length => 6
15
- string :cnab_g004_2, :length => 165
16
- string :ocorrencias, :length => 10
10
+ string :cnab_g004_1, :length => 9, :pad_byte => '0'
11
+ string :totais_qtde_registros, :length => 6, :pad_byte => '0'
12
+ string :totais_valor, :length => 18, :pad_byte => '0'
13
+ string :totais_qtde_moeda, :length => 18, :pad_byte => '0'
14
+ string :numero_aviso_debito, :length => 6, :pad_byte => '0'
15
+ string :cnab_g004_2, :length => 165, :pad_byte => ' '
16
+ string :ocorrencias, :length => 10, :pad_byte => ' '
17
17
  end
18
18
  end
@@ -0,0 +1,47 @@
1
+ module Cnab240::PagamentosTributos
2
+ class Header < BinData::Record
3
+
4
+ include Cnab240::DefaultMixin
5
+
6
+ string :controle_banco, :length => 3, :pad_byte => '0'
7
+ string :controle_lote, :length => 4, :pad_byte => '0'
8
+ string :controle_registro, :length => 1, :initial_value => '1', :pad_byte => '0'
9
+
10
+ string :servico_operacao, :value => 'C', :pad_byte => ' '
11
+ string :servico_tipo, :length => 2 , :pad_byte => '0'
12
+ string :servico_forma, :length => 2, :pad_byte => '0'
13
+ string :servico_layout, :value => '011', :pad_byte => '0'
14
+
15
+ string :cnab_g004_1, :length => 1, :pad_byte => ' '
16
+
17
+ string :empresa_tipo, :length => 1, :pad_byte => '0'
18
+ string :empresa_numero, :length => 14, :pad_byte => '0'
19
+ string :empresa_convenio, :length => 20, :pad_byte => ' '
20
+ string :empresa_agencia_codigo, :length => 5, :pad_byte => '0'
21
+ string :empresa_agencia_dv, :length => 1, :pad_byte => ' '
22
+ string :empresa_conta_numero, :length => 12, :pad_byte => '0'
23
+ string :empresa_conta_dv, :length => 1, :pad_byte => ' '
24
+ string :empresa_agencia_conta_dv, :length => 1, :pad_byte => ' '
25
+ string :empresa_nome, :length => 30, :pad_byte => ' '
26
+
27
+ string :informacao_1, :length => 40, :pad_byte => ' '
28
+
29
+ string :endereco_logradouro, :length => 30, :pad_byte => ' '
30
+ string :endereco_numero, :length => 5, :pad_byte => '0'
31
+ string :endereco_complemento, :length => 15, :pad_byte => ' '
32
+ string :endereco_cidade, :length => 20, :pad_byte => ' '
33
+ string :endereco_cep, :length => 5, :pad_byte => '0'
34
+ string :endereco_complemento_cep, :length => 3, :pad_byte => '0'
35
+ string :endereco_estado, :length => 2, :pad_byte => ' '
36
+
37
+ string :indicativo_forma_pagamento, :length => 2, :pad_byte => '0'
38
+ string :cnab_g004_2, :length => 6, :pad_byte => ' '
39
+ string :ocorrencias, :length => 10, :pad_byte => ' '
40
+
41
+ private
42
+
43
+ def auto_fill
44
+
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,17 @@
1
+ module Cnab240::PagamentosTributos
2
+ class Trailer < BinData::Record
3
+
4
+ include Cnab240::DefaultMixin
5
+
6
+ string :controle_banco, :length => 3, :pad_byte => '0'
7
+ string :controle_lote, :length => 4, :pad_byte => '0'
8
+ string :controle_registro, :value => '5', :pad_byte => '0'
9
+
10
+ string :cnab_g004_1, :length => 9, :pad_byte => '0'
11
+ string :totais_qtde_registros, :length => 6, :pad_byte => '0'
12
+ string :totais_valor, :length => 18, :pad_byte => '0'
13
+
14
+ string :complemento, :length => 189, :pad_byte => ' '
15
+ string :ocorrencias, :length => 10, :pad_byte => ' '
16
+ end
17
+ end
@@ -0,0 +1,33 @@
1
+ module Cnab240
2
+ class SegmentoJ < BinData::Record
3
+
4
+ include Cnab240::DefaultMixin
5
+
6
+ string :controle_banco, :length => 3, :pad_byte => '0'
7
+ string :controle_lote, :length => 4, :pad_byte => '0'
8
+ string :controle_registro, :length => 1, :initial_value => '3', :pad_byte => '0'
9
+
10
+ string :servico_numero_registro, :length => 5, :pad_byte => '0'
11
+ string :servico_codigo_segmento, :value => 'J', :pad_byte => ' '
12
+ string :servico_tipo_movimento, :length => 1, :pad_byte => '0'
13
+ string :servico_codigo_movimento, :length => 2, :pad_byte => '0'
14
+
15
+ string :codigo_barras, :length => 44, :pad_byte => ' '
16
+ string :nome_cedente, :length => 30, :pad_byte => ' '
17
+ string :data_vencimento, :length => 8, :pad_byte => '0'
18
+ string :valor_titulo, :length => 15, :pad_byte => '0'
19
+ string :valor_desconto_abatimento, :length => 15, :pad_byte => '0'
20
+ string :valor_mora_juros, :length => 15, :pad_byte => '0'
21
+ string :data_pagamento, :length => 8, :pad_byte => '0'
22
+ string :valor_pagamento, :length => 15, :pad_byte => '0'
23
+ string :quantidade_moeda, :length => 15, :pad_byte => '0'
24
+ string :referencia_sacado, :length => 20, :pad_byte => ' '
25
+
26
+ string :nosso_numero, :length => 20, :pad_byte => ' '
27
+ string :codigo_moeda, :length => 2, :pad_byte => '0'
28
+
29
+ string :cnab_g004_1, :length => 6, :pad_byte => ' '
30
+ string :ocorrencias, :length => 10, :pad_byte => ' '
31
+
32
+ end
33
+ end
@@ -0,0 +1,33 @@
1
+ module Cnab240
2
+ class SegmentoJ52 < BinData::Record
3
+
4
+ include Cnab240::DefaultMixin
5
+
6
+ string :controle_banco, :length => 3, :pad_byte => '0'
7
+ string :controle_lote, :length => 4, :pad_byte => '0'
8
+ string :controle_registro, :length => 1, :initial_value => '3', :pad_byte => '0'
9
+
10
+ string :servico_numero_registro, :length => 5, :pad_byte => '0'
11
+ string :servico_codigo_segmento, :value => 'J', :pad_byte => ' '
12
+ string :servico_tipo_movimento, :length => 1, :pad_byte => '0'
13
+ string :servico_codigo_movimento, :length => 2, :pad_byte => '0'
14
+
15
+ string :cod_registro_opcional, :value => '52'
16
+
17
+ string :sacado_tipo_inscricao, :length => 1, :pad_byte => '0'
18
+ string :sacado_numero_inscricao, :length => 15, :pad_byte => '0'
19
+ string :sacado_nome, :length => 40, :pad_byte => ' '
20
+
21
+ string :cedente_tipo_inscricao, :length => 1, :pad_byte => '0'
22
+ string :cedente_numero_inscricao, :length => 15, :pad_byte => '0'
23
+ string :cedente_nome, :length => 40, :pad_byte => ' '
24
+
25
+ string :sacador_tipo_inscricao, :length => 1, :pad_byte => '0'
26
+ string :sacador_numero_inscricao, :length => 15, :pad_byte => '0'
27
+ string :sacador_nome, :length => 40, :pad_byte => ' '
28
+
29
+
30
+ string :cnab_g004_1, :length => 53, :pad_byte => ' '
31
+
32
+ end
33
+ end
@@ -0,0 +1,26 @@
1
+ module Cnab240
2
+ class SegmentoN < BinData::Record
3
+
4
+ include Cnab240::DefaultMixin
5
+
6
+ string :controle_banco, :length => 3, :pad_byte => '0'
7
+ string :controle_lote, :length => 4, :pad_byte => '0'
8
+ string :controle_registro, :length => 1, :initial_value => '3', :pad_byte => '0'
9
+
10
+ string :servico_numero_registro, :length => 5, :pad_byte => '0'
11
+ string :servico_codigo_segmento, :value => 'N', :pad_byte => ' '
12
+ string :servico_tipo_movimento, :length => 1, :pad_byte => '0'
13
+ string :servico_codigo_movimento, :length => 2, :pad_byte => '0'
14
+
15
+ string :seu_numero, :length => 20, :pad_byte => ' '
16
+ string :nosso_numero, :length => 20, :pad_byte => ' '
17
+ string :contribuinte, :length => 30, :pad_byte => ' '
18
+ string :data_pagamento, :length => 8, :pad_byte => '0'
19
+ string :valor_pagamento, :length => 15, :pad_byte => '0'
20
+
21
+ string :informacoes_complementares, :length => 120, :pad_byte => ' '
22
+
23
+ string :ocorrencias, :length => 10, :pad_byte => ' '
24
+
25
+ end
26
+ end
@@ -0,0 +1,27 @@
1
+ module Cnab240
2
+ class SegmentoO < BinData::Record
3
+
4
+ include Cnab240::DefaultMixin
5
+
6
+ string :controle_banco, :length => 3, :pad_byte => '0'
7
+ string :controle_lote, :length => 4, :pad_byte => '0'
8
+ string :controle_registro, :length => 1, :initial_value => '3', :pad_byte => '0'
9
+
10
+ string :servico_numero_registro, :length => 5, :pad_byte => '0'
11
+ string :servico_codigo_segmento, :value => 'O', :pad_byte => ' '
12
+ string :servico_tipo_movimento, :length => 1, :pad_byte => '0'
13
+ string :servico_codigo_movimento, :length => 2, :pad_byte => '0'
14
+
15
+ string :codigo_barras, :length => 44, :pad_byte => ' '
16
+ string :nome_concessionaria, :length => 30, :pad_byte => ' '
17
+ string :data_vencimento, :length => 8, :pad_byte => '0'
18
+ string :data_pagamento, :length => 8, :pad_byte => '0'
19
+ string :valor_pagamento, :length => 15, :pad_byte => '0'
20
+ string :seu_numero, :length => 20, :pad_byte => ' '
21
+ string :nosso_numero, :length => 20, :pad_byte => ' '
22
+
23
+ string :cnab_g004_1, :length => 68, :pad_byte => ' '
24
+ string :ocorrencias, :length => 10, :pad_byte => ' '
25
+
26
+ end
27
+ end
@@ -0,0 +1,24 @@
1
+ module Cnab240
2
+ class SegmentoW < BinData::Record
3
+
4
+ include Cnab240::DefaultMixin
5
+
6
+ string :controle_banco, :length => 3, :pad_byte => '0'
7
+ string :controle_lote, :length => 4, :pad_byte => '0'
8
+ string :controle_registro, :length => 1, :initial_value => '3', :pad_byte => '0'
9
+
10
+ string :servico_numero_registro, :length => 5, :pad_byte => '0'
11
+ string :servico_codigo_segmento, :value => 'W', :pad_byte => ' '
12
+ string :complemento, :length => 1, :pad_byte => '0'
13
+
14
+ string :uso_informacoes_1_e_2, :length => 1, :pad_byte => ' '
15
+ string :informacao_1, :length => 80, :pad_byte => ' '
16
+ string :informacao_2, :length => 80, :pad_byte => ' '
17
+
18
+ segmento_w1 :w1
19
+
20
+ string :reservado, :length => 2, :pad_byte => ' '
21
+ string :ocorrencias, :length => 10, :pad_byte => ' '
22
+
23
+ end
24
+ end
@@ -0,0 +1,16 @@
1
+ module Cnab240
2
+ class SegmentoW1 < BinData::Record
3
+
4
+ include Cnab240::DefaultMixin
5
+
6
+ string :identificador_tributo, :length => 2, :pad_byte => ' '
7
+ string :receita, :length => 6, :pad_byte => ' '
8
+ string :tipo_identificacao_contribuinte, :length => 2, :pad_byte => ' '
9
+ string :identificacao_contribuinte, :length => 14, :pad_byte => ' '
10
+ string :identificador_fgts, :length => 16, :pad_byte => ' '
11
+ string :lacre_conectividade, :length => 9, :pad_byte => ' '
12
+ string :digito_lacre_conectividade, :length => 2, :pad_byte => ' '
13
+ string :cnab_g004_1, :length => 1, :pad_byte => ' '
14
+
15
+ end
16
+ end
@@ -0,0 +1,18 @@
1
+ module Cnab240
2
+ class SegmentoZ < BinData::Record
3
+
4
+ include Cnab240::DefaultMixin
5
+
6
+ string :controle_banco, :length => 3, :pad_byte => '0'
7
+ string :controle_lote, :length => 4, :pad_byte => '0'
8
+ string :controle_registro, :length => 1, :initial_value => '3', :pad_byte => '0'
9
+
10
+ string :servico_numero_registro, :length => 5, :pad_byte => '0'
11
+ string :servico_codigo_segmento, :value => 'Z', :pad_byte => ' '
12
+
13
+ string :autenticacao, :length => 64, :pad_byte => ' '
14
+ string :controle_bancario, :length => 25, :pad_byte => ' '
15
+ string :cnab_g004_1, :length => 127, :pad_byte => ' '
16
+ string :ocorrencias, :length => 10, :pad_byte => ' '
17
+ end
18
+ end
@@ -1,4 +1,4 @@
1
1
  module Cnab240
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
4
4
 
data/lib/cnab240.rb CHANGED
@@ -11,6 +11,13 @@ require "cnab240/arquivo/lote"
11
11
  require "cnab240/segmentos/segmento_a"
12
12
  require "cnab240/segmentos/segmento_b"
13
13
  require "cnab240/segmentos/segmento_c"
14
+ require "cnab240/segmentos/segmento_j"
15
+ require "cnab240/segmentos/segmento_j52"
16
+ require "cnab240/segmentos/segmento_o"
17
+ require "cnab240/segmentos/segmento_n"
18
+ require "cnab240/segmentos/segmento_w1"
19
+ require "cnab240/segmentos/segmento_w"
20
+ require "cnab240/segmentos/segmento_z"
14
21
 
15
22
  require "cnab240/arquivo/arquivo"
16
23
  require "cnab240/arquivo/header"
@@ -18,17 +25,15 @@ require "cnab240/arquivo/trailer"
18
25
 
19
26
  require "cnab240/pagamentos/header"
20
27
  require "cnab240/pagamentos/trailer"
28
+ require "cnab240/pagamentos/titulos/header"
29
+ require "cnab240/pagamentos/titulos/trailer"
30
+ require "cnab240/pagamentos/tributos/header"
31
+ require "cnab240/pagamentos/tributos/trailer"
21
32
 
33
+ require "cnab240/arquivo/estrutura"
22
34
 
23
- module Cnab240
24
35
 
25
- ESTRUTURA = {
26
- :pagamento => {
27
- :header => Cnab240::Pagamentos::Header,
28
- :trailer => Cnab240::Pagamentos::Trailer,
29
- :segmentos => [:a, :b, :c]
30
- }
31
- }
36
+ module Cnab240
32
37
 
33
38
  mod_attr_accessor :defaults
34
39
  @@defaults = {}
@@ -15,7 +15,7 @@ describe Arquivo do
15
15
  arquivo.should respond_to(:lotes)
16
16
 
17
17
  (1..10).each do |n|
18
- lote = Cnab240::Lote.new(:pagamento)
18
+ lote = Cnab240::Lote.new(:operacao => :pagamento, :tipo => :remessa)
19
19
  lote.should be_an_instance_of(Cnab240::Lote)
20
20
  arquivo.lotes << lote
21
21
  arquivo.lotes.length.should be(n)
@@ -27,7 +27,7 @@ describe Arquivo do
27
27
  arquivo.should respond_to(:lotes)
28
28
 
29
29
  (1..10).each do |n|
30
- lote = Cnab240::Lote.new(:pagamento)
30
+ lote = Cnab240::Lote.new(:operacao => :pagamento, :tipo => :remessa)
31
31
  lote.should be_an_instance_of(Cnab240::Lote)
32
32
  arquivo.lotes << lote
33
33
  end
@@ -40,7 +40,7 @@ describe Arquivo do
40
40
  it "deve ler e escrever em arquivo" do
41
41
  arquivo = Cnab240::Arquivo::Arquivo.new
42
42
  (1..10).each do |n|
43
- arquivo.lotes << Cnab240::Lote.new(:pagamento)
43
+ arquivo.lotes << Cnab240::Lote.new(:operacao => :pagamento, :tipo => :remessa)
44
44
  end
45
45
  arquivo.save_to_file("spec/tmp/arquivo.test")
46
46
  arquivo = Cnab240::Arquivo::Arquivo.load_from_file("spec/tmp/arquivo.test")
@@ -3,28 +3,29 @@ require 'spec_helper'
3
3
  describe Cnab240::Lote do
4
4
 
5
5
  it "deve conter trailer e header" do
6
- lote = Cnab240::Lote.new(:pagamento)
6
+ lote = Cnab240::Lote.new(:operacao => :pagamento, :tipo => :remessa)
7
7
  lote.header.should be_an_instance_of(Cnab240::Pagamentos::Header)
8
8
  lote.trailer.should be_an_instance_of(Cnab240::Pagamentos::Trailer)
9
9
  end
10
10
 
11
11
  it "deve conter segmento a" do
12
- lote = Cnab240::Lote.new(:pagamento)
12
+ lote = Cnab240::Lote.new(:operacao => :pagamento, :tipo => :remessa)
13
13
  lote.segmento_a.should be_an_instance_of(Cnab240::SegmentoA)
14
14
  end
15
15
 
16
16
  it "deve conter segmento b" do
17
- lote = Cnab240::Lote.new(:pagamento)
17
+ lote = Cnab240::Lote.new(:operacao => :pagamento, :tipo => :remessa)
18
18
  lote.segmento_b.should be_an_instance_of(Cnab240::SegmentoB)
19
19
  end
20
20
 
21
21
  it "pode conter segmento c" do
22
- lote = Cnab240::Lote.new(:pagamento)
22
+ lote = Cnab240::Lote.new(:operacao => :pagamento, :tipo => :remessa)
23
+ lote << :c
23
24
  lote.should respond_to(:segmento_c)
24
25
  end
25
26
 
26
27
  it "linhas devem ter 240" do
27
- lote = Cnab240::Lote.new(:pagamento)
28
+ lote = Cnab240::Lote.new(:operacao => :pagamento, :tipo => :remessa)
28
29
  lote.linhas.each do |linha|
29
30
  linha.length.should be(240)
30
31
  end
@@ -0,0 +1,51 @@
1
+ require 'spec_helper'
2
+
3
+ describe Cnab240::PagamentosTitulos::Header do
4
+
5
+ it "deve conter campos header" do
6
+ header = Cnab240::PagamentosTitulos::Header.new
7
+
8
+ header.should respond_to(:controle_banco)
9
+ header.should respond_to(:controle_lote)
10
+ header.should respond_to(:controle_registro)
11
+
12
+ header.should respond_to(:servico_operacao)
13
+ header.should respond_to(:servico_tipo)
14
+ header.should respond_to(:servico_forma)
15
+ header.should respond_to(:servico_layout)
16
+
17
+ header.should respond_to(:cnab_g004_1)
18
+
19
+ header.should respond_to(:empresa_tipo)
20
+ header.should respond_to(:empresa_numero)
21
+ header.should respond_to(:empresa_convenio)
22
+ header.should respond_to(:empresa_agencia_codigo)
23
+ header.should respond_to(:empresa_agencia_dv)
24
+ header.should respond_to(:empresa_conta_numero)
25
+ header.should respond_to(:empresa_conta_dv)
26
+ header.should respond_to(:empresa_agencia_conta_dv)
27
+ header.should respond_to(:empresa_nome)
28
+
29
+ header.should respond_to(:informacao_1)
30
+
31
+ header.should respond_to(:endereco_logradouro)
32
+ header.should respond_to(:endereco_numero)
33
+ header.should respond_to(:endereco_complemento)
34
+ header.should respond_to(:endereco_cidade)
35
+ header.should respond_to(:endereco_cep)
36
+ header.should respond_to(:endereco_complemento_cep)
37
+ header.should respond_to(:endereco_estado)
38
+
39
+ header.should respond_to(:cnab_g004_2)
40
+
41
+ header.should respond_to(:ocorrencias)
42
+
43
+ end
44
+
45
+
46
+ it "header deve ter 240 caracteres" do
47
+ header = Cnab240::PagamentosTitulos::Header.new
48
+ header.linha.length.should be(240)
49
+ end
50
+
51
+ end
@@ -0,0 +1,35 @@
1
+ require 'spec_helper'
2
+
3
+ describe Cnab240::Lote do
4
+
5
+ it "deve conter trailer e header" do
6
+ lote = Cnab240::Lote.new(:operacao => :pagamento, :tipo => :remessa)
7
+ lote.header.should be_an_instance_of(Cnab240::Pagamentos::Header)
8
+ lote.trailer.should be_an_instance_of(Cnab240::Pagamentos::Trailer)
9
+ end
10
+
11
+ it "deve conter segmento a" do
12
+ lote = Cnab240::Lote.new(:operacao => :pagamento, :tipo => :remessa)
13
+ lote.segmento_a.should be_an_instance_of(Cnab240::SegmentoA)
14
+ end
15
+
16
+ it "deve conter segmento b" do
17
+ lote = Cnab240::Lote.new(:operacao => :pagamento, :tipo => :remessa)
18
+ lote.segmento_b.should be_an_instance_of(Cnab240::SegmentoB)
19
+ end
20
+
21
+ it "pode conter segmento c" do
22
+ lote = Cnab240::Lote.new(:operacao => :pagamento, :tipo => :remessa)
23
+ lote << :c
24
+ lote.should respond_to(:segmento_c)
25
+ end
26
+
27
+ it "linhas devem ter 240" do
28
+ lote = Cnab240::Lote.new(:operacao => :pagamento, :tipo => :remessa)
29
+ lote.linhas.each do |linha|
30
+ linha.length.should be(240)
31
+ end
32
+ end
33
+
34
+
35
+ end
@@ -0,0 +1,30 @@
1
+ require 'spec_helper'
2
+
3
+ describe Cnab240::PagamentosTitulos::Trailer do
4
+
5
+ it "deve conter campos trailer" do
6
+ trailer = Cnab240::PagamentosTitulos::Trailer.new
7
+
8
+ trailer.should respond_to(:controle_banco)
9
+ trailer.should respond_to(:controle_lote)
10
+ trailer.should respond_to(:controle_registro)
11
+
12
+ trailer.should respond_to(:cnab_g004_1)
13
+
14
+ trailer.should respond_to(:totais_qtde_registros)
15
+ trailer.should respond_to(:totais_valor)
16
+ trailer.should respond_to(:totais_qtde_moeda)
17
+
18
+ trailer.should respond_to(:numero_aviso_debito)
19
+
20
+ trailer.should respond_to(:cnab_g004_2)
21
+
22
+ trailer.should respond_to(:ocorrencias)
23
+ end
24
+
25
+ it "trailer deve ter 240 caracteres" do
26
+ trailer = Cnab240::PagamentosTitulos::Trailer.new
27
+ trailer.linha.length.should be(240)
28
+ end
29
+
30
+ end
@@ -0,0 +1,53 @@
1
+ require 'spec_helper'
2
+
3
+ describe Cnab240::PagamentosTributos::Header do
4
+
5
+ it "deve conter campos header" do
6
+ header = Cnab240::PagamentosTributos::Header.new
7
+
8
+ header.should respond_to(:controle_banco)
9
+ header.should respond_to(:controle_lote)
10
+ header.should respond_to(:controle_registro)
11
+
12
+ header.should respond_to(:servico_operacao)
13
+ header.should respond_to(:servico_tipo)
14
+ header.should respond_to(:servico_forma)
15
+ header.should respond_to(:servico_layout)
16
+
17
+ header.should respond_to(:cnab_g004_1)
18
+
19
+ header.should respond_to(:empresa_tipo)
20
+ header.should respond_to(:empresa_numero)
21
+ header.should respond_to(:empresa_convenio)
22
+ header.should respond_to(:empresa_agencia_codigo)
23
+ header.should respond_to(:empresa_agencia_dv)
24
+ header.should respond_to(:empresa_conta_numero)
25
+ header.should respond_to(:empresa_conta_dv)
26
+ header.should respond_to(:empresa_agencia_conta_dv)
27
+ header.should respond_to(:empresa_nome)
28
+
29
+ header.should respond_to(:informacao_1)
30
+
31
+ header.should respond_to(:endereco_logradouro)
32
+ header.should respond_to(:endereco_numero)
33
+ header.should respond_to(:endereco_complemento)
34
+ header.should respond_to(:endereco_cidade)
35
+ header.should respond_to(:endereco_cep)
36
+ header.should respond_to(:endereco_complemento_cep)
37
+ header.should respond_to(:endereco_estado)
38
+
39
+ header.should respond_to(:indicativo_forma_pagamento)
40
+
41
+ header.should respond_to(:cnab_g004_2)
42
+
43
+ header.should respond_to(:ocorrencias)
44
+
45
+ end
46
+
47
+
48
+ it "header deve ter 240 caracteres" do
49
+ header = Cnab240::PagamentosTributos::Header.new
50
+ header.linha.length.should be(240)
51
+ end
52
+
53
+ end
@@ -0,0 +1,41 @@
1
+ require 'spec_helper'
2
+
3
+ describe Cnab240::Lote do
4
+
5
+ it "deve conter trailer e header" do
6
+ lote = Cnab240::Lote.new(:operacao => :pagamento_titulo_tributos, :tipo => :remessa)
7
+ lote.header.should be_an_instance_of(Cnab240::PagamentosTributos::Header)
8
+ lote.trailer.should be_an_instance_of(Cnab240::PagamentosTributos::Trailer)
9
+ end
10
+
11
+ it "deve conter segmento o" do
12
+ lote = Cnab240::Lote.new(:operacao => :pagamento_titulo_tributos, :tipo => :remessa)
13
+ lote.segmento_o.should be_an_instance_of(Cnab240::SegmentoO)
14
+ end
15
+
16
+ it "deve conter segmento n" do
17
+ lote = Cnab240::Lote.new(:operacao => :pagamento_titulo_tributos, :tipo => :remessa)
18
+ lote.segmento_n.should be_an_instance_of(Cnab240::SegmentoN)
19
+ end
20
+
21
+ it "pode conter segmento w" do
22
+ lote = Cnab240::Lote.new(:operacao => :pagamento_titulo_tributos, :tipo => :remessa)
23
+ lote << :w
24
+ lote.should respond_to(:segmento_w)
25
+ end
26
+
27
+ it "pode conter segmento z" do
28
+ lote = Cnab240::Lote.new(:operacao => :pagamento_titulo_tributos, :tipo => :remessa)
29
+ lote << :z
30
+ lote.should respond_to(:segmento_z)
31
+ end
32
+
33
+ it "linhas devem ter 240" do
34
+ lote = Cnab240::Lote.new(:operacao => :pagamento_titulo_tributos, :tipo => :remessa)
35
+ lote.linhas.each do |linha|
36
+ linha.length.should be(240)
37
+ end
38
+ end
39
+
40
+
41
+ end
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+
3
+ describe Cnab240::PagamentosTributos::Trailer do
4
+
5
+ it "deve conter campos trailer" do
6
+ trailer = Cnab240::PagamentosTributos::Trailer.new
7
+
8
+ trailer.should respond_to(:controle_banco)
9
+ trailer.should respond_to(:controle_lote)
10
+ trailer.should respond_to(:controle_registro)
11
+
12
+ trailer.should respond_to(:cnab_g004_1)
13
+
14
+ trailer.should respond_to(:totais_qtde_registros)
15
+ trailer.should respond_to(:totais_valor)
16
+
17
+ trailer.should respond_to(:complemento)
18
+
19
+ trailer.should respond_to(:ocorrencias)
20
+ end
21
+
22
+ it "trailer deve ter 240 caracteres" do
23
+ trailer = Cnab240::PagamentosTributos::Trailer.new
24
+ trailer.linha.length.should be(240)
25
+ end
26
+
27
+ end
@@ -0,0 +1,46 @@
1
+ require 'spec_helper'
2
+
3
+ include Cnab240
4
+
5
+ describe SegmentoJ52 do
6
+
7
+ it "deve instanciar segmento" do
8
+ segmento = SegmentoJ52.new
9
+ segmento.should be_an_instance_of(SegmentoJ52)
10
+ end
11
+
12
+ it "deve conter campos" do
13
+ segmento = SegmentoJ52.new
14
+
15
+ segmento.should respond_to(:controle_banco)
16
+ segmento.should respond_to(:controle_lote)
17
+ segmento.should respond_to(:controle_registro)
18
+
19
+ segmento.should respond_to(:servico_numero_registro)
20
+ segmento.should respond_to(:servico_codigo_segmento)
21
+ segmento.should respond_to(:servico_tipo_movimento)
22
+ segmento.should respond_to(:servico_codigo_movimento)
23
+
24
+ segmento.should respond_to(:cod_registro_opcional)
25
+
26
+ segmento.should respond_to(:sacado_tipo_inscricao)
27
+ segmento.should respond_to(:sacado_numero_inscricao)
28
+ segmento.should respond_to(:sacado_nome)
29
+
30
+ segmento.should respond_to(:cedente_tipo_inscricao)
31
+ segmento.should respond_to(:cedente_numero_inscricao)
32
+ segmento.should respond_to(:cedente_nome)
33
+
34
+ segmento.should respond_to(:sacador_tipo_inscricao)
35
+ segmento.should respond_to(:sacador_numero_inscricao)
36
+ segmento.should respond_to(:sacador_nome)
37
+
38
+ segmento.should respond_to(:cnab_g004_1)
39
+ end
40
+
41
+ it "deve ter 240 caracteres" do
42
+ segmento = SegmentoJ52.new
43
+ segmento.linha.length.should be(240)
44
+ end
45
+
46
+ end
@@ -0,0 +1,46 @@
1
+ require 'spec_helper'
2
+
3
+ include Cnab240
4
+
5
+ describe SegmentoJ do
6
+
7
+ it "deve instanciar segmento" do
8
+ segmento = SegmentoJ.new
9
+ segmento.should be_an_instance_of(SegmentoJ)
10
+ end
11
+
12
+ it "deve conter campos" do
13
+ segmento = SegmentoJ.new
14
+
15
+ segmento.should respond_to(:controle_banco)
16
+ segmento.should respond_to(:controle_lote)
17
+ segmento.should respond_to(:controle_registro)
18
+
19
+ segmento.should respond_to(:servico_numero_registro)
20
+ segmento.should respond_to(:servico_codigo_segmento)
21
+ segmento.should respond_to(:servico_tipo_movimento)
22
+ segmento.should respond_to(:servico_codigo_movimento)
23
+
24
+ segmento.should respond_to(:codigo_barras)
25
+ segmento.should respond_to(:nome_cedente)
26
+ segmento.should respond_to(:data_vencimento)
27
+ segmento.should respond_to(:valor_titulo)
28
+ segmento.should respond_to(:valor_desconto_abatimento)
29
+ segmento.should respond_to(:valor_mora_juros)
30
+ segmento.should respond_to(:data_pagamento)
31
+ segmento.should respond_to(:quantidade_moeda)
32
+ segmento.should respond_to(:referencia_sacado)
33
+
34
+ segmento.should respond_to(:nosso_numero)
35
+ segmento.should respond_to(:codigo_moeda)
36
+
37
+ segmento.should respond_to(:cnab_g004_1)
38
+ segmento.should respond_to(:ocorrencias)
39
+ end
40
+
41
+ it "deve ter 240 caracteres" do
42
+ segmento = SegmentoJ.new
43
+ segmento.linha.length.should be(240)
44
+ end
45
+
46
+ end
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+
3
+ include Cnab240
4
+
5
+ describe SegmentoN do
6
+
7
+ it "deve instanciar segmento" do
8
+ segmento = SegmentoN.new
9
+ segmento.should be_an_instance_of(SegmentoN)
10
+ end
11
+
12
+ it "deve conter campos" do
13
+ segmento = SegmentoN.new
14
+
15
+ segmento.should respond_to(:controle_banco)
16
+ segmento.should respond_to(:controle_lote)
17
+ segmento.should respond_to(:controle_registro)
18
+
19
+ segmento.should respond_to(:servico_numero_registro)
20
+ segmento.should respond_to(:servico_codigo_segmento)
21
+ segmento.should respond_to(:servico_tipo_movimento)
22
+ segmento.should respond_to(:servico_codigo_movimento)
23
+
24
+ segmento.should respond_to(:nosso_numero)
25
+ segmento.should respond_to(:contribuinte)
26
+ segmento.should respond_to(:data_pagamento)
27
+ segmento.should respond_to(:valor_pagamento)
28
+
29
+ segmento.should respond_to(:informacoes_complementares)
30
+
31
+ segmento.should respond_to(:ocorrencias)
32
+ end
33
+
34
+ it "deve ter 240 caracteres" do
35
+ segmento = SegmentoN.new
36
+ segmento.linha.length.should be(240)
37
+ end
38
+
39
+ end
@@ -0,0 +1,41 @@
1
+ require 'spec_helper'
2
+
3
+ include Cnab240
4
+
5
+ describe SegmentoO do
6
+
7
+ it "deve instanciar segmento" do
8
+ segmento = SegmentoO.new
9
+ segmento.should be_an_instance_of(SegmentoO)
10
+ end
11
+
12
+ it "deve conter campos" do
13
+ segmento = SegmentoO.new
14
+
15
+ segmento.should respond_to(:controle_banco)
16
+ segmento.should respond_to(:controle_lote)
17
+ segmento.should respond_to(:controle_registro)
18
+
19
+ segmento.should respond_to(:servico_numero_registro)
20
+ segmento.should respond_to(:servico_codigo_segmento)
21
+ segmento.should respond_to(:servico_tipo_movimento)
22
+ segmento.should respond_to(:servico_codigo_movimento)
23
+
24
+ segmento.should respond_to(:codigo_barras)
25
+ segmento.should respond_to(:nome_concessionaria)
26
+ segmento.should respond_to(:data_vencimento)
27
+ segmento.should respond_to(:data_pagamento)
28
+ segmento.should respond_to(:valor_pagamento)
29
+ segmento.should respond_to(:seu_numero)
30
+ segmento.should respond_to(:nosso_numero)
31
+
32
+ segmento.should respond_to(:cnab_g004_1)
33
+ segmento.should respond_to(:ocorrencias)
34
+ end
35
+
36
+ it "deve ter 240 caracteres" do
37
+ segmento = SegmentoO.new
38
+ segmento.linha.length.should be(240)
39
+ end
40
+
41
+ end
@@ -0,0 +1,42 @@
1
+ require 'spec_helper'
2
+
3
+ include Cnab240
4
+
5
+ describe SegmentoW do
6
+
7
+ it "deve instanciar segmento" do
8
+ segmento = SegmentoW.new
9
+ segmento.should be_an_instance_of(SegmentoW)
10
+ end
11
+
12
+ it "deve conter campos" do
13
+ segmento = SegmentoW.new
14
+
15
+ segmento.should respond_to(:controle_banco)
16
+ segmento.should respond_to(:controle_lote)
17
+ segmento.should respond_to(:controle_registro)
18
+
19
+ segmento.should respond_to(:servico_numero_registro)
20
+ segmento.should respond_to(:servico_codigo_segmento)
21
+
22
+
23
+ segmento.should respond_to(:complemento)
24
+
25
+ segmento.should respond_to(:uso_informacoes_1_e_2)
26
+ segmento.should respond_to(:informacao_1)
27
+ segmento.should respond_to(:informacao_2)
28
+
29
+ segmento.should respond_to(:w1)
30
+
31
+ segmento.should respond_to(:reservado)
32
+ segmento.should respond_to(:ocorrencias)
33
+
34
+
35
+ end
36
+
37
+ it "deve ter 240 caracteres" do
38
+ segmento = SegmentoW.new
39
+ segmento.linha.length.should be(240)
40
+ end
41
+
42
+ end
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+
3
+ include Cnab240
4
+
5
+ describe SegmentoZ do
6
+
7
+ it "deve instanciar segmento" do
8
+ segmento = SegmentoZ.new
9
+ segmento.should be_an_instance_of(SegmentoZ)
10
+ end
11
+
12
+ it "deve conter campos" do
13
+ segmento = SegmentoZ.new
14
+
15
+ segmento.should respond_to(:controle_banco)
16
+ segmento.should respond_to(:controle_lote)
17
+ segmento.should respond_to(:controle_registro)
18
+
19
+ segmento.should respond_to(:servico_numero_registro)
20
+ segmento.should respond_to(:servico_codigo_segmento)
21
+
22
+ segmento.should respond_to(:autenticacao)
23
+ segmento.should respond_to(:controle_bancario)
24
+ segmento.should respond_to(:cnab_g004_1)
25
+ segmento.should respond_to(:ocorrencias)
26
+ end
27
+
28
+ it "deve ter 240 caracteres" do
29
+ segmento = SegmentoZ.new
30
+ segmento.linha.length.should be(240)
31
+ end
32
+
33
+ end
data/spec/tmp/.gitkeep ADDED
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cnab240
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-12 00:00:00.000000000 Z
12
+ date: 2012-07-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -60,6 +60,7 @@ files:
60
60
  - cnab240.gemspec
61
61
  - lib/cnab240.rb
62
62
  - lib/cnab240/arquivo/arquivo.rb
63
+ - lib/cnab240/arquivo/estrutura.rb
63
64
  - lib/cnab240/arquivo/header.rb
64
65
  - lib/cnab240/arquivo/lote.rb
65
66
  - lib/cnab240/arquivo/trailer.rb
@@ -67,10 +68,21 @@ files:
67
68
  - lib/cnab240/core_ext/bindata.rb
68
69
  - lib/cnab240/core_ext/default_mixin.rb
69
70
  - lib/cnab240/pagamentos/header.rb
71
+ - lib/cnab240/pagamentos/titulos/header.rb
72
+ - lib/cnab240/pagamentos/titulos/trailer.rb
70
73
  - lib/cnab240/pagamentos/trailer.rb
74
+ - lib/cnab240/pagamentos/tributos/header.rb
75
+ - lib/cnab240/pagamentos/tributos/trailer.rb
71
76
  - lib/cnab240/segmentos/segmento_a.rb
72
77
  - lib/cnab240/segmentos/segmento_b.rb
73
78
  - lib/cnab240/segmentos/segmento_c.rb
79
+ - lib/cnab240/segmentos/segmento_j.rb
80
+ - lib/cnab240/segmentos/segmento_j52.rb
81
+ - lib/cnab240/segmentos/segmento_n.rb
82
+ - lib/cnab240/segmentos/segmento_o.rb
83
+ - lib/cnab240/segmentos/segmento_w.rb
84
+ - lib/cnab240/segmentos/segmento_w1.rb
85
+ - lib/cnab240/segmentos/segmento_z.rb
74
86
  - lib/cnab240/version.rb
75
87
  - spec/arquivo/arquivo_spec.rb
76
88
  - spec/arquivo/header_spec.rb
@@ -78,11 +90,24 @@ files:
78
90
  - spec/cnab240_spec.rb
79
91
  - spec/pagamentos/header_spec.rb
80
92
  - spec/pagamentos/lote_spec.rb
93
+ - spec/pagamentos/titulos/header_spec.rb
94
+ - spec/pagamentos/titulos/lote_spec.rb
95
+ - spec/pagamentos/titulos/trailer_spec.rb
81
96
  - spec/pagamentos/trailer_spec.rb
97
+ - spec/pagamentos/tributos/header_spec.rb
98
+ - spec/pagamentos/tributos/lote_spec.rb
99
+ - spec/pagamentos/tributos/trailer_spec.rb
82
100
  - spec/segmentos/segmento_a_spec.rb
83
101
  - spec/segmentos/segmento_b_spec.rb
84
102
  - spec/segmentos/segmento_c_spec.rb
103
+ - spec/segmentos/segmento_j52_spec.rb
104
+ - spec/segmentos/segmento_j_spec.rb
105
+ - spec/segmentos/segmento_n_spec.rb
106
+ - spec/segmentos/segmento_o_spec.rb
107
+ - spec/segmentos/segmento_w_spec.rb
108
+ - spec/segmentos/segmento_z_spec.rb
85
109
  - spec/spec_helper.rb
110
+ - spec/tmp/.gitkeep
86
111
  homepage: ''
87
112
  licenses: []
88
113
  post_install_message:
@@ -97,7 +122,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
97
122
  version: '0'
98
123
  segments:
99
124
  - 0
100
- hash: 3619480557024491768
125
+ hash: 997177440327526809
101
126
  required_rubygems_version: !ruby/object:Gem::Requirement
102
127
  none: false
103
128
  requirements:
@@ -106,7 +131,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
106
131
  version: '0'
107
132
  segments:
108
133
  - 0
109
- hash: 3619480557024491768
134
+ hash: 997177440327526809
110
135
  requirements: []
111
136
  rubyforge_project: cnab240
112
137
  rubygems_version: 1.8.24
@@ -120,8 +145,21 @@ test_files:
120
145
  - spec/cnab240_spec.rb
121
146
  - spec/pagamentos/header_spec.rb
122
147
  - spec/pagamentos/lote_spec.rb
148
+ - spec/pagamentos/titulos/header_spec.rb
149
+ - spec/pagamentos/titulos/lote_spec.rb
150
+ - spec/pagamentos/titulos/trailer_spec.rb
123
151
  - spec/pagamentos/trailer_spec.rb
152
+ - spec/pagamentos/tributos/header_spec.rb
153
+ - spec/pagamentos/tributos/lote_spec.rb
154
+ - spec/pagamentos/tributos/trailer_spec.rb
124
155
  - spec/segmentos/segmento_a_spec.rb
125
156
  - spec/segmentos/segmento_b_spec.rb
126
157
  - spec/segmentos/segmento_c_spec.rb
158
+ - spec/segmentos/segmento_j52_spec.rb
159
+ - spec/segmentos/segmento_j_spec.rb
160
+ - spec/segmentos/segmento_n_spec.rb
161
+ - spec/segmentos/segmento_o_spec.rb
162
+ - spec/segmentos/segmento_w_spec.rb
163
+ - spec/segmentos/segmento_z_spec.rb
127
164
  - spec/spec_helper.rb
165
+ - spec/tmp/.gitkeep