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,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec path: '..'
4
+
5
+ gem 'activesupport', '~> 3.2.18'
@@ -0,0 +1,142 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ ndr_import (2.4.1)
5
+ activesupport (>= 3.2.18, < 5.0.0)
6
+ msworddoc-extractor (= 0.2.0)
7
+ ndr_support (~> 3.0)
8
+ nokogiri (~> 1.6)
9
+ pdf-reader (= 1.2.0)
10
+ roo (~> 2.0)
11
+ roo-xls
12
+ rubyzip (~> 1.1)
13
+ spreadsheet (= 1.0.3)
14
+
15
+ GEM
16
+ remote: https://rubygems.org/
17
+ specs:
18
+ Ascii85 (1.0.2)
19
+ activemodel (3.2.22)
20
+ activesupport (= 3.2.22)
21
+ builder (~> 3.0.0)
22
+ activerecord (3.2.22)
23
+ activemodel (= 3.2.22)
24
+ activesupport (= 3.2.22)
25
+ arel (~> 3.0.2)
26
+ tzinfo (~> 0.3.29)
27
+ activesupport (3.2.22)
28
+ i18n (~> 0.6, >= 0.6.4)
29
+ multi_json (~> 1.0)
30
+ arel (3.0.3)
31
+ ast (2.1.0)
32
+ astrolabe (1.3.1)
33
+ parser (~> 2.2)
34
+ builder (3.0.4)
35
+ coderay (1.1.0)
36
+ docile (1.1.5)
37
+ ffi (1.9.10)
38
+ formatador (0.2.5)
39
+ guard (2.13.0)
40
+ formatador (>= 0.2.4)
41
+ listen (>= 2.7, <= 4.0)
42
+ lumberjack (~> 1.0)
43
+ nenv (~> 0.1)
44
+ notiffany (~> 0.0)
45
+ pry (>= 0.9.12)
46
+ shellany (~> 0.0)
47
+ thor (>= 0.18.1)
48
+ guard-compat (1.2.1)
49
+ guard-rubocop (1.2.0)
50
+ guard (~> 2.0)
51
+ rubocop (~> 0.20)
52
+ guard-test (2.0.6)
53
+ guard-compat (~> 1.2)
54
+ test-unit (~> 3.0)
55
+ hashery (2.1.1)
56
+ i18n (0.7.0)
57
+ json (1.8.3)
58
+ listen (3.0.3)
59
+ rb-fsevent (>= 0.9.3)
60
+ rb-inotify (>= 0.9)
61
+ lumberjack (1.0.9)
62
+ method_source (0.8.2)
63
+ mini_portile (0.6.2)
64
+ minitest (5.8.2)
65
+ msworddoc-extractor (0.2.0)
66
+ ruby-ole
67
+ multi_json (1.11.2)
68
+ ndr_support (3.1.1)
69
+ activerecord (>= 3.2.18, < 5.0.0)
70
+ activesupport (>= 3.2.18, < 5.0.0)
71
+ nenv (0.2.0)
72
+ nokogiri (1.6.6.2)
73
+ mini_portile (~> 0.6.0)
74
+ notiffany (0.0.8)
75
+ nenv (~> 0.1)
76
+ shellany (~> 0.0)
77
+ parser (2.2.3.0)
78
+ ast (>= 1.1, < 3.0)
79
+ pdf-reader (1.2.0)
80
+ Ascii85 (~> 1.0.0)
81
+ hashery (~> 2.0)
82
+ ruby-rc4
83
+ power_assert (0.2.5)
84
+ powerpack (0.1.1)
85
+ pry (0.10.3)
86
+ coderay (~> 1.1.0)
87
+ method_source (~> 0.8.1)
88
+ slop (~> 3.4)
89
+ rainbow (2.0.0)
90
+ rake (10.4.2)
91
+ rb-fsevent (0.9.6)
92
+ rb-inotify (0.9.5)
93
+ ffi (>= 0.5.0)
94
+ roo (2.2.0)
95
+ nokogiri (~> 1)
96
+ rubyzip (~> 1.1, < 2.0.0)
97
+ roo-xls (1.0.0)
98
+ nokogiri
99
+ roo (>= 2.0.0beta1, < 3)
100
+ spreadsheet (> 0.9.0)
101
+ rubocop (0.34.2)
102
+ astrolabe (~> 1.3)
103
+ parser (>= 2.2.2.5, < 3.0)
104
+ powerpack (~> 0.1)
105
+ rainbow (>= 1.99.1, < 3.0)
106
+ ruby-progressbar (~> 1.4)
107
+ ruby-ole (1.2.11.8)
108
+ ruby-progressbar (1.7.5)
109
+ ruby-rc4 (0.1.5)
110
+ rubyzip (1.1.7)
111
+ shellany (0.0.1)
112
+ simplecov (0.10.0)
113
+ docile (~> 1.1.0)
114
+ json (~> 1.8)
115
+ simplecov-html (~> 0.10.0)
116
+ simplecov-html (0.10.0)
117
+ slop (3.6.0)
118
+ spreadsheet (1.0.3)
119
+ ruby-ole (>= 1.0)
120
+ terminal-notifier-guard (1.6.4)
121
+ test-unit (3.1.5)
122
+ power_assert
123
+ thor (0.19.1)
124
+ tzinfo (0.3.45)
125
+
126
+ PLATFORMS
127
+ ruby
128
+
129
+ DEPENDENCIES
130
+ activesupport (~> 3.2.18)
131
+ bundler (~> 1.7)
132
+ guard
133
+ guard-rubocop
134
+ guard-test
135
+ minitest
136
+ ndr_import!
137
+ rake (~> 10.0)
138
+ simplecov
139
+ terminal-notifier-guard
140
+
141
+ BUNDLED WITH
142
+ 1.10.6
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec path: '..'
4
+
5
+ gem 'activesupport', '~> 4.1.0'
@@ -0,0 +1,145 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ ndr_import (2.4.1)
5
+ activesupport (>= 3.2.18, < 5.0.0)
6
+ msworddoc-extractor (= 0.2.0)
7
+ ndr_support (~> 3.0)
8
+ nokogiri (~> 1.6)
9
+ pdf-reader (= 1.2.0)
10
+ roo (~> 2.0)
11
+ roo-xls
12
+ rubyzip (~> 1.1)
13
+ spreadsheet (= 1.0.3)
14
+
15
+ GEM
16
+ remote: https://rubygems.org/
17
+ specs:
18
+ Ascii85 (1.0.2)
19
+ activemodel (4.1.13)
20
+ activesupport (= 4.1.13)
21
+ builder (~> 3.1)
22
+ activerecord (4.1.13)
23
+ activemodel (= 4.1.13)
24
+ activesupport (= 4.1.13)
25
+ arel (~> 5.0.0)
26
+ activesupport (4.1.13)
27
+ i18n (~> 0.6, >= 0.6.9)
28
+ json (~> 1.7, >= 1.7.7)
29
+ minitest (~> 5.1)
30
+ thread_safe (~> 0.1)
31
+ tzinfo (~> 1.1)
32
+ arel (5.0.1.20140414130214)
33
+ ast (2.1.0)
34
+ astrolabe (1.3.1)
35
+ parser (~> 2.2)
36
+ builder (3.2.2)
37
+ coderay (1.1.0)
38
+ docile (1.1.5)
39
+ ffi (1.9.10)
40
+ formatador (0.2.5)
41
+ guard (2.13.0)
42
+ formatador (>= 0.2.4)
43
+ listen (>= 2.7, <= 4.0)
44
+ lumberjack (~> 1.0)
45
+ nenv (~> 0.1)
46
+ notiffany (~> 0.0)
47
+ pry (>= 0.9.12)
48
+ shellany (~> 0.0)
49
+ thor (>= 0.18.1)
50
+ guard-compat (1.2.1)
51
+ guard-rubocop (1.2.0)
52
+ guard (~> 2.0)
53
+ rubocop (~> 0.20)
54
+ guard-test (2.0.6)
55
+ guard-compat (~> 1.2)
56
+ test-unit (~> 3.0)
57
+ hashery (2.1.1)
58
+ i18n (0.7.0)
59
+ json (1.8.3)
60
+ listen (3.0.3)
61
+ rb-fsevent (>= 0.9.3)
62
+ rb-inotify (>= 0.9)
63
+ lumberjack (1.0.9)
64
+ method_source (0.8.2)
65
+ mini_portile (0.6.2)
66
+ minitest (5.8.2)
67
+ msworddoc-extractor (0.2.0)
68
+ ruby-ole
69
+ ndr_support (3.1.1)
70
+ activerecord (>= 3.2.18, < 5.0.0)
71
+ activesupport (>= 3.2.18, < 5.0.0)
72
+ nenv (0.2.0)
73
+ nokogiri (1.6.6.2)
74
+ mini_portile (~> 0.6.0)
75
+ notiffany (0.0.8)
76
+ nenv (~> 0.1)
77
+ shellany (~> 0.0)
78
+ parser (2.2.3.0)
79
+ ast (>= 1.1, < 3.0)
80
+ pdf-reader (1.2.0)
81
+ Ascii85 (~> 1.0.0)
82
+ hashery (~> 2.0)
83
+ ruby-rc4
84
+ power_assert (0.2.5)
85
+ powerpack (0.1.1)
86
+ pry (0.10.3)
87
+ coderay (~> 1.1.0)
88
+ method_source (~> 0.8.1)
89
+ slop (~> 3.4)
90
+ rainbow (2.0.0)
91
+ rake (10.4.2)
92
+ rb-fsevent (0.9.6)
93
+ rb-inotify (0.9.5)
94
+ ffi (>= 0.5.0)
95
+ roo (2.2.0)
96
+ nokogiri (~> 1)
97
+ rubyzip (~> 1.1, < 2.0.0)
98
+ roo-xls (1.0.0)
99
+ nokogiri
100
+ roo (>= 2.0.0beta1, < 3)
101
+ spreadsheet (> 0.9.0)
102
+ rubocop (0.34.2)
103
+ astrolabe (~> 1.3)
104
+ parser (>= 2.2.2.5, < 3.0)
105
+ powerpack (~> 0.1)
106
+ rainbow (>= 1.99.1, < 3.0)
107
+ ruby-progressbar (~> 1.4)
108
+ ruby-ole (1.2.11.8)
109
+ ruby-progressbar (1.7.5)
110
+ ruby-rc4 (0.1.5)
111
+ rubyzip (1.1.7)
112
+ shellany (0.0.1)
113
+ simplecov (0.10.0)
114
+ docile (~> 1.1.0)
115
+ json (~> 1.8)
116
+ simplecov-html (~> 0.10.0)
117
+ simplecov-html (0.10.0)
118
+ slop (3.6.0)
119
+ spreadsheet (1.0.3)
120
+ ruby-ole (>= 1.0)
121
+ terminal-notifier-guard (1.6.4)
122
+ test-unit (3.1.5)
123
+ power_assert
124
+ thor (0.19.1)
125
+ thread_safe (0.3.5)
126
+ tzinfo (1.2.2)
127
+ thread_safe (~> 0.1)
128
+
129
+ PLATFORMS
130
+ ruby
131
+
132
+ DEPENDENCIES
133
+ activesupport (~> 4.1.0)
134
+ bundler (~> 1.7)
135
+ guard
136
+ guard-rubocop
137
+ guard-test
138
+ minitest
139
+ ndr_import!
140
+ rake (~> 10.0)
141
+ simplecov
142
+ terminal-notifier-guard
143
+
144
+ BUNDLED WITH
145
+ 1.10.6
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec path: '..'
4
+
5
+ gem 'activesupport', '~> 4.2.0'
@@ -0,0 +1,145 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ ndr_import (2.4.1)
5
+ activesupport (>= 3.2.18, < 5.0.0)
6
+ msworddoc-extractor (= 0.2.0)
7
+ ndr_support (~> 3.0)
8
+ nokogiri (~> 1.6)
9
+ pdf-reader (= 1.2.0)
10
+ roo (~> 2.0)
11
+ roo-xls
12
+ rubyzip (~> 1.1)
13
+ spreadsheet (= 1.0.3)
14
+
15
+ GEM
16
+ remote: https://rubygems.org/
17
+ specs:
18
+ Ascii85 (1.0.2)
19
+ activemodel (4.2.4)
20
+ activesupport (= 4.2.4)
21
+ builder (~> 3.1)
22
+ activerecord (4.2.4)
23
+ activemodel (= 4.2.4)
24
+ activesupport (= 4.2.4)
25
+ arel (~> 6.0)
26
+ activesupport (4.2.4)
27
+ i18n (~> 0.7)
28
+ json (~> 1.7, >= 1.7.7)
29
+ minitest (~> 5.1)
30
+ thread_safe (~> 0.3, >= 0.3.4)
31
+ tzinfo (~> 1.1)
32
+ arel (6.0.3)
33
+ ast (2.1.0)
34
+ astrolabe (1.3.1)
35
+ parser (~> 2.2)
36
+ builder (3.2.2)
37
+ coderay (1.1.0)
38
+ docile (1.1.5)
39
+ ffi (1.9.10)
40
+ formatador (0.2.5)
41
+ guard (2.13.0)
42
+ formatador (>= 0.2.4)
43
+ listen (>= 2.7, <= 4.0)
44
+ lumberjack (~> 1.0)
45
+ nenv (~> 0.1)
46
+ notiffany (~> 0.0)
47
+ pry (>= 0.9.12)
48
+ shellany (~> 0.0)
49
+ thor (>= 0.18.1)
50
+ guard-compat (1.2.1)
51
+ guard-rubocop (1.2.0)
52
+ guard (~> 2.0)
53
+ rubocop (~> 0.20)
54
+ guard-test (2.0.6)
55
+ guard-compat (~> 1.2)
56
+ test-unit (~> 3.0)
57
+ hashery (2.1.1)
58
+ i18n (0.7.0)
59
+ json (1.8.3)
60
+ listen (3.0.3)
61
+ rb-fsevent (>= 0.9.3)
62
+ rb-inotify (>= 0.9)
63
+ lumberjack (1.0.9)
64
+ method_source (0.8.2)
65
+ mini_portile (0.6.2)
66
+ minitest (5.8.2)
67
+ msworddoc-extractor (0.2.0)
68
+ ruby-ole
69
+ ndr_support (3.1.1)
70
+ activerecord (>= 3.2.18, < 5.0.0)
71
+ activesupport (>= 3.2.18, < 5.0.0)
72
+ nenv (0.2.0)
73
+ nokogiri (1.6.6.2)
74
+ mini_portile (~> 0.6.0)
75
+ notiffany (0.0.8)
76
+ nenv (~> 0.1)
77
+ shellany (~> 0.0)
78
+ parser (2.2.3.0)
79
+ ast (>= 1.1, < 3.0)
80
+ pdf-reader (1.2.0)
81
+ Ascii85 (~> 1.0.0)
82
+ hashery (~> 2.0)
83
+ ruby-rc4
84
+ power_assert (0.2.5)
85
+ powerpack (0.1.1)
86
+ pry (0.10.3)
87
+ coderay (~> 1.1.0)
88
+ method_source (~> 0.8.1)
89
+ slop (~> 3.4)
90
+ rainbow (2.0.0)
91
+ rake (10.4.2)
92
+ rb-fsevent (0.9.6)
93
+ rb-inotify (0.9.5)
94
+ ffi (>= 0.5.0)
95
+ roo (2.2.0)
96
+ nokogiri (~> 1)
97
+ rubyzip (~> 1.1, < 2.0.0)
98
+ roo-xls (1.0.0)
99
+ nokogiri
100
+ roo (>= 2.0.0beta1, < 3)
101
+ spreadsheet (> 0.9.0)
102
+ rubocop (0.34.2)
103
+ astrolabe (~> 1.3)
104
+ parser (>= 2.2.2.5, < 3.0)
105
+ powerpack (~> 0.1)
106
+ rainbow (>= 1.99.1, < 3.0)
107
+ ruby-progressbar (~> 1.4)
108
+ ruby-ole (1.2.11.8)
109
+ ruby-progressbar (1.7.5)
110
+ ruby-rc4 (0.1.5)
111
+ rubyzip (1.1.7)
112
+ shellany (0.0.1)
113
+ simplecov (0.10.0)
114
+ docile (~> 1.1.0)
115
+ json (~> 1.8)
116
+ simplecov-html (~> 0.10.0)
117
+ simplecov-html (0.10.0)
118
+ slop (3.6.0)
119
+ spreadsheet (1.0.3)
120
+ ruby-ole (>= 1.0)
121
+ terminal-notifier-guard (1.6.4)
122
+ test-unit (3.1.5)
123
+ power_assert
124
+ thor (0.19.1)
125
+ thread_safe (0.3.5)
126
+ tzinfo (1.2.2)
127
+ thread_safe (~> 0.1)
128
+
129
+ PLATFORMS
130
+ ruby
131
+
132
+ DEPENDENCIES
133
+ activesupport (~> 4.2.0)
134
+ bundler (~> 1.7)
135
+ guard
136
+ guard-rubocop
137
+ guard-test
138
+ minitest
139
+ ndr_import!
140
+ rake (~> 10.0)
141
+ simplecov
142
+ terminal-notifier-guard
143
+
144
+ BUNDLED WITH
145
+ 1.10.6