nats-rpc 0.2.0 → 0.2.1

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.
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