turbot-runner 0.1.9 → 0.1.10
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/lib/turbot_runner/runner.rb
CHANGED
@@ -16,24 +16,20 @@ module TurbotRunner
|
|
16
16
|
|
17
17
|
def run
|
18
18
|
FileUtils.mkdir_p(@output_directory)
|
19
|
-
|
20
|
-
|
21
|
-
|
19
|
+
succeeded = run_script(scraper_config)
|
20
|
+
# Run the transformers even if the scraper fails
|
22
21
|
transformers.each do |transformer_config|
|
23
|
-
|
22
|
+
succeeded = run_script(transformer_config, input_file=scraper_output_file) && succeeded
|
24
23
|
end
|
25
|
-
|
26
|
-
true
|
24
|
+
succeeded
|
27
25
|
end
|
28
26
|
|
29
27
|
def process_output
|
30
|
-
|
28
|
+
process_script_output(scraper_config)
|
31
29
|
|
32
30
|
transformers.each do |transformer_config|
|
33
|
-
|
31
|
+
process_script_output(transformer_config)
|
34
32
|
end
|
35
|
-
|
36
|
-
true
|
37
33
|
end
|
38
34
|
|
39
35
|
private
|
@@ -53,7 +49,7 @@ module TurbotRunner
|
|
53
49
|
def run_script(script_config, input_file=nil)
|
54
50
|
command = build_command(script_config[:file], input_file)
|
55
51
|
|
56
|
-
|
52
|
+
script_runner = ScriptRunner.new(
|
57
53
|
command,
|
58
54
|
output_file(script_config[:file]),
|
59
55
|
script_config,
|
@@ -61,7 +57,7 @@ module TurbotRunner
|
|
61
57
|
:timeout => @timeout
|
62
58
|
)
|
63
59
|
|
64
|
-
|
60
|
+
script_runner.run # returns boolean indicating success
|
65
61
|
end
|
66
62
|
|
67
63
|
def process_script_output(script_config)
|
@@ -4,5 +4,12 @@
|
|
4
4
|
"language": "ruby",
|
5
5
|
"data_type": "primary data",
|
6
6
|
"identifying_fields": ["licence_number"],
|
7
|
-
"files": ["scraper.rb"]
|
7
|
+
"files": ["scraper.rb", "transformer1.rb"],
|
8
|
+
"transformers": [
|
9
|
+
{
|
10
|
+
"file": "transformer1.rb",
|
11
|
+
"data_type": "simple-licence",
|
12
|
+
"identifying_fields": ["licence_number"]
|
13
|
+
}
|
14
|
+
]
|
8
15
|
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'json'
|
2
|
+
|
3
|
+
STDIN.each_line do |line|
|
4
|
+
raw_record = JSON.parse(line)
|
5
|
+
|
6
|
+
transformed_record = {
|
7
|
+
:company_name => 'Foo Widgets',
|
8
|
+
:company_jurisdiction => 'gb',
|
9
|
+
:licence_number => raw_record['licence_number'],
|
10
|
+
:source_url => raw_record['source_url'],
|
11
|
+
:sample_date => raw_record['sample_date'],
|
12
|
+
}
|
13
|
+
|
14
|
+
puts transformed_record.to_json
|
15
|
+
end
|
data/spec/lib/runner_spec.rb
CHANGED
@@ -126,6 +126,14 @@ describe TurbotRunner::Runner do
|
|
126
126
|
@runner.run
|
127
127
|
expect([@runner, 'scraper']).to have_error_output_matching(/Oh no/)
|
128
128
|
end
|
129
|
+
|
130
|
+
it 'still runs the transformers' do
|
131
|
+
expect(@runner).to receive(:run_script).once.with(
|
132
|
+
hash_including(:file=>"scraper.rb"))
|
133
|
+
expect(@runner).to receive(:run_script).once.with(
|
134
|
+
hash_including(:file=>"transformer1.rb"), anything)
|
135
|
+
@runner.run
|
136
|
+
end
|
129
137
|
end
|
130
138
|
|
131
139
|
context 'with a bot that crashes in transformer' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: turbot-runner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.10
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-11-
|
12
|
+
date: 2014-11-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json-schema
|
@@ -44,6 +44,7 @@ files:
|
|
44
44
|
- lib/turbot_runner/version.rb
|
45
45
|
- spec/bots/bot-that-crashes-in-scraper/manifest.json
|
46
46
|
- spec/bots/bot-that-crashes-in-scraper/scraper.rb
|
47
|
+
- spec/bots/bot-that-crashes-in-scraper/transformer1.rb
|
47
48
|
- spec/bots/bot-that-crashes-in-transformer/manifest.json
|
48
49
|
- spec/bots/bot-that-crashes-in-transformer/scraper.rb
|
49
50
|
- spec/bots/bot-that-crashes-in-transformer/transformer1.rb
|