iif-parser 2.0.2 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ebf93f08ba013e95d2a6bf5d79cdf479d1182e2952a08aaaf8c740cd425a03f4
4
- data.tar.gz: 76e734f908ea3e659800a3fb883d77c7c50beb7d0094a763afc014c2159545cc
3
+ metadata.gz: 97be851659e45159838b5701374f4132a7809ec7562b7af7005186ee050c3797
4
+ data.tar.gz: 21c15fcdd9fe26bb97a6fcae3d3530444e42affc28a1177c04a13e5bd94eb965
5
5
  SHA512:
6
- metadata.gz: 1f201c8b90403b0d3b0ceb19f1b90fd16d5350efd54968a89750e642a27db17d1c29b8e8acfce3c3b3423c3eb45acd085a284c5deab007d003a79e03208fd24d
7
- data.tar.gz: 945a5a3d2a88a751d00b71549c7b6bda8bbc479925e1f5fe8e038e407fcec655752206b1aad5d9c1353f06f04a55f124c195aff173451981bf291817798edaf0
6
+ metadata.gz: 9ef378d4b38f1d7f6d597629fa563c0ec0a762d647fadf66a662bd7ceb30c400587020918816950b919830a3cc19904ca79bb5578e0cdf96d464e387c19904b6
7
+ data.tar.gz: 4ef5f73f6ebddce4ad7db9789fc552a2894988659fd62c8a2b8a8ea868c973576a2ac9c492fe4f38681b60d76cbd281d47034ce3db5f78119e4f046ff4600355
data/.gitignore CHANGED
@@ -12,3 +12,4 @@
12
12
  *.gem
13
13
  *.sess
14
14
  .tool-versions
15
+ todo.txt
data/iif-parser.gemspec CHANGED
@@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
20
20
  spec.add_runtime_dependency "rchardet"
21
21
 
22
22
  spec.add_development_dependency "rspec", ">= 3.4.4"
23
+ spec.add_development_dependency "tabulo", "~> 2.0"
23
24
  spec.add_development_dependency "awesome_print"
24
25
  spec.add_development_dependency "bundler", ">= 1.9"
25
26
  spec.add_development_dependency "rake", ">= 12.3.3"
@@ -1,5 +1,5 @@
1
1
  module Iif
2
2
  class Parser
3
- VERSION = "2.0.2"
3
+ VERSION = "2.1.0"
4
4
  end
5
5
  end
data/lib/iif/parser.rb CHANGED
@@ -37,7 +37,7 @@ module Iif
37
37
  def parse_line(line, opts = {})
38
38
  ar = line.split(/\t/)
39
39
  if ar.size == 1
40
- ar = CSV.parse_line(line, opts).map { |i| i == nil ? "" : i }
40
+ ar = CSV.parse_line(line, **opts).map { |i| i == nil ? "" : i }
41
41
  else
42
42
  ar.map! { |value| clean_field(value) }
43
43
  end
@@ -63,6 +63,7 @@ module Iif
63
63
  end
64
64
 
65
65
  def parse_data(fields)
66
+ return if @entries.last&.type == 'ENDTRNS' && fields[0] == 'ENDTRNS' # found a repeating ENDTRNS
66
67
  definition = @definitions[fields[0]]
67
68
  entry = Entry.new
68
69
  entry.type = fields[0]
@@ -104,9 +105,7 @@ module Iif
104
105
  in_transaction = false
105
106
 
106
107
  @entries.each do |entry|
107
-
108
108
  case entry.type
109
-
110
109
  when "TRNS"
111
110
  if in_transaction
112
111
  @transactions.push(transaction)
@@ -114,11 +113,9 @@ module Iif
114
113
  end
115
114
  transaction = Transaction.new
116
115
  in_transaction = true
117
-
118
116
  when "ENDTRNS"
119
117
  @transactions.push(transaction)
120
118
  in_transaction = false
121
-
122
119
  end
123
120
 
124
121
  transaction.entries.push(entry) if in_transaction
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iif-parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christian Pelczarski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-10 00:00:00.000000000 Z
11
+ date: 2023-07-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rchardet
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: 3.4.4
41
+ - !ruby/object:Gem::Dependency
42
+ name: tabulo
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: awesome_print
43
57
  requirement: !ruby/object:Gem::Requirement