nats-rpc 0.1.0 → 0.2.0

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: 9bb748ea87689c6701f4b41269a45d9bce89c1cb5cca5339e6402c75a70a29e5
4
- data.tar.gz: a1a7b05215716bf73ac3bcbf81af04a51fa80894eb3f6528f0670a77a379aff9
3
+ metadata.gz: 44fabfaa7cd97660834477be41c1d0e5c5a356486ff1c75c94c0bc630606b3cd
4
+ data.tar.gz: 8a11b1df463d9c93e55398b67d81b1199128f43bf552e3868d98d685ee901288
5
5
  SHA512:
6
- metadata.gz: b5426c450133b1159f6ae22c17fa5c8ec19309707145051e38c12ffe201c9786a54eb5a526c70585c4dc1f765f1ec858bd555531274b5e9d02097ac64a235dc8
7
- data.tar.gz: 208f24bd3dea9bce196242748f613d203717c0ee0076c1bf0bbf64c5d685b06c9838878ea9b88204d13f4acf4eaca4267a7f04754328c789a9d0e95b6eddedd0
6
+ metadata.gz: d1420dda28a352702bb562d5b50282938112e493774735ca303aa8c8fe0504bc2507cece10242b86ec5c4774ef8dcce4e04109bb965eb3aa72a625b605c65a2f
7
+ data.tar.gz: d4abe8ef3971b379505ad3d3eb4fe940619bb37f5d932f290c83b529a14aa10eaf7049893d3c569a62fd012c0204d77986a3633eb894d4fddaa320a0284f3876
data/Gemfile.lock CHANGED
@@ -1,12 +1,16 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nats-rpc (0.1.0)
4
+ nats-rpc (0.2.0)
5
+ binding_of_caller
5
6
  nats-pure
6
7
 
7
8
  GEM
8
9
  remote: https://rubygems.org/
9
10
  specs:
11
+ binding_of_caller (0.8.0)
12
+ debug_inspector (>= 0.0.1)
13
+ debug_inspector (0.0.3)
10
14
  diff-lcs (1.3)
11
15
  nats-pure (0.5.0)
12
16
  rake (10.5.0)
@@ -20,7 +20,10 @@ module NATS
20
20
  if data["status"] == "error"
21
21
  case data["code"]
22
22
  when 2.0
23
- raise RemoteError, payload
23
+ rex = RemoteError.new payload["message"]
24
+ rex.set_backtrace payload["backtrace"]
25
+
26
+ raise rex
24
27
  else
25
28
  raise "Error code: #{data["code"]}"
26
29
  end
@@ -55,7 +55,14 @@ module NATS
55
55
  end
56
56
  block_call_stopped_at = Time.now
57
57
 
58
- return @nats.publish reply, error_message(2.0, block_call_exception.message) if block_call_exception
58
+ if block_call_exception
59
+ err_msg = error_message(2.0, {
60
+ message: block_call_exception.message,
61
+ backtrace: block_call_exception.backtrace
62
+ })
63
+
64
+ return @nats.publish reply, err_msg
65
+ end
59
66
 
60
67
  value_as_json = nil
61
68
  begin
@@ -82,7 +89,7 @@ module NATS
82
89
  last_count_messages = 0
83
90
  loop do
84
91
  throughput = (last_count_messages - @count_messages).abs
85
- debug "s: #{subscribe_to} q: #{opts[:queue]} - msg: #{@count_messages} tput: #{throughput}/s errs json_parse: #{@count_json_parse_errors} block_call: #{@count_block_call_errors} to_json: #{@count_to_json_errors}"
92
+ NATS::RPC.stats "s: #{subscribe_to} q: #{opts[:queue]} - msg: #{@count_messages} tput: #{throughput}/s errs json_parse: #{@count_json_parse_errors} block_call: #{@count_block_call_errors} to_json: #{@count_to_json_errors}"
86
93
  last_count_messages = @count_messages
87
94
  sleep 1
88
95
  end
@@ -98,11 +105,6 @@ module NATS
98
105
  servant: @id
99
106
  }.to_json
100
107
  end
101
-
102
- def debug(str)
103
- return unless ENV["NATS_RPC_DEBUG"] == "true"
104
- puts str
105
- end
106
108
  end
107
109
  end
108
110
  end
@@ -1,5 +1,5 @@
1
1
  module NATS
2
2
  module RPC
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
data/lib/nats/rpc.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  $stdout.sync = true
2
2
  require 'nats/io/client'
3
3
  require 'json'
4
+ require 'binding_of_caller'
4
5
 
5
6
  require_relative "rpc/version"
6
7
  require_relative "rpc/servant"
@@ -27,5 +28,32 @@ module NATS
27
28
 
28
29
  opts
29
30
  end
31
+
32
+ def self.stats(str)
33
+ return unless ENV["NATS_RPC_STATS"] == "true"
34
+ puts str
35
+ end
36
+
37
+ def self.debug(*args)
38
+ return unless ENV["NATS_RPC_DEBUG"] == "true"
39
+
40
+ calling_instance_or_class_name = binding.of_caller(1).eval("self.class.name")
41
+ calling_method_name = caller_locations(1,1)[0].label
42
+
43
+ print "DEBUG #{calling_instance_or_class_name}##{calling_method_name} - "
44
+ inspected_arg_strings = []
45
+ for arg in args do
46
+ inspected_arg_strings << if arg.is_a? String
47
+ arg
48
+ elsif
49
+ arg.is_a? Array
50
+ "\n" + arg.inspect.split("\",").join("\n")
51
+ else
52
+ arg.inspect
53
+ end
54
+ end
55
+
56
+ puts inspected_arg_strings.join " "
57
+ end
30
58
  end
31
59
  end
data/nats-rpc.gemspec CHANGED
@@ -22,6 +22,7 @@ Gem::Specification.new do |spec|
22
22
  spec.require_paths = ["lib"]
23
23
 
24
24
  spec.add_dependency "nats-pure"
25
+ spec.add_dependency "binding_of_caller"
25
26
 
26
27
  spec.add_development_dependency "bundler", "~> 1.16"
27
28
  spec.add_development_dependency "rake", "~> 10.0"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nats-rpc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matti Paksula
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-07-15 00:00:00.000000000 Z
11
+ date: 2018-07-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nats-pure
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: binding_of_caller
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement