oni 1.0.0 → 2.0.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 +7 -15
- data/.travis.yml +4 -2
- data/doc/changelog.md +5 -0
- data/lib/oni/daemon.rb +8 -2
- data/lib/oni/version.rb +1 -1
- data/lib/oni/worker.rb +15 -0
- data/spec/oni/daemon_spec.rb +21 -1
- metadata +76 -116
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
|
-
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
OTE4MzgzNjMxZDI5YzZhYjVmYWQ2OTUzZWE1MTI5NzY5YzUzNWY0ZjY4MjNl
|
10
|
-
MzhhN2JkOGFjNTEzMzk2ODU0YjlhNTE5YmY2NGQ3MzMxZTI5MDk3YmFjZWU5
|
11
|
-
YjYwZmI5MmU0NGFmNjkwY2RhMGIxMzk1NDUwYzg4OTUwZGFiNTQ=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
NjAzNWExYjhmNWI0ZWQzMjY2NWY0NTMwYjQ1MjZlNjExNDg2NjJlNWY5MmNl
|
14
|
-
ZGY2Y2JiMTExMDgwNGE3ODVlMDJiNjk5NWRmMWM1ZjYwODg4YmQzNWMxYTUz
|
15
|
-
ZDFiNjcxZGM0OTdiYTBhYWZmMjE3MjcxOWVlZmY2MDZmMmMzODc=
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 2a436542360d389809d0b76b7108599fbb75bfe1
|
4
|
+
data.tar.gz: 778e26a13382c6f4fe71acbaeff5f1a6b3c76b99
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e6bd9b3db19847a9b3c52cc16e59d373290a74a2ba5c07c07004c7adb5ee9e24dbbfde99c3ccda1871591264f79e5c94634796624547f06a1749bed472673e92
|
7
|
+
data.tar.gz: 665c8b07e6728aa0aee95f869338d9a910b96e5b9cfa1f313a027f0c2077c3e97e36c33077750991a208506efd4a74768d57ed571f9c4381e798abb425875cbb
|
data/.travis.yml
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
---
|
2
|
-
script: rake
|
2
|
+
script: bundle exec rake
|
3
3
|
|
4
4
|
rvm:
|
5
5
|
- 1.9.3
|
@@ -8,7 +8,7 @@ rvm:
|
|
8
8
|
- jruby
|
9
9
|
- jruby-head
|
10
10
|
- jruby-1.7.4
|
11
|
-
- rbx-2.
|
11
|
+
- rbx-2.2.1
|
12
12
|
|
13
13
|
notifications:
|
14
14
|
email:
|
@@ -21,3 +21,5 @@ notifications:
|
|
21
21
|
branches:
|
22
22
|
only:
|
23
23
|
- master
|
24
|
+
|
25
|
+
#cache: bundler
|
data/doc/changelog.md
CHANGED
data/lib/oni/daemon.rb
CHANGED
@@ -101,7 +101,12 @@ module Oni
|
|
101
101
|
mapper = create_mapper
|
102
102
|
input = mapper.map_input(message)
|
103
103
|
worker = option(:worker).new(*input)
|
104
|
-
|
104
|
+
|
105
|
+
begin
|
106
|
+
output = worker.process
|
107
|
+
rescue => error
|
108
|
+
error(error, worker.extra_error_data)
|
109
|
+
end
|
105
110
|
|
106
111
|
return mapper.map_output(output)
|
107
112
|
end
|
@@ -139,8 +144,9 @@ module Oni
|
|
139
144
|
# exception occured, not from the main thread.
|
140
145
|
#
|
141
146
|
# @param [StandardError] error
|
147
|
+
# @param [Mixed] extra_data Extra data made available to the method.
|
142
148
|
#
|
143
|
-
def error(error)
|
149
|
+
def error(error, extra_data = nil)
|
144
150
|
raise error
|
145
151
|
end
|
146
152
|
|
data/lib/oni/version.rb
CHANGED
data/lib/oni/worker.rb
CHANGED
@@ -14,5 +14,20 @@ module Oni
|
|
14
14
|
def process
|
15
15
|
raise NotImplementedError, 'You must implement #process yourself'
|
16
16
|
end
|
17
|
+
|
18
|
+
##
|
19
|
+
# Method for returning (optional) extra data that should be sent to
|
20
|
+
# {Oni::Daemon#error} upon encountering an error. This method can be used
|
21
|
+
# to for example return the mapped input so that it can be sent to Rollbar.
|
22
|
+
#
|
23
|
+
# @example
|
24
|
+
# def extra_error_data
|
25
|
+
# return {:user_id => current_user.id}
|
26
|
+
# end
|
27
|
+
#
|
28
|
+
# @return [Mixed]
|
29
|
+
#
|
30
|
+
def extra_error_data
|
31
|
+
end
|
17
32
|
end # Worker
|
18
33
|
end # Oni
|
data/spec/oni/daemon_spec.rb
CHANGED
@@ -22,6 +22,10 @@ describe Oni::Daemon do
|
|
22
22
|
def process
|
23
23
|
return @number * 2
|
24
24
|
end
|
25
|
+
|
26
|
+
def extra_error_data
|
27
|
+
return @number
|
28
|
+
end
|
25
29
|
end
|
26
30
|
|
27
31
|
Class.new(Oni::Daemon) do
|
@@ -43,6 +47,10 @@ describe Oni::Daemon do
|
|
43
47
|
yield({:number => 10})
|
44
48
|
end
|
45
49
|
|
50
|
+
def error(error, extra_data = nil)
|
51
|
+
raise "#{error.message}: #{extra_data}"
|
52
|
+
end
|
53
|
+
|
46
54
|
def complete(message, output, timings)
|
47
55
|
@message = message
|
48
56
|
@output = output
|
@@ -133,7 +141,7 @@ describe Oni::Daemon do
|
|
133
141
|
Class.new(example_daemon) do
|
134
142
|
set :threads, 0
|
135
143
|
|
136
|
-
def error(error)
|
144
|
+
def error(error, extra_data = nil)
|
137
145
|
raise 'custom error'
|
138
146
|
end
|
139
147
|
end
|
@@ -151,4 +159,16 @@ describe Oni::Daemon do
|
|
151
159
|
lambda { daemon.start }.should raise_error(RuntimeError, 'custom error')
|
152
160
|
end
|
153
161
|
end
|
162
|
+
|
163
|
+
context 'error handling with extra data' do
|
164
|
+
example 'include the extra data' do
|
165
|
+
instance = example_daemon.new
|
166
|
+
|
167
|
+
instance.option(:worker).any_instance.stub(:process) { raise 'example' }
|
168
|
+
|
169
|
+
block = lambda { instance.run_worker(:number => 10) }
|
170
|
+
|
171
|
+
block.should raise_error(RuntimeError, 'example: 10')
|
172
|
+
end
|
173
|
+
end
|
154
174
|
end
|
metadata
CHANGED
@@ -1,134 +1,93 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: oni
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
|
-
authors:
|
6
|
+
authors:
|
7
7
|
- Yorick Peterse
|
8
8
|
- Wilco van Duinkerken
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
|
13
|
+
date: 2013-12-16 00:00:00 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
15
16
|
name: rake
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
requirements:
|
18
|
-
- - ! '>='
|
19
|
-
- !ruby/object:Gem::Version
|
20
|
-
version: '0'
|
21
|
-
type: :development
|
22
17
|
prerelease: false
|
23
|
-
|
24
|
-
requirements:
|
25
|
-
-
|
26
|
-
-
|
27
|
-
|
28
|
-
|
29
|
-
name: bundler
|
30
|
-
requirement: !ruby/object:Gem::Requirement
|
31
|
-
requirements:
|
32
|
-
- - ! '>='
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: '0'
|
18
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
19
|
+
requirements:
|
20
|
+
- &id002
|
21
|
+
- ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: "0"
|
35
24
|
type: :development
|
25
|
+
version_requirements: *id001
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: bundler
|
36
28
|
prerelease: false
|
37
|
-
|
38
|
-
requirements:
|
39
|
-
-
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
version: '0'
|
42
|
-
- !ruby/object:Gem::Dependency
|
43
|
-
name: rspec
|
44
|
-
requirement: !ruby/object:Gem::Requirement
|
45
|
-
requirements:
|
46
|
-
- - ! '>='
|
47
|
-
- !ruby/object:Gem::Version
|
48
|
-
version: '0'
|
29
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- *id002
|
49
32
|
type: :development
|
33
|
+
version_requirements: *id003
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: rspec
|
50
36
|
prerelease: false
|
51
|
-
|
52
|
-
requirements:
|
53
|
-
-
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version: '0'
|
56
|
-
- !ruby/object:Gem::Dependency
|
57
|
-
name: yard
|
58
|
-
requirement: !ruby/object:Gem::Requirement
|
59
|
-
requirements:
|
60
|
-
- - ! '>='
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: '0'
|
37
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- *id002
|
63
40
|
type: :development
|
41
|
+
version_requirements: *id004
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: yard
|
64
44
|
prerelease: false
|
65
|
-
|
66
|
-
requirements:
|
67
|
-
-
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: '0'
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: simplecov
|
72
|
-
requirement: !ruby/object:Gem::Requirement
|
73
|
-
requirements:
|
74
|
-
- - ! '>='
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: '0'
|
45
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- *id002
|
77
48
|
type: :development
|
49
|
+
version_requirements: *id005
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
name: simplecov
|
78
52
|
prerelease: false
|
79
|
-
|
80
|
-
requirements:
|
81
|
-
-
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: '0'
|
84
|
-
- !ruby/object:Gem::Dependency
|
85
|
-
name: kramdown
|
86
|
-
requirement: !ruby/object:Gem::Requirement
|
87
|
-
requirements:
|
88
|
-
- - ! '>='
|
89
|
-
- !ruby/object:Gem::Version
|
90
|
-
version: '0'
|
53
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
54
|
+
requirements:
|
55
|
+
- *id002
|
91
56
|
type: :development
|
57
|
+
version_requirements: *id006
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: kramdown
|
92
60
|
prerelease: false
|
93
|
-
|
94
|
-
requirements:
|
95
|
-
-
|
96
|
-
- !ruby/object:Gem::Version
|
97
|
-
version: '0'
|
98
|
-
- !ruby/object:Gem::Dependency
|
99
|
-
name: ci_reporter
|
100
|
-
requirement: !ruby/object:Gem::Requirement
|
101
|
-
requirements:
|
102
|
-
- - ! '>='
|
103
|
-
- !ruby/object:Gem::Version
|
104
|
-
version: '0'
|
61
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
62
|
+
requirements:
|
63
|
+
- *id002
|
105
64
|
type: :development
|
65
|
+
version_requirements: *id007
|
66
|
+
- !ruby/object:Gem::Dependency
|
67
|
+
name: ci_reporter
|
106
68
|
prerelease: false
|
107
|
-
|
108
|
-
requirements:
|
109
|
-
-
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
version: '0'
|
112
|
-
- !ruby/object:Gem::Dependency
|
113
|
-
name: aws-sdk
|
114
|
-
requirement: !ruby/object:Gem::Requirement
|
115
|
-
requirements:
|
116
|
-
- - ! '>='
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
version: '0'
|
69
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- *id002
|
119
72
|
type: :development
|
73
|
+
version_requirements: *id008
|
74
|
+
- !ruby/object:Gem::Dependency
|
75
|
+
name: aws-sdk
|
120
76
|
prerelease: false
|
121
|
-
|
122
|
-
requirements:
|
123
|
-
-
|
124
|
-
|
125
|
-
|
77
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- *id002
|
80
|
+
type: :development
|
81
|
+
version_requirements: *id009
|
126
82
|
description: Framework for building concurrent daemons in Ruby.
|
127
83
|
email:
|
128
84
|
executables: []
|
85
|
+
|
129
86
|
extensions: []
|
87
|
+
|
130
88
|
extra_rdoc_files: []
|
131
|
-
|
89
|
+
|
90
|
+
files:
|
132
91
|
- .gitignore
|
133
92
|
- .travis.yml
|
134
93
|
- .yardopts
|
@@ -161,30 +120,31 @@ files:
|
|
161
120
|
- task/tag.rake
|
162
121
|
- task/test.rake
|
163
122
|
homepage:
|
164
|
-
licenses:
|
123
|
+
licenses:
|
165
124
|
- MIT
|
166
125
|
metadata: {}
|
126
|
+
|
167
127
|
post_install_message:
|
168
128
|
rdoc_options: []
|
169
|
-
|
129
|
+
|
130
|
+
require_paths:
|
170
131
|
- lib
|
171
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
172
|
-
requirements:
|
173
|
-
- -
|
174
|
-
- !ruby/object:Gem::Version
|
132
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
133
|
+
requirements:
|
134
|
+
- - ">="
|
135
|
+
- !ruby/object:Gem::Version
|
175
136
|
version: 1.9.3
|
176
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
177
|
-
requirements:
|
178
|
-
-
|
179
|
-
- !ruby/object:Gem::Version
|
180
|
-
version: '0'
|
137
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
138
|
+
requirements:
|
139
|
+
- *id002
|
181
140
|
requirements: []
|
141
|
+
|
182
142
|
rubyforge_project:
|
183
|
-
rubygems_version: 2.1.
|
143
|
+
rubygems_version: 2.1.10
|
184
144
|
signing_key:
|
185
145
|
specification_version: 4
|
186
146
|
summary: Framework for building concurrent daemons in Ruby.
|
187
|
-
test_files:
|
147
|
+
test_files:
|
188
148
|
- spec/oni/configurable_spec.rb
|
189
149
|
- spec/oni/daemon_spec.rb
|
190
150
|
- spec/oni/daemons/sqs_spec.rb
|