iif-parser 2.0.2 → 2.2.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ebf93f08ba013e95d2a6bf5d79cdf479d1182e2952a08aaaf8c740cd425a03f4
4
- data.tar.gz: 76e734f908ea3e659800a3fb883d77c7c50beb7d0094a763afc014c2159545cc
3
+ metadata.gz: dcd0a8d872376d18c348fa6eee278c9f0b77183ea31c03ef574607fe3fb03873
4
+ data.tar.gz: 4baa36b9d9e62d86fa04d9307d6bbf9ce36a51aef48cfaefb28fe773a4001606
5
5
  SHA512:
6
- metadata.gz: 1f201c8b90403b0d3b0ceb19f1b90fd16d5350efd54968a89750e642a27db17d1c29b8e8acfce3c3b3423c3eb45acd085a284c5deab007d003a79e03208fd24d
7
- data.tar.gz: 945a5a3d2a88a751d00b71549c7b6bda8bbc479925e1f5fe8e038e407fcec655752206b1aad5d9c1353f06f04a55f124c195aff173451981bf291817798edaf0
6
+ metadata.gz: 6b00df6bac54f9c3c6c42d19fe778721627c9c9abb882fcf1f221b95c1ffcbf63a6605ad35f9f29ae8356b3679dd899a028ce7688186e6079affe87c44874c4f
7
+ data.tar.gz: de3fff9d59a8a2aad0444871312096190255ad2a61a7e533f1349bd94ac954ec21a61872f68dfaa5ee2365506a9bd317a196de17c56abccb3507d54e506ac993
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.2.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' || @entries.last&.type.nil?) && 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.2.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: 2024-01-27 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
@@ -120,7 +134,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
134
  - !ruby/object:Gem::Version
121
135
  version: '0'
122
136
  requirements: []
123
- rubygems_version: 3.1.6
137
+ rubygems_version: 3.3.26
124
138
  signing_key:
125
139
  specification_version: 4
126
140
  summary: Basic IIF parser written in Ruby