ndr_import 3.0.0

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