iif-parser 2.0.2 → 2.2.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: 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