ndr_import 8.1.0 → 8.2.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 +4 -4
- data/CHANGELOG.md +4 -0
- data/code_safety.yml +5 -5
- data/lib/ndr_import/table.rb +9 -1
- data/lib/ndr_import/version.rb +1 -1
- data/test/non_tabular/table_test.rb +1 -1
- data/test/table_test.rb +36 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f530e3c2d2fecb22289a673a1219b4d1830493c4d2417728f1ce6116f7f1b953
|
4
|
+
data.tar.gz: 3208097b9fb246fc10b514ddc9fa21107b1de94bc7eefcb0ea884cc2b5d88616
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ede70472e72bc8edda889ce03483706be25a8d5f3d1a3f05ea3863de0085e3df7bea6f6da9307daa7011dbee655d7caf6f6f36bd680e4f84f437f54e63792ac8
|
7
|
+
data.tar.gz: '089787a8761ed13581726c43d4a805c598bff04ad1564c3b0ff997c1f9dfc620a6487b88a432a16db39b287fbe84b3e6de59de84aa61787413b7ebc8fe67bea2'
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
## [Unreleased]
|
2
2
|
*no unreleased changes*
|
3
3
|
|
4
|
+
## 8.2.0 / 2019-02-25
|
5
|
+
### Added
|
6
|
+
* Support automatically generating a per row identifier with `row_identifier` (#34)
|
7
|
+
|
4
8
|
## 8.1.0 / 2019-01-08
|
5
9
|
### Added
|
6
10
|
* Support `liberal_parsing` when using the delimited helper
|
data/code_safety.yml
CHANGED
@@ -19,7 +19,7 @@ file safety:
|
|
19
19
|
CHANGELOG.md:
|
20
20
|
comments:
|
21
21
|
reviewed_by: josh.pencheon
|
22
|
-
safe_revision:
|
22
|
+
safe_revision: 640464d804e8eca15db14b8dfeb8c1ffa7d0fa85
|
23
23
|
CODE_OF_CONDUCT.md:
|
24
24
|
comments:
|
25
25
|
reviewed_by: timgentry
|
@@ -187,7 +187,7 @@ file safety:
|
|
187
187
|
lib/ndr_import/table.rb:
|
188
188
|
comments: uses File.basename
|
189
189
|
reviewed_by: josh.pencheon
|
190
|
-
safe_revision:
|
190
|
+
safe_revision: fac9e62618a32fab7a09a4996d27e1e7437b7dfb
|
191
191
|
lib/ndr_import/universal_importer_helper.rb:
|
192
192
|
comments:
|
193
193
|
reviewed_by: josh.pencheon
|
@@ -195,7 +195,7 @@ file safety:
|
|
195
195
|
lib/ndr_import/version.rb:
|
196
196
|
comments: another check?
|
197
197
|
reviewed_by: josh.pencheon
|
198
|
-
safe_revision:
|
198
|
+
safe_revision: 640464d804e8eca15db14b8dfeb8c1ffa7d0fa85
|
199
199
|
lib/ndr_import/xml/table.rb:
|
200
200
|
comments:
|
201
201
|
reviewed_by: josh.pencheon
|
@@ -287,7 +287,7 @@ file safety:
|
|
287
287
|
test/non_tabular/table_test.rb:
|
288
288
|
comments:
|
289
289
|
reviewed_by: josh.pencheon
|
290
|
-
safe_revision:
|
290
|
+
safe_revision: fac9e62618a32fab7a09a4996d27e1e7437b7dfb
|
291
291
|
test/non_tabular_file_helper_test.rb:
|
292
292
|
comments:
|
293
293
|
reviewed_by: timgentry
|
@@ -479,7 +479,7 @@ file safety:
|
|
479
479
|
test/table_test.rb:
|
480
480
|
comments:
|
481
481
|
reviewed_by: josh.pencheon
|
482
|
-
safe_revision:
|
482
|
+
safe_revision: fac9e62618a32fab7a09a4996d27e1e7437b7dfb
|
483
483
|
test/test_helper.rb:
|
484
484
|
comments:
|
485
485
|
reviewed_by: josh.pencheon
|
data/lib/ndr_import/table.rb
CHANGED
@@ -11,7 +11,7 @@ module NdrImport
|
|
11
11
|
|
12
12
|
def self.all_valid_options
|
13
13
|
%w[canonical_name delimiter liberal_parsing filename_pattern tablename_pattern header_lines
|
14
|
-
footer_lines format klass columns xml_record_xpath]
|
14
|
+
footer_lines format klass columns xml_record_xpath row_identifier]
|
15
15
|
end
|
16
16
|
|
17
17
|
def all_valid_options
|
@@ -81,8 +81,16 @@ module NdrImport
|
|
81
81
|
def transform_line(line, index)
|
82
82
|
return enum_for(:transform_line, line, index) unless block_given?
|
83
83
|
|
84
|
+
identifier = case @row_identifier.to_s
|
85
|
+
when 'index'
|
86
|
+
index
|
87
|
+
when 'uuid'
|
88
|
+
SecureRandom.uuid
|
89
|
+
end
|
90
|
+
|
84
91
|
masked_mappings.each do |klass, klass_mappings|
|
85
92
|
fields = mapped_line(line, klass_mappings)
|
93
|
+
fields['row_identifier'] = identifier unless identifier.nil?
|
86
94
|
next if fields[:skip].to_s == 'true'
|
87
95
|
yield(klass, fields, index)
|
88
96
|
end
|
data/lib/ndr_import/version.rb
CHANGED
@@ -49,7 +49,7 @@ STR
|
|
49
49
|
def test_all_valid_options
|
50
50
|
valid_options = %w[
|
51
51
|
canonical_name capture_end_line capture_start_line columns end_in_a_record end_line_pattern
|
52
|
-
filename_pattern format klass remove_lines start_in_a_record start_line_pattern
|
52
|
+
filename_pattern format klass remove_lines row_identifier start_in_a_record start_line_pattern
|
53
53
|
]
|
54
54
|
assert_equal valid_options.sort,
|
55
55
|
NdrImport::NonTabular::Table.all_valid_options.sort
|
data/test/table_test.rb
CHANGED
@@ -140,6 +140,42 @@ class TableTest < ActiveSupport::TestCase
|
|
140
140
|
assert_equal expected_output.sort, output.sort
|
141
141
|
end
|
142
142
|
|
143
|
+
def test_transform_line_row_identifier_index
|
144
|
+
table = NdrImport::Table.new(:header_lines => 2, :footer_lines => 1, :row_identifier => :index,
|
145
|
+
:columns => column_level_klass_mapping)
|
146
|
+
enum = table.transform_line(%w(CARROT POTATO PEA), 7)
|
147
|
+
assert_instance_of Enumerator, enum
|
148
|
+
|
149
|
+
output = []
|
150
|
+
enum.each do |klass, fields, index|
|
151
|
+
output << [klass, fields, index]
|
152
|
+
end
|
153
|
+
|
154
|
+
expected_output = [
|
155
|
+
['SomeTestKlass', { :rawtext => { 'one' => 'CARROT', 'two' => 'POTATO' }, 'row_identifier' => 7 }, 7],
|
156
|
+
['SomeOtherKlass', { :rawtext => { 'two' => 'POTATO', 'three' => 'PEA' }, 'row_identifier' => 7 }, 7]
|
157
|
+
]
|
158
|
+
assert_equal expected_output.sort, output.sort
|
159
|
+
end
|
160
|
+
|
161
|
+
def test_transform_line_row_identifier_uuid
|
162
|
+
table = NdrImport::Table.new(:header_lines => 2, :footer_lines => 1, :row_identifier => :uuid,
|
163
|
+
:columns => column_level_klass_mapping)
|
164
|
+
enum = table.transform_line(%w(CARROT POTATO PEA), 7)
|
165
|
+
assert_instance_of Enumerator, enum
|
166
|
+
|
167
|
+
output = []
|
168
|
+
enum.each do |klass, fields, _index|
|
169
|
+
output << [klass, fields['row_identifier']]
|
170
|
+
end
|
171
|
+
identifiers = output.map(&:last)
|
172
|
+
|
173
|
+
assert_equal 2, identifiers.count
|
174
|
+
assert_equal 2, identifiers.compact.count
|
175
|
+
assert_equal 1, identifiers.uniq.count
|
176
|
+
assert_equal 36, identifiers.first.length
|
177
|
+
end
|
178
|
+
|
143
179
|
def test_encode_with
|
144
180
|
table = NdrImport::Table.new
|
145
181
|
assert table.instance_variables.include?(:@row_index)
|
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: 8.
|
4
|
+
version: 8.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- NCRS Development Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-02-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -490,7 +490,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
490
490
|
- !ruby/object:Gem::Version
|
491
491
|
version: '0'
|
492
492
|
requirements: []
|
493
|
-
rubygems_version: 3.0.
|
493
|
+
rubygems_version: 3.0.2
|
494
494
|
signing_key:
|
495
495
|
specification_version: 4
|
496
496
|
summary: NDR Import
|