protobuf 3.10.0.pre0 → 3.10.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 +4 -4
- data/.circleci/config.yml +48 -0
- data/CHANGES.md +10 -0
- data/Rakefile +7 -5
- data/lib/protobuf.rb +12 -0
- data/lib/protobuf/cli.rb +2 -0
- data/lib/protobuf/code_generator.rb +10 -1
- data/lib/protobuf/descriptors/google/protobuf/compiler/plugin.pb.rb +6 -0
- data/lib/protobuf/rpc/connectors/base.rb +10 -7
- data/lib/protobuf/rpc/stat.rb +22 -2
- data/lib/protobuf/version.rb +1 -1
- data/proto/dynamic_discovery.proto +2 -0
- data/proto/google/protobuf/compiler/plugin.proto +12 -0
- data/proto/rpc.proto +2 -0
- data/spec/functional/code_generator_spec.rb +2 -2
- data/spec/lib/protobuf/cli_spec.rb +35 -0
- data/spec/lib/protobuf/code_generator_spec.rb +1 -1
- data/spec/lib/protobuf/rpc/connectors/base_spec.rb +5 -5
- data/spec/lib/protobuf/rpc/stat_spec.rb +23 -4
- data/spec/support/google/protobuf/descriptor.pb.rb +360 -0
- data/spec/support/protos/map-test.bin +0 -0
- data/spec/support/protos/map-test.pb.rb +2 -2
- data/spec/support/protos/map-test.proto +3 -3
- data/spec/support/protos/optional_v3_fields.pb.rb +22 -0
- data/spec/support/protos/optional_v3_fields.proto +6 -0
- metadata +15 -11
- data/.travis.yml +0 -40
- data/install-protobuf.sh +0 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a36764aa2113c15a2dbc5e12f1bdfd04a69af8d19dd3e34d761ceaf1f875d81b
|
4
|
+
data.tar.gz: 1b790a1156812f2ca1f904ff70344d4bde7f15eea73384cc2b6f23d459ddf7e2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 989876600d8b6c89657e8224850eb64cfa0f0537c37843716d9df4742fde61feef6e4c278d8665ccf70be0cbe5d5006a61a2a8b36c718331bd25b3446d4125cf
|
7
|
+
data.tar.gz: 9975ca67caf38e5a0098d78e28b928353aa2b5d776d431102d7884e2002c8f88a97f2e5d5398b540dcf6205b6a4057be3c8dadfab6dbad73b05ab2368d9a589b
|
@@ -0,0 +1,48 @@
|
|
1
|
+
version: 2.1
|
2
|
+
|
3
|
+
jobs:
|
4
|
+
# skipping build step because Gemfile.lock is not included in the source
|
5
|
+
# this makes the bundler caching step a noop
|
6
|
+
test:
|
7
|
+
parameters:
|
8
|
+
ruby-image:
|
9
|
+
type: string
|
10
|
+
docker:
|
11
|
+
- image: << parameters.ruby-image >>
|
12
|
+
steps:
|
13
|
+
- run:
|
14
|
+
name: Install protobuf compiler
|
15
|
+
command: |
|
16
|
+
archive=protoc-3.16.0-linux-x86_64
|
17
|
+
curl -O -L https://github.com/protocolbuffers/protobuf/releases/download/v3.16.0/$archive.zip
|
18
|
+
sudo unzip -d '/usr/local' $archive.zip 'bin/*' 'include/*'
|
19
|
+
sudo chown -R $(whoami) /usr/local/bin/protoc /usr/local/include/google
|
20
|
+
rm -rf $archive.zip
|
21
|
+
- run:
|
22
|
+
command: protoc --version
|
23
|
+
- run:
|
24
|
+
command: sudo apt-get update
|
25
|
+
- run:
|
26
|
+
message: Install ZeroMQ
|
27
|
+
command: sudo apt-get -y install libzmq3-dev
|
28
|
+
- checkout
|
29
|
+
- run:
|
30
|
+
command: gem install bundler
|
31
|
+
- run:
|
32
|
+
command: bundle install
|
33
|
+
- run:
|
34
|
+
command: bundle exec rake
|
35
|
+
|
36
|
+
workflows:
|
37
|
+
build_and_test:
|
38
|
+
jobs:
|
39
|
+
- test:
|
40
|
+
matrix:
|
41
|
+
parameters:
|
42
|
+
ruby-image:
|
43
|
+
- circleci/jruby:9.2.6.0-jdk
|
44
|
+
- circleci/jruby:9.1.17.0-jdk
|
45
|
+
- circleci/jruby:9.2-jdk8
|
46
|
+
- circleci/ruby:2.4
|
47
|
+
- circleci/ruby:2.5
|
48
|
+
- circleci/ruby:2.7
|
data/CHANGES.md
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
# Stable (3.8.x)
|
2
2
|
|
3
|
+
|
4
|
+
3.10.0
|
5
|
+
------
|
6
|
+
- Add headers to request proto
|
7
|
+
- Add support for compiling v3 protos with optional fields as v2 optional fields
|
8
|
+
|
9
|
+
3.9.0
|
10
|
+
-----
|
11
|
+
- Performance improvements
|
12
|
+
|
3
13
|
3.8.0
|
4
14
|
-----
|
5
15
|
- Map types now supported (#367)
|
data/Rakefile
CHANGED
@@ -22,10 +22,12 @@ namespace :compile do
|
|
22
22
|
task :spec do
|
23
23
|
proto_path = ::File.expand_path('../spec/support/', __FILE__)
|
24
24
|
proto_files = Dir[File.join(proto_path, '**', '*.proto')]
|
25
|
-
cmd = %(protoc --plugin=./bin/protoc-gen-ruby --ruby_out=#{proto_path} -I #{proto_path} #{proto_files.join(' ')})
|
26
25
|
|
27
|
-
|
28
|
-
|
26
|
+
proto_files.each do |proto_file|
|
27
|
+
cmd = %(protoc --plugin=protoc-gen-ruby-protobuf=./bin/protoc-gen-ruby --ruby-protobuf_out=#{proto_path} -I #{proto_path} #{proto_file})
|
28
|
+
puts cmd
|
29
|
+
system(cmd) || fail("Failed to compile spec proto: #{proto_file}")
|
30
|
+
end
|
29
31
|
end
|
30
32
|
|
31
33
|
desc 'Compile rpc protos in protos/ directory'
|
@@ -35,10 +37,10 @@ namespace :compile do
|
|
35
37
|
output_dir = ::File.expand_path('../tmp/rpc', __FILE__)
|
36
38
|
::FileUtils.mkdir_p(output_dir)
|
37
39
|
|
38
|
-
cmd = %(protoc --plugin=./bin/protoc-gen-ruby --
|
40
|
+
cmd = %(protoc --plugin=protoc-gen-ruby-protobuf=./bin/protoc-gen-ruby --ruby-protobuf_out=#{output_dir} -I #{proto_path} #{proto_files.join(' ')})
|
39
41
|
|
40
42
|
puts cmd
|
41
|
-
system(cmd)
|
43
|
+
system(cmd) || fail("Failed to compile rpc protos!")
|
42
44
|
|
43
45
|
files = {
|
44
46
|
'tmp/rpc/dynamic_discovery.pb.rb' => 'lib/protobuf/rpc',
|
data/lib/protobuf.rb
CHANGED
@@ -54,6 +54,18 @@ module Protobuf
|
|
54
54
|
attr_writer :client_host
|
55
55
|
end
|
56
56
|
|
57
|
+
def self.after_server_bind(&block)
|
58
|
+
::ActiveSupport::Notifications.subscribe('after_server_bind') do |*args|
|
59
|
+
block.call(*args)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def self.before_server_bind(&block)
|
64
|
+
::ActiveSupport::Notifications.subscribe('before_server_bind') do |*args|
|
65
|
+
block.call(*args)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
57
69
|
def self.client_host
|
58
70
|
@client_host ||= Socket.gethostname
|
59
71
|
end
|
data/lib/protobuf/cli.rb
CHANGED
@@ -240,6 +240,8 @@ module Protobuf
|
|
240
240
|
def start_server
|
241
241
|
debug_say('Running server')
|
242
242
|
|
243
|
+
::ActiveSupport::Notifications.instrument("before_server_bind")
|
244
|
+
|
243
245
|
runner.run do
|
244
246
|
logger.info do
|
245
247
|
"pid #{::Process.pid} -- #{mode} RPC Server listening at #{options.host}:#{options.port}"
|
@@ -46,7 +46,16 @@ module Protobuf
|
|
46
46
|
generate_file(file_descriptor)
|
47
47
|
end
|
48
48
|
|
49
|
-
::Google::Protobuf::Compiler::CodeGeneratorResponse.encode(
|
49
|
+
::Google::Protobuf::Compiler::CodeGeneratorResponse.encode(
|
50
|
+
:file => generated_files,
|
51
|
+
:supported_features => supported_features,
|
52
|
+
)
|
53
|
+
end
|
54
|
+
|
55
|
+
def supported_features
|
56
|
+
# The only available feature is proto3 with optional fields.
|
57
|
+
# This is backwards compatible with proto2 optional fields.
|
58
|
+
::Google::Protobuf::Compiler::CodeGeneratorResponse::Feature::FEATURE_PROTO3_OPTIONAL.to_i
|
50
59
|
end
|
51
60
|
|
52
61
|
Protobuf::Field::BaseField.module_eval do
|
@@ -21,6 +21,11 @@ module Google
|
|
21
21
|
#
|
22
22
|
class CodeGeneratorRequest < ::Protobuf::Message; end
|
23
23
|
class CodeGeneratorResponse < ::Protobuf::Message
|
24
|
+
class Feature < ::Protobuf::Enum
|
25
|
+
define :FEATURE_NONE, 0
|
26
|
+
define :FEATURE_PROTO3_OPTIONAL, 1
|
27
|
+
end
|
28
|
+
|
24
29
|
class File < ::Protobuf::Message; end
|
25
30
|
|
26
31
|
end
|
@@ -51,6 +56,7 @@ module Google
|
|
51
56
|
end
|
52
57
|
|
53
58
|
optional :string, :error, 1
|
59
|
+
optional :uint64, :supported_features, 2
|
54
60
|
repeated ::Google::Protobuf::Compiler::CodeGeneratorResponse::File, :file, 15
|
55
61
|
end
|
56
62
|
|
@@ -63,8 +63,9 @@ module Protobuf
|
|
63
63
|
# @param [String] message The error message
|
64
64
|
def failure(code, message)
|
65
65
|
@error = ClientError.new
|
66
|
-
@error.code = ::Protobuf::Socketrpc::ErrorReason.fetch(code)
|
66
|
+
@stats.status = @error.code = ::Protobuf::Socketrpc::ErrorReason.fetch(code)
|
67
67
|
@error.message = message
|
68
|
+
|
68
69
|
logger.debug { sign_message("Server failed request (invoking on_failure): #{@error.inspect}") }
|
69
70
|
|
70
71
|
@failure_cb.call(@error) unless @failure_cb.nil?
|
@@ -139,12 +140,7 @@ module Protobuf
|
|
139
140
|
|
140
141
|
def request_bytes
|
141
142
|
validate_request_type!
|
142
|
-
|
143
|
-
:method_name => @options[:method].to_s,
|
144
|
-
:request_proto => @options[:request],
|
145
|
-
:caller => request_caller }
|
146
|
-
|
147
|
-
return ::Protobuf::Socketrpc::Request.encode(fields)
|
143
|
+
return ::Protobuf::Socketrpc::Request.encode(request_fields)
|
148
144
|
rescue => e
|
149
145
|
failure(:INVALID_REQUEST_PROTO, "Could not set request proto: #{e.message}")
|
150
146
|
end
|
@@ -153,6 +149,13 @@ module Protobuf
|
|
153
149
|
@options[:client_host] || ::Protobuf.client_host
|
154
150
|
end
|
155
151
|
|
152
|
+
def request_fields
|
153
|
+
{ :service_name => @options[:service].name,
|
154
|
+
:method_name => @options[:method].to_s,
|
155
|
+
:request_proto => @options[:request],
|
156
|
+
:caller => request_caller }
|
157
|
+
end
|
158
|
+
|
156
159
|
def send_request
|
157
160
|
fail 'If you inherit a Connector from Base you must implement send_request'
|
158
161
|
end
|
data/lib/protobuf/rpc/stat.rb
CHANGED
@@ -1,16 +1,30 @@
|
|
1
1
|
require 'date'
|
2
2
|
require 'time'
|
3
3
|
require 'protobuf/logging'
|
4
|
+
require 'protobuf/rpc/rpc.pb'
|
4
5
|
|
5
6
|
module Protobuf
|
6
7
|
module Rpc
|
7
8
|
class Stat
|
8
9
|
attr_accessor :mode, :start_time, :end_time, :request_size, :dispatcher
|
9
|
-
attr_accessor :response_size, :client, :service, :method_name
|
10
|
+
attr_accessor :response_size, :client, :service, :method_name, :status
|
10
11
|
attr_reader :server
|
11
12
|
|
12
13
|
MODES = [:SERVER, :CLIENT].freeze
|
13
14
|
|
15
|
+
ERROR_TRANSLATIONS = {
|
16
|
+
::Protobuf::Socketrpc::ErrorReason::BAD_REQUEST_DATA => "BAD_REQUEST_DATA",
|
17
|
+
::Protobuf::Socketrpc::ErrorReason::BAD_REQUEST_PROTO => "BAD_REQUEST_PROTO",
|
18
|
+
::Protobuf::Socketrpc::ErrorReason::SERVICE_NOT_FOUND => "SERVICE_NOT_FOUND",
|
19
|
+
::Protobuf::Socketrpc::ErrorReason::METHOD_NOT_FOUND => "METHOD_NOT_FOUND",
|
20
|
+
::Protobuf::Socketrpc::ErrorReason::RPC_ERROR => "RPC_ERROR",
|
21
|
+
::Protobuf::Socketrpc::ErrorReason::RPC_FAILED => "RPC_FAILED",
|
22
|
+
::Protobuf::Socketrpc::ErrorReason::INVALID_REQUEST_PROTO => "INVALID_REQUEST_PROTO",
|
23
|
+
::Protobuf::Socketrpc::ErrorReason::BAD_RESPONSE_PROTO => "BAD_RESPONSE_PROTO",
|
24
|
+
::Protobuf::Socketrpc::ErrorReason::UNKNOWN_HOST => "UNKNOWN_HOST",
|
25
|
+
::Protobuf::Socketrpc::ErrorReason::IO_ERROR => "IO_ERROR",
|
26
|
+
}.freeze
|
27
|
+
|
14
28
|
def initialize(mode = :SERVER)
|
15
29
|
@mode = mode
|
16
30
|
@request_size = 0
|
@@ -78,6 +92,12 @@ module Protobuf
|
|
78
92
|
@mode == :CLIENT
|
79
93
|
end
|
80
94
|
|
95
|
+
def status_string
|
96
|
+
return "OK" if status.nil?
|
97
|
+
|
98
|
+
ERROR_TRANSLATIONS.fetch(status, "UNKNOWN_ERROR")
|
99
|
+
end
|
100
|
+
|
81
101
|
def to_s
|
82
102
|
[
|
83
103
|
server? ? "[SRV]" : "[CLT]",
|
@@ -86,6 +106,7 @@ module Protobuf
|
|
86
106
|
rpc,
|
87
107
|
sizes,
|
88
108
|
elapsed_time,
|
109
|
+
status_string,
|
89
110
|
@end_time.try(:iso8601),
|
90
111
|
].compact.join(' - ')
|
91
112
|
end
|
@@ -93,7 +114,6 @@ module Protobuf
|
|
93
114
|
def trace_id
|
94
115
|
::Thread.current.object_id.to_s(16)
|
95
116
|
end
|
96
|
-
|
97
117
|
end
|
98
118
|
end
|
99
119
|
end
|
data/lib/protobuf/version.rb
CHANGED
@@ -44,6 +44,8 @@
|
|
44
44
|
// plugin should be named "protoc-gen-$NAME", and will then be used when the
|
45
45
|
// flag "--${NAME}_out" is passed to protoc.
|
46
46
|
|
47
|
+
syntax = "proto2";
|
48
|
+
|
47
49
|
package google.protobuf.compiler;
|
48
50
|
option java_package = "com.google.protobuf.compiler";
|
49
51
|
option java_outer_classname = "PluginProtos";
|
@@ -86,6 +88,16 @@ message CodeGeneratorResponse {
|
|
86
88
|
// exiting with a non-zero status code.
|
87
89
|
optional string error = 1;
|
88
90
|
|
91
|
+
// A bitmask of supported features that the code generator supports.
|
92
|
+
// This is a bitwise "or" of values from the Feature enum.
|
93
|
+
optional uint64 supported_features = 2;
|
94
|
+
|
95
|
+
// Sync with code_generator.h.
|
96
|
+
enum Feature {
|
97
|
+
FEATURE_NONE = 0;
|
98
|
+
FEATURE_PROTO3_OPTIONAL = 1;
|
99
|
+
}
|
100
|
+
|
89
101
|
// Represents a single generated file.
|
90
102
|
message File {
|
91
103
|
// The file name, relative to the output directory. The name must not
|
data/proto/rpc.proto
CHANGED
@@ -17,7 +17,7 @@ RSpec.describe 'code generation' do
|
|
17
17
|
end
|
18
18
|
|
19
19
|
expected_output =
|
20
|
-
::Google::Protobuf::Compiler::CodeGeneratorResponse.encode(:file => expected_file_descriptors)
|
20
|
+
::Google::Protobuf::Compiler::CodeGeneratorResponse.encode(:file => expected_file_descriptors, :supported_features => 1)
|
21
21
|
|
22
22
|
code_generator = ::Protobuf::CodeGenerator.new(bytes)
|
23
23
|
code_generator.eval_unknown_extensions!
|
@@ -37,7 +37,7 @@ RSpec.describe 'code generation' do
|
|
37
37
|
:name => file_name, :content => file_content)
|
38
38
|
|
39
39
|
expected_response =
|
40
|
-
::Google::Protobuf::Compiler::CodeGeneratorResponse.encode(:file => [expected_file_output])
|
40
|
+
::Google::Protobuf::Compiler::CodeGeneratorResponse.encode(:file => [expected_file_output], :supported_features => 1)
|
41
41
|
|
42
42
|
code_generator = ::Protobuf::CodeGenerator.new(request.encode)
|
43
43
|
code_generator.eval_unknown_extensions!
|
@@ -275,6 +275,41 @@ RSpec.describe ::Protobuf::CLI do
|
|
275
275
|
end
|
276
276
|
end
|
277
277
|
|
278
|
+
context 'after server bind' do
|
279
|
+
let(:sock_runner) { double("FakeRunner", :run => nil) }
|
280
|
+
|
281
|
+
before { allow(sock_runner).to receive(:run).and_yield }
|
282
|
+
|
283
|
+
it 'publishes when using the lib/protobuf callback' do
|
284
|
+
message_after_bind = false
|
285
|
+
::Protobuf.after_server_bind do
|
286
|
+
message_after_bind = true
|
287
|
+
end
|
288
|
+
described_class.start(args)
|
289
|
+
expect(message_after_bind).to eq(true)
|
290
|
+
end
|
291
|
+
end
|
292
|
+
|
293
|
+
context 'before server bind' do
|
294
|
+
it 'publishes a message before the runner runs' do
|
295
|
+
message_before_bind = false
|
296
|
+
::ActiveSupport::Notifications.subscribe('before_server_bind') do
|
297
|
+
message_before_bind = true
|
298
|
+
end
|
299
|
+
described_class.start(args)
|
300
|
+
expect(message_before_bind).to eq(true)
|
301
|
+
end
|
302
|
+
|
303
|
+
it 'publishes when using the lib/protobuf callback' do
|
304
|
+
message_before_bind = false
|
305
|
+
::Protobuf.before_server_bind do
|
306
|
+
message_before_bind = true
|
307
|
+
end
|
308
|
+
described_class.start(args)
|
309
|
+
expect(message_before_bind).to eq(true)
|
310
|
+
end
|
311
|
+
end
|
312
|
+
|
278
313
|
end
|
279
314
|
|
280
315
|
end
|
@@ -23,7 +23,7 @@ RSpec.describe ::Protobuf::CodeGenerator do
|
|
23
23
|
end
|
24
24
|
|
25
25
|
let(:expected_response_bytes) do
|
26
|
-
COMPILER::CodeGeneratorResponse.encode(:file => [output_file1, output_file2])
|
26
|
+
COMPILER::CodeGeneratorResponse.encode(:file => [output_file1, output_file2], :supported_features => 1)
|
27
27
|
end
|
28
28
|
|
29
29
|
before do
|
@@ -187,14 +187,14 @@ RSpec.describe Protobuf::Rpc::Connectors::Base do
|
|
187
187
|
shared_examples "a ConnectorDisposition" do |meth, cb, *args|
|
188
188
|
|
189
189
|
it "calls #complete before exit" do
|
190
|
-
subject.stats =
|
190
|
+
subject.stats = ::Protobuf::Rpc::Stat.new(:stop => true)
|
191
191
|
|
192
192
|
expect(subject).to receive(:complete)
|
193
193
|
subject.method(meth).call(*args)
|
194
194
|
end
|
195
195
|
|
196
196
|
it "calls the #{cb} callback when provided" do
|
197
|
-
stats =
|
197
|
+
stats = ::Protobuf::Rpc::Stat.new
|
198
198
|
allow(stats).to receive(:stop).and_return(true)
|
199
199
|
subject.stats = stats
|
200
200
|
some_cb = double("Object")
|
@@ -205,7 +205,7 @@ RSpec.describe Protobuf::Rpc::Connectors::Base do
|
|
205
205
|
end
|
206
206
|
|
207
207
|
it "calls the complete callback when provided" do
|
208
|
-
stats =
|
208
|
+
stats = ::Protobuf::Rpc::Stat.new
|
209
209
|
allow(stats).to receive(:stop).and_return(true)
|
210
210
|
subject.stats = stats
|
211
211
|
comp_cb = double("Object")
|
@@ -217,8 +217,8 @@ RSpec.describe Protobuf::Rpc::Connectors::Base do
|
|
217
217
|
|
218
218
|
end
|
219
219
|
|
220
|
-
it_behaves_like("a ConnectorDisposition", :failure, "failure_cb",
|
221
|
-
it_behaves_like("a ConnectorDisposition", :failure, "complete_cb",
|
220
|
+
it_behaves_like("a ConnectorDisposition", :failure, "failure_cb", :RPC_ERROR, "message")
|
221
|
+
it_behaves_like("a ConnectorDisposition", :failure, "complete_cb", :RPC_ERROR, "message")
|
222
222
|
it_behaves_like("a ConnectorDisposition", :succeed, "complete_cb", "response")
|
223
223
|
it_behaves_like("a ConnectorDisposition", :succeed, "success_cb", "response")
|
224
224
|
it_behaves_like("a ConnectorDisposition", :complete, "complete_cb")
|
@@ -33,7 +33,7 @@ RSpec.describe ::Protobuf::Rpc::Stat do
|
|
33
33
|
|
34
34
|
::Timecop.freeze(1.62.seconds.from_now) do
|
35
35
|
stats.stop
|
36
|
-
expect(stats.to_s).to eq "[SRV] - myserver1 - #{stats.trace_id} - BarService#find_bars - 43B/1302B - 1.62s - #{::Time.now.iso8601}"
|
36
|
+
expect(stats.to_s).to eq "[SRV] - myserver1 - #{stats.trace_id} - BarService#find_bars - 43B/1302B - 1.62s - OK - #{::Time.now.iso8601}"
|
37
37
|
end
|
38
38
|
end
|
39
39
|
end
|
@@ -44,7 +44,7 @@ RSpec.describe ::Protobuf::Rpc::Stat do
|
|
44
44
|
stats.client = 'myserver1'
|
45
45
|
stats.dispatcher = double('dispatcher', :service => BarService.new(:find_bars))
|
46
46
|
stats.request_size = 43
|
47
|
-
expect(stats.to_s).to eq "[SRV] - myserver1 - #{stats.trace_id} - BarService#find_bars - 43B/-"
|
47
|
+
expect(stats.to_s).to eq "[SRV] - myserver1 - #{stats.trace_id} - BarService#find_bars - 43B/- - OK"
|
48
48
|
end
|
49
49
|
end
|
50
50
|
end
|
@@ -61,12 +61,31 @@ RSpec.describe ::Protobuf::Rpc::Stat do
|
|
61
61
|
|
62
62
|
::Timecop.freeze(0.832.seconds.from_now) do
|
63
63
|
stats.stop
|
64
|
-
expect(stats.to_s).to eq "[CLT] - myserver1.myhost.com:30000 - #{stats.trace_id} - Foo::BarService#find_bars - 37B/12345B - 0.832s - #{::Time.now.iso8601}"
|
64
|
+
expect(stats.to_s).to eq "[CLT] - myserver1.myhost.com:30000 - #{stats.trace_id} - Foo::BarService#find_bars - 37B/12345B - 0.832s - OK - #{::Time.now.iso8601}"
|
65
65
|
end
|
66
66
|
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
|
+
describe 'error log' do
|
71
|
+
it 'resolves error to a string' do
|
72
|
+
::Timecop.freeze(10.minutes.ago) do
|
73
|
+
stats = ::Protobuf::Rpc::Stat.new(:CLIENT)
|
74
|
+
stats.server = ['30000', 'myserver1.myhost.com']
|
75
|
+
stats.service = 'Foo::BarService'
|
76
|
+
stats.status = ::Protobuf::Socketrpc::ErrorReason::RPC_ERROR
|
77
|
+
stats.method_name = 'find_bars'
|
78
|
+
stats.request_size = 37
|
79
|
+
stats.response_size = 12345
|
80
|
+
|
81
|
+
::Timecop.freeze(0.832.seconds.from_now) do
|
82
|
+
stats.stop
|
83
|
+
expect(stats.to_s).to eq "[CLT] - myserver1.myhost.com:30000 - #{stats.trace_id} - Foo::BarService#find_bars - 37B/12345B - 0.832s - RPC_ERROR - #{::Time.now.iso8601}"
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
70
89
|
context 'when request is still running' do
|
71
90
|
it 'omits response size, duration, and timestamp' do
|
72
91
|
stats = ::Protobuf::Rpc::Stat.new(:CLIENT)
|
@@ -74,7 +93,7 @@ RSpec.describe ::Protobuf::Rpc::Stat do
|
|
74
93
|
stats.service = 'Foo::BarService'
|
75
94
|
stats.method_name = 'find_bars'
|
76
95
|
stats.request_size = 37
|
77
|
-
expect(stats.to_s).to eq "[CLT] - myserver1.myhost.com:30000 - #{stats.trace_id} - Foo::BarService#find_bars - 37B/-"
|
96
|
+
expect(stats.to_s).to eq "[CLT] - myserver1.myhost.com:30000 - #{stats.trace_id} - Foo::BarService#find_bars - 37B/- - OK"
|
78
97
|
end
|
79
98
|
end
|
80
99
|
end
|
@@ -0,0 +1,360 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
##
|
4
|
+
# This file is auto-generated. DO NOT EDIT!
|
5
|
+
#
|
6
|
+
require 'protobuf'
|
7
|
+
|
8
|
+
module Google
|
9
|
+
module Protobuf
|
10
|
+
::Protobuf::Optionable.inject(self) { ::Google::Protobuf::FileOptions }
|
11
|
+
|
12
|
+
##
|
13
|
+
# Message Classes
|
14
|
+
#
|
15
|
+
class FileDescriptorSet < ::Protobuf::Message; end
|
16
|
+
class FileDescriptorProto < ::Protobuf::Message; end
|
17
|
+
class DescriptorProto < ::Protobuf::Message
|
18
|
+
class ExtensionRange < ::Protobuf::Message; end
|
19
|
+
class ReservedRange < ::Protobuf::Message; end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
class ExtensionRangeOptions < ::Protobuf::Message; end
|
24
|
+
class FieldDescriptorProto < ::Protobuf::Message
|
25
|
+
class Type < ::Protobuf::Enum
|
26
|
+
define :TYPE_DOUBLE, 1
|
27
|
+
define :TYPE_FLOAT, 2
|
28
|
+
define :TYPE_INT64, 3
|
29
|
+
define :TYPE_UINT64, 4
|
30
|
+
define :TYPE_INT32, 5
|
31
|
+
define :TYPE_FIXED64, 6
|
32
|
+
define :TYPE_FIXED32, 7
|
33
|
+
define :TYPE_BOOL, 8
|
34
|
+
define :TYPE_STRING, 9
|
35
|
+
define :TYPE_GROUP, 10
|
36
|
+
define :TYPE_MESSAGE, 11
|
37
|
+
define :TYPE_BYTES, 12
|
38
|
+
define :TYPE_UINT32, 13
|
39
|
+
define :TYPE_ENUM, 14
|
40
|
+
define :TYPE_SFIXED32, 15
|
41
|
+
define :TYPE_SFIXED64, 16
|
42
|
+
define :TYPE_SINT32, 17
|
43
|
+
define :TYPE_SINT64, 18
|
44
|
+
end
|
45
|
+
|
46
|
+
class Label < ::Protobuf::Enum
|
47
|
+
define :LABEL_OPTIONAL, 1
|
48
|
+
define :LABEL_REQUIRED, 2
|
49
|
+
define :LABEL_REPEATED, 3
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
class OneofDescriptorProto < ::Protobuf::Message; end
|
55
|
+
class EnumDescriptorProto < ::Protobuf::Message
|
56
|
+
class EnumReservedRange < ::Protobuf::Message; end
|
57
|
+
|
58
|
+
end
|
59
|
+
|
60
|
+
class EnumValueDescriptorProto < ::Protobuf::Message; end
|
61
|
+
class ServiceDescriptorProto < ::Protobuf::Message; end
|
62
|
+
class MethodDescriptorProto < ::Protobuf::Message; end
|
63
|
+
class FileOptions < ::Protobuf::Message
|
64
|
+
class OptimizeMode < ::Protobuf::Enum
|
65
|
+
define :SPEED, 1
|
66
|
+
define :CODE_SIZE, 2
|
67
|
+
define :LITE_RUNTIME, 3
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
class MessageOptions < ::Protobuf::Message; end
|
73
|
+
class FieldOptions < ::Protobuf::Message
|
74
|
+
class CType < ::Protobuf::Enum
|
75
|
+
define :STRING, 0
|
76
|
+
define :CORD, 1
|
77
|
+
define :STRING_PIECE, 2
|
78
|
+
end
|
79
|
+
|
80
|
+
class JSType < ::Protobuf::Enum
|
81
|
+
define :JS_NORMAL, 0
|
82
|
+
define :JS_STRING, 1
|
83
|
+
define :JS_NUMBER, 2
|
84
|
+
end
|
85
|
+
|
86
|
+
end
|
87
|
+
|
88
|
+
class OneofOptions < ::Protobuf::Message; end
|
89
|
+
class EnumOptions < ::Protobuf::Message; end
|
90
|
+
class EnumValueOptions < ::Protobuf::Message; end
|
91
|
+
class ServiceOptions < ::Protobuf::Message; end
|
92
|
+
class MethodOptions < ::Protobuf::Message
|
93
|
+
class IdempotencyLevel < ::Protobuf::Enum
|
94
|
+
define :IDEMPOTENCY_UNKNOWN, 0
|
95
|
+
define :NO_SIDE_EFFECTS, 1
|
96
|
+
define :IDEMPOTENT, 2
|
97
|
+
end
|
98
|
+
|
99
|
+
end
|
100
|
+
|
101
|
+
class UninterpretedOption < ::Protobuf::Message
|
102
|
+
class NamePart < ::Protobuf::Message; end
|
103
|
+
|
104
|
+
end
|
105
|
+
|
106
|
+
class SourceCodeInfo < ::Protobuf::Message
|
107
|
+
class Location < ::Protobuf::Message; end
|
108
|
+
|
109
|
+
end
|
110
|
+
|
111
|
+
class GeneratedCodeInfo < ::Protobuf::Message
|
112
|
+
class Annotation < ::Protobuf::Message; end
|
113
|
+
|
114
|
+
end
|
115
|
+
|
116
|
+
|
117
|
+
|
118
|
+
##
|
119
|
+
# File Options
|
120
|
+
#
|
121
|
+
set_option :java_package, "com.google.protobuf"
|
122
|
+
set_option :java_outer_classname, "DescriptorProtos"
|
123
|
+
set_option :optimize_for, ::Google::Protobuf::FileOptions::OptimizeMode::SPEED
|
124
|
+
set_option :go_package, "google.golang.org/protobuf/types/descriptorpb"
|
125
|
+
set_option :cc_enable_arenas, true
|
126
|
+
set_option :objc_class_prefix, "GPB"
|
127
|
+
set_option :csharp_namespace, "Google.Protobuf.Reflection"
|
128
|
+
|
129
|
+
|
130
|
+
##
|
131
|
+
# Message Fields
|
132
|
+
#
|
133
|
+
class FileDescriptorSet
|
134
|
+
repeated ::Google::Protobuf::FileDescriptorProto, :file, 1
|
135
|
+
end
|
136
|
+
|
137
|
+
class FileDescriptorProto
|
138
|
+
optional :string, :name, 1
|
139
|
+
optional :string, :package, 2
|
140
|
+
repeated :string, :dependency, 3
|
141
|
+
repeated :int32, :public_dependency, 10
|
142
|
+
repeated :int32, :weak_dependency, 11
|
143
|
+
repeated ::Google::Protobuf::DescriptorProto, :message_type, 4
|
144
|
+
repeated ::Google::Protobuf::EnumDescriptorProto, :enum_type, 5
|
145
|
+
repeated ::Google::Protobuf::ServiceDescriptorProto, :service, 6
|
146
|
+
repeated ::Google::Protobuf::FieldDescriptorProto, :extension, 7
|
147
|
+
optional ::Google::Protobuf::FileOptions, :options, 8
|
148
|
+
optional ::Google::Protobuf::SourceCodeInfo, :source_code_info, 9
|
149
|
+
optional :string, :syntax, 12
|
150
|
+
end
|
151
|
+
|
152
|
+
class DescriptorProto
|
153
|
+
class ExtensionRange
|
154
|
+
optional :int32, :start, 1
|
155
|
+
optional :int32, :end, 2
|
156
|
+
optional ::Google::Protobuf::ExtensionRangeOptions, :options, 3
|
157
|
+
end
|
158
|
+
|
159
|
+
class ReservedRange
|
160
|
+
optional :int32, :start, 1
|
161
|
+
optional :int32, :end, 2
|
162
|
+
end
|
163
|
+
|
164
|
+
optional :string, :name, 1
|
165
|
+
repeated ::Google::Protobuf::FieldDescriptorProto, :field, 2
|
166
|
+
repeated ::Google::Protobuf::FieldDescriptorProto, :extension, 6
|
167
|
+
repeated ::Google::Protobuf::DescriptorProto, :nested_type, 3
|
168
|
+
repeated ::Google::Protobuf::EnumDescriptorProto, :enum_type, 4
|
169
|
+
repeated ::Google::Protobuf::DescriptorProto::ExtensionRange, :extension_range, 5
|
170
|
+
repeated ::Google::Protobuf::OneofDescriptorProto, :oneof_decl, 8
|
171
|
+
optional ::Google::Protobuf::MessageOptions, :options, 7
|
172
|
+
repeated ::Google::Protobuf::DescriptorProto::ReservedRange, :reserved_range, 9
|
173
|
+
repeated :string, :reserved_name, 10
|
174
|
+
end
|
175
|
+
|
176
|
+
class ExtensionRangeOptions
|
177
|
+
repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
|
178
|
+
# Extension Fields
|
179
|
+
extensions 1000...536870912
|
180
|
+
end
|
181
|
+
|
182
|
+
class FieldDescriptorProto
|
183
|
+
optional :string, :name, 1
|
184
|
+
optional :int32, :number, 3
|
185
|
+
optional ::Google::Protobuf::FieldDescriptorProto::Label, :label, 4
|
186
|
+
optional ::Google::Protobuf::FieldDescriptorProto::Type, :type, 5
|
187
|
+
optional :string, :type_name, 6
|
188
|
+
optional :string, :extendee, 2
|
189
|
+
optional :string, :default_value, 7
|
190
|
+
optional :int32, :oneof_index, 9
|
191
|
+
optional :string, :json_name, 10
|
192
|
+
optional ::Google::Protobuf::FieldOptions, :options, 8
|
193
|
+
optional :bool, :proto3_optional, 17
|
194
|
+
end
|
195
|
+
|
196
|
+
class OneofDescriptorProto
|
197
|
+
optional :string, :name, 1
|
198
|
+
optional ::Google::Protobuf::OneofOptions, :options, 2
|
199
|
+
end
|
200
|
+
|
201
|
+
class EnumDescriptorProto
|
202
|
+
class EnumReservedRange
|
203
|
+
optional :int32, :start, 1
|
204
|
+
optional :int32, :end, 2
|
205
|
+
end
|
206
|
+
|
207
|
+
optional :string, :name, 1
|
208
|
+
repeated ::Google::Protobuf::EnumValueDescriptorProto, :value, 2
|
209
|
+
optional ::Google::Protobuf::EnumOptions, :options, 3
|
210
|
+
repeated ::Google::Protobuf::EnumDescriptorProto::EnumReservedRange, :reserved_range, 4
|
211
|
+
repeated :string, :reserved_name, 5
|
212
|
+
end
|
213
|
+
|
214
|
+
class EnumValueDescriptorProto
|
215
|
+
optional :string, :name, 1
|
216
|
+
optional :int32, :number, 2
|
217
|
+
optional ::Google::Protobuf::EnumValueOptions, :options, 3
|
218
|
+
end
|
219
|
+
|
220
|
+
class ServiceDescriptorProto
|
221
|
+
optional :string, :name, 1
|
222
|
+
repeated ::Google::Protobuf::MethodDescriptorProto, :method, 2
|
223
|
+
optional ::Google::Protobuf::ServiceOptions, :options, 3
|
224
|
+
end
|
225
|
+
|
226
|
+
class MethodDescriptorProto
|
227
|
+
optional :string, :name, 1
|
228
|
+
optional :string, :input_type, 2
|
229
|
+
optional :string, :output_type, 3
|
230
|
+
optional ::Google::Protobuf::MethodOptions, :options, 4
|
231
|
+
optional :bool, :client_streaming, 5, :default => false
|
232
|
+
optional :bool, :server_streaming, 6, :default => false
|
233
|
+
end
|
234
|
+
|
235
|
+
class FileOptions
|
236
|
+
optional :string, :java_package, 1
|
237
|
+
optional :string, :java_outer_classname, 8
|
238
|
+
optional :bool, :java_multiple_files, 10, :default => false
|
239
|
+
optional :bool, :java_generate_equals_and_hash, 20, :deprecated => true
|
240
|
+
optional :bool, :java_string_check_utf8, 27, :default => false
|
241
|
+
optional ::Google::Protobuf::FileOptions::OptimizeMode, :optimize_for, 9, :default => ::Google::Protobuf::FileOptions::OptimizeMode::SPEED
|
242
|
+
optional :string, :go_package, 11
|
243
|
+
optional :bool, :cc_generic_services, 16, :default => false
|
244
|
+
optional :bool, :java_generic_services, 17, :default => false
|
245
|
+
optional :bool, :py_generic_services, 18, :default => false
|
246
|
+
optional :bool, :php_generic_services, 42, :default => false
|
247
|
+
optional :bool, :deprecated, 23, :default => false
|
248
|
+
optional :bool, :cc_enable_arenas, 31, :default => true
|
249
|
+
optional :string, :objc_class_prefix, 36
|
250
|
+
optional :string, :csharp_namespace, 37
|
251
|
+
optional :string, :swift_prefix, 39
|
252
|
+
optional :string, :php_class_prefix, 40
|
253
|
+
optional :string, :php_namespace, 41
|
254
|
+
optional :string, :php_metadata_namespace, 44
|
255
|
+
optional :string, :ruby_package, 45
|
256
|
+
repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
|
257
|
+
# Extension Fields
|
258
|
+
extensions 1000...536870912
|
259
|
+
end
|
260
|
+
|
261
|
+
class MessageOptions
|
262
|
+
optional :bool, :message_set_wire_format, 1, :default => false
|
263
|
+
optional :bool, :no_standard_descriptor_accessor, 2, :default => false
|
264
|
+
optional :bool, :deprecated, 3, :default => false
|
265
|
+
optional :bool, :map_entry, 7
|
266
|
+
repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
|
267
|
+
# Extension Fields
|
268
|
+
extensions 1000...536870912
|
269
|
+
end
|
270
|
+
|
271
|
+
class FieldOptions
|
272
|
+
optional ::Google::Protobuf::FieldOptions::CType, :ctype, 1, :default => ::Google::Protobuf::FieldOptions::CType::STRING
|
273
|
+
optional :bool, :packed, 2
|
274
|
+
optional ::Google::Protobuf::FieldOptions::JSType, :jstype, 6, :default => ::Google::Protobuf::FieldOptions::JSType::JS_NORMAL
|
275
|
+
optional :bool, :lazy, 5, :default => false
|
276
|
+
optional :bool, :deprecated, 3, :default => false
|
277
|
+
optional :bool, :weak, 10, :default => false
|
278
|
+
repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
|
279
|
+
# Extension Fields
|
280
|
+
extensions 1000...536870912
|
281
|
+
end
|
282
|
+
|
283
|
+
class OneofOptions
|
284
|
+
repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
|
285
|
+
# Extension Fields
|
286
|
+
extensions 1000...536870912
|
287
|
+
end
|
288
|
+
|
289
|
+
class EnumOptions
|
290
|
+
optional :bool, :allow_alias, 2
|
291
|
+
optional :bool, :deprecated, 3, :default => false
|
292
|
+
repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
|
293
|
+
# Extension Fields
|
294
|
+
extensions 1000...536870912
|
295
|
+
end
|
296
|
+
|
297
|
+
class EnumValueOptions
|
298
|
+
optional :bool, :deprecated, 1, :default => false
|
299
|
+
repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
|
300
|
+
# Extension Fields
|
301
|
+
extensions 1000...536870912
|
302
|
+
end
|
303
|
+
|
304
|
+
class ServiceOptions
|
305
|
+
optional :bool, :deprecated, 33, :default => false
|
306
|
+
repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
|
307
|
+
# Extension Fields
|
308
|
+
extensions 1000...536870912
|
309
|
+
end
|
310
|
+
|
311
|
+
class MethodOptions
|
312
|
+
optional :bool, :deprecated, 33, :default => false
|
313
|
+
optional ::Google::Protobuf::MethodOptions::IdempotencyLevel, :idempotency_level, 34, :default => ::Google::Protobuf::MethodOptions::IdempotencyLevel::IDEMPOTENCY_UNKNOWN
|
314
|
+
repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
|
315
|
+
# Extension Fields
|
316
|
+
extensions 1000...536870912
|
317
|
+
end
|
318
|
+
|
319
|
+
class UninterpretedOption
|
320
|
+
class NamePart
|
321
|
+
required :string, :name_part, 1
|
322
|
+
required :bool, :is_extension, 2
|
323
|
+
end
|
324
|
+
|
325
|
+
repeated ::Google::Protobuf::UninterpretedOption::NamePart, :name, 2
|
326
|
+
optional :string, :identifier_value, 3
|
327
|
+
optional :uint64, :positive_int_value, 4
|
328
|
+
optional :int64, :negative_int_value, 5
|
329
|
+
optional :double, :double_value, 6
|
330
|
+
optional :bytes, :string_value, 7
|
331
|
+
optional :string, :aggregate_value, 8
|
332
|
+
end
|
333
|
+
|
334
|
+
class SourceCodeInfo
|
335
|
+
class Location
|
336
|
+
repeated :int32, :path, 1, :packed => true
|
337
|
+
repeated :int32, :span, 2, :packed => true
|
338
|
+
optional :string, :leading_comments, 3
|
339
|
+
optional :string, :trailing_comments, 4
|
340
|
+
repeated :string, :leading_detached_comments, 6
|
341
|
+
end
|
342
|
+
|
343
|
+
repeated ::Google::Protobuf::SourceCodeInfo::Location, :location, 1
|
344
|
+
end
|
345
|
+
|
346
|
+
class GeneratedCodeInfo
|
347
|
+
class Annotation
|
348
|
+
repeated :int32, :path, 1, :packed => true
|
349
|
+
optional :string, :source_file, 2
|
350
|
+
optional :int32, :begin, 3
|
351
|
+
optional :int32, :end, 4
|
352
|
+
end
|
353
|
+
|
354
|
+
repeated ::Google::Protobuf::GeneratedCodeInfo::Annotation, :annotation, 1
|
355
|
+
end
|
356
|
+
|
357
|
+
end
|
358
|
+
|
359
|
+
end
|
360
|
+
|
Binary file
|
@@ -1,13 +1,13 @@
|
|
1
1
|
// Use protoc v3.0.0 to compile this file into map-test.bin:
|
2
|
-
// protoc --descriptor_set_out=map-test.bin map-test.proto
|
2
|
+
// protoc --descriptor_set_out=map-test.bin map-test.proto
|
3
3
|
|
4
4
|
syntax = "proto2";
|
5
5
|
|
6
6
|
package foo;
|
7
7
|
|
8
8
|
enum Frobnitz {
|
9
|
-
FROB =
|
10
|
-
NITZ =
|
9
|
+
FROB = 0;
|
10
|
+
NITZ = 1;
|
11
11
|
}
|
12
12
|
|
13
13
|
message Baz {
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
##
|
4
|
+
# This file is auto-generated. DO NOT EDIT!
|
5
|
+
#
|
6
|
+
require 'protobuf'
|
7
|
+
|
8
|
+
|
9
|
+
##
|
10
|
+
# Message Classes
|
11
|
+
#
|
12
|
+
class SomethingWithOptionalFields < ::Protobuf::Message; end
|
13
|
+
|
14
|
+
|
15
|
+
##
|
16
|
+
# Message Fields
|
17
|
+
#
|
18
|
+
class SomethingWithOptionalFields
|
19
|
+
optional :string, :i_am_optional, 1
|
20
|
+
optional :string, :i_am_not_optional, 2
|
21
|
+
end
|
22
|
+
|
metadata
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: protobuf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.10.
|
4
|
+
version: 3.10.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- BJ Neilsen
|
8
8
|
- Brandon Dewitt
|
9
9
|
- Devin Christensen
|
10
10
|
- Adam Hutchison
|
11
|
-
autorequire:
|
11
|
+
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2021-06-30 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: activesupport
|
@@ -263,10 +263,10 @@ executables:
|
|
263
263
|
extensions: []
|
264
264
|
extra_rdoc_files: []
|
265
265
|
files:
|
266
|
+
- ".circleci/config.yml"
|
266
267
|
- ".gitignore"
|
267
268
|
- ".rubocop.yml"
|
268
269
|
- ".rubocop_todo.yml"
|
269
|
-
- ".travis.yml"
|
270
270
|
- ".yardopts"
|
271
271
|
- CHANGES.md
|
272
272
|
- CONTRIBUTING.md
|
@@ -276,7 +276,6 @@ files:
|
|
276
276
|
- Rakefile
|
277
277
|
- bin/protoc-gen-ruby
|
278
278
|
- bin/rpc_server
|
279
|
-
- install-protobuf.sh
|
280
279
|
- lib/protobuf.rb
|
281
280
|
- lib/protobuf/cli.rb
|
282
281
|
- lib/protobuf/code_generator.rb
|
@@ -438,6 +437,7 @@ files:
|
|
438
437
|
- spec/lib/protobuf_spec.rb
|
439
438
|
- spec/spec_helper.rb
|
440
439
|
- spec/support/all.rb
|
440
|
+
- spec/support/google/protobuf/descriptor.pb.rb
|
441
441
|
- spec/support/packed_field.rb
|
442
442
|
- spec/support/protos/all_types.data.bin
|
443
443
|
- spec/support/protos/all_types.data.txt
|
@@ -459,6 +459,8 @@ files:
|
|
459
459
|
- spec/support/protos/map-test.proto
|
460
460
|
- spec/support/protos/multi_field_extensions.pb.rb
|
461
461
|
- spec/support/protos/multi_field_extensions.proto
|
462
|
+
- spec/support/protos/optional_v3_fields.pb.rb
|
463
|
+
- spec/support/protos/optional_v3_fields.proto
|
462
464
|
- spec/support/protos/resource.pb.rb
|
463
465
|
- spec/support/protos/resource.proto
|
464
466
|
- spec/support/resource_service.rb
|
@@ -469,7 +471,7 @@ homepage: https://github.com/localshred/protobuf
|
|
469
471
|
licenses:
|
470
472
|
- MIT
|
471
473
|
metadata: {}
|
472
|
-
post_install_message:
|
474
|
+
post_install_message:
|
473
475
|
rdoc_options: []
|
474
476
|
require_paths:
|
475
477
|
- lib
|
@@ -480,13 +482,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
480
482
|
version: '0'
|
481
483
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
482
484
|
requirements:
|
483
|
-
- - "
|
485
|
+
- - ">="
|
484
486
|
- !ruby/object:Gem::Version
|
485
|
-
version:
|
487
|
+
version: '0'
|
486
488
|
requirements: []
|
487
|
-
|
488
|
-
|
489
|
-
signing_key:
|
489
|
+
rubygems_version: 3.0.3
|
490
|
+
signing_key:
|
490
491
|
specification_version: 4
|
491
492
|
summary: Google Protocol Buffers serialization and RPC implementation for Ruby.
|
492
493
|
test_files:
|
@@ -552,6 +553,7 @@ test_files:
|
|
552
553
|
- spec/lib/protobuf_spec.rb
|
553
554
|
- spec/spec_helper.rb
|
554
555
|
- spec/support/all.rb
|
556
|
+
- spec/support/google/protobuf/descriptor.pb.rb
|
555
557
|
- spec/support/packed_field.rb
|
556
558
|
- spec/support/protos/all_types.data.bin
|
557
559
|
- spec/support/protos/all_types.data.txt
|
@@ -573,6 +575,8 @@ test_files:
|
|
573
575
|
- spec/support/protos/map-test.proto
|
574
576
|
- spec/support/protos/multi_field_extensions.pb.rb
|
575
577
|
- spec/support/protos/multi_field_extensions.proto
|
578
|
+
- spec/support/protos/optional_v3_fields.pb.rb
|
579
|
+
- spec/support/protos/optional_v3_fields.proto
|
576
580
|
- spec/support/protos/resource.pb.rb
|
577
581
|
- spec/support/protos/resource.proto
|
578
582
|
- spec/support/resource_service.rb
|
data/.travis.yml
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
before_install:
|
2
|
-
- wget https://github.com/zeromq/libzmq/releases/download/v4.2.1/zeromq-4.2.1.tar.gz
|
3
|
-
- tar xvf zeromq-4.2.1.tar.gz
|
4
|
-
- cd zeromq-4.2.1
|
5
|
-
- ./configure
|
6
|
-
- make -j4
|
7
|
-
- sudo make install
|
8
|
-
# Retrun to project directory
|
9
|
-
- cd ..
|
10
|
-
- sudo -E ./install-protobuf.sh
|
11
|
-
- java -Xmx1g -version
|
12
|
-
- javac -J-Xmx1g -version
|
13
|
-
- export JRUBY_OPTS=-J-Xmx1g
|
14
|
-
- gem update bundler
|
15
|
-
language: ruby
|
16
|
-
rvm:
|
17
|
-
- 1.9.3
|
18
|
-
- 2.0.0
|
19
|
-
- 2.1
|
20
|
-
- 2.2
|
21
|
-
- 2.3
|
22
|
-
- 2.4
|
23
|
-
- 2.5
|
24
|
-
- jruby-9.1.17.0
|
25
|
-
- jruby-9.2.5.0
|
26
|
-
- rbx-2
|
27
|
-
env:
|
28
|
-
- PROTOBUF_VERSION=2.6.1
|
29
|
-
- PROTOBUF_VERSION=3.0.0-alpha-2
|
30
|
-
matrix:
|
31
|
-
allow_failures:
|
32
|
-
- rvm: rbx-2
|
33
|
-
- env: PROTOBUF_VERSION=3.0.0-alpha-2
|
34
|
-
notifications:
|
35
|
-
webhooks:
|
36
|
-
urls:
|
37
|
-
- https://webhooks.gitter.im/e/51a956bcd2b1854d6756
|
38
|
-
on_success: change # options: [always|never|change] default: always
|
39
|
-
on_failure: always # options: [always|never|change] default: always
|
40
|
-
on_start: false # default: false
|
data/install-protobuf.sh
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
#!/usr/bin/env sh
|
2
|
-
|
3
|
-
set -ex
|
4
|
-
|
5
|
-
gdie() {
|
6
|
-
echo "$@" >&2
|
7
|
-
exit 1
|
8
|
-
}
|
9
|
-
|
10
|
-
test -n "$PROTOBUF_VERSION" || die "PROTOBUF_VERSION env var is undefined"
|
11
|
-
|
12
|
-
case "$PROTOBUF_VERSION" in
|
13
|
-
2*)
|
14
|
-
basename=protobuf-$PROTOBUF_VERSION
|
15
|
-
;;
|
16
|
-
3*)
|
17
|
-
basename=protobuf-cpp-$PROTOBUF_VERSION
|
18
|
-
;;
|
19
|
-
*)
|
20
|
-
die "unknown protobuf version: $PROTOBUF_VERSION"
|
21
|
-
;;
|
22
|
-
esac
|
23
|
-
|
24
|
-
curl -sL https://github.com/google/protobuf/releases/download/v$PROTOBUF_VERSION/$basename.tar.gz | tar zx
|
25
|
-
|
26
|
-
cd protobuf-$PROTOBUF_VERSION
|
27
|
-
|
28
|
-
./configure --prefix=/usr && make -j2 && make install
|