ndr_import 4.1.1 → 4.1.2
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/code_safety.yml +10 -10
- data/lib/ndr_import/file/delimited.rb +7 -2
- data/lib/ndr_import/mapper.rb +15 -5
- data/lib/ndr_import/version.rb +1 -1
- data/ndr_import.gemspec +2 -1
- data/test/file/delimited_test.rb +17 -0
- data/test/test_helper.rb +2 -0
- metadata +25 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 48a0ef9610f39b40881de9c2cbd4d79ac2fe197e
|
4
|
+
data.tar.gz: 69303c1297dcb5db806b996e95afad84fd31cae4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 877ff4160d5eeb02f372cae707118fffad4e8b0b702435753cdd06095b11097ac41a5a2010827936449d1f7656df9fbb62196cc7dc756be16a57f8a1e94c92f3
|
7
|
+
data.tar.gz: d330674f04f8bbd6cc50197ed48d75943182209ed2d20721b95bedb3fadc93d9105572d2c76f5ce9d595d1f8c2ed64276905244067f107b1bc0216c69b81131a
|
data/code_safety.yml
CHANGED
@@ -74,8 +74,8 @@ file safety:
|
|
74
74
|
safe_revision: a8451809db86e0e023b0d93826114a33ff896c4f
|
75
75
|
lib/ndr_import/file/delimited.rb:
|
76
76
|
comments:
|
77
|
-
reviewed_by:
|
78
|
-
safe_revision:
|
77
|
+
reviewed_by: josh.pencheon
|
78
|
+
safe_revision: 62702f103dd41c188684cfda73a94401b130cd01
|
79
79
|
lib/ndr_import/file/excel.rb:
|
80
80
|
comments:
|
81
81
|
reviewed_by: joshpencheon
|
@@ -126,8 +126,8 @@ file safety:
|
|
126
126
|
safe_revision: 6c6f204fab2f4232d81cb76aa523c26b0c490ae7
|
127
127
|
lib/ndr_import/mapper.rb:
|
128
128
|
comments:
|
129
|
-
reviewed_by:
|
130
|
-
safe_revision:
|
129
|
+
reviewed_by: josh.pencheon
|
130
|
+
safe_revision: fc27767d88956ef8e1182d6c1a6335266d34f7c5
|
131
131
|
lib/ndr_import/mapping_error.rb:
|
132
132
|
comments:
|
133
133
|
reviewed_by: timgentry
|
@@ -171,19 +171,19 @@ file safety:
|
|
171
171
|
lib/ndr_import/version.rb:
|
172
172
|
comments: another check?
|
173
173
|
reviewed_by: josh.pencheon
|
174
|
-
safe_revision:
|
174
|
+
safe_revision: 5b8e738929c12ccf800a2729d567fdf57a1bc159
|
175
175
|
ndr_import.gemspec:
|
176
176
|
comments:
|
177
177
|
reviewed_by: josh.pencheon
|
178
|
-
safe_revision:
|
178
|
+
safe_revision: c84ea01ab925addd5aa744ea8bc5382df5a1583d
|
179
179
|
test/file/base_test.rb:
|
180
180
|
comments:
|
181
181
|
reviewed_by: timgentry
|
182
182
|
safe_revision: a8451809db86e0e023b0d93826114a33ff896c4f
|
183
183
|
test/file/delimited_test.rb:
|
184
184
|
comments:
|
185
|
-
reviewed_by:
|
186
|
-
safe_revision:
|
185
|
+
reviewed_by: josh.pencheon
|
186
|
+
safe_revision: 62702f103dd41c188684cfda73a94401b130cd01
|
187
187
|
test/file/excel_test.rb:
|
188
188
|
comments:
|
189
189
|
reviewed_by: joshpencheon
|
@@ -406,8 +406,8 @@ file safety:
|
|
406
406
|
safe_revision: e70ece909c44b26208eaff3cf27ada7145e03f11
|
407
407
|
test/test_helper.rb:
|
408
408
|
comments:
|
409
|
-
reviewed_by:
|
410
|
-
safe_revision:
|
409
|
+
reviewed_by: josh.pencheon
|
410
|
+
safe_revision: 53cc0af4321b64746367231b65821fda0f8d8a0a
|
411
411
|
test/universal_importer_helper_test.rb:
|
412
412
|
comments:
|
413
413
|
reviewed_by: josh.pencheon
|
@@ -27,15 +27,20 @@ module NdrImport
|
|
27
27
|
return enum_for(:rows) unless block_given?
|
28
28
|
|
29
29
|
safe_path = SafeFile.safepath_to_string(@filename)
|
30
|
-
encodings = determine_encodings!(safe_path)
|
31
30
|
|
32
31
|
# By now, we know `encodings` should let us read the whole
|
33
32
|
# file succesfully; if there are problems, we should crash.
|
34
|
-
CSVLibrary.foreach(safe_path, encodings) do |line|
|
33
|
+
CSVLibrary.foreach(safe_path, encodings(safe_path)) do |line|
|
35
34
|
yield line.map(&:to_s)
|
36
35
|
end
|
37
36
|
end
|
38
37
|
|
38
|
+
# Cache the determined encodings, so rewinding the enumerator doesn't
|
39
|
+
# have to redo this, but equally it is still done lazily:
|
40
|
+
def encodings(safe_path)
|
41
|
+
@encodings ||= determine_encodings!(safe_path)
|
42
|
+
end
|
43
|
+
|
39
44
|
# Derive the source encoding by trying all supported encodings.
|
40
45
|
# Returns first set of working options, or raises if none could be found.
|
41
46
|
def determine_encodings!(safe_path)
|
data/lib/ndr_import/mapper.rb
CHANGED
@@ -17,12 +17,22 @@ module NdrImport::Mapper
|
|
17
17
|
|
18
18
|
# the replace option can be used before any other mapping option
|
19
19
|
def replace_before_mapping(original_value, field_mapping)
|
20
|
-
return unless field_mapping.include?('replace')
|
20
|
+
return unless original_value && field_mapping.include?('replace')
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
22
|
+
replaces = field_mapping['replace']
|
23
|
+
|
24
|
+
if replaces.is_a?(Array)
|
25
|
+
replaces.each { |repls| apply_replaces(original_value, repls) }
|
26
|
+
else
|
27
|
+
apply_replaces(original_value, replaces)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def apply_replaces(value, replaces)
|
32
|
+
if value.is_a?(Array)
|
33
|
+
value.each { |val| apply_replaces(val, replaces) }
|
34
|
+
else
|
35
|
+
replaces.each { |pattern, replacement| value.gsub!(pattern, replacement) }
|
26
36
|
end
|
27
37
|
end
|
28
38
|
|
data/lib/ndr_import/version.rb
CHANGED
data/ndr_import.gemspec
CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_dependency 'activesupport', '>= 3.2.18', '< 5.1'
|
23
23
|
spec.add_dependency 'ndr_support', '>= 4.1.2', '< 6'
|
24
24
|
|
25
|
-
spec.add_dependency 'rubyzip', '~> 1.1'
|
25
|
+
spec.add_dependency 'rubyzip', '~> 1.2', '>= 1.2.1'
|
26
26
|
spec.add_dependency 'roo', '~> 2.0'
|
27
27
|
|
28
28
|
spec.add_dependency 'nokogiri', '~> 1.6'
|
@@ -36,6 +36,7 @@ Gem::Specification.new do |spec|
|
|
36
36
|
spec.add_development_dependency 'bundler', '~> 1.7'
|
37
37
|
spec.add_development_dependency 'rake', '~> 10.0'
|
38
38
|
spec.add_development_dependency 'minitest'
|
39
|
+
spec.add_development_dependency 'mocha'
|
39
40
|
spec.add_development_dependency 'ndr_dev_support', '~> 1.1', '>= 1.1.3'
|
40
41
|
spec.add_development_dependency 'guard'
|
41
42
|
spec.add_development_dependency 'guard-rubocop'
|
data/test/file/delimited_test.rb
CHANGED
@@ -138,6 +138,23 @@ module NdrImport
|
|
138
138
|
'Original: Missing or stray quote in line 2'
|
139
139
|
assert_equal msg, exception.message
|
140
140
|
end
|
141
|
+
|
142
|
+
test 'should only determine encodings once' do
|
143
|
+
file_path = @permanent_test_files.join('normal.csv')
|
144
|
+
handler = NdrImport::File::Delimited.new(file_path, 'csv', 'col_sep' => nil)
|
145
|
+
|
146
|
+
handler.expects(determine_encodings!: { encoding: 'bom|utf-8', col_sep: ',' }).once
|
147
|
+
|
148
|
+
2.times do
|
149
|
+
handler.tables.each do |tablename, sheet|
|
150
|
+
assert_nil tablename
|
151
|
+
sheet = sheet.to_a
|
152
|
+
assert_equal(('A'..'Z').to_a, sheet[0])
|
153
|
+
assert_equal ['1'] * 26, sheet[1]
|
154
|
+
assert_equal ['2'] * 26, sheet[2]
|
155
|
+
end
|
156
|
+
end
|
157
|
+
end
|
141
158
|
end
|
142
159
|
end
|
143
160
|
end
|
data/test/test_helper.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: 4.1.
|
4
|
+
version: 4.1.2
|
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:
|
11
|
+
date: 2017-03-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -56,14 +56,20 @@ dependencies:
|
|
56
56
|
requirements:
|
57
57
|
- - "~>"
|
58
58
|
- !ruby/object:Gem::Version
|
59
|
-
version: '1.
|
59
|
+
version: '1.2'
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 1.2.1
|
60
63
|
type: :runtime
|
61
64
|
prerelease: false
|
62
65
|
version_requirements: !ruby/object:Gem::Requirement
|
63
66
|
requirements:
|
64
67
|
- - "~>"
|
65
68
|
- !ruby/object:Gem::Version
|
66
|
-
version: '1.
|
69
|
+
version: '1.2'
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: 1.2.1
|
67
73
|
- !ruby/object:Gem::Dependency
|
68
74
|
name: roo
|
69
75
|
requirement: !ruby/object:Gem::Requirement
|
@@ -190,6 +196,20 @@ dependencies:
|
|
190
196
|
- - ">="
|
191
197
|
- !ruby/object:Gem::Version
|
192
198
|
version: '0'
|
199
|
+
- !ruby/object:Gem::Dependency
|
200
|
+
name: mocha
|
201
|
+
requirement: !ruby/object:Gem::Requirement
|
202
|
+
requirements:
|
203
|
+
- - ">="
|
204
|
+
- !ruby/object:Gem::Version
|
205
|
+
version: '0'
|
206
|
+
type: :development
|
207
|
+
prerelease: false
|
208
|
+
version_requirements: !ruby/object:Gem::Requirement
|
209
|
+
requirements:
|
210
|
+
- - ">="
|
211
|
+
- !ruby/object:Gem::Version
|
212
|
+
version: '0'
|
193
213
|
- !ruby/object:Gem::Dependency
|
194
214
|
name: ndr_dev_support
|
195
215
|
requirement: !ruby/object:Gem::Requirement
|
@@ -410,7 +430,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
410
430
|
version: '0'
|
411
431
|
requirements: []
|
412
432
|
rubyforge_project:
|
413
|
-
rubygems_version: 2.
|
433
|
+
rubygems_version: 2.5.2
|
414
434
|
signing_key:
|
415
435
|
specification_version: 4
|
416
436
|
summary: NDR Import
|