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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c5f1accf3673547ce360de7dc566185944279d95
4
- data.tar.gz: 6d78cbc59f1a1adf3689d4f23bfc273e3f8ce30e
3
+ data.tar.gz: 2d39dcf06279924cb91e044fb914714e6a7efae1
4
+ metadata.gz: 332f6d1e003e14abd4c20eb30b1d9168b4e86404
5
5
  SHA512:
6
- metadata.gz: 00d138998988e74f24bedbd9af813ce3d50fa7ef0ae290e7755c3c2b91030280134d1e486d3a14e8d904823998aea003b123f3b1bdeb7ab1b7f7f9b95f63a609
7
- data.tar.gz: f318a74e317f3826c2c4315a476a486a1645b154a0388a40dbf75d5cead44a9ee62d1fa86dd79c25965d881e33941ad35d530828f2e551172da9df4b8c73d841
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 StandardError => exception
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 StandardError => exception
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 StandardError => proc_exception
33
+ rescue *STANDARD_ERROR_CLASSES => proc_exception
28
34
  @exception = proc_exception
29
35
  end
30
36
  response ||= response_from_proc(result)
@@ -1,3 +1,3 @@
1
1
  module Sanford
2
- VERSION = "0.18.1"
2
+ VERSION = "0.18.2"
3
3
  end
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.1"])
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
@@ -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.exception
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.exception
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.exception
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.exception
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.exception(RuntimeError, @error_proc_spies.index(spy).to_s)
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.1
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-15 00:00:00 Z
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.1
32
+ version: 0.8.2
33
33
  type: :runtime
34
34
  version_requirements: *id002
35
35
  - !ruby/object:Gem::Dependency