krpc 0.2.2 → 0.3.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
  SHA1:
3
- metadata.gz: 72fc8c65a38c811d413b6e3e58b7c491782aa6b2
4
- data.tar.gz: b7c500d7de5a6a180db400705ba28b7852919a20
3
+ metadata.gz: 4fe29f9b4d79df0423649f00f97a4f0635e34b55
4
+ data.tar.gz: 46a7add0e30b35ec3b33ba61b0f023052e97de9b
5
5
  SHA512:
6
- metadata.gz: 7d4a82b16e0c0abbf5ba15c60705613d92f5fa54ae82f05635c82876899137391c1ff5f6cf17ec3c68bc02290be19201db8934ea11ca85c5a882ddd3bc9d3dbf
7
- data.tar.gz: 5fcb55225c85ee5ead411aba691bd2de30bf8f0d105542b5c7b472e358ac78141e3e8f0befbe7aa45fd7003a63ff0b049306b0eb241eef3a540d570b85b8b42f
6
+ metadata.gz: b9f121f1a6d61dbf3e441124beee9eb83c7ae8303a15e342d723628c5bd6a7e5da28937e20506a7d99eced2c605e6b89c949e6ea0ccf7a1e97fb35a8240915c0
7
+ data.tar.gz: b79787bda276c3fb9332a97f9b8391de2a1e37df6e90494d8f7be28841014e45bfeeb5da6a60cdbe7922726d60880de3773ab0dc873935229ff75f5ac44daf4c
@@ -1,8 +1,14 @@
1
+ v0.3.0 (15 Feb 2016)
2
+ ========
3
+ + **Updated to work with kRPC server version 0.2.x** (#6):
4
+ + Using *google-protobuf* gem instead of *ruby_protobuf*, for protocol buffers version 3
5
+ + Turned development dependency on *hanna-nouveau* into runtime dependency (Fix #5)
1
6
 
2
7
  v0.2.2 (30 Oct 2015)
3
8
  ========
4
- + Static methods now require KRPC::Client instance as first argument
9
+ + Static methods now require `KRPC::Client` instance as first argument (Fix #4)
5
10
  + Improved parameters default value handling
11
+ + Improved collections encoding
6
12
  + Fixed few minor bugs
7
13
 
8
14
  v0.2.0 (26 Sep 2015)
@@ -23,13 +23,13 @@ Gem::Specification.new do |s|
23
23
  "--title" << "kRPC-rb API Docs" <<
24
24
  "--main" << "README.md"
25
25
 
26
- s.required_ruby_version = '>= 2.1.0'
26
+ s.required_ruby_version = ">= 2.1.0"
27
27
 
28
- s.add_runtime_dependency "ruby_protobuf", "~> 0.4"
28
+ s.add_runtime_dependency "google-protobuf", "~> 3.0.0.alpha.5"
29
29
  s.add_runtime_dependency "colorize", "~> 0.7"
30
30
  s.add_runtime_dependency "nokogiri", "~> 1.6"
31
- s.add_development_dependency 'bundler', '~> 1.7', '>= 1.7.0'
31
+ s.add_runtime_dependency "hanna-nouveau", "~> 0.4"
32
+ s.add_development_dependency "bundler", "~> 1.11"
32
33
  s.add_development_dependency "pry", "~> 0.10"
33
- s.add_development_dependency "rspec", "~> 3.0"
34
- s.add_development_dependency "hanna-nouveau", "~> 0.4"
34
+ s.add_development_dependency "rspec", "~> 3.4"
35
35
  end
@@ -1,4 +1,5 @@
1
1
  require 'krpc/version'
2
+ require 'krpc/protobuf_extensions'
2
3
  require 'krpc/client'
3
4
 
4
5
  module KRPC
@@ -6,7 +6,7 @@ require 'krpc/decoder'
6
6
  require 'krpc/streaming'
7
7
  require 'krpc/error'
8
8
  require 'krpc/core_extensions'
9
- require 'krpc/KRPC.pb'
9
+ require 'krpc/krpc.pb'
10
10
 
11
11
  module KRPC
12
12
 
@@ -133,7 +133,7 @@ module KRPC
133
133
  def execute_rpc(service, procedure, args=[], kwargs={}, param_names=[], param_types=[], param_default=[], return_type: nil)
134
134
  send_request(service, procedure, args, kwargs, param_names, param_types, param_default)
135
135
  resp = receive_response
136
- raise(RPCError, resp.error) if resp.has_field? "error"
136
+ raise(RPCError, resp.error) if resp.has_error
137
137
  unless return_type.nil?
138
138
  Decoder.decode(resp.return_value, return_type, self)
139
139
  else
@@ -202,8 +202,7 @@ module KRPC
202
202
  def receive_response
203
203
  resp_length = rpc_connection.recv_varint
204
204
  resp_data = rpc_connection.recv resp_length
205
- resp = PB::Response.new
206
- resp.parse_from_string resp_data
205
+ resp = PB::Response.decode(resp_data)
207
206
  end
208
207
 
209
208
  def call_block_and_close(block)
@@ -50,7 +50,9 @@ module KRPC
50
50
  def cleanup; end
51
51
 
52
52
  def send(msg) @socket.send(msg, 0) end
53
- def recv(maxlen = 1) @socket.recv(maxlen) end
53
+ def recv(maxlen = 1)
54
+ maxlen == 0 ? "" : @socket.recv(maxlen)
55
+ end
54
56
 
55
57
  def recv_varint
56
58
  int_val = 0
@@ -43,9 +43,7 @@ module KRPC
43
43
  end
44
44
 
45
45
  def decode_message(data, type)
46
- msg = type.ruby_type.new
47
- msg.parse_from_string data.to_s
48
- msg
46
+ type.ruby_type.decode(data.to_s)
49
47
  end
50
48
 
51
49
  end
@@ -1,4 +1,5 @@
1
1
  require 'krpc/protobuf_utils'
2
+ require 'krpc/types'
2
3
 
3
4
  module KRPC
4
5
  module Encoder
@@ -10,7 +11,7 @@ module KRPC
10
11
 
11
12
  # Given a type object, and ruby object, encode the ruby object
12
13
  def encode(obj, type)
13
- if type.is_a?(Types::MessageType) then obj.serialize_to_string
14
+ if type.is_a?(Types::MessageType) then type.ruby_type.encode(obj)
14
15
  elsif type.is_a?(Types::ValueType) then encode_value(obj, type)
15
16
  elsif type.is_a?(Types::EnumType)
16
17
  enum_value = type.ruby_type[obj]
@@ -19,27 +20,34 @@ module KRPC
19
20
  remote_oid = if obj == nil then 0 else obj.remote_oid end
20
21
  encode_value(remote_oid, TypeStore["uint64"])
21
22
  elsif type.is_a?(Types::ListType)
22
- msg = TypeStore["KRPC.List"].ruby_type.new
23
- msg.items = obj.map{|x| encode( TypeStore.coerce_to(x, type.value_type), type.value_type )}.to_a
24
- msg.serialize_to_string
23
+ ruby_type = TypeStore["KRPC.List"].ruby_type
24
+ msg = ruby_type.new(
25
+ items: obj.map{|x| encode(TypeStore.coerce_to(x, type.value_type), type.value_type)}.to_a
26
+ )
27
+ ruby_type.encode(msg)
25
28
  elsif type.is_a?(Types::DictionaryType)
29
+ ruby_type = TypeStore["KRPC.Dictionary"].ruby_type
26
30
  entry_type = TypeStore["KRPC.DictionaryEntry"].ruby_type
27
- msg = TypeStore["KRPC.Dictionary"].ruby_type.new
28
- msg.entries = obj.map do |k,v|
29
- entry = entry_type.new
30
- entry.key = encode( TypeStore.coerce_to(k, type.key_type), type.key_type )
31
- entry.value = encode( TypeStore.coerce_to(v, type.value_type), type.value_type )
32
- entry
31
+ entries = obj.map do |k,v|
32
+ entry_type.new(
33
+ key: encode(TypeStore.coerce_to(k, type.key_type), type.key_type),
34
+ value: encode(TypeStore.coerce_to(v, type.value_type), type.value_type)
35
+ )
33
36
  end
34
- msg.serialize_to_string
37
+ msg = ruby_type.new(entries: entries)
38
+ ruby_type.encode(msg)
35
39
  elsif type.is_a?(Types::SetType)
36
- msg = TypeStore["KRPC.Set"].ruby_type.new
37
- msg.items = obj.map{|x| encode( TypeStore.coerce_to(x, type.value_type), type.value_type )}.to_a
38
- msg.serialize_to_string
40
+ ruby_type = TypeStore["KRPC.Set"].ruby_type
41
+ msg = ruby_type.new(
42
+ items: obj.map{|x| encode( TypeStore.coerce_to(x, type.value_type), type.value_type )}.to_a
43
+ )
44
+ ruby_type.encode(msg)
39
45
  elsif type.is_a?(Types::TupleType)
40
- msg = TypeStore["KRPC.Tuple"].ruby_type.new
41
- msg.items = obj.zip(type.value_types).map{|x,t| encode( TypeStore.coerce_to(x, t), t )}.to_a
42
- msg.serialize_to_string
46
+ ruby_type = TypeStore["KRPC.Tuple"].ruby_type
47
+ msg = ruby_type.new(
48
+ items: obj.zip(type.value_types).map{|x,t| encode( TypeStore.coerce_to(x, t), t )}.to_a
49
+ )
50
+ ruby_type.encode(msg)
43
51
  else raise(RuntimeError, "Cannot encode object #{obj} of type #{type}")
44
52
  end
45
53
  end
@@ -49,7 +57,7 @@ module KRPC
49
57
  end
50
58
 
51
59
  def encode_request(req)
52
- data = req.serialize_to_string
60
+ data = PB::Request.encode(req)
53
61
  length = ProtobufUtils::Encoder.encode_nonnegative_varint(data.length)
54
62
  length + data
55
63
  end
@@ -97,12 +97,12 @@ module KRPC
97
97
  TypeStore.get_parameter_type(i, p.type, proc.attributes)
98
98
  end
99
99
  param_default = proc.parameters.zip(param_types).map do |param, type|
100
- if param.has_field?("default_argument")
100
+ if param.has_default_argument
101
101
  Decoder.decode(param.default_argument, type, :clientless)
102
102
  else :no_default_value
103
103
  end
104
104
  end
105
- return_type = if proc.has_field?("return_type")
105
+ return_type = if proc.has_return_type
106
106
  TypeStore.get_return_type(proc.return_type, proc.attributes)
107
107
  else nil end
108
108
  [param_names, param_types, param_default, return_type]
@@ -111,7 +111,7 @@ module KRPC
111
111
 
112
112
  module RPCMethodGenerator
113
113
  def include_rpc_method(method_name, service_name, procedure_name, params: [], return_type: nil, xmldoc: "", options: [])
114
- Gen.add_rpc_method(self.class, method_name, service_name, PB::Procedure.new(name: procedure_name, parameters: params, return_type: return_type, documentation: xmldoc), options)
114
+ Gen.add_rpc_method(self.class, method_name, service_name, PB::Procedure.new(name: procedure_name, parameters: params, has_return_type: return_type != nil, return_type: return_type != nil ? return_type : "", documentation: xmldoc), options)
115
115
  end
116
116
  end
117
117
 
@@ -0,0 +1,128 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # source: krpc.proto
3
+
4
+ require 'google/protobuf'
5
+
6
+ Google::Protobuf::DescriptorPool.generated_pool.build do
7
+ add_message "krpc.schema.Request" do
8
+ optional :service, :string, 1
9
+ optional :procedure, :string, 2
10
+ repeated :arguments, :message, 3, "krpc.schema.Argument"
11
+ end
12
+ add_message "krpc.schema.Argument" do
13
+ optional :position, :uint32, 1
14
+ optional :value, :bytes, 2
15
+ end
16
+ add_message "krpc.schema.Response" do
17
+ optional :time, :double, 1
18
+ optional :has_error, :bool, 2
19
+ optional :error, :string, 3
20
+ optional :has_return_value, :bool, 4
21
+ optional :return_value, :bytes, 5
22
+ end
23
+ add_message "krpc.schema.StreamMessage" do
24
+ repeated :responses, :message, 1, "krpc.schema.StreamResponse"
25
+ end
26
+ add_message "krpc.schema.StreamResponse" do
27
+ optional :id, :uint32, 1
28
+ optional :response, :message, 2, "krpc.schema.Response"
29
+ end
30
+ add_message "krpc.schema.Services" do
31
+ repeated :services, :message, 1, "krpc.schema.Service"
32
+ end
33
+ add_message "krpc.schema.Service" do
34
+ optional :name, :string, 1
35
+ repeated :procedures, :message, 2, "krpc.schema.Procedure"
36
+ repeated :classes, :message, 3, "krpc.schema.Class"
37
+ repeated :enumerations, :message, 4, "krpc.schema.Enumeration"
38
+ optional :documentation, :string, 5
39
+ end
40
+ add_message "krpc.schema.Procedure" do
41
+ optional :name, :string, 1
42
+ repeated :parameters, :message, 2, "krpc.schema.Parameter"
43
+ optional :has_return_type, :bool, 3
44
+ optional :return_type, :string, 4
45
+ repeated :attributes, :string, 5
46
+ optional :documentation, :string, 6
47
+ end
48
+ add_message "krpc.schema.Parameter" do
49
+ optional :name, :string, 1
50
+ optional :type, :string, 2
51
+ optional :has_default_argument, :bool, 3
52
+ optional :default_argument, :bytes, 4
53
+ end
54
+ add_message "krpc.schema.Class" do
55
+ optional :name, :string, 1
56
+ optional :documentation, :string, 2
57
+ end
58
+ add_message "krpc.schema.Enumeration" do
59
+ optional :name, :string, 1
60
+ repeated :values, :message, 2, "krpc.schema.EnumerationValue"
61
+ optional :documentation, :string, 3
62
+ end
63
+ add_message "krpc.schema.EnumerationValue" do
64
+ optional :name, :string, 1
65
+ optional :value, :int32, 2
66
+ optional :documentation, :string, 3
67
+ end
68
+ add_message "krpc.schema.List" do
69
+ repeated :items, :bytes, 1
70
+ end
71
+ add_message "krpc.schema.Dictionary" do
72
+ repeated :entries, :message, 1, "krpc.schema.DictionaryEntry"
73
+ end
74
+ add_message "krpc.schema.DictionaryEntry" do
75
+ optional :key, :bytes, 1
76
+ optional :value, :bytes, 2
77
+ end
78
+ add_message "krpc.schema.Set" do
79
+ repeated :items, :bytes, 1
80
+ end
81
+ add_message "krpc.schema.Tuple" do
82
+ repeated :items, :bytes, 1
83
+ end
84
+ add_message "krpc.schema.Status" do
85
+ optional :version, :string, 1
86
+ optional :bytes_read, :uint64, 2
87
+ optional :bytes_written, :uint64, 3
88
+ optional :bytes_read_rate, :float, 4
89
+ optional :bytes_written_rate, :float, 5
90
+ optional :rpcs_executed, :uint64, 6
91
+ optional :rpc_rate, :float, 7
92
+ optional :one_rpc_per_update, :bool, 8
93
+ optional :max_time_per_update, :uint32, 9
94
+ optional :adaptive_rate_control, :bool, 10
95
+ optional :blocking_recv, :bool, 11
96
+ optional :recv_timeout, :uint32, 12
97
+ optional :time_per_rpc_update, :float, 13
98
+ optional :poll_time_per_rpc_update, :float, 14
99
+ optional :exec_time_per_rpc_update, :float, 15
100
+ optional :stream_rpcs, :uint32, 16
101
+ optional :stream_rpcs_executed, :uint64, 17
102
+ optional :stream_rpc_rate, :float, 18
103
+ optional :time_per_stream_update, :float, 19
104
+ end
105
+ end
106
+
107
+ module KRPC
108
+ module PB
109
+ Request = Google::Protobuf::DescriptorPool.generated_pool.lookup("krpc.schema.Request").msgclass
110
+ Argument = Google::Protobuf::DescriptorPool.generated_pool.lookup("krpc.schema.Argument").msgclass
111
+ Response = Google::Protobuf::DescriptorPool.generated_pool.lookup("krpc.schema.Response").msgclass
112
+ StreamMessage = Google::Protobuf::DescriptorPool.generated_pool.lookup("krpc.schema.StreamMessage").msgclass
113
+ StreamResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("krpc.schema.StreamResponse").msgclass
114
+ Services = Google::Protobuf::DescriptorPool.generated_pool.lookup("krpc.schema.Services").msgclass
115
+ Service = Google::Protobuf::DescriptorPool.generated_pool.lookup("krpc.schema.Service").msgclass
116
+ Procedure = Google::Protobuf::DescriptorPool.generated_pool.lookup("krpc.schema.Procedure").msgclass
117
+ Parameter = Google::Protobuf::DescriptorPool.generated_pool.lookup("krpc.schema.Parameter").msgclass
118
+ Class = Google::Protobuf::DescriptorPool.generated_pool.lookup("krpc.schema.Class").msgclass
119
+ Enumeration = Google::Protobuf::DescriptorPool.generated_pool.lookup("krpc.schema.Enumeration").msgclass
120
+ EnumerationValue = Google::Protobuf::DescriptorPool.generated_pool.lookup("krpc.schema.EnumerationValue").msgclass
121
+ List = Google::Protobuf::DescriptorPool.generated_pool.lookup("krpc.schema.List").msgclass
122
+ Dictionary = Google::Protobuf::DescriptorPool.generated_pool.lookup("krpc.schema.Dictionary").msgclass
123
+ DictionaryEntry = Google::Protobuf::DescriptorPool.generated_pool.lookup("krpc.schema.DictionaryEntry").msgclass
124
+ Set = Google::Protobuf::DescriptorPool.generated_pool.lookup("krpc.schema.Set").msgclass
125
+ Tuple = Google::Protobuf::DescriptorPool.generated_pool.lookup("krpc.schema.Tuple").msgclass
126
+ Status = Google::Protobuf::DescriptorPool.generated_pool.lookup("krpc.schema.Status").msgclass
127
+ end
128
+ end
@@ -0,0 +1,20 @@
1
+ require 'krpc/krpc.pb'
2
+
3
+ module KRPC
4
+ module ProtobufExtensions
5
+
6
+ module MessageExtensions
7
+ def ==(other)
8
+ super
9
+ rescue TypeError
10
+ false
11
+ end
12
+ end
13
+
14
+ end
15
+ end
16
+
17
+ KRPC::PB.constants(false).map {|const_name| KRPC::PB.const_get(const_name,true)}.each do |msgclass|
18
+ msgclass.prepend KRPC::ProtobufExtensions::MessageExtensions
19
+ end
20
+
@@ -1,12 +1,11 @@
1
- require 'krpc/KRPC.pb'
1
+ require 'krpc/krpc.pb'
2
2
 
3
3
  module KRPC
4
4
  module ProtobufUtils
5
5
  class << self
6
6
  def create_PB_to_PB_message_class_hash(package)
7
7
  protobuf_module = Kernel.const_get(package.gsub(".","::") + "::PB")
8
- msg_classes_names = protobuf_module.constants.select{|c| protobuf_module.const_get(c,false).superclass == ::Protobuf::Message}
9
- msg_classes_names.map do |name|
8
+ protobuf_module.constants.map do |name|
10
9
  [package + "." + name.to_s, protobuf_module.const_get(name,false)]
11
10
  end.to_h
12
11
  end
@@ -60,11 +59,11 @@ module KRPC
60
59
  end
61
60
  def decode_string(bytes)
62
61
  size, pos = decode_varint_pos(bytes)
63
- bytes[pos..(pos+size)]
62
+ bytes[pos..(pos+size)].force_encoding(Encoding::UTF_8)
64
63
  end
65
64
  def decode_bytes(bytes)
66
65
  size, pos = decode_varint_pos(bytes)
67
- bytes[pos..(pos+size)]
66
+ bytes[pos..(pos+size)].bytes
68
67
  end
69
68
 
70
69
  end
@@ -62,7 +62,7 @@ module KRPC
62
62
  stream_msg.responses.each do |stream_resp|
63
63
  next unless @streams.include? stream_resp.id
64
64
  stream = @streams[stream_resp.id]
65
- if stream_resp.response.has_field?("error")
65
+ if stream_resp.response.has_error
66
66
  stream.value = RPCError.new(stream_resp.response.error)
67
67
  else
68
68
  stream.value = Decoder.decode(stream_resp.response.return_value, stream.return_type, client)
@@ -37,7 +37,6 @@ module KRPC
37
37
  elsif type_string.start_with? "Dictionary(" || type_string == "Dictionary" then DictionaryType.new(type_string)
38
38
  elsif type_string.start_with? "Set(" || type_string == "Set" then SetType.new(type_string)
39
39
  elsif type_string.start_with? "Tuple(" || type_string == "Tuple" then TupleType.new(type_string)
40
- elsif type_string == "Test.TestEnum" then ValueType.new("int32")
41
40
  else # A message type (eg. type_string = "KRPC.List" or "KRPC.Services")
42
41
  raise(ValueError, "\"#{type_string}\" is not a valid type string") unless /^[A-Za-z0-9_\.]+$/ =~ type_string
43
42
  if PROTOBUF_TO_MESSAGE_TYPE.has_key? type_string
@@ -1,3 +1,3 @@
1
1
  module KRPC
2
- VERSION = "0.2.2"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: krpc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomasz Więch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-30 00:00:00.000000000 Z
11
+ date: 2016-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: ruby_protobuf
14
+ name: google-protobuf
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.4'
19
+ version: 3.0.0.alpha.5
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.4'
26
+ version: 3.0.0.alpha.5
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: colorize
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -53,67 +53,61 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.6'
55
55
  - !ruby/object:Gem::Dependency
56
- name: bundler
56
+ name: hanna-nouveau
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.7'
62
- - - ">="
63
- - !ruby/object:Gem::Version
64
- version: 1.7.0
65
- type: :development
61
+ version: '0.4'
62
+ type: :runtime
66
63
  prerelease: false
67
64
  version_requirements: !ruby/object:Gem::Requirement
68
65
  requirements:
69
66
  - - "~>"
70
67
  - !ruby/object:Gem::Version
71
- version: '1.7'
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- version: 1.7.0
68
+ version: '0.4'
75
69
  - !ruby/object:Gem::Dependency
76
- name: pry
70
+ name: bundler
77
71
  requirement: !ruby/object:Gem::Requirement
78
72
  requirements:
79
73
  - - "~>"
80
74
  - !ruby/object:Gem::Version
81
- version: '0.10'
75
+ version: '1.11'
82
76
  type: :development
83
77
  prerelease: false
84
78
  version_requirements: !ruby/object:Gem::Requirement
85
79
  requirements:
86
80
  - - "~>"
87
81
  - !ruby/object:Gem::Version
88
- version: '0.10'
82
+ version: '1.11'
89
83
  - !ruby/object:Gem::Dependency
90
- name: rspec
84
+ name: pry
91
85
  requirement: !ruby/object:Gem::Requirement
92
86
  requirements:
93
87
  - - "~>"
94
88
  - !ruby/object:Gem::Version
95
- version: '3.0'
89
+ version: '0.10'
96
90
  type: :development
97
91
  prerelease: false
98
92
  version_requirements: !ruby/object:Gem::Requirement
99
93
  requirements:
100
94
  - - "~>"
101
95
  - !ruby/object:Gem::Version
102
- version: '3.0'
96
+ version: '0.10'
103
97
  - !ruby/object:Gem::Dependency
104
- name: hanna-nouveau
98
+ name: rspec
105
99
  requirement: !ruby/object:Gem::Requirement
106
100
  requirements:
107
101
  - - "~>"
108
102
  - !ruby/object:Gem::Version
109
- version: '0.4'
103
+ version: '3.4'
110
104
  type: :development
111
105
  prerelease: false
112
106
  version_requirements: !ruby/object:Gem::Requirement
113
107
  requirements:
114
108
  - - "~>"
115
109
  - !ruby/object:Gem::Version
116
- version: '0.4'
110
+ version: '3.4'
117
111
  description: kRPC-rb is a Ruby client library for kRPC, a Kerbal Space Program mod
118
112
  that allows you to control KSP from external scripts running outside of the game.
119
113
  email:
@@ -129,7 +123,6 @@ files:
129
123
  - README.md
130
124
  - krpc.gemspec
131
125
  - lib/krpc.rb
132
- - lib/krpc/KRPC.pb.rb
133
126
  - lib/krpc/attributes.rb
134
127
  - lib/krpc/client.rb
135
128
  - lib/krpc/connection.rb
@@ -139,6 +132,8 @@ files:
139
132
  - lib/krpc/encoder.rb
140
133
  - lib/krpc/error.rb
141
134
  - lib/krpc/gen.rb
135
+ - lib/krpc/krpc.pb.rb
136
+ - lib/krpc/protobuf_extensions.rb
142
137
  - lib/krpc/protobuf_utils.rb
143
138
  - lib/krpc/repl_tools.rb
144
139
  - lib/krpc/service.rb
@@ -173,7 +168,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
173
168
  version: '0'
174
169
  requirements: []
175
170
  rubyforge_project:
176
- rubygems_version: 2.4.6
171
+ rubygems_version: 2.4.8
177
172
  signing_key:
178
173
  specification_version: 4
179
174
  summary: Client library for kRPC
@@ -1,124 +0,0 @@
1
-
2
- ### Generated by rprotoc. DO NOT EDIT!
3
-
4
- require 'protobuf/message/message'
5
- require 'protobuf/message/enum'
6
- require 'protobuf/message/service'
7
- require 'protobuf/message/extend'
8
-
9
- module KRPC
10
- module PB
11
- class Request < ::Protobuf::Message
12
- defined_in __FILE__
13
- required :string, :service, 1
14
- required :string, :procedure, 2
15
- repeated :Argument, :arguments, 3
16
- end
17
- class Argument < ::Protobuf::Message
18
- defined_in __FILE__
19
- required :uint32, :position, 1
20
- required :bytes, :value, 2
21
- end
22
- class Response < ::Protobuf::Message
23
- defined_in __FILE__
24
- required :double, :time, 1
25
- optional :string, :error, 2
26
- optional :bytes, :return_value, 3
27
- end
28
- class StreamMessage < ::Protobuf::Message
29
- defined_in __FILE__
30
- repeated :StreamResponse, :responses, 1
31
- end
32
- class StreamResponse < ::Protobuf::Message
33
- defined_in __FILE__
34
- required :uint32, :id, 1
35
- required :Response, :response, 2
36
- end
37
- class Services < ::Protobuf::Message
38
- defined_in __FILE__
39
- repeated :Service, :services, 1
40
- end
41
- class Service < ::Protobuf::Message
42
- defined_in __FILE__
43
- required :string, :name, 1
44
- repeated :Procedure, :procedures, 2
45
- repeated :Class, :classes, 3
46
- repeated :Enumeration, :enumerations, 4
47
- optional :string, :documentation, 5
48
- end
49
- class Procedure < ::Protobuf::Message
50
- defined_in __FILE__
51
- required :string, :name, 1
52
- repeated :Parameter, :parameters, 2
53
- optional :string, :return_type, 3
54
- repeated :string, :attributes, 4
55
- optional :string, :documentation, 5
56
- end
57
- class Parameter < ::Protobuf::Message
58
- defined_in __FILE__
59
- required :string, :name, 1
60
- required :string, :type, 2
61
- optional :bytes, :default_argument, 3
62
- end
63
- class Class < ::Protobuf::Message
64
- defined_in __FILE__
65
- required :string, :name, 1
66
- optional :string, :documentation, 2
67
- end
68
- class Enumeration < ::Protobuf::Message
69
- defined_in __FILE__
70
- required :string, :name, 1
71
- repeated :EnumerationValue, :values, 2
72
- optional :string, :documentation, 3
73
- end
74
- class EnumerationValue < ::Protobuf::Message
75
- defined_in __FILE__
76
- required :string, :name, 1
77
- required :int32, :value, 2
78
- optional :string, :documentation, 3
79
- end
80
- class List < ::Protobuf::Message
81
- defined_in __FILE__
82
- repeated :bytes, :items, 1
83
- end
84
- class Dictionary < ::Protobuf::Message
85
- defined_in __FILE__
86
- repeated :DictionaryEntry, :entries, 1
87
- end
88
- class DictionaryEntry < ::Protobuf::Message
89
- defined_in __FILE__
90
- required :bytes, :key, 1
91
- required :bytes, :value, 2
92
- end
93
- class Set < ::Protobuf::Message
94
- defined_in __FILE__
95
- repeated :bytes, :items, 1
96
- end
97
- class Tuple < ::Protobuf::Message
98
- defined_in __FILE__
99
- repeated :bytes, :items, 1
100
- end
101
- class Status < ::Protobuf::Message
102
- defined_in __FILE__
103
- required :string, :version, 1
104
- required :uint64, :bytes_read, 2
105
- required :uint64, :bytes_written, 3
106
- required :float, :bytes_read_rate, 4
107
- required :float, :bytes_written_rate, 5
108
- required :uint64, :rpcs_executed, 6
109
- required :float, :rpc_rate, 7
110
- required :bool, :one_rpc_per_update, 8
111
- required :uint32, :max_time_per_update, 9
112
- required :bool, :adaptive_rate_control, 10
113
- required :bool, :blocking_recv, 11
114
- required :uint32, :recv_timeout, 12
115
- required :float, :time_per_rpc_update, 13
116
- required :float, :poll_time_per_rpc_update, 14
117
- required :float, :exec_time_per_rpc_update, 15
118
- required :uint32, :stream_rpcs, 16
119
- required :uint64, :stream_rpcs_executed, 17
120
- required :float, :stream_rpc_rate, 18
121
- required :float, :time_per_stream_update, 19
122
- end
123
- end
124
- end