protobuf-rpc-register 0.4.3 → 0.4.4

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