ndr_import 9.0.2 → 9.0.3

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: 7dc0801c147101346c5a2e0af96ef9a658bc068088bb54f4f65970bb012e6cf5
4
- data.tar.gz: 22823d5d0415a95eebac8151475d6eba7fdbd1744003ee0d88b1dedf86b837b2
3
+ metadata.gz: 2237d88e9dee0141fe297fd2eb0d2e76f5434e9bb791fb667505193f30263014
4
+ data.tar.gz: 52746c16790c3da92e64ac14ed7d77786a41c5457ddc0b8190f52d4414e4c6d7
5
5
  SHA512:
6
- metadata.gz: 3c29ef1ab701b94301aca343d8bf8497fda2633d120b3945dc140cb30d1b40b30bfcfb2334fe2bdd6f02d6128f1743ac42601f8129687502503e69c14d77df98
7
- data.tar.gz: 49e739dab53bf1276655e01a91dd9253221e041c0f3241b85f362a2d429597fbb4589d14b89b1d83fed7995b043288e72f3bf1bd27d2678e6f7d2c4b1a5c3d8f
6
+ metadata.gz: 8b8793a45dea035b2abf04a44c20d2ec4fc90bcfef9c5dec4415fab26abdba2ff218b7d2996a165f3447f86046dfd558bfb363e21221f147fec3db9c7c83668c
7
+ data.tar.gz: eedb044185f1bc7e843e91e634fdc8b88cae9c026344d92e3cdc1046979873d843d476c7a0f7ebfb3c631901b47c9109b6826696124c56b07082ba4a6842af9c
@@ -1,6 +1,16 @@
1
1
  ## [Unreleased]
2
2
  *no unreleased changes*
3
3
 
4
+ ## 9.0.3 / 2021-01-04
5
+ ### Fixed
6
+ * Address issue importing multiple files against the same table (#54)
7
+
8
+ ### Changed
9
+ * ensure keyword args are properly splatted for ruby 2.7
10
+
11
+ ### Added
12
+ * Ruby 2.7 to travis matrix
13
+
4
14
  ## 9.0.2 / 2020-08-14
5
15
  ### Changed
6
16
  * Configure Nokogiri with HUGE for large xml files
@@ -14,12 +14,12 @@ file safety:
14
14
  safe_revision: b09e268ff9c8349b914aa1b7ba888e1d39f97e4a
15
15
  ".travis.yml":
16
16
  comments:
17
- reviewed_by: josh.pencheon
18
- safe_revision: d3d9a987befeecb122a448d8d06e66d74da13fb5
17
+ reviewed_by: ollietulloch
18
+ safe_revision: ed8513d290796b9cb9554c4ebe6e87ac21fbbeae
19
19
  CHANGELOG.md:
20
20
  comments:
21
21
  reviewed_by: ollietulloch
22
- safe_revision: aa006cd76123db2101d145a07d201dc6a709ed6e
22
+ safe_revision: 92d2d9d56f17c143709e25560d7620aaf147008f
23
23
  CODE_OF_CONDUCT.md:
24
24
  comments:
25
25
  reviewed_by: timgentry
@@ -146,8 +146,8 @@ file safety:
146
146
  safe_revision: 24d6449fd0612552f132dfbf4cada2ae28d0469e
147
147
  lib/ndr_import/csv_library.rb:
148
148
  comments:
149
- reviewed_by: josh.pencheon
150
- safe_revision: be12e57519d3737e8d3901d7b01485c6995708dd
149
+ reviewed_by: ollietulloch
150
+ safe_revision: acc72173b81702d55fe3aff78054425609a4d339
151
151
  lib/ndr_import/file/acro_form.rb:
152
152
  comments:
153
153
  reviewed_by: josh.pencheon
@@ -214,8 +214,8 @@ file safety:
214
214
  safe_revision: dfc958d44b6c58355445fa395db08a62213ee709
215
215
  lib/ndr_import/helpers/file/delimited.rb:
216
216
  comments:
217
- reviewed_by: josh.pencheon
218
- safe_revision: 607c0668f1fffd70d181bc1a31c4f56eed5f6189
217
+ reviewed_by: ollietulloch
218
+ safe_revision: acc72173b81702d55fe3aff78054425609a4d339
219
219
  lib/ndr_import/helpers/file/excel.rb:
220
220
  comments:
221
221
  reviewed_by: joshpencheon
@@ -291,8 +291,8 @@ file safety:
291
291
  safe_revision: a69d4a57ddcf13cdc13c27bd2eb91a395fa7ea36
292
292
  lib/ndr_import/universal_importer_helper.rb:
293
293
  comments:
294
- reviewed_by: josh.pencheon
295
- safe_revision: 55e502bb4445cb8b985e530e8eb26d92b574ded9
294
+ reviewed_by: ollietulloch
295
+ safe_revision: 830de0f8cb139c5f61525652b424423935cfc7ac
296
296
  lib/ndr_import/unmapped_data_error.rb:
297
297
  comments:
298
298
  reviewed_by: josh.pencheon
@@ -300,7 +300,7 @@ file safety:
300
300
  lib/ndr_import/version.rb:
301
301
  comments: another check?
302
302
  reviewed_by: ollietulloch
303
- safe_revision: aa006cd76123db2101d145a07d201dc6a709ed6e
303
+ safe_revision: 92d2d9d56f17c143709e25560d7620aaf147008f
304
304
  lib/ndr_import/xml/table.rb:
305
305
  comments:
306
306
  reviewed_by: josh.pencheon
@@ -569,6 +569,10 @@ file safety:
569
569
  comments:
570
570
  reviewed_by: timgentry
571
571
  safe_revision: 31fb1935f4578729d8786eea41cf0ce0a19be1cd
572
+ test/resources/two_files_single_table_mapping.zip:
573
+ comments:
574
+ reviewed_by: ollietulloch
575
+ safe_revision: 830de0f8cb139c5f61525652b424423935cfc7ac
572
576
  test/resources/txt_file_xls_extension.xls:
573
577
  comments:
574
578
  reviewed_by: timgentry
@@ -619,8 +623,8 @@ file safety:
619
623
  safe_revision: 93ccee82fc2165d1ca2d9b03d146ae03e769ea96
620
624
  test/universal_importer_helper_test.rb:
621
625
  comments:
622
- reviewed_by: josh.pencheon
623
- safe_revision: c3183e522bce50008df576ceb47fe4761ab8f966
626
+ reviewed_by: ollietulloch
627
+ safe_revision: 830de0f8cb139c5f61525652b424423935cfc7ac
624
628
  test/xml/table_test.rb:
625
629
  comments:
626
630
  reviewed_by: josh.pencheon
@@ -12,8 +12,8 @@ class << CSVLibrary
12
12
 
13
13
  # Ensure that we can pass "mode" straight through the underlying IO object
14
14
  def foreach(path, **options, &block)
15
- return to_enum(__method__, path, options) unless block
16
- open(path, options.delete(:mode) || 'r', options) do |csv|
15
+ return to_enum(__method__, path, **options) unless block
16
+ open(path, options.delete(:mode) || 'r', **options) do |csv|
17
17
  csv.each(&block)
18
18
  end
19
19
  end
@@ -36,7 +36,7 @@ module NdrImport
36
36
 
37
37
  # By now, we know `encodings` should let us read the whole
38
38
  # file succesfully; if there are problems, we should crash.
39
- CSVLibrary.foreach(safe_path, encodings) do |line|
39
+ CSVLibrary.foreach(safe_path, **encodings) do |line|
40
40
  yield line.map(&:to_s)
41
41
  end
42
42
  end
@@ -73,7 +73,7 @@ module NdrImport
73
73
 
74
74
  row_num = 0
75
75
  # Iterate through the file; if we reach the end, this encoding worked:
76
- CSVLibrary.foreach(safe_path, options) { |_line| row_num += 1 }
76
+ CSVLibrary.foreach(safe_path, **options) { |_line| row_num += 1 }
77
77
  return options
78
78
  rescue ArgumentError => e
79
79
  next if e.message =~ /invalid byte sequence/ # This encoding didn't work
@@ -7,11 +7,31 @@ module NdrImport
7
7
  # complexity of enumerating over files and tables (which should be universally useful).
8
8
  # It is assumed that the host module/class defines `unzip_path`.
9
9
  module UniversalImporterHelper
10
+ # Helper class to allow multiple source enumerators to contribute to one overall table.
11
+ class TableEnumProxy
12
+ include Enumerable
13
+
14
+ def initialize
15
+ @table_enums = []
16
+ end
17
+
18
+ def add_table_enum(table_enum)
19
+ @table_enums << table_enum
20
+ end
21
+
22
+ def each(&block)
23
+ return enum_for(:each) unless block
24
+
25
+ @table_enums.each { |table_enum| table_enum.each(&block) }
26
+ end
27
+ end
28
+
10
29
  def table_enumerators(filename)
11
30
  table_enumerators = {}
31
+ table_enumerators = Hash.new { |hash, key| hash[key] = TableEnumProxy.new }
12
32
 
13
33
  extract(filename).each do |table, rows|
14
- table_enumerators[table.canonical_name] = table.transform(rows)
34
+ table_enumerators[table.canonical_name].add_table_enum table.transform(rows)
15
35
  end
16
36
 
17
37
  table_enumerators
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  # This stores the current version of the NdrImport gem
3
3
  module NdrImport
4
- VERSION = '9.0.2'.freeze
4
+ VERSION = '9.0.3'.freeze
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ndr_import
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.0.2
4
+ version: 9.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - NCRS Development Team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-08-14 00:00:00.000000000 Z
11
+ date: 2021-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel