oni 2.0.1 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/doc/changelog.md +5 -0
- data/lib/oni/daemon.rb +4 -18
- data/lib/oni/version.rb +1 -1
- data/lib/oni/worker.rb +0 -15
- data/spec/oni/daemon_spec.rb +0 -30
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
Y2JlMGI4N2NhZDZmMDdmYTVjNWY0ZjExY2E5YzlmNGVlOWQ0Y2FjNg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NjAyMmEwMDA0YzYwZjQ1ZWQzNWNjYjVmNGI5N2YxYmY1NTJmYjhjZg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ODZjNTI3ZjlkZjZlOTNkZmU5YmQ4YzE1Zjc2N2FjMzMxMjI3M2ZlNjFlNWRl
|
10
|
+
OGYzMDQ0YTgwMTFkYjE3MzJlOTQ5MGU2NGRmZDljMDk3NmU4YTYzM2Q4NTY4
|
11
|
+
MWJkZjM1ZDliOTEzMDM3ZDk0YzBkMTZjMjg1OGJjNmZhMjIxMDY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MDI0MjdmMTE2MGE4ZDA3ZGE0NWJlYzAyNjliYmQxMjIzZjQ1ZjlhOGU2MmIy
|
14
|
+
ZTljNjNkNDkzNTYyZWRmZDU5YzE2YTk4NWNmZmVlODZhY2IyMjFjYTA4Y2Uy
|
15
|
+
OWQ1MzY1YzdmNDUzM2U3YTBmODEzZTA5MDYzMjNlNjBkNzc0OGM=
|
data/doc/changelog.md
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
# @title Changelog
|
2
2
|
# Changelog
|
3
3
|
|
4
|
+
## 3.0.0 - December 17th, 2013
|
5
|
+
|
6
|
+
This release reverts the changes of version 2.0.0 and 2.0.1 as they proved to
|
7
|
+
be too problematic.
|
8
|
+
|
4
9
|
## 2.0.1 - December 17th, 2013
|
5
10
|
|
6
11
|
* Fixed a bug where the complete() callback would be executed upon worker
|
data/lib/oni/daemon.rb
CHANGED
@@ -87,17 +87,13 @@ module Oni
|
|
87
87
|
output = run_worker(message)
|
88
88
|
end
|
89
89
|
|
90
|
-
complete(message, output, timings)
|
90
|
+
complete(message, output, timings)
|
91
91
|
end
|
92
92
|
|
93
93
|
##
|
94
94
|
# Maps the input, runs the worker and then maps the output into something
|
95
95
|
# that the daemon can understand.
|
96
96
|
#
|
97
|
-
# If the worker's `process` method raises an error `false` is returned and
|
98
|
-
# the `complete` callback is skipped, otherwise the remapped output is
|
99
|
-
# returned.
|
100
|
-
#
|
101
97
|
# @param [Mixed] message
|
102
98
|
# @return [Mixed]
|
103
99
|
#
|
@@ -105,15 +101,9 @@ module Oni
|
|
105
101
|
mapper = create_mapper
|
106
102
|
input = mapper.map_input(message)
|
107
103
|
worker = option(:worker).new(*input)
|
108
|
-
output =
|
109
|
-
|
110
|
-
begin
|
111
|
-
output = mapper.map_output(worker.process)
|
112
|
-
rescue => error
|
113
|
-
error(error, worker.extra_error_data)
|
114
|
-
end
|
104
|
+
output = worker.process
|
115
105
|
|
116
|
-
return output
|
106
|
+
return mapper.map_output(output)
|
117
107
|
end
|
118
108
|
|
119
109
|
##
|
@@ -145,13 +135,9 @@ module Oni
|
|
145
135
|
# Called whenever an error is raised in the daemon, mapper or worker. By
|
146
136
|
# default this method just re-raises the error.
|
147
137
|
#
|
148
|
-
# Note that this callback method is called from a thread in which the
|
149
|
-
# exception occured, not from the main thread.
|
150
|
-
#
|
151
138
|
# @param [StandardError] error
|
152
|
-
# @param [Mixed] extra_data Extra data made available to the method.
|
153
139
|
#
|
154
|
-
def error(error
|
140
|
+
def error(error)
|
155
141
|
raise error
|
156
142
|
end
|
157
143
|
|
data/lib/oni/version.rb
CHANGED
data/lib/oni/worker.rb
CHANGED
@@ -14,20 +14,5 @@ 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
|
32
17
|
end # Worker
|
33
18
|
end # Oni
|
data/spec/oni/daemon_spec.rb
CHANGED
@@ -22,10 +22,6 @@ 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
|
29
25
|
end
|
30
26
|
|
31
27
|
Class.new(Oni::Daemon) do
|
@@ -159,30 +155,4 @@ describe Oni::Daemon do
|
|
159
155
|
lambda { daemon.start }.should raise_error(RuntimeError, 'custom error')
|
160
156
|
end
|
161
157
|
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
|
-
|
174
|
-
example 'skip the complete() callback upon failure' do
|
175
|
-
instance = example_daemon.new
|
176
|
-
|
177
|
-
instance.option(:worker).any_instance.stub(:process) { raise 'boom' }
|
178
|
-
|
179
|
-
block = lambda { instance.process(:number => 10) }
|
180
|
-
|
181
|
-
# The complete() callback should be skipped.
|
182
|
-
instance.should_not receive(:complete)
|
183
|
-
|
184
|
-
# Regular error handling should *not* be skipped.
|
185
|
-
block.should raise_error(RuntimeError, 'boom: 10')
|
186
|
-
end
|
187
|
-
end
|
188
158
|
end
|