ncs_mdes_warehouse 0.4.1 → 0.5.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.
- data/CHANGELOG.md +27 -0
- data/Rakefile +2 -2
- data/lib/ncs_navigator/warehouse.rb +2 -0
- data/lib/ncs_navigator/warehouse/configuration.rb +50 -0
- data/lib/ncs_navigator/warehouse/hooks.rb +21 -0
- data/lib/ncs_navigator/warehouse/hooks/etl_status_email.rb +88 -0
- data/lib/ncs_navigator/warehouse/mailer_templates/etl_status_email/failure_message.text.erb +8 -0
- data/lib/ncs_navigator/warehouse/mailer_templates/etl_status_email/success_message.text.erb +7 -0
- data/lib/ncs_navigator/warehouse/stringify_trace.rb +31 -0
- data/lib/ncs_navigator/warehouse/transform_load.rb +23 -3
- data/lib/ncs_navigator/warehouse/transform_status.rb +11 -2
- data/lib/ncs_navigator/warehouse/transformers/database.rb +13 -1
- data/lib/ncs_navigator/warehouse/transformers/enum_transformer.rb +65 -20
- data/lib/ncs_navigator/warehouse/transformers/subprocess_transformer.rb +4 -1
- data/lib/ncs_navigator/warehouse/transformers/vdr_xml/reader.rb +8 -0
- data/lib/ncs_navigator/warehouse/version.rb +1 -1
- data/ncs_mdes_warehouse.gemspec +1 -0
- data/spec/navigator.ini +3 -0
- data/spec/ncs_navigator/warehouse/configuration_spec.rb +79 -2
- data/spec/ncs_navigator/warehouse/data_mapper_spec.rb +1 -1
- data/spec/ncs_navigator/warehouse/database_initializer_spec.rb +1 -1
- data/spec/ncs_navigator/warehouse/hooks/etl_status_email_spec.rb +126 -0
- data/spec/ncs_navigator/warehouse/models/mdes_model_spec.rb +1 -1
- data/spec/ncs_navigator/warehouse/postgresql/pgpass_spec.rb +1 -1
- data/spec/ncs_navigator/warehouse/stringify_trace_spec.rb +58 -0
- data/spec/ncs_navigator/warehouse/table_modeler_spec.rb +1 -1
- data/spec/ncs_navigator/warehouse/transform_load_spec.rb +119 -5
- data/spec/ncs_navigator/warehouse/transform_status_spec.rb +32 -1
- data/spec/ncs_navigator/warehouse/transformers/database_spec.rb +11 -1
- data/spec/ncs_navigator/warehouse/transformers/enum_transformer_spec.rb +75 -1
- data/spec/ncs_navigator/warehouse/transformers/sampling_units_spec.rb +1 -1
- data/spec/ncs_navigator/warehouse/transformers/subprocess_transformer_spec.rb +7 -1
- data/spec/ncs_navigator/warehouse/transformers/vdr_xml/reader_spec.rb +14 -3
- data/spec/ncs_navigator/warehouse/transformers/vdr_xml_spec.rb +1 -1
- data/spec/ncs_navigator/warehouse/xml_emitter_spec.rb +1 -1
- data/spec/ncs_navigator/warehouse_spec.rb +1 -1
- data/spec/spec_helper.rb +3 -1
- metadata +307 -154
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require 'spec_helper'
|
2
2
|
|
3
3
|
module NcsNavigator::Warehouse
|
4
4
|
class SampleRecordishThing
|
@@ -32,4 +32,35 @@ module NcsNavigator::Warehouse
|
|
32
32
|
end
|
33
33
|
end
|
34
34
|
end
|
35
|
+
|
36
|
+
describe TransformError do
|
37
|
+
describe '.for_exception' do
|
38
|
+
let(:exception) { begin; raise IndexError, 'Pick a different one'; rescue => e; e; end }
|
39
|
+
let(:actual) { TransformError.for_exception(exception, 'What is happening?') }
|
40
|
+
|
41
|
+
it 'provides a message' do
|
42
|
+
actual.message.should_not be_nil
|
43
|
+
end
|
44
|
+
|
45
|
+
describe 'the message' do
|
46
|
+
let(:message) { actual.message }
|
47
|
+
|
48
|
+
it 'includes the provided context' do
|
49
|
+
message.should =~ /What is happening\?/
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'includes the exception type' do
|
53
|
+
message.should =~ /IndexError/
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'includes the exception message' do
|
57
|
+
message.should =~ /Pick a different one/
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'includes the stack trace' do
|
61
|
+
message.should =~ /#{File.basename(__FILE__)}\:\s*\d+/
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
35
66
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require 'spec_helper'
|
2
2
|
|
3
3
|
module NcsNavigator::Warehouse::Transformers
|
4
4
|
describe Database do
|
@@ -277,6 +277,16 @@ module NcsNavigator::Warehouse::Transformers
|
|
277
277
|
should == 'Elephant graveyard'
|
278
278
|
end
|
279
279
|
|
280
|
+
it 'strips leading and trailing whitespace' do
|
281
|
+
model_row(:address_type_other => "\n\t Elephant graveyard\t ").address_type_oth.
|
282
|
+
should == 'Elephant graveyard'
|
283
|
+
end
|
284
|
+
|
285
|
+
it 'does not try to strip whitespace when not possible' do
|
286
|
+
model_row(:address_id => -7).address_id.should == '-7'
|
287
|
+
# expect no errors
|
288
|
+
end
|
289
|
+
|
280
290
|
describe 'and unused columns' do
|
281
291
|
it 'fails with unused columns if requested' do
|
282
292
|
options[:on_unused] = :fail
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require 'spec_helper'
|
2
2
|
|
3
3
|
require 'ncs_navigator/warehouse/data_mapper'
|
4
4
|
|
@@ -128,6 +128,80 @@ module NcsNavigator::Warehouse::Transformers
|
|
128
128
|
# in `before`
|
129
129
|
end
|
130
130
|
end
|
131
|
+
|
132
|
+
describe 'with an enumeration that throws an exception' do
|
133
|
+
let(:failing_enum) {
|
134
|
+
Class.new do
|
135
|
+
include Enumerable
|
136
|
+
|
137
|
+
def initialize(records); @records = records; end
|
138
|
+
|
139
|
+
def each
|
140
|
+
@records.each_with_index do |r, i|
|
141
|
+
if i == 2
|
142
|
+
raise IndexError, "don't like 2"
|
143
|
+
else
|
144
|
+
yield r
|
145
|
+
end
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end.new(records)
|
149
|
+
}
|
150
|
+
|
151
|
+
subject { EnumTransformer.new(config, failing_enum) }
|
152
|
+
|
153
|
+
let(:error) {
|
154
|
+
transform_status.should have(1).transform_errors
|
155
|
+
transform_status.transform_errors.first
|
156
|
+
}
|
157
|
+
|
158
|
+
before do
|
159
|
+
records.each do |m|
|
160
|
+
m.stub!(:valid?).and_return(true)
|
161
|
+
m.stub!(:save).and_return(true)
|
162
|
+
end
|
163
|
+
|
164
|
+
subject.transform(transform_status)
|
165
|
+
end
|
166
|
+
|
167
|
+
it 'records the exception type' do
|
168
|
+
error.message.should =~ /IndexError/
|
169
|
+
end
|
170
|
+
|
171
|
+
it 'records the exception message' do
|
172
|
+
error.message.should =~ /don't like 2/
|
173
|
+
end
|
174
|
+
|
175
|
+
it 'records the stacktrace' do
|
176
|
+
error.message.should =~ /#{File.basename(__FILE__)}:\s*\d+/
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
180
|
+
describe 'with an enumeration that yields a transform error' do
|
181
|
+
before do
|
182
|
+
records.each do |m|
|
183
|
+
m.should_receive(:valid?).and_return(true)
|
184
|
+
m.should_receive(:save).and_return(true)
|
185
|
+
end
|
186
|
+
|
187
|
+
records[1, 0] = NcsNavigator::Warehouse::TransformError.
|
188
|
+
new(:message => 'I give up', :id => -922)
|
189
|
+
|
190
|
+
subject.transform(transform_status)
|
191
|
+
end
|
192
|
+
|
193
|
+
it 'saves all the good records' do
|
194
|
+
# in before
|
195
|
+
end
|
196
|
+
|
197
|
+
it 'associates the error with the status' do
|
198
|
+
transform_status.transform_errors.collect(&:message).should == ['I give up']
|
199
|
+
end
|
200
|
+
|
201
|
+
it 'ignores any provided error id' do
|
202
|
+
transform_status.transform_errors.first.id.should be_nil
|
203
|
+
end
|
204
|
+
end
|
131
205
|
end
|
132
206
|
end
|
133
207
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require 'spec_helper'
|
2
2
|
|
3
3
|
module NcsNavigator::Warehouse::Transformers
|
4
4
|
describe SubprocessTransformer do
|
@@ -183,6 +183,7 @@ module NcsNavigator::Warehouse::Transformers
|
|
183
183
|
before do
|
184
184
|
write_script do |f|
|
185
185
|
f.puts 'echo $SOME_ENV'
|
186
|
+
f.puts 'echo $BUNDLE_GEMFILE'
|
186
187
|
end
|
187
188
|
|
188
189
|
options[:environment] = { 'SOME_ENV' => 'staging' }
|
@@ -194,6 +195,11 @@ module NcsNavigator::Warehouse::Transformers
|
|
194
195
|
messages.first.should == 'staging'
|
195
196
|
end
|
196
197
|
|
198
|
+
it 'excludes the parent bundler environment' do
|
199
|
+
ENV['BUNDLE_GEMFILE'].should_not be_nil # setup
|
200
|
+
messages.last.should == ''
|
201
|
+
end
|
202
|
+
|
197
203
|
it 'does not monkey with the parent environment' do
|
198
204
|
ENV['SOME_ENV'].should be_nil
|
199
205
|
end
|
@@ -1,10 +1,21 @@
|
|
1
|
-
require
|
1
|
+
require 'spec_helper'
|
2
2
|
|
3
3
|
class NcsNavigator::Warehouse::Transformers::VdrXml
|
4
4
|
describe Reader, :use_mdes do
|
5
|
+
let(:filename) { File.expand_path('../made_up_vdr_xml.xml', __FILE__) }
|
6
|
+
let(:reader) { Reader.new(spec_config, filename) }
|
7
|
+
|
8
|
+
describe '#name' do
|
9
|
+
it 'includes the filename when present' do
|
10
|
+
reader.name.should == "VDR XML #{filename}"
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'includes the IO string rep if no filename' do
|
14
|
+
Reader.new(spec_config, StringIO.new).name.should =~ /VDR XML #<StringIO/
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
5
18
|
describe '#each', :slow do
|
6
|
-
let(:filename) { File.expand_path('../made_up_vdr_xml.xml', __FILE__) }
|
7
|
-
let(:reader) { Reader.new(spec_config, filename) }
|
8
19
|
let(:ssu) { reader.detect { |rec| rec.class.name =~ /Ssu$/ } }
|
9
20
|
let(:person) { reader.detect { |rec| rec.class.name =~ /Person$/ } }
|
10
21
|
let(:link_contact) { reader.detect { |rec| rec.class.name =~ /LinkContact$/ } }
|
data/spec/spec_helper.rb
CHANGED
@@ -103,7 +103,9 @@ RSpec.configure do |config|
|
|
103
103
|
###### tmpdir
|
104
104
|
|
105
105
|
config.after do
|
106
|
-
|
106
|
+
# Not sure how the tmpdir could be gone if the instance var is
|
107
|
+
# set, but it seems to happen in CI sometimes.
|
108
|
+
@tmpdir.rmtree if (@tmpdir && @tmpdir.exist? && !ENV['KEEP_TMP'])
|
107
109
|
end
|
108
110
|
|
109
111
|
# @return [Pathname] the path to an existing temporary director
|
metadata
CHANGED
@@ -1,288 +1,424 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: ncs_mdes_warehouse
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 11
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 5
|
9
|
+
- 0
|
10
|
+
version: 0.5.0
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Rhett Sutphin
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2012-05-22 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
15
21
|
name: ncs_mdes
|
16
|
-
|
22
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
17
23
|
none: false
|
18
|
-
requirements:
|
24
|
+
requirements:
|
19
25
|
- - ~>
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
hash: 1
|
28
|
+
segments:
|
29
|
+
- 0
|
30
|
+
- 5
|
31
|
+
version: "0.5"
|
22
32
|
type: :runtime
|
23
33
|
prerelease: false
|
24
|
-
|
25
|
-
- !ruby/object:Gem::Dependency
|
34
|
+
requirement: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
26
36
|
name: ncs_navigator_configuration
|
27
|
-
|
37
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
28
38
|
none: false
|
29
|
-
requirements:
|
39
|
+
requirements:
|
30
40
|
- - ~>
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
hash: 15
|
43
|
+
segments:
|
44
|
+
- 0
|
45
|
+
- 2
|
46
|
+
version: "0.2"
|
33
47
|
type: :runtime
|
34
48
|
prerelease: false
|
35
|
-
|
36
|
-
- !ruby/object:Gem::Dependency
|
49
|
+
requirement: *id002
|
50
|
+
- !ruby/object:Gem::Dependency
|
37
51
|
name: activesupport
|
38
|
-
|
52
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
39
53
|
none: false
|
40
|
-
requirements:
|
54
|
+
requirements:
|
41
55
|
- - ~>
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
hash: 7
|
58
|
+
segments:
|
59
|
+
- 3
|
60
|
+
- 0
|
61
|
+
version: "3.0"
|
44
62
|
type: :runtime
|
45
63
|
prerelease: false
|
46
|
-
|
47
|
-
- !ruby/object:Gem::Dependency
|
64
|
+
requirement: *id003
|
65
|
+
- !ruby/object:Gem::Dependency
|
48
66
|
name: i18n
|
49
|
-
|
67
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
50
68
|
none: false
|
51
|
-
requirements:
|
69
|
+
requirements:
|
52
70
|
- - ~>
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
hash: 3
|
73
|
+
segments:
|
74
|
+
- 0
|
75
|
+
- 4
|
76
|
+
version: "0.4"
|
55
77
|
type: :runtime
|
56
78
|
prerelease: false
|
57
|
-
|
58
|
-
- !ruby/object:Gem::Dependency
|
79
|
+
requirement: *id004
|
80
|
+
- !ruby/object:Gem::Dependency
|
59
81
|
name: thor
|
60
|
-
|
82
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
61
83
|
none: false
|
62
|
-
requirements:
|
84
|
+
requirements:
|
63
85
|
- - ~>
|
64
|
-
- !ruby/object:Gem::Version
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
hash: 43
|
88
|
+
segments:
|
89
|
+
- 0
|
90
|
+
- 14
|
91
|
+
- 6
|
65
92
|
version: 0.14.6
|
66
93
|
type: :runtime
|
67
94
|
prerelease: false
|
68
|
-
|
69
|
-
- !ruby/object:Gem::Dependency
|
95
|
+
requirement: *id005
|
96
|
+
- !ruby/object:Gem::Dependency
|
70
97
|
name: rubyzip
|
71
|
-
|
98
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
72
99
|
none: false
|
73
|
-
requirements:
|
100
|
+
requirements:
|
74
101
|
- - ~>
|
75
|
-
- !ruby/object:Gem::Version
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
hash: 51
|
104
|
+
segments:
|
105
|
+
- 0
|
106
|
+
- 9
|
107
|
+
- 4
|
76
108
|
version: 0.9.4
|
77
109
|
type: :runtime
|
78
110
|
prerelease: false
|
79
|
-
|
80
|
-
- !ruby/object:Gem::Dependency
|
111
|
+
requirement: *id006
|
112
|
+
- !ruby/object:Gem::Dependency
|
81
113
|
name: childprocess
|
82
|
-
|
114
|
+
version_requirements: &id007 !ruby/object:Gem::Requirement
|
83
115
|
none: false
|
84
|
-
requirements:
|
116
|
+
requirements:
|
85
117
|
- - ~>
|
86
|
-
- !ruby/object:Gem::Version
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
hash: 17
|
120
|
+
segments:
|
121
|
+
- 0
|
122
|
+
- 2
|
123
|
+
- 3
|
87
124
|
version: 0.2.3
|
88
125
|
type: :runtime
|
89
126
|
prerelease: false
|
90
|
-
|
91
|
-
- !ruby/object:Gem::Dependency
|
127
|
+
requirement: *id007
|
128
|
+
- !ruby/object:Gem::Dependency
|
92
129
|
name: json
|
93
|
-
|
130
|
+
version_requirements: &id008 !ruby/object:Gem::Requirement
|
94
131
|
none: false
|
95
|
-
requirements:
|
132
|
+
requirements:
|
96
133
|
- - ~>
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
hash: 3
|
136
|
+
segments:
|
137
|
+
- 1
|
138
|
+
- 6
|
139
|
+
version: "1.6"
|
99
140
|
type: :runtime
|
100
141
|
prerelease: false
|
101
|
-
|
102
|
-
- !ruby/object:Gem::Dependency
|
142
|
+
requirement: *id008
|
143
|
+
- !ruby/object:Gem::Dependency
|
103
144
|
name: nokogiri
|
104
|
-
|
145
|
+
version_requirements: &id009 !ruby/object:Gem::Requirement
|
105
146
|
none: false
|
106
|
-
requirements:
|
147
|
+
requirements:
|
107
148
|
- - ~>
|
108
|
-
- !ruby/object:Gem::Version
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
hash: 3
|
151
|
+
segments:
|
152
|
+
- 1
|
153
|
+
- 5
|
154
|
+
- 0
|
109
155
|
version: 1.5.0
|
110
156
|
type: :runtime
|
111
157
|
prerelease: false
|
112
|
-
|
113
|
-
- !ruby/object:Gem::Dependency
|
158
|
+
requirement: *id009
|
159
|
+
- !ruby/object:Gem::Dependency
|
114
160
|
name: builder
|
115
|
-
|
161
|
+
version_requirements: &id010 !ruby/object:Gem::Requirement
|
116
162
|
none: false
|
117
|
-
requirements:
|
118
|
-
- -
|
119
|
-
- !ruby/object:Gem::Version
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
hash: 15
|
167
|
+
segments:
|
168
|
+
- 2
|
169
|
+
- 1
|
170
|
+
- 2
|
120
171
|
version: 2.1.2
|
121
172
|
type: :runtime
|
122
173
|
prerelease: false
|
123
|
-
|
124
|
-
- !ruby/object:Gem::Dependency
|
174
|
+
requirement: *id010
|
175
|
+
- !ruby/object:Gem::Dependency
|
125
176
|
name: dm-core
|
126
|
-
|
177
|
+
version_requirements: &id011 !ruby/object:Gem::Requirement
|
127
178
|
none: false
|
128
|
-
requirements:
|
179
|
+
requirements:
|
129
180
|
- - ~>
|
130
|
-
- !ruby/object:Gem::Version
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
hash: 31
|
183
|
+
segments:
|
184
|
+
- 1
|
185
|
+
- 2
|
186
|
+
- 0
|
131
187
|
version: 1.2.0
|
132
188
|
type: :runtime
|
133
189
|
prerelease: false
|
134
|
-
|
135
|
-
- !ruby/object:Gem::Dependency
|
190
|
+
requirement: *id011
|
191
|
+
- !ruby/object:Gem::Dependency
|
136
192
|
name: dm-constraints
|
137
|
-
|
193
|
+
version_requirements: &id012 !ruby/object:Gem::Requirement
|
138
194
|
none: false
|
139
|
-
requirements:
|
195
|
+
requirements:
|
140
196
|
- - ~>
|
141
|
-
- !ruby/object:Gem::Version
|
197
|
+
- !ruby/object:Gem::Version
|
198
|
+
hash: 31
|
199
|
+
segments:
|
200
|
+
- 1
|
201
|
+
- 2
|
202
|
+
- 0
|
142
203
|
version: 1.2.0
|
143
204
|
type: :runtime
|
144
205
|
prerelease: false
|
145
|
-
|
146
|
-
- !ruby/object:Gem::Dependency
|
206
|
+
requirement: *id012
|
207
|
+
- !ruby/object:Gem::Dependency
|
147
208
|
name: dm-migrations
|
148
|
-
|
209
|
+
version_requirements: &id013 !ruby/object:Gem::Requirement
|
149
210
|
none: false
|
150
|
-
requirements:
|
211
|
+
requirements:
|
151
212
|
- - ~>
|
152
|
-
- !ruby/object:Gem::Version
|
213
|
+
- !ruby/object:Gem::Version
|
214
|
+
hash: 31
|
215
|
+
segments:
|
216
|
+
- 1
|
217
|
+
- 2
|
218
|
+
- 0
|
153
219
|
version: 1.2.0
|
154
220
|
type: :runtime
|
155
221
|
prerelease: false
|
156
|
-
|
157
|
-
- !ruby/object:Gem::Dependency
|
222
|
+
requirement: *id013
|
223
|
+
- !ruby/object:Gem::Dependency
|
158
224
|
name: dm-transactions
|
159
|
-
|
225
|
+
version_requirements: &id014 !ruby/object:Gem::Requirement
|
160
226
|
none: false
|
161
|
-
requirements:
|
227
|
+
requirements:
|
162
228
|
- - ~>
|
163
|
-
- !ruby/object:Gem::Version
|
229
|
+
- !ruby/object:Gem::Version
|
230
|
+
hash: 31
|
231
|
+
segments:
|
232
|
+
- 1
|
233
|
+
- 2
|
234
|
+
- 0
|
164
235
|
version: 1.2.0
|
165
236
|
type: :runtime
|
166
237
|
prerelease: false
|
167
|
-
|
168
|
-
- !ruby/object:Gem::Dependency
|
238
|
+
requirement: *id014
|
239
|
+
- !ruby/object:Gem::Dependency
|
169
240
|
name: dm-validations
|
170
|
-
|
241
|
+
version_requirements: &id015 !ruby/object:Gem::Requirement
|
171
242
|
none: false
|
172
|
-
requirements:
|
243
|
+
requirements:
|
173
244
|
- - ~>
|
174
|
-
- !ruby/object:Gem::Version
|
245
|
+
- !ruby/object:Gem::Version
|
246
|
+
hash: 31
|
247
|
+
segments:
|
248
|
+
- 1
|
249
|
+
- 2
|
250
|
+
- 0
|
175
251
|
version: 1.2.0
|
176
252
|
type: :runtime
|
177
253
|
prerelease: false
|
178
|
-
|
179
|
-
- !ruby/object:Gem::Dependency
|
254
|
+
requirement: *id015
|
255
|
+
- !ruby/object:Gem::Dependency
|
180
256
|
name: dm-types
|
181
|
-
|
257
|
+
version_requirements: &id016 !ruby/object:Gem::Requirement
|
182
258
|
none: false
|
183
|
-
requirements:
|
259
|
+
requirements:
|
184
260
|
- - ~>
|
185
|
-
- !ruby/object:Gem::Version
|
261
|
+
- !ruby/object:Gem::Version
|
262
|
+
hash: 31
|
263
|
+
segments:
|
264
|
+
- 1
|
265
|
+
- 2
|
266
|
+
- 0
|
186
267
|
version: 1.2.0
|
187
268
|
type: :runtime
|
188
269
|
prerelease: false
|
189
|
-
|
190
|
-
- !ruby/object:Gem::Dependency
|
270
|
+
requirement: *id016
|
271
|
+
- !ruby/object:Gem::Dependency
|
191
272
|
name: dm-aggregates
|
192
|
-
|
273
|
+
version_requirements: &id017 !ruby/object:Gem::Requirement
|
193
274
|
none: false
|
194
|
-
requirements:
|
275
|
+
requirements:
|
195
276
|
- - ~>
|
196
|
-
- !ruby/object:Gem::Version
|
277
|
+
- !ruby/object:Gem::Version
|
278
|
+
hash: 31
|
279
|
+
segments:
|
280
|
+
- 1
|
281
|
+
- 2
|
282
|
+
- 0
|
197
283
|
version: 1.2.0
|
198
284
|
type: :runtime
|
199
285
|
prerelease: false
|
200
|
-
|
201
|
-
- !ruby/object:Gem::Dependency
|
286
|
+
requirement: *id017
|
287
|
+
- !ruby/object:Gem::Dependency
|
202
288
|
name: dm-postgres-adapter
|
203
|
-
|
289
|
+
version_requirements: &id018 !ruby/object:Gem::Requirement
|
204
290
|
none: false
|
205
|
-
requirements:
|
291
|
+
requirements:
|
206
292
|
- - ~>
|
207
|
-
- !ruby/object:Gem::Version
|
293
|
+
- !ruby/object:Gem::Version
|
294
|
+
hash: 31
|
295
|
+
segments:
|
296
|
+
- 1
|
297
|
+
- 2
|
298
|
+
- 0
|
208
299
|
version: 1.2.0
|
209
300
|
type: :runtime
|
210
301
|
prerelease: false
|
211
|
-
|
212
|
-
- !ruby/object:Gem::Dependency
|
302
|
+
requirement: *id018
|
303
|
+
- !ruby/object:Gem::Dependency
|
213
304
|
name: bcdatabase
|
214
|
-
|
305
|
+
version_requirements: &id019 !ruby/object:Gem::Requirement
|
215
306
|
none: false
|
216
|
-
requirements:
|
307
|
+
requirements:
|
217
308
|
- - ~>
|
218
|
-
- !ruby/object:Gem::Version
|
219
|
-
|
309
|
+
- !ruby/object:Gem::Version
|
310
|
+
hash: 13
|
311
|
+
segments:
|
312
|
+
- 1
|
313
|
+
- 1
|
314
|
+
version: "1.1"
|
220
315
|
type: :runtime
|
221
316
|
prerelease: false
|
222
|
-
|
223
|
-
- !ruby/object:Gem::Dependency
|
317
|
+
requirement: *id019
|
318
|
+
- !ruby/object:Gem::Dependency
|
319
|
+
name: actionmailer
|
320
|
+
version_requirements: &id020 !ruby/object:Gem::Requirement
|
321
|
+
none: false
|
322
|
+
requirements:
|
323
|
+
- - ~>
|
324
|
+
- !ruby/object:Gem::Version
|
325
|
+
hash: 7
|
326
|
+
segments:
|
327
|
+
- 3
|
328
|
+
- 0
|
329
|
+
version: "3.0"
|
330
|
+
type: :runtime
|
331
|
+
prerelease: false
|
332
|
+
requirement: *id020
|
333
|
+
- !ruby/object:Gem::Dependency
|
224
334
|
name: rspec
|
225
|
-
|
335
|
+
version_requirements: &id021 !ruby/object:Gem::Requirement
|
226
336
|
none: false
|
227
|
-
requirements:
|
337
|
+
requirements:
|
228
338
|
- - ~>
|
229
|
-
- !ruby/object:Gem::Version
|
230
|
-
|
339
|
+
- !ruby/object:Gem::Version
|
340
|
+
hash: 15
|
341
|
+
segments:
|
342
|
+
- 2
|
343
|
+
- 6
|
344
|
+
version: "2.6"
|
231
345
|
type: :development
|
232
346
|
prerelease: false
|
233
|
-
|
234
|
-
- !ruby/object:Gem::Dependency
|
347
|
+
requirement: *id021
|
348
|
+
- !ruby/object:Gem::Dependency
|
235
349
|
name: rake
|
236
|
-
|
350
|
+
version_requirements: &id022 !ruby/object:Gem::Requirement
|
237
351
|
none: false
|
238
|
-
requirements:
|
352
|
+
requirements:
|
239
353
|
- - ~>
|
240
|
-
- !ruby/object:Gem::Version
|
354
|
+
- !ruby/object:Gem::Version
|
355
|
+
hash: 63
|
356
|
+
segments:
|
357
|
+
- 0
|
358
|
+
- 9
|
359
|
+
- 2
|
241
360
|
version: 0.9.2
|
242
361
|
type: :development
|
243
362
|
prerelease: false
|
244
|
-
|
245
|
-
- !ruby/object:Gem::Dependency
|
363
|
+
requirement: *id022
|
364
|
+
- !ruby/object:Gem::Dependency
|
246
365
|
name: yard
|
247
|
-
|
366
|
+
version_requirements: &id023 !ruby/object:Gem::Requirement
|
248
367
|
none: false
|
249
|
-
requirements:
|
368
|
+
requirements:
|
250
369
|
- - ~>
|
251
|
-
- !ruby/object:Gem::Version
|
370
|
+
- !ruby/object:Gem::Version
|
371
|
+
hash: 7
|
372
|
+
segments:
|
373
|
+
- 0
|
374
|
+
- 7
|
375
|
+
- 2
|
252
376
|
version: 0.7.2
|
253
377
|
type: :development
|
254
378
|
prerelease: false
|
255
|
-
|
256
|
-
- !ruby/object:Gem::Dependency
|
379
|
+
requirement: *id023
|
380
|
+
- !ruby/object:Gem::Dependency
|
257
381
|
name: ci_reporter
|
258
|
-
|
382
|
+
version_requirements: &id024 !ruby/object:Gem::Requirement
|
259
383
|
none: false
|
260
|
-
requirements:
|
261
|
-
- - =
|
262
|
-
- !ruby/object:Gem::Version
|
384
|
+
requirements:
|
385
|
+
- - "="
|
386
|
+
- !ruby/object:Gem::Version
|
387
|
+
hash: 3
|
388
|
+
segments:
|
389
|
+
- 1
|
390
|
+
- 6
|
391
|
+
- 6
|
263
392
|
version: 1.6.6
|
264
393
|
type: :development
|
265
394
|
prerelease: false
|
266
|
-
|
267
|
-
- !ruby/object:Gem::Dependency
|
395
|
+
requirement: *id024
|
396
|
+
- !ruby/object:Gem::Dependency
|
268
397
|
name: fakefs
|
269
|
-
|
398
|
+
version_requirements: &id025 !ruby/object:Gem::Requirement
|
270
399
|
none: false
|
271
|
-
requirements:
|
400
|
+
requirements:
|
272
401
|
- - ~>
|
273
|
-
- !ruby/object:Gem::Version
|
402
|
+
- !ruby/object:Gem::Version
|
403
|
+
hash: 15
|
404
|
+
segments:
|
405
|
+
- 0
|
406
|
+
- 4
|
407
|
+
- 0
|
274
408
|
version: 0.4.0
|
275
409
|
type: :development
|
276
410
|
prerelease: false
|
277
|
-
|
411
|
+
requirement: *id025
|
278
412
|
description:
|
279
|
-
email:
|
413
|
+
email:
|
280
414
|
- r-sutphin@northwestern.edu
|
281
|
-
executables:
|
415
|
+
executables:
|
282
416
|
- mdes-wh
|
283
417
|
extensions: []
|
418
|
+
|
284
419
|
extra_rdoc_files: []
|
285
|
-
|
420
|
+
|
421
|
+
files:
|
286
422
|
- .gitignore
|
287
423
|
- .rspec
|
288
424
|
- .rvmrc
|
@@ -567,11 +703,16 @@ files:
|
|
567
703
|
- lib/ncs_navigator/warehouse/data_mapper.rb
|
568
704
|
- lib/ncs_navigator/warehouse/data_mapper_patches.rb
|
569
705
|
- lib/ncs_navigator/warehouse/database_initializer.rb
|
706
|
+
- lib/ncs_navigator/warehouse/hooks.rb
|
707
|
+
- lib/ncs_navigator/warehouse/hooks/etl_status_email.rb
|
708
|
+
- lib/ncs_navigator/warehouse/mailer_templates/etl_status_email/failure_message.text.erb
|
709
|
+
- lib/ncs_navigator/warehouse/mailer_templates/etl_status_email/success_message.text.erb
|
570
710
|
- lib/ncs_navigator/warehouse/models.rb
|
571
711
|
- lib/ncs_navigator/warehouse/models/mdes_model.rb
|
572
712
|
- lib/ncs_navigator/warehouse/models/mdes_model_collection.rb
|
573
713
|
- lib/ncs_navigator/warehouse/postgresql.rb
|
574
714
|
- lib/ncs_navigator/warehouse/postgresql/pgpass.rb
|
715
|
+
- lib/ncs_navigator/warehouse/stringify_trace.rb
|
575
716
|
- lib/ncs_navigator/warehouse/table_modeler.rb
|
576
717
|
- lib/ncs_navigator/warehouse/table_modeler/mdes_ext.rb
|
577
718
|
- lib/ncs_navigator/warehouse/table_modeler/model_template.rb.erb
|
@@ -597,8 +738,10 @@ files:
|
|
597
738
|
- spec/ncs_navigator/warehouse/configuration_spec.rb
|
598
739
|
- spec/ncs_navigator/warehouse/data_mapper_spec.rb
|
599
740
|
- spec/ncs_navigator/warehouse/database_initializer_spec.rb
|
741
|
+
- spec/ncs_navigator/warehouse/hooks/etl_status_email_spec.rb
|
600
742
|
- spec/ncs_navigator/warehouse/models/mdes_model_spec.rb
|
601
743
|
- spec/ncs_navigator/warehouse/postgresql/pgpass_spec.rb
|
744
|
+
- spec/ncs_navigator/warehouse/stringify_trace_spec.rb
|
602
745
|
- spec/ncs_navigator/warehouse/table_modeler_spec.rb
|
603
746
|
- spec/ncs_navigator/warehouse/transform_load_spec.rb
|
604
747
|
- spec/ncs_navigator/warehouse/transform_status_spec.rb
|
@@ -613,33 +756,41 @@ files:
|
|
613
756
|
- spec/ncs_navigator/warehouse_spec.rb
|
614
757
|
- spec/spec_helper.rb
|
615
758
|
- spec/test_samples.csv
|
616
|
-
homepage:
|
759
|
+
homepage: ""
|
617
760
|
licenses: []
|
761
|
+
|
618
762
|
post_install_message:
|
619
763
|
rdoc_options: []
|
620
|
-
|
764
|
+
|
765
|
+
require_paths:
|
621
766
|
- lib
|
622
767
|
- generated_models
|
623
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
768
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
624
769
|
none: false
|
625
|
-
requirements:
|
626
|
-
- -
|
627
|
-
- !ruby/object:Gem::Version
|
628
|
-
|
629
|
-
|
770
|
+
requirements:
|
771
|
+
- - ">="
|
772
|
+
- !ruby/object:Gem::Version
|
773
|
+
hash: 3
|
774
|
+
segments:
|
775
|
+
- 0
|
776
|
+
version: "0"
|
777
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
630
778
|
none: false
|
631
|
-
requirements:
|
632
|
-
- -
|
633
|
-
- !ruby/object:Gem::Version
|
634
|
-
|
779
|
+
requirements:
|
780
|
+
- - ">="
|
781
|
+
- !ruby/object:Gem::Version
|
782
|
+
hash: 3
|
783
|
+
segments:
|
784
|
+
- 0
|
785
|
+
version: "0"
|
635
786
|
requirements: []
|
787
|
+
|
636
788
|
rubyforge_project:
|
637
|
-
rubygems_version: 1.8.
|
789
|
+
rubygems_version: 1.8.21
|
638
790
|
signing_key:
|
639
791
|
specification_version: 3
|
640
|
-
summary: Scripts and models for building and maintaining the MDES-based reporting
|
641
|
-
|
642
|
-
test_files:
|
792
|
+
summary: Scripts and models for building and maintaining the MDES-based reporting warehouse for NCS Navigator.
|
793
|
+
test_files:
|
643
794
|
- spec/bcdatabase/local_postgresql.yml
|
644
795
|
- spec/bcdatabase/public_ci_postgresql9.yml
|
645
796
|
- spec/bcdatabase/test_sqlite.yml
|
@@ -648,8 +799,10 @@ test_files:
|
|
648
799
|
- spec/ncs_navigator/warehouse/configuration_spec.rb
|
649
800
|
- spec/ncs_navigator/warehouse/data_mapper_spec.rb
|
650
801
|
- spec/ncs_navigator/warehouse/database_initializer_spec.rb
|
802
|
+
- spec/ncs_navigator/warehouse/hooks/etl_status_email_spec.rb
|
651
803
|
- spec/ncs_navigator/warehouse/models/mdes_model_spec.rb
|
652
804
|
- spec/ncs_navigator/warehouse/postgresql/pgpass_spec.rb
|
805
|
+
- spec/ncs_navigator/warehouse/stringify_trace_spec.rb
|
653
806
|
- spec/ncs_navigator/warehouse/table_modeler_spec.rb
|
654
807
|
- spec/ncs_navigator/warehouse/transform_load_spec.rb
|
655
808
|
- spec/ncs_navigator/warehouse/transform_status_spec.rb
|