ndr_import 8.1.0 → 8.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|