protobuf 3.10.1 → 3.10.5
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 +1 -0
- data/Rakefile +7 -5
- 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 +17 -0
- data/lib/protobuf/descriptors/google/protobuf/descriptor.pb.rb +65 -6
- data/lib/protobuf/version.rb +1 -1
- data/lib/protobuf.rb +12 -0
- data/proto/dynamic_discovery.proto +2 -0
- data/proto/google/protobuf/compiler/plugin.proto +37 -1
- data/proto/google/protobuf/descriptor.proto +228 -96
- 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/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 +13 -9
- data/.travis.yml +0 -40
- data/install-protobuf.sh +0 -28
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
|
@@ -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
|