nats-rpc 0.2.0 → 0.2.1

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
  SHA256:
3
- metadata.gz: 44fabfaa7cd97660834477be41c1d0e5c5a356486ff1c75c94c0bc630606b3cd
4
- data.tar.gz: 8a11b1df463d9c93e55398b67d81b1199128f43bf552e3868d98d685ee901288
3
+ metadata.gz: 76d15f6aaa05c7fe3c035839a0444ab399db39b4ebb062fc2db51b0022344fdb
4
+ data.tar.gz: fa365e9c8eb54cbfaaa2dd078945f83c68acd0ea705ec139020f509014a81a97
5
5
  SHA512:
6
- metadata.gz: d1420dda28a352702bb562d5b50282938112e493774735ca303aa8c8fe0504bc2507cece10242b86ec5c4774ef8dcce4e04109bb965eb3aa72a625b605c65a2f
7
- data.tar.gz: d4abe8ef3971b379505ad3d3eb4fe940619bb37f5d932f290c83b529a14aa10eaf7049893d3c569a62fd012c0204d77986a3633eb894d4fddaa320a0284f3876
6
+ metadata.gz: 0e848321955b8e1f346415d088f32cb7b0e03264e1f810f4603c1b855ea1184e2a0e25b705c8543f397cbb5bac876485461a73b22c925ebae3a3d7db3cb3c929
7
+ data.tar.gz: 8703a66348a141b2ff6ff8d39580f6d429a2ec42bb997beadd12cae7a8b4caa15650cef9624f590ceca9f11ba08efed0589cc831bb721bb40138d6079b04af9b
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nats-rpc (0.2.0)
4
+ nats-rpc (0.2.1)
5
5
  binding_of_caller
6
6
  nats-pure
7
7
 
@@ -0,0 +1,14 @@
1
+ require_relative "../lib/nats/rpc"
2
+
3
+ client = NATS::RPC::Client.new
4
+ begin
5
+ data, payload = client.request 'errors', {}, timeout: 1, queue: 'e2e'
6
+ rescue NATS::RPC::RemoteError => rex
7
+ puts rex.remote_exception
8
+ puts rex
9
+ puts rex.backtrace.join("\n")
10
+
11
+ raise "remote_exception" unless rex.remote_exception == "NameError"
12
+ raise "rex" unless rex.to_s == "NameError (undefined local variable or method `asdf' for main:Object)"
13
+ raise "backtrace" unless rex.backtrace[0] == "e2e/servant_error.rb:5:in `block in <top (required)>'"
14
+ end
data/e2e/main.rb CHANGED
@@ -13,8 +13,6 @@ servant_a.serve 'testing', queue: "e2e", &block
13
13
  servant_b.serve 'testing', queue: "e2e", &block
14
14
  servant_uuid.serve 'testing', queue: "e2e", &block
15
15
 
16
- sleep 0.5
17
-
18
16
  10.times do
19
17
  load "e2e/client.rb"
20
18
  end
@@ -23,4 +21,8 @@ servant_a.kill
23
21
  servant_b.kill
24
22
  servant_uuid.kill
25
23
 
24
+ load "e2e/servant_error.rb"
25
+ load "e2e/client_error.rb"
26
26
 
27
+ puts ""
28
+ puts "OK"
@@ -0,0 +1,6 @@
1
+ require_relative "../lib/nats/rpc"
2
+
3
+ servant = NATS::RPC::Servant.new
4
+ servant.serve 'errors', queue: "e2e" do |params, subject|
5
+ asdf
6
+ end
@@ -22,7 +22,7 @@ module NATS
22
22
  when 2.0
23
23
  rex = RemoteError.new payload["message"]
24
24
  rex.set_backtrace payload["backtrace"]
25
-
25
+ rex.remote_exception = payload["exception"]
26
26
  raise rex
27
27
  else
28
28
  raise "Error code: #{data["code"]}"
@@ -1,6 +1,16 @@
1
1
  module NATS
2
2
  module RPC
3
3
  class RemoteError < StandardError
4
+ attr_accessor :remote_exception
5
+
6
+ def to_s
7
+ msg = super
8
+ "#{self.remote_exception} (#{msg})"
9
+ end
10
+
11
+ def message
12
+ super
13
+ end
4
14
  end
5
15
  end
6
16
  end
@@ -57,6 +57,7 @@ module NATS
57
57
 
58
58
  if block_call_exception
59
59
  err_msg = error_message(2.0, {
60
+ exception: block_call_exception.class.name,
60
61
  message: block_call_exception.message,
61
62
  backtrace: block_call_exception.backtrace
62
63
  })
@@ -1,5 +1,5 @@
1
1
  module NATS
2
2
  module RPC
3
- VERSION = "0.2.0"
3
+ VERSION = "0.2.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nats-rpc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matti Paksula
@@ -101,8 +101,10 @@ files:
101
101
  - bin/setup
102
102
  - docker-compose.yml
103
103
  - e2e/client.rb
104
+ - e2e/client_error.rb
104
105
  - e2e/main.rb
105
106
  - e2e/servant.rb
107
+ - e2e/servant_error.rb
106
108
  - lib/nats/rpc.rb
107
109
  - lib/nats/rpc/client.rb
108
110
  - lib/nats/rpc/errors.rb