protobuf-rpc-register 0.4.3 → 0.4.4

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
  SHA1:
3
- metadata.gz: a8187eb36f7ad98669f714adf7ab46d00728f1dc
4
- data.tar.gz: e36fc71622954d41ed5a7e1bf902c5ae42434155
3
+ metadata.gz: c077414efe148ababe48aec548935e433b79e47c
4
+ data.tar.gz: cb2f581a2d393122ab7fa59d9eeb4b61766bd604
5
5
  SHA512:
6
- metadata.gz: ab037a522e65d644e6cdd7eaf791f33e565e5934c19d699ab42ac4e9b64d17cd9ce77d26fc2e61d2306d3144abaefa5332d10947a1843ffd636a2726c799cc57
7
- data.tar.gz: 01f5aeb0ff0b83ea406b56c5788f15daaf536b66bf2da3f2970c625dccc9fb258d907bd6323823d4b5e5679928dab9e23fd245b9fb7d9800b226506acf2753cb
6
+ metadata.gz: 87a9f7b907a1d73de127a49c7584dd28f0b8650b05aa0d35388926f77b1bcee4767df1479e75938f017f0abefa369a564933d20aa78dcedc49ff0b0b267ce713
7
+ data.tar.gz: 7e7756caeb5f333690af5407ee4b9ca5c72468946eec6d99f7ac6b8ec575b80521999e1d10c1a2e483dc23b1e3dc0d0486cbec77a1826958339913d030b69015
@@ -107,6 +107,9 @@ module Protobuf
107
107
 
108
108
  def self.implement_rpc(rpc_method)
109
109
  define_method(rpc_method) do |*args|
110
+ names = self.class.name.split('::')
111
+ msg_class_name = [names[0..-3], 'Messages', names[-1]].flatten.join('::')
112
+
110
113
  msg = if args.first.is_a?(Protobuf::Message)
111
114
  args.shift
112
115
  elsif args.first.respond_to?(:to_hash)
@@ -114,12 +117,18 @@ module Protobuf
114
117
  serializer: :JSON,
115
118
  compressed: true)
116
119
  else
117
- names = self.class.name.split('::')
118
- msg_class = Object.const_get([names[0..-3], 'Messages', names[-1]].flatten.join('::'))
120
+ msg_class = Object.const_get(msg_class_name)
119
121
  msg_class.new(*args)
120
122
  end
121
123
 
122
- send_rpc_request(rpc_method, msg, serializer: :JSON)
124
+ response = send_rpc_request(rpc_method, msg, serializer: :JSON)
125
+
126
+ if response.class.name == msg_class_name.pluralize
127
+ m = self.class.name.demodulize.underscore.pluralize.to_sym
128
+ response.respond_to?(m) ? response.public_send(m) : response
129
+ else
130
+ response
131
+ end
123
132
  end
124
133
  end
125
134
  end
@@ -1,7 +1,7 @@
1
1
  module Protobuf
2
2
  module Rpc
3
3
  module Register
4
- VERSION = "0.4.3".freeze
4
+ VERSION = "0.4.4".freeze
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: protobuf-rpc-register
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - scorix
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-05-22 00:00:00.000000000 Z
11
+ date: 2016-05-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler