turbot-runner 0.1.45 → 0.2.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.
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