msgpack-rpc-stack 0.1.0 → 0.5.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: 921c6f0470a8adf12e9afb27c6629edee9a81b0266c920570ba756eea2486229
4
- data.tar.gz: 76e6bb755bdba72d9c5c0c06f789f614b7c1c71005a36fa342966696d4258188
3
+ metadata.gz: a076daa3d4b5913027b23dc4cbf97ed6fd1cea1b69c4782bbade308c8a263d7f
4
+ data.tar.gz: 9249d7f1e6408016a56f5f5d70095edb087f75901a85b7b3f2c136b031a0f919
5
5
  SHA512:
6
- metadata.gz: 52e3c72c2d512bf23e24f8ec37843abb07e61e5a213eb7b3e7f37b21e5b4cd18f8f752108b305414178bc51b73035c9b3bb5adbdd260021bb2e6c6cc2d211bca
7
- data.tar.gz: 1238e7737c3cfddcfbb3782ea6b82151981dd40de03aa590e03b5f50754b0206ae38c66aa752ca02a5633d52da66976c3d4dccb3090906b66342291a9c58ff53
6
+ metadata.gz: eb5c428879404a16066702148e49dc1dad327b18ddaf06aa62d96edcba7f72458ce1f8d3ff92beb60f3ba336df1597cf8362a0da6e682f5016f5ab535633005f
7
+ data.tar.gz: 583478e71b9ecdafddd647cec3a196e4a8dc320af8c934a8b5097f3226c574a28bf297065381a9b0558df5836ca314cef1dd7fd9fb9d1d4c21cb5890e606e7fe
@@ -13,17 +13,18 @@ require 'msgpack/rpc'
13
13
  module MessagePack
14
14
  module Rpc
15
15
  module Server
16
- class Error < Exception
17
- def initialize(data)
18
- @data = data
19
- end
20
-
21
- attr_reader :data
22
- end
23
-
24
16
  class << self
25
17
  def included(klass)
26
18
  m = Module.new {
19
+ @@error = Class.new(StandardError) {
20
+ def initialize(label, data)
21
+ super("error ocurred on precedure \"#{label}\"")
22
+ @data = data
23
+ end
24
+
25
+ attr_reader :data
26
+ }
27
+
27
28
  @@deferred = Class.new {
28
29
  def initialize(id, klass)
29
30
  @id = id
@@ -33,11 +34,29 @@ module MessagePack
33
34
  def resolve(result)
34
35
  packet = [1, @id, nil, result].to_msgpack
35
36
  @klass.instance_eval {send_data(packet)}
37
+
38
+ class << self
39
+ undef_method :resolve, :reject
40
+ end
36
41
  end
37
42
 
38
43
  def reject(error)
39
44
  packet = [1, @id, error, nil].to_msgpack
40
- @klass.instance_eval {send_data(packet)}
45
+ @klass.instance_eval {
46
+ send_data(packet)
47
+
48
+ if not error.kind_of?(Exception)
49
+ label = caller_locations(3..3)[0].base_label
50
+ error = @@error.new(label, error)
51
+ end
52
+
53
+ error.set_backtrace(caller(3..-1))
54
+ error_occured(error)
55
+ }
56
+
57
+ class << self
58
+ undef_method :resolve, :reject
59
+ end
41
60
  end
42
61
  }
43
62
 
@@ -116,11 +135,11 @@ module MessagePack
116
135
  end
117
136
  private :do_notify
118
137
 
119
- def error_occured(msg)
138
+ def error_occured(e)
120
139
  if self.respond_to?(:on_error, true)
121
- __send__(:on_error, msg)
140
+ __send__(:on_error, e)
122
141
  else
123
- STDERR.print("#{msg}")
142
+ STDERR.print("#{e.message}")
124
143
  end
125
144
  end
126
145
  private :error_occured
@@ -170,7 +189,7 @@ module MessagePack
170
189
  send_data([1, id, error, nil].to_msgpack)
171
190
  end
172
191
 
173
- error_occured(e.message)
192
+ error_occured(e)
174
193
  end
175
194
  private :eval_message
176
195
 
@@ -194,10 +213,10 @@ module MessagePack
194
213
 
195
214
  rescue MessagePack::UnpackError => e
196
215
  unpacker.reset
197
- error_occured(e.message)
216
+ error_occured(e)
198
217
 
199
218
  rescue => e
200
- error_occured(e.message)
219
+ error_occured(e)
201
220
  end
202
221
  end
203
222
  end
@@ -1,5 +1,5 @@
1
1
  module MessagePack
2
2
  module Rpc
3
- VERSION = "0.1.0"
3
+ VERSION = "0.5.0"
4
4
  end
5
5
  end
@@ -33,6 +33,8 @@ Gem::Specification.new do |spec|
33
33
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
34
34
  spec.require_paths = ["lib"]
35
35
 
36
+ spec.required_ruby_version = "~> 2.4.0"
37
+
36
38
  spec.add_development_dependency "bundler", "~> 1.17"
37
39
  spec.add_development_dependency "rake", "~> 10.0"
38
40
  spec.add_development_dependency "msgpack", "~> 1.2.6"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: msgpack-rpc-stack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hiroshi Kuwagata
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-01-14 00:00:00.000000000 Z
11
+ date: 2019-01-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -85,9 +85,9 @@ require_paths:
85
85
  - lib
86
86
  required_ruby_version: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - ">="
88
+ - - "~>"
89
89
  - !ruby/object:Gem::Version
90
- version: '0'
90
+ version: 2.4.0
91
91
  required_rubygems_version: !ruby/object:Gem::Requirement
92
92
  requirements:
93
93
  - - ">="