sanford 0.18.1 → 0.18.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/sanford/connection_handler.rb +2 -2
- data/lib/sanford/error_handler.rb +7 -1
- data/lib/sanford/version.rb +1 -1
- data/sanford.gemspec +1 -1
- data/test/support/factory.rb +5 -0
- data/test/unit/connection_handler_tests.rb +2 -2
- data/test/unit/error_handler_tests.rb +3 -3
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
|
4
|
-
|
3
|
+
data.tar.gz: 2d39dcf06279924cb91e044fb914714e6a7efae1
|
4
|
+
metadata.gz: 332f6d1e003e14abd4c20eb30b1d9168b4e86404
|
5
5
|
SHA512:
|
6
|
-
|
7
|
-
|
6
|
+
data.tar.gz: 88c2e5e40a390a2aab63fd231b95007125a65756f3e00d6ad018f06a96875c300dffb3b725d8285140aca7d06025d41edf7fcadf36920befa8871aeff4111f41
|
7
|
+
metadata.gz: a4887a0f928f25f4ca8e29024dd21f00007e4a10059332f621b17758d4c3a8cce3138dbfa4a34bc4a6ced7c48e4a85146e7004ee0f853dcd128701d7f7139e62
|
@@ -51,7 +51,7 @@ module Sanford
|
|
51
51
|
error.set_backtrace(exception.backtrace)
|
52
52
|
self.handle_exception(error, @server_data, processed_service)
|
53
53
|
raise exception
|
54
|
-
rescue
|
54
|
+
rescue *Sanford::ErrorHandler::STANDARD_ERROR_CLASSES => exception
|
55
55
|
self.handle_exception(exception, @server_data, processed_service)
|
56
56
|
ensure
|
57
57
|
self.write_response(processed_service)
|
@@ -62,7 +62,7 @@ module Sanford
|
|
62
62
|
def write_response(processed_service)
|
63
63
|
begin
|
64
64
|
@connection.write_data processed_service.response.to_hash
|
65
|
-
rescue
|
65
|
+
rescue *Sanford::ErrorHandler::STANDARD_ERROR_CLASSES => exception
|
66
66
|
processed_service = self.handle_exception(
|
67
67
|
exception,
|
68
68
|
@server_data,
|
@@ -1,9 +1,15 @@
|
|
1
|
+
require 'dat-worker-pool/worker'
|
1
2
|
require 'sanford-protocol'
|
2
3
|
|
3
4
|
module Sanford
|
4
5
|
|
5
6
|
class ErrorHandler
|
6
7
|
|
8
|
+
# these are standard error classes that we rescue and run through any
|
9
|
+
# configured error procs; use the same standard error classes that
|
10
|
+
# dat-worker-pool rescues
|
11
|
+
STANDARD_ERROR_CLASSES = DatWorkerPool::Worker::STANDARD_ERROR_CLASSES
|
12
|
+
|
7
13
|
attr_reader :exception, :context, :error_procs
|
8
14
|
|
9
15
|
def initialize(exception, context_hash)
|
@@ -24,7 +30,7 @@ module Sanford
|
|
24
30
|
result = nil
|
25
31
|
begin
|
26
32
|
result = error_proc.call(@exception, @context)
|
27
|
-
rescue
|
33
|
+
rescue *STANDARD_ERROR_CLASSES => proc_exception
|
28
34
|
@exception = proc_exception
|
29
35
|
end
|
30
36
|
response ||= response_from_proc(result)
|
data/lib/sanford/version.rb
CHANGED
data/sanford.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |gem|
|
|
20
20
|
|
21
21
|
gem.add_development_dependency("assert", ["~> 2.16.1"])
|
22
22
|
|
23
|
-
gem.add_dependency("dat-tcp", ["~> 0.8.
|
23
|
+
gem.add_dependency("dat-tcp", ["~> 0.8.2"])
|
24
24
|
gem.add_dependency("much-plugin", ["~> 0.2.0"])
|
25
25
|
gem.add_dependency("sanford-protocol", ["~> 0.12.0"])
|
26
26
|
end
|
data/test/support/factory.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'assert/factory'
|
2
|
+
require 'sanford/error_handler'
|
2
3
|
|
3
4
|
module Factory
|
4
5
|
extend Assert::Factory
|
@@ -12,6 +13,10 @@ module Factory
|
|
12
13
|
exception
|
13
14
|
end
|
14
15
|
|
16
|
+
def self.sanford_std_error(message = nil)
|
17
|
+
self.exception(Sanford::ErrorHandler::STANDARD_ERROR_CLASSES.sample, message)
|
18
|
+
end
|
19
|
+
|
15
20
|
def self.protocol_response
|
16
21
|
Sanford::Protocol::Response.new(
|
17
22
|
[Factory.integer(999), Factory.text],
|
@@ -86,7 +86,7 @@ class Sanford::ConnectionHandler
|
|
86
86
|
|
87
87
|
class RunWithExceptionSetupTests < InitTests
|
88
88
|
setup do
|
89
|
-
@route_exception = Factory.
|
89
|
+
@route_exception = Factory.sanford_std_error
|
90
90
|
Assert.stub(@route, :run){ raise @route_exception }
|
91
91
|
Assert.stub(Sanford::ErrorHandler, :new) do |*args|
|
92
92
|
@error_handler_spy = ErrorHandlerSpy.new(*args)
|
@@ -265,7 +265,7 @@ class Sanford::ConnectionHandler
|
|
265
265
|
def initialize(exception, context_hash)
|
266
266
|
@passed_exception = exception
|
267
267
|
@context_hash = context_hash
|
268
|
-
@exception = Factory.
|
268
|
+
@exception = Factory.sanford_std_error
|
269
269
|
@response = Factory.protocol_response
|
270
270
|
@run_called = false
|
271
271
|
end
|
@@ -9,7 +9,7 @@ class Sanford::ErrorHandler
|
|
9
9
|
class UnitTests < Assert::Context
|
10
10
|
desc "Sanford::ErrorHandler"
|
11
11
|
setup do
|
12
|
-
@exception = Factory.
|
12
|
+
@exception = Factory.sanford_std_error
|
13
13
|
@server_data = Sanford::ServerData.new
|
14
14
|
@request = Sanford::Protocol::Request.new(Factory.string, {
|
15
15
|
Factory.string => Factory.string
|
@@ -160,7 +160,7 @@ class Sanford::ErrorHandler
|
|
160
160
|
class RunWithGenericErrorTests < RunWithNoResponseFromErrorProcSetupTests
|
161
161
|
desc "but with a generic error"
|
162
162
|
setup do
|
163
|
-
@exception = Factory.
|
163
|
+
@exception = Factory.sanford_std_error
|
164
164
|
|
165
165
|
@handler = @handler_class.new(@exception, @context_hash)
|
166
166
|
@response = @handler.run
|
@@ -178,7 +178,7 @@ class Sanford::ErrorHandler
|
|
178
178
|
desc "and run with error procs that throw exceptions"
|
179
179
|
setup do
|
180
180
|
@proc_exceptions = @error_proc_spies.reverse.map do |spy|
|
181
|
-
exception = Factory.
|
181
|
+
exception = Factory.sanford_std_error(@error_proc_spies.index(spy).to_s)
|
182
182
|
spy.raise_exception = exception
|
183
183
|
exception
|
184
184
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sanford
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.18.
|
4
|
+
version: 0.18.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Collin Redding
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2016-06-
|
13
|
+
date: 2016-06-29 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: assert
|
@@ -29,7 +29,7 @@ dependencies:
|
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 0.8.
|
32
|
+
version: 0.8.2
|
33
33
|
type: :runtime
|
34
34
|
version_requirements: *id002
|
35
35
|
- !ruby/object:Gem::Dependency
|