bertrpc 0.3.2 → 0.3.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/VERSION +1 -1
- data/bertrpc.gemspec +4 -2
- data/lib/bertrpc/encodes.rb +7 -5
- data/lib/bertrpc/errors.rb +17 -8
- data/test/encodes_test.rb +4 -4
- data/test/error_test.rb +33 -0
- metadata +4 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.4
|
data/bertrpc.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{bertrpc}
|
5
|
-
s.version = "0.3.
|
5
|
+
s.version = "0.3.4"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Tom Preston-Werner"]
|
9
|
-
s.date = %q{2009-09-
|
9
|
+
s.date = %q{2009-09-25}
|
10
10
|
s.email = %q{tom@mojombo.com}
|
11
11
|
s.extra_rdoc_files = [
|
12
12
|
"LICENSE",
|
@@ -29,6 +29,7 @@ Gem::Specification.new do |s|
|
|
29
29
|
"lib/bertrpc/service.rb",
|
30
30
|
"test/action_test.rb",
|
31
31
|
"test/encodes_test.rb",
|
32
|
+
"test/error_test.rb",
|
32
33
|
"test/mod_test.rb",
|
33
34
|
"test/request_test.rb",
|
34
35
|
"test/service_test.rb",
|
@@ -42,6 +43,7 @@ Gem::Specification.new do |s|
|
|
42
43
|
s.test_files = [
|
43
44
|
"test/action_test.rb",
|
44
45
|
"test/encodes_test.rb",
|
46
|
+
"test/error_test.rb",
|
45
47
|
"test/mod_test.rb",
|
46
48
|
"test/request_test.rb",
|
47
49
|
"test/service_test.rb",
|
data/lib/bertrpc/encodes.rb
CHANGED
@@ -20,15 +20,17 @@ module BERTRPC
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def error(err)
|
23
|
-
|
23
|
+
level, code, klass, message, backtrace = err
|
24
|
+
|
25
|
+
case level
|
24
26
|
when :protocol
|
25
|
-
raise ProtocolError.new(
|
27
|
+
raise ProtocolError.new([code, message], klass, backtrace)
|
26
28
|
when :server
|
27
|
-
raise ServerError.new(
|
29
|
+
raise ServerError.new([code, message], klass, backtrace)
|
28
30
|
when :user
|
29
|
-
raise UserError.new(
|
31
|
+
raise UserError.new([code, message], klass, backtrace)
|
30
32
|
when :proxy
|
31
|
-
raise ProxyError.new(
|
33
|
+
raise ProxyError.new([code, message], klass, backtrace)
|
32
34
|
else
|
33
35
|
raise
|
34
36
|
end
|
data/lib/bertrpc/errors.rb
CHANGED
@@ -1,20 +1,29 @@
|
|
1
1
|
module BERTRPC
|
2
2
|
class BERTRPCError < StandardError
|
3
|
-
attr_accessor :code
|
4
|
-
|
3
|
+
attr_accessor :code, :original_exception
|
4
|
+
|
5
|
+
def initialize(msg = nil, klass = nil, bt = [])
|
5
6
|
case msg
|
6
7
|
when Array
|
7
|
-
|
8
|
-
super(msg[1])
|
9
|
-
when String
|
10
|
-
self.code = nil
|
11
|
-
super(msg)
|
8
|
+
code, message = msg
|
12
9
|
else
|
13
|
-
|
10
|
+
code, message = [0, msg]
|
11
|
+
end
|
12
|
+
|
13
|
+
if klass
|
14
|
+
self.original_exception = RemoteError.new("#{klass}: #{message}")
|
15
|
+
self.original_exception.set_backtrace(bt)
|
14
16
|
end
|
17
|
+
|
18
|
+
self.code = code
|
19
|
+
super(message)
|
15
20
|
end
|
16
21
|
end
|
17
22
|
|
23
|
+
class RemoteError < StandardError
|
24
|
+
|
25
|
+
end
|
26
|
+
|
18
27
|
class ConnectionError < BERTRPCError
|
19
28
|
|
20
29
|
end
|
data/test/encodes_test.rb
CHANGED
@@ -58,28 +58,28 @@ class EncodesTest < Test::Unit::TestCase
|
|
58
58
|
end
|
59
59
|
|
60
60
|
should "raise a ProtocolError error when protocol level error is returned" do
|
61
|
-
req = @enc.encode_ruby_request([:error, [:protocol, 1, "invalid"]])
|
61
|
+
req = @enc.encode_ruby_request([:error, [:protocol, 1, "class", "invalid", []]])
|
62
62
|
assert_raises(BERTRPC::ProtocolError) do
|
63
63
|
@enc.decode_bert_response(req)
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
67
67
|
should "raise a ServerError error when server level error is returned" do
|
68
|
-
req = @enc.encode_ruby_request([:error, [:server, 1, "invalid"]])
|
68
|
+
req = @enc.encode_ruby_request([:error, [:server, 1, "class", "invalid", []]])
|
69
69
|
assert_raises(BERTRPC::ServerError) do
|
70
70
|
@enc.decode_bert_response(req)
|
71
71
|
end
|
72
72
|
end
|
73
73
|
|
74
74
|
should "raise a UserError error when user level error is returned" do
|
75
|
-
req = @enc.encode_ruby_request([:error, [:user, 1, "invalid"]])
|
75
|
+
req = @enc.encode_ruby_request([:error, [:user, 1, "class", "invalid", []]])
|
76
76
|
assert_raises(BERTRPC::UserError) do
|
77
77
|
@enc.decode_bert_response(req)
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
81
81
|
should "raise a ProxyError error when proxy level error is returned" do
|
82
|
-
req = @enc.encode_ruby_request([:error, [:proxy, 1, "invalid"]])
|
82
|
+
req = @enc.encode_ruby_request([:error, [:proxy, 1, "class", "invalid", []]])
|
83
83
|
assert_raises(BERTRPC::ProxyError) do
|
84
84
|
@enc.decode_bert_response(req)
|
85
85
|
end
|
data/test/error_test.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class ErrorTest < Test::Unit::TestCase
|
4
|
+
context "Errors in general" do
|
5
|
+
should "be creatable with just a message string" do
|
6
|
+
begin
|
7
|
+
raise BERTRPC::BERTRPCError.new('msg')
|
8
|
+
rescue Object => e
|
9
|
+
assert_equal "msg", e.message
|
10
|
+
assert_equal 0, e.code
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
should "be creatable with a [code, message] array" do
|
15
|
+
begin
|
16
|
+
raise BERTRPC::BERTRPCError.new([7, 'msg'])
|
17
|
+
rescue Object => e
|
18
|
+
assert_equal "msg", e.message
|
19
|
+
assert_equal 7, e.code
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
should "record the original exception" do
|
24
|
+
begin
|
25
|
+
raise BERTRPC::BERTRPCError.new('msg', 'Error', ['foo', 'bar'])
|
26
|
+
rescue Object => e
|
27
|
+
assert_equal "msg", e.message
|
28
|
+
assert_equal "Error: msg", e.original_exception.message
|
29
|
+
assert_equal ['foo', 'bar'], e.original_exception.backtrace
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bertrpc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tom Preston-Werner
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-09-
|
12
|
+
date: 2009-09-25 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -48,6 +48,7 @@ files:
|
|
48
48
|
- lib/bertrpc/service.rb
|
49
49
|
- test/action_test.rb
|
50
50
|
- test/encodes_test.rb
|
51
|
+
- test/error_test.rb
|
51
52
|
- test/mod_test.rb
|
52
53
|
- test/request_test.rb
|
53
54
|
- test/service_test.rb
|
@@ -83,6 +84,7 @@ summary: BERTRPC is a Ruby BERT-RPC client library.
|
|
83
84
|
test_files:
|
84
85
|
- test/action_test.rb
|
85
86
|
- test/encodes_test.rb
|
87
|
+
- test/error_test.rb
|
86
88
|
- test/mod_test.rb
|
87
89
|
- test/request_test.rb
|
88
90
|
- test/service_test.rb
|