turbot-runner 0.0.3 → 0.0.4
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/prerun.rb +3 -0
- data/lib/turbot_runner/version.rb +1 -1
- data/lib/turbot_runner.rb +11 -4
- metadata +14 -10
- checksums.yaml +0 -15
data/lib/prerun.rb
ADDED
data/lib/turbot_runner.rb
CHANGED
@@ -4,6 +4,9 @@ module TurbotRunner
|
|
4
4
|
class ScriptError < StandardError; end
|
5
5
|
|
6
6
|
class BaseRunner
|
7
|
+
|
8
|
+
attr_reader :wait_thread
|
9
|
+
|
7
10
|
def initialize(bot_directory)
|
8
11
|
@bot_directory = bot_directory
|
9
12
|
|
@@ -26,12 +29,10 @@ module TurbotRunner
|
|
26
29
|
|
27
30
|
command = "#{interpreter_for(scraper_file)} #{scraper_file}"
|
28
31
|
data_type = @config['data_type']
|
29
|
-
|
30
32
|
begin
|
31
33
|
run_script_each_line(command) do |line|
|
32
34
|
record = JSON.parse(line)
|
33
35
|
errors = validate(record, data_type)
|
34
|
-
|
35
36
|
if errors.empty?
|
36
37
|
handle_valid_record(record, data_type)
|
37
38
|
|
@@ -63,7 +64,11 @@ module TurbotRunner
|
|
63
64
|
handle_successful_run
|
64
65
|
end
|
65
66
|
rescue ScriptError => e
|
66
|
-
|
67
|
+
if @interrupted
|
68
|
+
handle_interrupted_run
|
69
|
+
else
|
70
|
+
handle_failed_run
|
71
|
+
end
|
67
72
|
end
|
68
73
|
end
|
69
74
|
|
@@ -119,6 +124,7 @@ module TurbotRunner
|
|
119
124
|
def run_script_each_line(command, options={})
|
120
125
|
# TODO: handle timeouts, errors
|
121
126
|
Open3::popen2(command) do |stdin, stdout, wait_thread|
|
127
|
+
@wait_thread = wait_thread
|
122
128
|
if options[:input]
|
123
129
|
stdin.puts(options[:input])
|
124
130
|
stdin.close
|
@@ -156,7 +162,8 @@ module TurbotRunner
|
|
156
162
|
def interpreter_for(file)
|
157
163
|
case file
|
158
164
|
when /\.rb$/
|
159
|
-
|
165
|
+
prerun = File.expand_path("../prerun.rb", __FILE__)
|
166
|
+
"ruby -r#{prerun}"
|
160
167
|
when /\.py$/
|
161
168
|
'python'
|
162
169
|
else
|
metadata
CHANGED
@@ -1,18 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: turbot-runner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- OpenCorporates
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
12
|
+
date: 2014-07-02 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: json-schema
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
19
|
- - '='
|
18
20
|
- !ruby/object:Gem::Version
|
@@ -20,6 +22,7 @@ dependencies:
|
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
27
|
- - '='
|
25
28
|
- !ruby/object:Gem::Version
|
@@ -31,8 +34,13 @@ extensions: []
|
|
31
34
|
extra_rdoc_files: []
|
32
35
|
files:
|
33
36
|
- bin/rspec
|
37
|
+
- lib/prerun.rb
|
34
38
|
- lib/turbot_runner.rb
|
35
39
|
- lib/turbot_runner/version.rb
|
40
|
+
- spec/dummy-bot/manifest.json
|
41
|
+
- spec/dummy-bot/scraper.rb
|
42
|
+
- spec/dummy-bot/transformer.rb
|
43
|
+
- spec/turbot_runner_spec.rb
|
36
44
|
- schema/schemas/company-schema.json
|
37
45
|
- schema/schemas/includes/address.json
|
38
46
|
- schema/schemas/includes/base-statement.json
|
@@ -50,33 +58,29 @@ files:
|
|
50
58
|
- schema/schemas/share-parcel-schema.json
|
51
59
|
- schema/schemas/simple-licence-schema.json
|
52
60
|
- schema/schemas/subsidiary-relationship-schema.json
|
53
|
-
- spec/dummy-bot/manifest.json
|
54
|
-
- spec/dummy-bot/scraper.rb
|
55
|
-
- spec/dummy-bot/transformer.rb
|
56
|
-
- spec/turbot_runner_spec.rb
|
57
61
|
homepage: http://turbot.opencorporates.com/
|
58
62
|
licenses:
|
59
63
|
- MIT
|
60
|
-
metadata: {}
|
61
64
|
post_install_message:
|
62
65
|
rdoc_options: []
|
63
66
|
require_paths:
|
64
67
|
- lib
|
65
68
|
required_ruby_version: !ruby/object:Gem::Requirement
|
69
|
+
none: false
|
66
70
|
requirements:
|
67
71
|
- - ! '>='
|
68
72
|
- !ruby/object:Gem::Version
|
69
73
|
version: 1.9.2
|
70
74
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
75
|
+
none: false
|
71
76
|
requirements:
|
72
77
|
- - ! '>='
|
73
78
|
- !ruby/object:Gem::Version
|
74
79
|
version: '0'
|
75
80
|
requirements: []
|
76
81
|
rubyforge_project:
|
77
|
-
rubygems_version:
|
82
|
+
rubygems_version: 1.8.23
|
78
83
|
signing_key:
|
79
|
-
specification_version:
|
84
|
+
specification_version: 3
|
80
85
|
summary: Utilities for running bots with Turbot
|
81
86
|
test_files: []
|
82
|
-
has_rdoc:
|
checksums.yaml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
---
|
2
|
-
!binary "U0hBMQ==":
|
3
|
-
metadata.gz: !binary |-
|
4
|
-
Y2YxNWRlNmYwMTk4YjNmNzU5MmEyMGVjNGUzMTQ5ZTg3Y2NmNTllNg==
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
MjM2YTE3N2E2MTM1MmEzNmY1NmY0MWU1NDIxYzFhMDkxMzZiYmM4Ng==
|
7
|
-
SHA512:
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
OGFlZjRmMjUwMzY0ZmJkNjk2M2ExZmQ3ZmVmMjFmMmI3Y2Y0MmVhNjFkNThh
|
10
|
-
MjExOTMyZDI3MmI4YWZlM2NlYTQzYjZjZDI0Nzg1OTI1MjllNWJiMzBlMzBl
|
11
|
-
YzU2NmU3ZDUxZDliNDAyOTY1ZGQxMDhhYTU1OWQ4NWQwNjkzMTE=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MzRkYWNkMzIwZWNlNGQzNDExYzVmMmU4NjNmYTMwNGRlZmNhN2MyZTJjODQ4
|
14
|
-
MWY0Yzc2Njc0YWZlODViZjUzNjBlOWRjNmE1OTg1MGFiMjI2OWE5Y2JkODYy
|
15
|
-
OTY5NTE1YjBjNjhlOWFkNmJjM2Y0MTIzMjdjNmMzYmZjMDQwZGU=
|