ndr_import 3.0.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.
Files changed (103) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +14 -0
  3. data/.rubocop.yml +27 -0
  4. data/.ruby-version +1 -0
  5. data/.travis.yml +22 -0
  6. data/CODE_OF_CONDUCT.md +13 -0
  7. data/Gemfile +4 -0
  8. data/Guardfile +16 -0
  9. data/LICENSE.txt +21 -0
  10. data/README.md +69 -0
  11. data/Rakefile +13 -0
  12. data/code_safety.yml +374 -0
  13. data/gemfiles/Gemfile.rails32 +5 -0
  14. data/gemfiles/Gemfile.rails32.lock +142 -0
  15. data/gemfiles/Gemfile.rails41 +5 -0
  16. data/gemfiles/Gemfile.rails41.lock +145 -0
  17. data/gemfiles/Gemfile.rails42 +5 -0
  18. data/gemfiles/Gemfile.rails42.lock +145 -0
  19. data/lib/ndr_import.rb +13 -0
  20. data/lib/ndr_import/csv_library.rb +40 -0
  21. data/lib/ndr_import/file/all.rb +8 -0
  22. data/lib/ndr_import/file/base.rb +76 -0
  23. data/lib/ndr_import/file/delimited.rb +86 -0
  24. data/lib/ndr_import/file/excel.rb +131 -0
  25. data/lib/ndr_import/file/pdf.rb +38 -0
  26. data/lib/ndr_import/file/registry.rb +50 -0
  27. data/lib/ndr_import/file/text.rb +52 -0
  28. data/lib/ndr_import/file/word.rb +30 -0
  29. data/lib/ndr_import/file/zip.rb +67 -0
  30. data/lib/ndr_import/helpers/file/delimited.rb +105 -0
  31. data/lib/ndr_import/helpers/file/excel.rb +181 -0
  32. data/lib/ndr_import/helpers/file/pdf.rb +29 -0
  33. data/lib/ndr_import/helpers/file/word.rb +27 -0
  34. data/lib/ndr_import/helpers/file/xml.rb +45 -0
  35. data/lib/ndr_import/helpers/file/zip.rb +44 -0
  36. data/lib/ndr_import/mapper.rb +220 -0
  37. data/lib/ndr_import/mapping_error.rb +5 -0
  38. data/lib/ndr_import/non_tabular/column_mapping.rb +73 -0
  39. data/lib/ndr_import/non_tabular/line.rb +46 -0
  40. data/lib/ndr_import/non_tabular/mapping.rb +35 -0
  41. data/lib/ndr_import/non_tabular/record.rb +99 -0
  42. data/lib/ndr_import/non_tabular/table.rb +193 -0
  43. data/lib/ndr_import/non_tabular_file_helper.rb +160 -0
  44. data/lib/ndr_import/standard_mappings.rb +23 -0
  45. data/lib/ndr_import/table.rb +179 -0
  46. data/lib/ndr_import/version.rb +4 -0
  47. data/ndr_import.gemspec +44 -0
  48. data/test/file/base_test.rb +54 -0
  49. data/test/file/delimited_test.rb +143 -0
  50. data/test/file/excel_test.rb +85 -0
  51. data/test/file/pdf_test.rb +35 -0
  52. data/test/file/registry_test.rb +60 -0
  53. data/test/file/text_test.rb +92 -0
  54. data/test/file/word_test.rb +35 -0
  55. data/test/file/zip_test.rb +47 -0
  56. data/test/helpers/file/delimited_test.rb +113 -0
  57. data/test/helpers/file/excel_test.rb +97 -0
  58. data/test/helpers/file/pdf_test.rb +26 -0
  59. data/test/helpers/file/word_test.rb +26 -0
  60. data/test/helpers/file/xml_test.rb +131 -0
  61. data/test/helpers/file/zip_test.rb +75 -0
  62. data/test/mapper_test.rb +551 -0
  63. data/test/non_tabular/mapping_test.rb +36 -0
  64. data/test/non_tabular/table_test.rb +510 -0
  65. data/test/non_tabular_file_helper_test.rb +501 -0
  66. data/test/readme_test.rb +53 -0
  67. data/test/resources/bomd.csv +3 -0
  68. data/test/resources/broken.csv +3 -0
  69. data/test/resources/filesystem_paths.yml +26 -0
  70. data/test/resources/flat_file.pdf +0 -0
  71. data/test/resources/flat_file.txt +27 -0
  72. data/test/resources/flat_file.yml +20 -0
  73. data/test/resources/hello_utf16be.txt +0 -0
  74. data/test/resources/hello_utf16le.txt +0 -0
  75. data/test/resources/hello_utf8.txt +2 -0
  76. data/test/resources/hello_windows.txt +2 -0
  77. data/test/resources/hello_world.doc +0 -0
  78. data/test/resources/hello_world.pdf +0 -0
  79. data/test/resources/hello_world.txt +2 -0
  80. data/test/resources/high_ascii_delimited.txt +2 -0
  81. data/test/resources/malformed.xml +6 -0
  82. data/test/resources/normal.csv +3 -0
  83. data/test/resources/normal.csv.zip +0 -0
  84. data/test/resources/normal_pipe.csv +3 -0
  85. data/test/resources/normal_thorn.csv +3 -0
  86. data/test/resources/not_a_pdf.pdf +0 -0
  87. data/test/resources/not_a_word_file.doc +0 -0
  88. data/test/resources/sample_xls.xls +0 -0
  89. data/test/resources/sample_xlsx.xlsx +0 -0
  90. data/test/resources/standard_mappings.yml +39 -0
  91. data/test/resources/txt_file_xls_extension.xls +1 -0
  92. data/test/resources/txt_file_xlsx_extension.xlsx +1 -0
  93. data/test/resources/utf-16be_xml.xml +0 -0
  94. data/test/resources/utf-16be_xml_with_declaration.xml +0 -0
  95. data/test/resources/utf-16le_xml.xml +0 -0
  96. data/test/resources/utf-8_xml.xml +9 -0
  97. data/test/resources/windows-1252_xml.xml +9 -0
  98. data/test/resources/windows.csv +5 -0
  99. data/test/resources/xlsx_file_xls_extension.xls +0 -0
  100. data/test/standard_mappings_test.rb +22 -0
  101. data/test/table_test.rb +288 -0
  102. data/test/test_helper.rb +13 -0
  103. metadata +443 -0
@@ -0,0 +1,13 @@
1
+ require 'simplecov'
2
+ SimpleCov.start
3
+
4
+ require 'active_support/test_case'
5
+ require 'active_support/core_ext/string'
6
+ require 'ndr_support/safe_path'
7
+ require 'ndr_import'
8
+ require 'yaml'
9
+
10
+ SafePath.configure! File.dirname(__FILE__) + '/resources/filesystem_paths.yml'
11
+ NdrImport::StandardMappings.mappings = YAML.load_file(
12
+ File.expand_path(File.dirname(__FILE__) + '/resources/standard_mappings.yml')
13
+ )
metadata ADDED
@@ -0,0 +1,443 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ndr_import
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.0.0
5
+ platform: ruby
6
+ authors:
7
+ - NCRS Development Team
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-11-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
19
+ version: 3.2.18
20
+ - - <
21
+ - !ruby/object:Gem::Version
22
+ version: 5.0.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 3.2.18
30
+ - - <
31
+ - !ruby/object:Gem::Version
32
+ version: 5.0.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: ndr_support
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ~>
38
+ - !ruby/object:Gem::Version
39
+ version: '3.0'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: '3.0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: rubyzip
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: '1.1'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ~>
59
+ - !ruby/object:Gem::Version
60
+ version: '1.1'
61
+ - !ruby/object:Gem::Dependency
62
+ name: roo
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ~>
66
+ - !ruby/object:Gem::Version
67
+ version: '2.0'
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ~>
73
+ - !ruby/object:Gem::Version
74
+ version: '2.0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: nokogiri
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ~>
80
+ - !ruby/object:Gem::Version
81
+ version: '1.6'
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ~>
87
+ - !ruby/object:Gem::Version
88
+ version: '1.6'
89
+ - !ruby/object:Gem::Dependency
90
+ name: roo-xls
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ! '>='
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ type: :runtime
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ - !ruby/object:Gem::Dependency
104
+ name: spreadsheet
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - '='
108
+ - !ruby/object:Gem::Version
109
+ version: 1.0.3
110
+ type: :runtime
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - '='
115
+ - !ruby/object:Gem::Version
116
+ version: 1.0.3
117
+ - !ruby/object:Gem::Dependency
118
+ name: pdf-reader
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - '='
122
+ - !ruby/object:Gem::Version
123
+ version: 1.2.0
124
+ type: :runtime
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - '='
129
+ - !ruby/object:Gem::Version
130
+ version: 1.2.0
131
+ - !ruby/object:Gem::Dependency
132
+ name: msworddoc-extractor
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - '='
136
+ - !ruby/object:Gem::Version
137
+ version: 0.2.0
138
+ type: :runtime
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - '='
143
+ - !ruby/object:Gem::Version
144
+ version: 0.2.0
145
+ - !ruby/object:Gem::Dependency
146
+ name: bundler
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ~>
150
+ - !ruby/object:Gem::Version
151
+ version: '1.7'
152
+ type: :development
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ~>
157
+ - !ruby/object:Gem::Version
158
+ version: '1.7'
159
+ - !ruby/object:Gem::Dependency
160
+ name: rake
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ~>
164
+ - !ruby/object:Gem::Version
165
+ version: '10.0'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ~>
171
+ - !ruby/object:Gem::Version
172
+ version: '10.0'
173
+ - !ruby/object:Gem::Dependency
174
+ name: minitest
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ! '>='
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ type: :development
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - ! '>='
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
187
+ - !ruby/object:Gem::Dependency
188
+ name: guard
189
+ requirement: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - ! '>='
192
+ - !ruby/object:Gem::Version
193
+ version: '0'
194
+ type: :development
195
+ prerelease: false
196
+ version_requirements: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - ! '>='
199
+ - !ruby/object:Gem::Version
200
+ version: '0'
201
+ - !ruby/object:Gem::Dependency
202
+ name: guard-rubocop
203
+ requirement: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - ! '>='
206
+ - !ruby/object:Gem::Version
207
+ version: '0'
208
+ type: :development
209
+ prerelease: false
210
+ version_requirements: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - ! '>='
213
+ - !ruby/object:Gem::Version
214
+ version: '0'
215
+ - !ruby/object:Gem::Dependency
216
+ name: guard-test
217
+ requirement: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - ! '>='
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
222
+ type: :development
223
+ prerelease: false
224
+ version_requirements: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - ! '>='
227
+ - !ruby/object:Gem::Version
228
+ version: '0'
229
+ - !ruby/object:Gem::Dependency
230
+ name: terminal-notifier-guard
231
+ requirement: !ruby/object:Gem::Requirement
232
+ requirements:
233
+ - - ! '>='
234
+ - !ruby/object:Gem::Version
235
+ version: '0'
236
+ type: :development
237
+ prerelease: false
238
+ version_requirements: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - ! '>='
241
+ - !ruby/object:Gem::Version
242
+ version: '0'
243
+ - !ruby/object:Gem::Dependency
244
+ name: simplecov
245
+ requirement: !ruby/object:Gem::Requirement
246
+ requirements:
247
+ - - ! '>='
248
+ - !ruby/object:Gem::Version
249
+ version: '0'
250
+ type: :development
251
+ prerelease: false
252
+ version_requirements: !ruby/object:Gem::Requirement
253
+ requirements:
254
+ - - ! '>='
255
+ - !ruby/object:Gem::Version
256
+ version: '0'
257
+ description: NDR ETL Importer
258
+ email: []
259
+ executables: []
260
+ extensions: []
261
+ extra_rdoc_files: []
262
+ files:
263
+ - .gitignore
264
+ - .rubocop.yml
265
+ - .ruby-version
266
+ - .travis.yml
267
+ - CODE_OF_CONDUCT.md
268
+ - Gemfile
269
+ - Guardfile
270
+ - LICENSE.txt
271
+ - README.md
272
+ - Rakefile
273
+ - code_safety.yml
274
+ - gemfiles/Gemfile.rails32
275
+ - gemfiles/Gemfile.rails32.lock
276
+ - gemfiles/Gemfile.rails41
277
+ - gemfiles/Gemfile.rails41.lock
278
+ - gemfiles/Gemfile.rails42
279
+ - gemfiles/Gemfile.rails42.lock
280
+ - lib/ndr_import.rb
281
+ - lib/ndr_import/csv_library.rb
282
+ - lib/ndr_import/file/all.rb
283
+ - lib/ndr_import/file/base.rb
284
+ - lib/ndr_import/file/delimited.rb
285
+ - lib/ndr_import/file/excel.rb
286
+ - lib/ndr_import/file/pdf.rb
287
+ - lib/ndr_import/file/registry.rb
288
+ - lib/ndr_import/file/text.rb
289
+ - lib/ndr_import/file/word.rb
290
+ - lib/ndr_import/file/zip.rb
291
+ - lib/ndr_import/helpers/file/delimited.rb
292
+ - lib/ndr_import/helpers/file/excel.rb
293
+ - lib/ndr_import/helpers/file/pdf.rb
294
+ - lib/ndr_import/helpers/file/word.rb
295
+ - lib/ndr_import/helpers/file/xml.rb
296
+ - lib/ndr_import/helpers/file/zip.rb
297
+ - lib/ndr_import/mapper.rb
298
+ - lib/ndr_import/mapping_error.rb
299
+ - lib/ndr_import/non_tabular/column_mapping.rb
300
+ - lib/ndr_import/non_tabular/line.rb
301
+ - lib/ndr_import/non_tabular/mapping.rb
302
+ - lib/ndr_import/non_tabular/record.rb
303
+ - lib/ndr_import/non_tabular/table.rb
304
+ - lib/ndr_import/non_tabular_file_helper.rb
305
+ - lib/ndr_import/standard_mappings.rb
306
+ - lib/ndr_import/table.rb
307
+ - lib/ndr_import/version.rb
308
+ - ndr_import.gemspec
309
+ - test/file/base_test.rb
310
+ - test/file/delimited_test.rb
311
+ - test/file/excel_test.rb
312
+ - test/file/pdf_test.rb
313
+ - test/file/registry_test.rb
314
+ - test/file/text_test.rb
315
+ - test/file/word_test.rb
316
+ - test/file/zip_test.rb
317
+ - test/helpers/file/delimited_test.rb
318
+ - test/helpers/file/excel_test.rb
319
+ - test/helpers/file/pdf_test.rb
320
+ - test/helpers/file/word_test.rb
321
+ - test/helpers/file/xml_test.rb
322
+ - test/helpers/file/zip_test.rb
323
+ - test/mapper_test.rb
324
+ - test/non_tabular/mapping_test.rb
325
+ - test/non_tabular/table_test.rb
326
+ - test/non_tabular_file_helper_test.rb
327
+ - test/readme_test.rb
328
+ - test/resources/bomd.csv
329
+ - test/resources/broken.csv
330
+ - test/resources/filesystem_paths.yml
331
+ - test/resources/flat_file.pdf
332
+ - test/resources/flat_file.txt
333
+ - test/resources/flat_file.yml
334
+ - test/resources/hello_utf16be.txt
335
+ - test/resources/hello_utf16le.txt
336
+ - test/resources/hello_utf8.txt
337
+ - test/resources/hello_windows.txt
338
+ - test/resources/hello_world.doc
339
+ - test/resources/hello_world.pdf
340
+ - test/resources/hello_world.txt
341
+ - test/resources/high_ascii_delimited.txt
342
+ - test/resources/malformed.xml
343
+ - test/resources/normal.csv
344
+ - test/resources/normal.csv.zip
345
+ - test/resources/normal_pipe.csv
346
+ - test/resources/normal_thorn.csv
347
+ - test/resources/not_a_pdf.pdf
348
+ - test/resources/not_a_word_file.doc
349
+ - test/resources/sample_xls.xls
350
+ - test/resources/sample_xlsx.xlsx
351
+ - test/resources/standard_mappings.yml
352
+ - test/resources/txt_file_xls_extension.xls
353
+ - test/resources/txt_file_xlsx_extension.xlsx
354
+ - test/resources/utf-16be_xml.xml
355
+ - test/resources/utf-16be_xml_with_declaration.xml
356
+ - test/resources/utf-16le_xml.xml
357
+ - test/resources/utf-8_xml.xml
358
+ - test/resources/windows-1252_xml.xml
359
+ - test/resources/windows.csv
360
+ - test/resources/xlsx_file_xls_extension.xls
361
+ - test/standard_mappings_test.rb
362
+ - test/table_test.rb
363
+ - test/test_helper.rb
364
+ homepage: https://github.com/PublicHealthEngland/ndr_import
365
+ licenses:
366
+ - MIT
367
+ metadata: {}
368
+ post_install_message:
369
+ rdoc_options: []
370
+ require_paths:
371
+ - lib
372
+ required_ruby_version: !ruby/object:Gem::Requirement
373
+ requirements:
374
+ - - ! '>='
375
+ - !ruby/object:Gem::Version
376
+ version: 1.9.3
377
+ required_rubygems_version: !ruby/object:Gem::Requirement
378
+ requirements:
379
+ - - ! '>='
380
+ - !ruby/object:Gem::Version
381
+ version: '0'
382
+ requirements: []
383
+ rubyforge_project:
384
+ rubygems_version: 2.4.8
385
+ signing_key:
386
+ specification_version: 4
387
+ summary: NDR Import
388
+ test_files:
389
+ - test/file/base_test.rb
390
+ - test/file/delimited_test.rb
391
+ - test/file/excel_test.rb
392
+ - test/file/pdf_test.rb
393
+ - test/file/registry_test.rb
394
+ - test/file/text_test.rb
395
+ - test/file/word_test.rb
396
+ - test/file/zip_test.rb
397
+ - test/helpers/file/delimited_test.rb
398
+ - test/helpers/file/excel_test.rb
399
+ - test/helpers/file/pdf_test.rb
400
+ - test/helpers/file/word_test.rb
401
+ - test/helpers/file/xml_test.rb
402
+ - test/helpers/file/zip_test.rb
403
+ - test/mapper_test.rb
404
+ - test/non_tabular/mapping_test.rb
405
+ - test/non_tabular/table_test.rb
406
+ - test/non_tabular_file_helper_test.rb
407
+ - test/readme_test.rb
408
+ - test/resources/bomd.csv
409
+ - test/resources/broken.csv
410
+ - test/resources/filesystem_paths.yml
411
+ - test/resources/flat_file.pdf
412
+ - test/resources/flat_file.txt
413
+ - test/resources/flat_file.yml
414
+ - test/resources/hello_utf16be.txt
415
+ - test/resources/hello_utf16le.txt
416
+ - test/resources/hello_utf8.txt
417
+ - test/resources/hello_windows.txt
418
+ - test/resources/hello_world.doc
419
+ - test/resources/hello_world.pdf
420
+ - test/resources/hello_world.txt
421
+ - test/resources/high_ascii_delimited.txt
422
+ - test/resources/malformed.xml
423
+ - test/resources/normal.csv
424
+ - test/resources/normal.csv.zip
425
+ - test/resources/normal_pipe.csv
426
+ - test/resources/normal_thorn.csv
427
+ - test/resources/not_a_pdf.pdf
428
+ - test/resources/not_a_word_file.doc
429
+ - test/resources/sample_xls.xls
430
+ - test/resources/sample_xlsx.xlsx
431
+ - test/resources/standard_mappings.yml
432
+ - test/resources/txt_file_xls_extension.xls
433
+ - test/resources/txt_file_xlsx_extension.xlsx
434
+ - test/resources/utf-16be_xml.xml
435
+ - test/resources/utf-16be_xml_with_declaration.xml
436
+ - test/resources/utf-16le_xml.xml
437
+ - test/resources/utf-8_xml.xml
438
+ - test/resources/windows-1252_xml.xml
439
+ - test/resources/windows.csv
440
+ - test/resources/xlsx_file_xls_extension.xls
441
+ - test/standard_mappings_test.rb
442
+ - test/table_test.rb
443
+ - test/test_helper.rb