ndr_import 11.0.1 → 11.1.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: 8b3b3b485a77caed57442e97c7391c4d95b68ee4a9ae5af1a6e53b9a1fd95987
4
- data.tar.gz: fbf1799920b70ddcbc6014c269e90a6d3d9689f01a306042ab2cac7152637eff
3
+ metadata.gz: 1acf9db0301b6da991e890e74db10573ff666dd732eda4b58ba90e03370bb32a
4
+ data.tar.gz: eba9da2d2d9f5fa98c3a7f8745086f3945c363844f4d1f8fc1dc6c38ab4bcb5b
5
5
  SHA512:
6
- metadata.gz: b06f9293e925ef74ecb96a1ae24f7732bf057ff6642a29245ad99f51b6bd48d608257575c48a2bbe89a509de1f9db44a457567175e9f3a354840f48fe5d1e92c
7
- data.tar.gz: 37c8145eea0bb9f6f1788f202524cd233a7b542088b7d540f5d7d236ca910dcaf950ffd0adf6a4619afb64a6f4b7082c478d90a4b7bf19dba8016b6ab3fba07b
6
+ metadata.gz: 8509511d4f54f36344e09d380da53f168f8fa94efd4eec2d73e29c80811bd644d853bb82a835bf7ddf2820202b8abad28cbe0d265de3557e2af8adca4f12b178
7
+ data.tar.gz: 384d8365d4e6ba741bf6b76a1ecfe1bf1bb92c6fd0e737489d2d3a13047d9e557b883c339ff2f89f372071140a071bcbedfdd303b588dda79d58870bab0be2e6
data/CHANGELOG.md CHANGED
@@ -1,6 +1,15 @@
1
1
  ## [Unreleased]
2
2
  =======
3
- *no unreleased changes*
3
+ * no unreleased changes *
4
+
5
+ ## 11.1.0 / 2024-03-07
6
+ ### Added
7
+ * XML table should not expect column mappings for empty nodes/elements
8
+
9
+ ## 11.0.2 / 2024-02-06
10
+ ### Fixed
11
+ * Resolve Rails 7 deprecation warnings
12
+ * Fix XML parsing with latest `nokogiri` 1.16.0
4
13
 
5
14
  ## 11.0.1 / 2023-10-30
6
15
  ### Fixed
@@ -10,7 +19,7 @@
10
19
  ### Changed
11
20
  * XML enhancements. Breaking change, the enhancements are not backward compatible
12
21
  ### Fixed
13
- * Replace unsupported seven_zip_ruby gem with seven-zip fork
22
+ * Replace unsupported `seven_zip_ruby` gem with seven-zip fork
14
23
 
15
24
  ## 10.3.0 / 2023-09-07
16
25
  ### Added
@@ -46,7 +46,7 @@ module NdrImport
46
46
  end
47
47
 
48
48
  def cast_excel_datetime_as_date(raw_value)
49
- raw_value.to_s(:db)
49
+ raw_value.to_formatted_s(:db)
50
50
  end
51
51
 
52
52
  private
@@ -32,7 +32,7 @@ module NdrImport
32
32
  end
33
33
 
34
34
  def cast_excel_datetime_as_date(raw_value)
35
- raw_value.to_s(:db)
35
+ raw_value.to_formatted_s(:db)
36
36
  end
37
37
 
38
38
  # Iterate through the file table by table, yielding each one in turn.
@@ -22,6 +22,11 @@ module NdrImport
22
22
  doc = nil
23
23
 
24
24
  escaping_control_chars_if_necessary(preserve_control_chars, file_data) do
25
+ if Nokogiri::XML('<?xml version="1.0" encoding="UTF-16"?><body/>').
26
+ errors.first.message.match?(/Blank needed here\z/)
27
+ # Nokogiri 1.16.0 workaround for UTF-16 data.
28
+ file_data.sub!('UTF-16', 'UTF-8')
29
+ end
25
30
  doc = Nokogiri::XML(file_data, &:huge)
26
31
  doc.encoding = 'UTF-8'
27
32
  emulate_strict_mode_fatal_check!(doc)
@@ -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 = '11.0.1'
4
+ VERSION = '11.1.0'
5
5
  end
@@ -169,6 +169,8 @@ module NdrImport
169
169
  xpaths = []
170
170
 
171
171
  line.xpath('.//*[not(child::*)]').each do |node|
172
+ next unless populated?(node)
173
+
172
174
  xpath = node.path.sub("#{line.path}/", '')
173
175
  if node.attributes.any?
174
176
  node.attributes.each_key { |key| xpaths << "#{xpath}/@#{key}" }
@@ -179,6 +181,12 @@ module NdrImport
179
181
  xpaths
180
182
  end
181
183
 
184
+ def populated?(node)
185
+ node.element_children.empty? &&
186
+ !node.is_a?(Nokogiri::XML::Comment) && !node.text? && !node.cdata? &&
187
+ !(node.attributes.empty? && node.content.strip.blank?)
188
+ end
189
+
182
190
  def build_xpath_from(column)
183
191
  column_name = column_name_from(column)
184
192
  column['xml_cell'].presence ? relative_path_from(column, column_name) : column_name
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: 11.0.1
4
+ version: 11.1.0
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: 2023-10-30 00:00:00.000000000 Z
11
+ date: 2024-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -465,7 +465,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
465
465
  - !ruby/object:Gem::Version
466
466
  version: '0'
467
467
  requirements: []
468
- rubygems_version: 3.4.10
468
+ rubygems_version: 3.2.3
469
469
  signing_key:
470
470
  specification_version: 4
471
471
  summary: NDR Import