ndr_import 9.0.2 → 9.0.3

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: 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