ndr_import 11.0.1 → 11.1.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: 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