nats-rpc 0.1.0 → 0.2.0

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