turbot-runner 0.1.45 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZWFhM2Y1MWE5Y2FjOWMzZjQ3YjNlNjIwYTgyMDg5ZmVmMjUzMmY2Mw==
4
+ ODg2MmNiYWYyYzA1YjQyMTBiNjU1ZmMzMzU3YjU4OTRkNDAyYzdhMw==
5
5
  data.tar.gz: !binary |-
6
- NDExODU0YmJkMGUwNDZkNDhhYTc4MTcxYjc3MTE5OGNmMThiYmUwNQ==
6
+ ZDVhZjA4NDVmZjMyYmI1OGMxZDlhNGU4NWY2MDk2NDc1YjYxNDM2MQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZTFiYTNmOWUwMjRjY2E2ZjgwZTBmNDU1NDJhMjRlYzA0NTkzNjIwZjMwMWRl
10
- OWEwMDQxZjU2OWQwYWM3OWE3OGQxYWU5Y2M0ZmExYWFiYzU3YmNiNjNkZWE0
11
- ZGZhOTZlYjc2NmY0ZTdmMzBiOGYyOTI3OGMyMzRlNzJlMzM5YTQ=
9
+ MmQyMjczNjRjZDAwZmM4YWZjY2Y3ZmExZDE0NzNkMWQ3NWI2OTFhOWU5ZGE4
10
+ ZGQ2ZGQwNWNlNTIxMWUyZTAyZjMzMmViZTQwNzAxZmJiMmRjZTI0ZWU5ODlk
11
+ YjY4YTEyZTY5YmEwODkwNjc4MDk1YzI0NDI1ODE3YWRjNTRlNjk=
12
12
  data.tar.gz: !binary |-
13
- OWY0ZDE5ZTBhOGI2MGEzNDM2OWU1NTkxMmQ4NTIzMzliZDNiOTM1ZjlkOWYx
14
- YWYxOWMyODNiOTYxZjhkNzAwNzRkYmIwZjY2MDllN2MyNjA3MzViNWI2NDRj
15
- ZjVhYTY0ODM3NDBhZTk5ZmExMWIzYjQ0MzFmNDYzZDQ4NzZiMjM=
13
+ M2YxNjc1NTFhY2JhYzQxMTg1Y2M2NTk2YTBhOTMwOWZkYTkyY2I4ZjVmOGY5
14
+ MzhlYjY1MzQ2Njc1MWVmZDMxYjBiNzE0YjRlZTU4M2I2MjQ3ZTY5NzI2YWY2
15
+ ZTZjOTUzYTRjZTM3MDNhMDkyYWY2ZDk2NDhhODYwNTBmYjYwM2E=
@@ -4,6 +4,10 @@ require 'pathname'
4
4
 
5
5
  module TurbotRunner
6
6
  class Runner
7
+ RC_OK = 0
8
+ RC_SCRAPER_FAILED = 1
9
+ RC_TRANSFORMER_FAILED = 2
10
+
7
11
  attr_reader :base_directory
8
12
 
9
13
  def initialize(directory, options={})
@@ -21,19 +25,32 @@ module TurbotRunner
21
25
  end
22
26
  end
23
27
 
24
- def run
28
+ def run(opts={})
25
29
  set_up_output_directory
26
30
 
27
- succeeded = run_script(scraper_config)
31
+ if opts[:scraper_provided]
32
+ scraper_succeeded = true
33
+ else
34
+ scraper_succeeded = run_script(scraper_config)
35
+ end
36
+
28
37
  # Run the transformers even if the scraper fails
38
+ transformers_succeeded = true
29
39
  transformers.each do |transformer_config|
30
40
  config = transformer_config.merge(
31
41
  :base_directory => @base_directory,
32
42
  :duplicates_allowed => duplicates_allowed
33
43
  )
34
- succeeded = run_script(config, input_file=scraper_output_file) && succeeded
44
+ transformers_succeeded = run_script(config, input_file=scraper_output_file) && transformers_succeeded
45
+ end
46
+
47
+ if !scraper_succeeded
48
+ RC_SCRAPER_FAILED
49
+ elsif !transformers_succeeded
50
+ RC_TRANSFORMER_FAILED
51
+ else
52
+ RC_OK
35
53
  end
36
- succeeded
37
54
  end
38
55
 
39
56
  def set_up_output_directory
@@ -1,3 +1,3 @@
1
1
  module TurbotRunner
2
- VERSION = '0.1.45'
2
+ VERSION = '0.2.0'
3
3
  end
@@ -19,7 +19,7 @@ describe TurbotRunner::Runner do
19
19
  end
20
20
 
21
21
  it 'returns true' do
22
- expect(@runner.run).to be(true)
22
+ expect(@runner).to succeed
23
23
  end
24
24
  end
25
25
 
@@ -46,7 +46,7 @@ describe TurbotRunner::Runner do
46
46
  end
47
47
 
48
48
  it 'returns true' do
49
- expect(@runner.run).to be(true)
49
+ expect(@runner).to succeed
50
50
  end
51
51
  end
52
52
 
@@ -63,7 +63,7 @@ describe TurbotRunner::Runner do
63
63
  end
64
64
 
65
65
  it 'returns true' do
66
- expect(@runner.run).to be(true)
66
+ expect(@runner).to succeed
67
67
  end
68
68
  end
69
69
 
@@ -106,7 +106,7 @@ describe TurbotRunner::Runner do
106
106
  end
107
107
 
108
108
  it 'returns false' do
109
- expect(@runner.run).to be(false)
109
+ expect(@runner).to fail_in_scraper
110
110
  end
111
111
 
112
112
  it 'writes error to stderr' do
@@ -129,7 +129,7 @@ describe TurbotRunner::Runner do
129
129
  end
130
130
 
131
131
  it 'returns true' do
132
- expect(@runner.run).to be(true)
132
+ expect(@runner).to succeed
133
133
  end
134
134
  end
135
135
 
@@ -139,7 +139,7 @@ describe TurbotRunner::Runner do
139
139
  end
140
140
 
141
141
  it 'returns false' do
142
- expect(@runner.run).to be(false)
142
+ expect(@runner).to fail_in_transformer
143
143
  end
144
144
 
145
145
  it 'writes error to stderr' do
@@ -180,21 +180,21 @@ describe TurbotRunner::Runner do
180
180
  end
181
181
 
182
182
  it 'returns true' do
183
- expect(@runner.run).to be(true)
183
+ expect(@runner).to succeed
184
184
  end
185
185
  end
186
186
 
187
187
  context 'with a scraper that produces an invalid record' do
188
188
  it 'returns false' do
189
189
  @runner = test_runner('invalid-record-bot')
190
- expect(@runner.run).to be(false)
190
+ expect(@runner).to fail_in_scraper
191
191
  end
192
192
  end
193
193
 
194
194
  context 'with a scraper that produces invalid JSON' do
195
195
  it 'returns false' do
196
196
  @runner = test_runner('invalid-json-bot')
197
- expect(@runner.run).to be(false)
197
+ expect(@runner).to fail_in_scraper
198
198
  end
199
199
  end
200
200
 
@@ -209,7 +209,7 @@ describe TurbotRunner::Runner do
209
209
  :timeout => 1,
210
210
  :log_to_file => true
211
211
  )
212
- expect(@runner.run).to be(false)
212
+ expect(@runner).to fail_in_scraper
213
213
  end
214
214
  end
215
215
 
@@ -219,7 +219,7 @@ describe TurbotRunner::Runner do
219
219
  end
220
220
 
221
221
  it 'returns false' do
222
- expect(@runner.run).to be(false)
222
+ expect(@runner).to fail_in_scraper
223
223
  end
224
224
  end
225
225
 
@@ -239,7 +239,7 @@ describe TurbotRunner::Runner do
239
239
  end
240
240
 
241
241
  it 'raises returns false' do
242
- expect(@runner.run).to be(false)
242
+ expect(@runner).to fail_in_scraper
243
243
  end
244
244
  end
245
245
 
@@ -249,7 +249,7 @@ describe TurbotRunner::Runner do
249
249
  end
250
250
 
251
251
  it 'raises returns false' do
252
- expect(@runner.run).to be(true)
252
+ expect(@runner).to succeed
253
253
  end
254
254
  end
255
255
  end
@@ -330,6 +330,27 @@ RSpec::Matchers.define :have_output do |expected|
330
330
  end
331
331
 
332
332
 
333
+ RSpec::Matchers.define(:succeed) do
334
+ match do |runner|
335
+ expect(runner.run).to eq(TurbotRunner::Runner::RC_OK)
336
+ end
337
+ end
338
+
339
+
340
+ RSpec::Matchers.define(:fail_in_scraper) do
341
+ match do |runner|
342
+ expect(runner.run).to eq(TurbotRunner::Runner::RC_SCRAPER_FAILED)
343
+ end
344
+ end
345
+
346
+
347
+ RSpec::Matchers.define(:fail_in_transformer) do
348
+ match do |runner|
349
+ expect(runner.run).to eq(TurbotRunner::Runner::RC_TRANSFORMER_FAILED)
350
+ end
351
+ end
352
+
353
+
333
354
  RSpec::Matchers.define :have_error_output_matching do |expected|
334
355
  match do |actual|
335
356
  runner, script = actual
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: turbot-runner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.45
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenCorporates
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-16 00:00:00.000000000 Z
11
+ date: 2015-07-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport