ndr_import 10.0 → 10.1
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 +4 -4
- data/CHANGELOG.md +4 -1
- data/code_safety.yml +12 -12
- data/lib/ndr_import/non_tabular/table.rb +1 -1
- data/lib/ndr_import/table.rb +26 -3
- data/lib/ndr_import/universal_importer_helper.rb +1 -3
- data/lib/ndr_import/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 16cdebb2e3a6809255d5d66971a2db6d5c954731f6def3c73fe0f89d8ea0b7e9
|
4
|
+
data.tar.gz: 575ba2c40ae01f99ebd48f75ff42c2cdf40871cbed87bfb2399de45d9f402e73
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37e9bcfe3b8a5cab98bd68fc846eafd386595e0b6b79b9b4bf10ba8bc44a6d24ff998f5ab249964009bb0eebebfe0700bd6a39ddd0dfefc1260b529ff5543e63
|
7
|
+
data.tar.gz: c144108ad4d2f63c918e43ef540f30d49be26897d6c4d82bccda6128aaff5b408c3d93425612bedaef73f865292a3d2a408f0c792e35a9f548e50363804c8d10
|
data/CHANGELOG.md
CHANGED
data/code_safety.yml
CHANGED
@@ -26,8 +26,8 @@ file safety:
|
|
26
26
|
safe_revision: b09e268ff9c8349b914aa1b7ba888e1d39f97e4a
|
27
27
|
CHANGELOG.md:
|
28
28
|
comments:
|
29
|
-
reviewed_by:
|
30
|
-
safe_revision:
|
29
|
+
reviewed_by: ollietulloch
|
30
|
+
safe_revision: 2d093cc57a699b527a7d0159e77b91f4409a6e0b
|
31
31
|
CODE_OF_CONDUCT.md:
|
32
32
|
comments:
|
33
33
|
reviewed_by: timgentry
|
@@ -279,8 +279,8 @@ file safety:
|
|
279
279
|
safe_revision: bb44ade56a2151706eede2c31142440ccf49e6f6
|
280
280
|
lib/ndr_import/non_tabular/table.rb:
|
281
281
|
comments:
|
282
|
-
reviewed_by:
|
283
|
-
safe_revision:
|
282
|
+
reviewed_by: ollietulloch
|
283
|
+
safe_revision: f9df064adcfd38f09d83ad8c5496c84188faed98
|
284
284
|
lib/ndr_import/non_tabular_file_helper.rb:
|
285
285
|
comments:
|
286
286
|
reviewed_by: josh.pencheon
|
@@ -295,20 +295,20 @@ file safety:
|
|
295
295
|
safe_revision: 3c7f827d17aacbf7b811eea67e27553f3b039070
|
296
296
|
lib/ndr_import/table.rb:
|
297
297
|
comments: uses File.basename
|
298
|
-
reviewed_by:
|
299
|
-
safe_revision:
|
298
|
+
reviewed_by: ollietulloch
|
299
|
+
safe_revision: 3cf7473181f7f835b3dfe7822f6833d751805eaf
|
300
300
|
lib/ndr_import/universal_importer_helper.rb:
|
301
301
|
comments:
|
302
302
|
reviewed_by: ollietulloch
|
303
|
-
safe_revision:
|
303
|
+
safe_revision: 85869d99ae93252b7f3ef2d0a4db817c88d35c9e
|
304
304
|
lib/ndr_import/unmapped_data_error.rb:
|
305
305
|
comments:
|
306
306
|
reviewed_by: josh.pencheon
|
307
307
|
safe_revision: 5cd2cd0b3a1e254d30d4acc28c6731825a1f84f5
|
308
308
|
lib/ndr_import/version.rb:
|
309
309
|
comments: another check?
|
310
|
-
reviewed_by:
|
311
|
-
safe_revision:
|
310
|
+
reviewed_by: ollietulloch
|
311
|
+
safe_revision: 2d093cc57a699b527a7d0159e77b91f4409a6e0b
|
312
312
|
lib/ndr_import/xml/table.rb:
|
313
313
|
comments:
|
314
314
|
reviewed_by: josh.pencheon
|
@@ -635,8 +635,8 @@ file safety:
|
|
635
635
|
safe_revision: 3c7f827d17aacbf7b811eea67e27553f3b039070
|
636
636
|
test/table_test.rb:
|
637
637
|
comments:
|
638
|
-
reviewed_by:
|
639
|
-
safe_revision:
|
638
|
+
reviewed_by: ollietulloch
|
639
|
+
safe_revision: 3cf7473181f7f835b3dfe7822f6833d751805eaf
|
640
640
|
test/test_helper.rb:
|
641
641
|
comments:
|
642
642
|
reviewed_by: josh.pencheon
|
@@ -644,7 +644,7 @@ file safety:
|
|
644
644
|
test/universal_importer_helper_test.rb:
|
645
645
|
comments:
|
646
646
|
reviewed_by: ollietulloch
|
647
|
-
safe_revision:
|
647
|
+
safe_revision: 85869d99ae93252b7f3ef2d0a4db817c88d35c9e
|
648
648
|
test/xml/table_test.rb:
|
649
649
|
comments:
|
650
650
|
reviewed_by: josh.pencheon
|
@@ -16,7 +16,7 @@ module NdrImport
|
|
16
16
|
|
17
17
|
include UTF8Encoding
|
18
18
|
|
19
|
-
TABULAR_ONLY_OPTIONS = %w[delimiter liberal_parsing tablename_pattern
|
19
|
+
TABULAR_ONLY_OPTIONS = %w[delimiter last_data_column liberal_parsing tablename_pattern
|
20
20
|
header_lines footer_lines xml_record_xpath].freeze
|
21
21
|
|
22
22
|
NON_TABULAR_OPTIONS = %w[capture_end_line capture_start_line start_line_pattern
|
data/lib/ndr_import/table.rb
CHANGED
@@ -10,8 +10,9 @@ module NdrImport
|
|
10
10
|
include NdrImport::Mapper
|
11
11
|
|
12
12
|
def self.all_valid_options
|
13
|
-
%w[canonical_name delimiter liberal_parsing filename_pattern file_password
|
14
|
-
header_lines footer_lines format klass columns xml_record_xpath
|
13
|
+
%w[canonical_name delimiter liberal_parsing filename_pattern file_password last_data_column
|
14
|
+
tablename_pattern header_lines footer_lines format klass columns xml_record_xpath
|
15
|
+
row_identifier]
|
15
16
|
end
|
16
17
|
|
17
18
|
def all_valid_options
|
@@ -50,8 +51,9 @@ module NdrImport
|
|
50
51
|
@header_best_guess = nil
|
51
52
|
@notifier.try(:started)
|
52
53
|
|
54
|
+
last_col = last_column_to_transform
|
53
55
|
skip_footer_lines(lines, footer_lines).each do |line|
|
54
|
-
process_line(line, &block)
|
56
|
+
line.is_a?(Array) ? process_line(line[0..last_col], &block) : process_line(line, &block)
|
55
57
|
end
|
56
58
|
|
57
59
|
@notifier.try(:finished)
|
@@ -226,5 +228,26 @@ module NdrImport
|
|
226
228
|
def column_names(column_mappings)
|
227
229
|
column_mappings.map { |c| (c['column'] || c['standard_mapping']).downcase }
|
228
230
|
end
|
231
|
+
|
232
|
+
# If specified in the mapping, stop transforming data at a given index (column)
|
233
|
+
def last_column_to_transform
|
234
|
+
return -1 if last_data_column.nil?
|
235
|
+
return last_data_column - 1 if last_data_column.is_a?(Integer)
|
236
|
+
|
237
|
+
error = "Unknown 'last_data_column' format: #{last_data_column} " \
|
238
|
+
"(#{last_data_column.class})"
|
239
|
+
raise error unless last_data_column.is_a?(String) && last_data_column =~ /\A[A-Z]+\z/i
|
240
|
+
|
241
|
+
# If it's an excel column label (eg 'K', 'AF', 'DDE'), convert it to an index
|
242
|
+
index_from_column_label
|
243
|
+
end
|
244
|
+
|
245
|
+
def index_from_column_label
|
246
|
+
alphabet_index_hash = ('A'..'Z').map.with_index.to_h
|
247
|
+
index = last_data_column.upcase.chars.inject(0) do |char_index, char|
|
248
|
+
(char_index * 26) + (alphabet_index_hash[char] + 1)
|
249
|
+
end
|
250
|
+
index - 1
|
251
|
+
end
|
229
252
|
end # class Table
|
230
253
|
end
|
@@ -48,9 +48,7 @@ module NdrImport
|
|
48
48
|
def extract(source_file, &block)
|
49
49
|
return enum_for(:extract, source_file) unless block
|
50
50
|
|
51
|
-
|
52
|
-
'unzip_path' => unzip_path)
|
53
|
-
files.each do |filename|
|
51
|
+
NdrImport::File::Registry.files(source_file, 'unzip_path' => unzip_path).each do |filename|
|
54
52
|
# now at the individual file level, can we find the table mapping?
|
55
53
|
table_mapping = get_table_mapping(filename, nil)
|
56
54
|
|
data/lib/ndr_import/version.rb
CHANGED
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: '10.
|
4
|
+
version: '10.1'
|
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: 2021-
|
11
|
+
date: 2021-03-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|