protobuffy 3.1.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.
Files changed (192) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +21 -0
  3. data/.travis.yml +12 -0
  4. data/.yardopts +5 -0
  5. data/CHANGES.md +261 -0
  6. data/CONTRIBUTING.md +16 -0
  7. data/Gemfile +3 -0
  8. data/LICENSE.txt +14 -0
  9. data/README.md +58 -0
  10. data/Rakefile +61 -0
  11. data/bin/protoc-gen-ruby +17 -0
  12. data/bin/rpc_server +4 -0
  13. data/examples/bin/reverse-client-http +4 -0
  14. data/examples/bin/reverse-client-socket +4 -0
  15. data/examples/bin/reverse-client-zmq +4 -0
  16. data/examples/config.ru +6 -0
  17. data/examples/definitions/example/reverse.proto +12 -0
  18. data/examples/lib/example/reverse-client.rb +23 -0
  19. data/examples/lib/example/reverse-service.rb +9 -0
  20. data/examples/lib/example/reverse.pb.rb +36 -0
  21. data/lib/protobuf.rb +106 -0
  22. data/lib/protobuf/cli.rb +249 -0
  23. data/lib/protobuf/code_generator.rb +41 -0
  24. data/lib/protobuf/decoder.rb +74 -0
  25. data/lib/protobuf/deprecator.rb +42 -0
  26. data/lib/protobuf/descriptors.rb +3 -0
  27. data/lib/protobuf/descriptors/google/protobuf/compiler/plugin.pb.rb +52 -0
  28. data/lib/protobuf/descriptors/google/protobuf/descriptor.pb.rb +249 -0
  29. data/lib/protobuf/encoder.rb +62 -0
  30. data/lib/protobuf/enum.rb +319 -0
  31. data/lib/protobuf/exceptions.rb +9 -0
  32. data/lib/protobuf/field.rb +74 -0
  33. data/lib/protobuf/field/base_field.rb +280 -0
  34. data/lib/protobuf/field/bool_field.rb +53 -0
  35. data/lib/protobuf/field/bytes_field.rb +81 -0
  36. data/lib/protobuf/field/double_field.rb +26 -0
  37. data/lib/protobuf/field/enum_field.rb +57 -0
  38. data/lib/protobuf/field/field_array.rb +86 -0
  39. data/lib/protobuf/field/fixed32_field.rb +25 -0
  40. data/lib/protobuf/field/fixed64_field.rb +29 -0
  41. data/lib/protobuf/field/float_field.rb +38 -0
  42. data/lib/protobuf/field/int32_field.rb +22 -0
  43. data/lib/protobuf/field/int64_field.rb +22 -0
  44. data/lib/protobuf/field/integer_field.rb +24 -0
  45. data/lib/protobuf/field/message_field.rb +66 -0
  46. data/lib/protobuf/field/sfixed32_field.rb +28 -0
  47. data/lib/protobuf/field/sfixed64_field.rb +29 -0
  48. data/lib/protobuf/field/signed_integer_field.rb +30 -0
  49. data/lib/protobuf/field/sint32_field.rb +22 -0
  50. data/lib/protobuf/field/sint64_field.rb +22 -0
  51. data/lib/protobuf/field/string_field.rb +35 -0
  52. data/lib/protobuf/field/uint32_field.rb +22 -0
  53. data/lib/protobuf/field/uint64_field.rb +22 -0
  54. data/lib/protobuf/field/varint_field.rb +68 -0
  55. data/lib/protobuf/generators/base.rb +71 -0
  56. data/lib/protobuf/generators/enum_generator.rb +42 -0
  57. data/lib/protobuf/generators/extension_generator.rb +28 -0
  58. data/lib/protobuf/generators/field_generator.rb +132 -0
  59. data/lib/protobuf/generators/file_generator.rb +140 -0
  60. data/lib/protobuf/generators/group_generator.rb +113 -0
  61. data/lib/protobuf/generators/message_generator.rb +99 -0
  62. data/lib/protobuf/generators/printable.rb +161 -0
  63. data/lib/protobuf/generators/service_generator.rb +27 -0
  64. data/lib/protobuf/http.rb +20 -0
  65. data/lib/protobuf/lifecycle.rb +46 -0
  66. data/lib/protobuf/logger.rb +86 -0
  67. data/lib/protobuf/message.rb +182 -0
  68. data/lib/protobuf/message/fields.rb +122 -0
  69. data/lib/protobuf/message/serialization.rb +84 -0
  70. data/lib/protobuf/optionable.rb +23 -0
  71. data/lib/protobuf/rpc/buffer.rb +79 -0
  72. data/lib/protobuf/rpc/client.rb +168 -0
  73. data/lib/protobuf/rpc/connector.rb +21 -0
  74. data/lib/protobuf/rpc/connectors/base.rb +54 -0
  75. data/lib/protobuf/rpc/connectors/common.rb +172 -0
  76. data/lib/protobuf/rpc/connectors/http.rb +90 -0
  77. data/lib/protobuf/rpc/connectors/socket.rb +73 -0
  78. data/lib/protobuf/rpc/connectors/zmq.rb +205 -0
  79. data/lib/protobuf/rpc/dynamic_discovery.pb.rb +47 -0
  80. data/lib/protobuf/rpc/env.rb +58 -0
  81. data/lib/protobuf/rpc/error.rb +28 -0
  82. data/lib/protobuf/rpc/error/client_error.rb +31 -0
  83. data/lib/protobuf/rpc/error/server_error.rb +43 -0
  84. data/lib/protobuf/rpc/middleware.rb +25 -0
  85. data/lib/protobuf/rpc/middleware/exception_handler.rb +36 -0
  86. data/lib/protobuf/rpc/middleware/logger.rb +91 -0
  87. data/lib/protobuf/rpc/middleware/request_decoder.rb +83 -0
  88. data/lib/protobuf/rpc/middleware/response_encoder.rb +88 -0
  89. data/lib/protobuf/rpc/middleware/runner.rb +18 -0
  90. data/lib/protobuf/rpc/rpc.pb.rb +53 -0
  91. data/lib/protobuf/rpc/server.rb +39 -0
  92. data/lib/protobuf/rpc/servers/http/server.rb +101 -0
  93. data/lib/protobuf/rpc/servers/http_runner.rb +34 -0
  94. data/lib/protobuf/rpc/servers/socket/server.rb +113 -0
  95. data/lib/protobuf/rpc/servers/socket/worker.rb +56 -0
  96. data/lib/protobuf/rpc/servers/socket_runner.rb +34 -0
  97. data/lib/protobuf/rpc/servers/zmq/broker.rb +155 -0
  98. data/lib/protobuf/rpc/servers/zmq/server.rb +313 -0
  99. data/lib/protobuf/rpc/servers/zmq/util.rb +47 -0
  100. data/lib/protobuf/rpc/servers/zmq/worker.rb +105 -0
  101. data/lib/protobuf/rpc/servers/zmq_runner.rb +51 -0
  102. data/lib/protobuf/rpc/service.rb +179 -0
  103. data/lib/protobuf/rpc/service_directory.rb +245 -0
  104. data/lib/protobuf/rpc/service_dispatcher.rb +46 -0
  105. data/lib/protobuf/rpc/service_filters.rb +273 -0
  106. data/lib/protobuf/rpc/stat.rb +148 -0
  107. data/lib/protobuf/socket.rb +22 -0
  108. data/lib/protobuf/tasks.rb +1 -0
  109. data/lib/protobuf/tasks/compile.rake +61 -0
  110. data/lib/protobuf/version.rb +3 -0
  111. data/lib/protobuf/wire_type.rb +10 -0
  112. data/lib/protobuf/zmq.rb +21 -0
  113. data/proto/dynamic_discovery.proto +44 -0
  114. data/proto/google/protobuf/compiler/plugin.proto +147 -0
  115. data/proto/google/protobuf/descriptor.proto +620 -0
  116. data/proto/rpc.proto +62 -0
  117. data/protobuffy.gemspec +37 -0
  118. data/spec/benchmark/tasks.rb +113 -0
  119. data/spec/bin/protoc-gen-ruby_spec.rb +18 -0
  120. data/spec/data/data.bin +3 -0
  121. data/spec/data/types.bin +0 -0
  122. data/spec/encoding/all_types_spec.rb +91 -0
  123. data/spec/encoding/extreme_values_spec.rb +0 -0
  124. data/spec/functional/socket_server_spec.rb +59 -0
  125. data/spec/functional/zmq_server_spec.rb +103 -0
  126. data/spec/lib/protobuf/cli_spec.rb +267 -0
  127. data/spec/lib/protobuf/code_generator_spec.rb +60 -0
  128. data/spec/lib/protobuf/enum_spec.rb +239 -0
  129. data/spec/lib/protobuf/field/int32_field_spec.rb +7 -0
  130. data/spec/lib/protobuf/field/string_field_spec.rb +46 -0
  131. data/spec/lib/protobuf/field_spec.rb +194 -0
  132. data/spec/lib/protobuf/generators/base_spec.rb +87 -0
  133. data/spec/lib/protobuf/generators/enum_generator_spec.rb +68 -0
  134. data/spec/lib/protobuf/generators/extension_generator_spec.rb +43 -0
  135. data/spec/lib/protobuf/generators/field_generator_spec.rb +99 -0
  136. data/spec/lib/protobuf/generators/file_generator_spec.rb +29 -0
  137. data/spec/lib/protobuf/generators/message_generator_spec.rb +0 -0
  138. data/spec/lib/protobuf/generators/service_generator_spec.rb +43 -0
  139. data/spec/lib/protobuf/lifecycle_spec.rb +89 -0
  140. data/spec/lib/protobuf/logger_spec.rb +136 -0
  141. data/spec/lib/protobuf/message_spec.rb +368 -0
  142. data/spec/lib/protobuf/optionable_spec.rb +46 -0
  143. data/spec/lib/protobuf/rpc/client_spec.rb +66 -0
  144. data/spec/lib/protobuf/rpc/connector_spec.rb +26 -0
  145. data/spec/lib/protobuf/rpc/connectors/base_spec.rb +50 -0
  146. data/spec/lib/protobuf/rpc/connectors/common_spec.rb +170 -0
  147. data/spec/lib/protobuf/rpc/connectors/connector_spec.rb +13 -0
  148. data/spec/lib/protobuf/rpc/connectors/http_spec.rb +61 -0
  149. data/spec/lib/protobuf/rpc/connectors/socket_spec.rb +24 -0
  150. data/spec/lib/protobuf/rpc/connectors/zmq_spec.rb +129 -0
  151. data/spec/lib/protobuf/rpc/middleware/exception_handler_spec.rb +62 -0
  152. data/spec/lib/protobuf/rpc/middleware/logger_spec.rb +49 -0
  153. data/spec/lib/protobuf/rpc/middleware/request_decoder_spec.rb +115 -0
  154. data/spec/lib/protobuf/rpc/middleware/response_encoder_spec.rb +75 -0
  155. data/spec/lib/protobuf/rpc/servers/http/server_spec.rb +104 -0
  156. data/spec/lib/protobuf/rpc/servers/socket_server_spec.rb +38 -0
  157. data/spec/lib/protobuf/rpc/servers/zmq/server_spec.rb +41 -0
  158. data/spec/lib/protobuf/rpc/servers/zmq/util_spec.rb +55 -0
  159. data/spec/lib/protobuf/rpc/servers/zmq/worker_spec.rb +35 -0
  160. data/spec/lib/protobuf/rpc/service_directory_spec.rb +295 -0
  161. data/spec/lib/protobuf/rpc/service_dispatcher_spec.rb +52 -0
  162. data/spec/lib/protobuf/rpc/service_filters_spec.rb +484 -0
  163. data/spec/lib/protobuf/rpc/service_spec.rb +161 -0
  164. data/spec/lib/protobuf/rpc/stat_spec.rb +151 -0
  165. data/spec/lib/protobuf_spec.rb +78 -0
  166. data/spec/spec_helper.rb +57 -0
  167. data/spec/support/all.rb +7 -0
  168. data/spec/support/packed_field.rb +22 -0
  169. data/spec/support/server.rb +94 -0
  170. data/spec/support/test/all_types.data.bin +0 -0
  171. data/spec/support/test/all_types.data.txt +119 -0
  172. data/spec/support/test/defaults.pb.rb +25 -0
  173. data/spec/support/test/defaults.proto +9 -0
  174. data/spec/support/test/enum.pb.rb +59 -0
  175. data/spec/support/test/enum.proto +34 -0
  176. data/spec/support/test/extended.pb.rb +22 -0
  177. data/spec/support/test/extended.proto +10 -0
  178. data/spec/support/test/extreme_values.data.bin +0 -0
  179. data/spec/support/test/google_unittest.pb.rb +543 -0
  180. data/spec/support/test/google_unittest.proto +713 -0
  181. data/spec/support/test/google_unittest_import.pb.rb +37 -0
  182. data/spec/support/test/google_unittest_import.proto +64 -0
  183. data/spec/support/test/google_unittest_import_public.pb.rb +8 -0
  184. data/spec/support/test/google_unittest_import_public.proto +38 -0
  185. data/spec/support/test/multi_field_extensions.pb.rb +56 -0
  186. data/spec/support/test/multi_field_extensions.proto +33 -0
  187. data/spec/support/test/resource.pb.rb +117 -0
  188. data/spec/support/test/resource.proto +94 -0
  189. data/spec/support/test/resource_service.rb +26 -0
  190. data/spec/support/test_app_file.rb +2 -0
  191. data/spec/support/tolerance_matcher.rb +40 -0
  192. metadata +367 -0
@@ -0,0 +1,7 @@
1
+ require 'support/packed_field'
2
+ require 'support/tolerance_matcher'
3
+ require 'support/server'
4
+
5
+ def now
6
+ Time.new.to_f
7
+ end
@@ -0,0 +1,22 @@
1
+ if defined?(RSpec)
2
+ shared_examples_for :packable_field do |field_klass|
3
+
4
+ before(:all) do
5
+ unless defined?(PackableFieldTest)
6
+ class PackableFieldTest < ::Protobuf::Message; end
7
+ end
8
+
9
+ field_name = "#{field_klass.name.split('::').last.underscore}_packed_field".to_sym
10
+ tag_num = PackableFieldTest.fields.size + 1
11
+ PackableFieldTest.repeated(field_klass, field_name, tag_num, :packed => true)
12
+ end
13
+
14
+ let(:field_name) { "#{field_klass.name.split('::').last.underscore}_packed_field".to_sym }
15
+ let(:message_instance) { PackableFieldTest.new(field_name => [100, 200, 300]) }
16
+
17
+ subject { PackableFieldTest.get_field(field_name) }
18
+
19
+ it { should be_packed }
20
+
21
+ end
22
+ end
@@ -0,0 +1,94 @@
1
+ require 'ostruct'
2
+ require 'protobuf/logger'
3
+ require 'protobuf/rpc/server'
4
+ require 'protobuf/rpc/servers/socket/server'
5
+ require 'protobuf/rpc/servers/socket_runner'
6
+ require 'protobuf/rpc/servers/zmq/server'
7
+ require 'protobuf/rpc/servers/zmq_runner'
8
+ require 'spec/support/test/resource_service'
9
+
10
+ # Want to abort if server dies?
11
+ Thread.abort_on_exception = true
12
+
13
+ module StubProtobufServerFactory
14
+ def self.build(delay)
15
+ new_server = Class.new(Protobuf::Rpc::Socket::Server) do
16
+ def self.sleep_interval
17
+ @sleep_interval
18
+ end
19
+
20
+ def self.sleep_interval=(si)
21
+ @sleep_interval = si
22
+ end
23
+
24
+ def post_init
25
+ sleep self.class.sleep_interval
26
+ super
27
+ end
28
+ end
29
+
30
+ new_server.sleep_interval = delay
31
+ return new_server
32
+ end
33
+ end
34
+
35
+ class StubServer
36
+ include Protobuf::Logger::LogMethods
37
+
38
+ attr_accessor :options
39
+
40
+ def initialize(options = {})
41
+ @running = true
42
+ @options = OpenStruct.new({ :host => "127.0.0.1",
43
+ :port => 9399,
44
+ :worker_port => 9400,
45
+ :delay => 0,
46
+ :server => Protobuf::Rpc::Socket::Server }.merge(options))
47
+
48
+ start
49
+ yield self
50
+ ensure
51
+ stop if @running
52
+ end
53
+
54
+ def start
55
+ case
56
+ when @options.server == Protobuf::Rpc::Zmq::Server
57
+ start_zmq_server
58
+ else
59
+ start_socket_server
60
+ end
61
+ log_debug { sign_message("Server started #{@options.host}:#{@options.port}") }
62
+ end
63
+
64
+ def start_socket_server
65
+ @sock_runner = ::Protobuf::Rpc::SocketRunner.new(options)
66
+ @sock_thread = Thread.new(@sock_runner) { |runner| runner.run }
67
+ @sock_thread.abort_on_exception = true # Set for testing purposes
68
+ Thread.pass until @sock_runner.running?
69
+ end
70
+
71
+ def start_zmq_server
72
+ @zmq_runner = ::Protobuf::Rpc::ZmqRunner.new(options)
73
+ @zmq_thread = Thread.new(@zmq_runner) { |runner| runner.run }
74
+ @zmq_thread.abort_on_exception = true # Set for testing purposes
75
+ Thread.pass until @zmq_runner.running?
76
+ end
77
+
78
+ def stop
79
+ case
80
+ when @options.server == Protobuf::Rpc::Zmq::Server then
81
+ @zmq_runner.try :stop
82
+ @zmq_thread.join if @zmq_thread
83
+ else
84
+ @sock_runner.stop
85
+ @sock_thread.join if @sock_thread
86
+ end
87
+
88
+ @running = false
89
+ end
90
+
91
+ def log_signature
92
+ @_log_signature ||= "[stub-server]"
93
+ end
94
+ end
@@ -0,0 +1,119 @@
1
+ optional_int32: 101
2
+ optional_int64: 102
3
+ optional_uint32: 103
4
+ optional_uint64: 104
5
+ optional_sint32: 105
6
+ optional_sint64: 106
7
+ optional_fixed32: 107
8
+ optional_fixed64: 108
9
+ optional_sfixed32: 109
10
+ optional_sfixed64: 110
11
+ optional_float: 111
12
+ optional_double: 112
13
+ optional_bool: true
14
+ optional_string: "115"
15
+ optional_bytes: "116"
16
+ optional_nested_message {
17
+ bb: 118
18
+ }
19
+ optional_foreign_message {
20
+ c: 119
21
+ }
22
+ optional_import_message {
23
+ d: 120
24
+ }
25
+ optional_nested_enum: BAZ
26
+ optional_foreign_enum: FOREIGN_BAZ
27
+ optional_import_enum: IMPORT_BAZ
28
+ optional_string_piece: "124"
29
+ optional_cord: "125"
30
+ optional_public_import_message {
31
+ e: 126
32
+ }
33
+ optional_lazy_message {
34
+ bb: 127
35
+ }
36
+ repeated_int32: 201
37
+ repeated_int32: 301
38
+ repeated_int64: 202
39
+ repeated_int64: 302
40
+ repeated_uint32: 203
41
+ repeated_uint32: 303
42
+ repeated_uint64: 204
43
+ repeated_uint64: 304
44
+ repeated_sint32: 205
45
+ repeated_sint32: 305
46
+ repeated_sint64: 206
47
+ repeated_sint64: 306
48
+ repeated_fixed32: 207
49
+ repeated_fixed32: 307
50
+ repeated_fixed64: 208
51
+ repeated_fixed64: 308
52
+ repeated_sfixed32: 209
53
+ repeated_sfixed32: 309
54
+ repeated_sfixed64: 210
55
+ repeated_sfixed64: 310
56
+ repeated_float: 211
57
+ repeated_float: 311
58
+ repeated_double: 212
59
+ repeated_double: 312
60
+ repeated_bool: true
61
+ repeated_bool: false
62
+ repeated_string: "215"
63
+ repeated_string: "315"
64
+ repeated_bytes: "216"
65
+ repeated_bytes: "316"
66
+ repeated_nested_message {
67
+ bb: 218
68
+ }
69
+ repeated_nested_message {
70
+ bb: 318
71
+ }
72
+ repeated_foreign_message {
73
+ c: 219
74
+ }
75
+ repeated_foreign_message {
76
+ c: 319
77
+ }
78
+ repeated_import_message {
79
+ d: 220
80
+ }
81
+ repeated_import_message {
82
+ d: 320
83
+ }
84
+ repeated_nested_enum: BAR
85
+ repeated_nested_enum: BAZ
86
+ repeated_foreign_enum: FOREIGN_BAR
87
+ repeated_foreign_enum: FOREIGN_BAZ
88
+ repeated_import_enum: IMPORT_BAR
89
+ repeated_import_enum: IMPORT_BAZ
90
+ repeated_string_piece: "224"
91
+ repeated_string_piece: "324"
92
+ repeated_cord: "225"
93
+ repeated_cord: "325"
94
+ repeated_lazy_message {
95
+ bb: 227
96
+ }
97
+ repeated_lazy_message {
98
+ bb: 327
99
+ }
100
+ default_int32: 401
101
+ default_int64: 402
102
+ default_uint32: 403
103
+ default_uint64: 404
104
+ default_sint32: 405
105
+ default_sint64: 406
106
+ default_fixed32: 407
107
+ default_fixed64: 408
108
+ default_sfixed32: 409
109
+ default_sfixed64: 410
110
+ default_float: 411
111
+ default_double: 412
112
+ default_bool: false
113
+ default_string: "415"
114
+ default_bytes: "416"
115
+ default_nested_enum: FOO
116
+ default_foreign_enum: FOREIGN_FOO
117
+ default_import_enum: IMPORT_FOO
118
+ default_string_piece: "424"
119
+ default_cord: "425"
@@ -0,0 +1,25 @@
1
+ ##
2
+ # This file is auto-generated. DO NOT EDIT!
3
+ #
4
+ require 'protobuf/message'
5
+
6
+ module Test
7
+
8
+ ##
9
+ # Message Classes
10
+ #
11
+ class Defaults < ::Protobuf::Message; end
12
+
13
+
14
+ ##
15
+ # Message Fields
16
+ #
17
+ class Defaults
18
+ optional :bytes, :escaped_bytes, 1, :default => "\000\001\007\010\014\n\r\t\013\\\\'\"\376"
19
+ optional :double, :infinity_default, 2, :default => ::Float::INFINITY
20
+ optional :float, :neg_infinity_default, 3, :default => -::Float::INFINITY
21
+ optional :double, :nan_default, 4, :default => ::Float::NAN
22
+ end
23
+
24
+ end
25
+
@@ -0,0 +1,9 @@
1
+ package test;
2
+
3
+ message Defaults {
4
+ optional bytes escaped_bytes = 1 [default = "\0\001\a\b\f\n\r\t\v\\\'\"\xfe"];
5
+ optional double infinity_default = 2 [default = inf];
6
+ optional float neg_infinity_default = 3 [default = -inf];
7
+ optional double nan_default = 4 [default = nan];
8
+ }
9
+
@@ -0,0 +1,59 @@
1
+ ##
2
+ # This file is auto-generated. DO NOT EDIT!
3
+ #
4
+ require 'protobuf/message'
5
+
6
+
7
+ ##
8
+ # Imports
9
+ #
10
+ require 'test/resource.pb'
11
+
12
+ module Test
13
+
14
+ ##
15
+ # Enum Classes
16
+ #
17
+ class EnumTestType < ::Protobuf::Enum
18
+ define :ONE, 1
19
+ define :TWO, 2
20
+ end
21
+
22
+ class AliasedEnum < ::Protobuf::Enum
23
+ set_option :allow_alias
24
+
25
+ define :THREE, 3
26
+ define :TRES, 3
27
+ define :FOUR, 4
28
+ define :CUATRO, 4
29
+ end
30
+
31
+
32
+ ##
33
+ # Message Classes
34
+ #
35
+ class EnumTestMessage < ::Protobuf::Message; end
36
+
37
+
38
+ ##
39
+ # Message Fields
40
+ #
41
+ class EnumTestMessage
42
+ optional ::Test::EnumTestType, :non_default_enum, 1
43
+ optional ::Test::EnumTestType, :default_enum, 2, :default => ::Test::EnumTestType::ONE
44
+ repeated ::Test::EnumTestType, :repeated_enums, 3
45
+ optional ::Test::AliasedEnum, :alias_non_default_enum, 4
46
+ optional ::Test::AliasedEnum, :alias_default_enum, 5, :default => ::Test::AliasedEnum::CUATRO
47
+ repeated ::Test::AliasedEnum, :alias_repeated_enums, 6
48
+ end
49
+
50
+
51
+ ##
52
+ # Extended Message Fields
53
+ #
54
+ class ::Test::Resource < ::Protobuf::Message
55
+ optional :int32, :ext_other_file_defined_field, 200, :extension => true
56
+ end
57
+
58
+ end
59
+
@@ -0,0 +1,34 @@
1
+ package test;
2
+ import 'test/resource.proto';
3
+
4
+ // Test extending another message from an imported file.
5
+
6
+ enum EnumTestType {
7
+ ONE = 1;
8
+ TWO = 2;
9
+ }
10
+
11
+ // Uses aliases
12
+ enum AliasedEnum {
13
+ option allow_alias = true;
14
+
15
+ THREE = 3;
16
+ TRES = 3;
17
+
18
+ FOUR = 4;
19
+ CUATRO = 4;
20
+ }
21
+
22
+ message EnumTestMessage {
23
+ optional EnumTestType non_default_enum = 1;
24
+ optional EnumTestType default_enum = 2 [default=ONE];
25
+ repeated EnumTestType repeated_enums = 3;
26
+
27
+ optional AliasedEnum alias_non_default_enum = 4;
28
+ optional AliasedEnum alias_default_enum = 5 [default=CUATRO];
29
+ repeated AliasedEnum alias_repeated_enums = 6;
30
+ }
31
+
32
+ extend test.Resource {
33
+ optional int32 ext_other_file_defined_field = 200;
34
+ }
@@ -0,0 +1,22 @@
1
+ ##
2
+ # This file is auto-generated. DO NOT EDIT!
3
+ #
4
+ require 'protobuf/message'
5
+
6
+
7
+ ##
8
+ # Imports
9
+ #
10
+ require 'test/resource.pb'
11
+
12
+ module Test
13
+
14
+ ##
15
+ # Extended Message Fields
16
+ #
17
+ class ::Test::Resource < ::Protobuf::Message
18
+ optional :int64, :deleted_at, 300, :extension => true
19
+ end
20
+
21
+ end
22
+
@@ -0,0 +1,10 @@
1
+ package test;
2
+ import 'test/resource.proto';
3
+
4
+ // Test that we will re-open a class and add
5
+ // extension fields to it even if there are no
6
+ // message or enum definitions in this FileDescriptor.
7
+
8
+ extend test.Resource {
9
+ optional int64 deleted_at = 300;
10
+ }
@@ -0,0 +1,543 @@
1
+ # encoding: utf-8
2
+
3
+ ##
4
+ # This file is auto-generated. DO NOT EDIT!
5
+ #
6
+ require 'protobuf/message'
7
+ require 'protobuf/rpc/service'
8
+
9
+
10
+ ##
11
+ # Imports
12
+ #
13
+ require 'test/google_unittest_import.pb'
14
+
15
+ module GoogleUnittest
16
+
17
+ ##
18
+ # Enum Classes
19
+ #
20
+ class ForeignEnum < ::Protobuf::Enum
21
+ define :FOREIGN_FOO, 4
22
+ define :FOREIGN_BAR, 5
23
+ define :FOREIGN_BAZ, 6
24
+ end
25
+
26
+ class TestSparseEnum < ::Protobuf::Enum
27
+ define :SPARSE_A, 123
28
+ define :SPARSE_B, 62374
29
+ define :SPARSE_C, 12589234
30
+ define :SPARSE_D, -15
31
+ define :SPARSE_E, -53452
32
+ define :SPARSE_F, 0
33
+ define :SPARSE_G, 2
34
+ end
35
+
36
+
37
+ ##
38
+ # Message Classes
39
+ #
40
+ class TestAllTypes < ::Protobuf::Message
41
+ class NestedEnum < ::Protobuf::Enum
42
+ define :FOO, 1
43
+ define :BAR, 2
44
+ define :BAZ, 3
45
+ end
46
+
47
+ class NestedMessage < ::Protobuf::Message; end
48
+
49
+ end
50
+
51
+ class TestDeprecatedFields < ::Protobuf::Message; end
52
+ class ForeignMessage < ::Protobuf::Message; end
53
+ class TestAllExtensions < ::Protobuf::Message; end
54
+ class TestNestedExtension < ::Protobuf::Message; end
55
+ class TestRequired < ::Protobuf::Message; end
56
+ class TestRequiredForeign < ::Protobuf::Message; end
57
+ class TestForeignNested < ::Protobuf::Message; end
58
+ class TestEmptyMessage < ::Protobuf::Message; end
59
+ class TestEmptyMessageWithExtensions < ::Protobuf::Message; end
60
+ class TestMultipleExtensionRanges < ::Protobuf::Message; end
61
+ class TestReallyLargeTagNumber < ::Protobuf::Message; end
62
+ class TestRecursiveMessage < ::Protobuf::Message; end
63
+ class TestMutualRecursionA < ::Protobuf::Message; end
64
+ class TestMutualRecursionB < ::Protobuf::Message; end
65
+ class TestDupFieldNumber < ::Protobuf::Message; end
66
+ class TestEagerMessage < ::Protobuf::Message; end
67
+ class TestLazyMessage < ::Protobuf::Message; end
68
+ class TestNestedMessageHasBits < ::Protobuf::Message
69
+ class NestedMessage < ::Protobuf::Message; end
70
+
71
+ end
72
+
73
+ class TestCamelCaseFieldNames < ::Protobuf::Message; end
74
+ class TestFieldOrderings < ::Protobuf::Message; end
75
+ class TestExtremeDefaultValues < ::Protobuf::Message; end
76
+ class SparseEnumMessage < ::Protobuf::Message; end
77
+ class OneString < ::Protobuf::Message; end
78
+ class MoreString < ::Protobuf::Message; end
79
+ class OneBytes < ::Protobuf::Message; end
80
+ class MoreBytes < ::Protobuf::Message; end
81
+ class TestPackedTypes < ::Protobuf::Message; end
82
+ class TestUnpackedTypes < ::Protobuf::Message; end
83
+ class TestPackedExtensions < ::Protobuf::Message; end
84
+ class TestDynamicExtensions < ::Protobuf::Message
85
+ class DynamicEnumType < ::Protobuf::Enum
86
+ define :DYNAMIC_FOO, 2200
87
+ define :DYNAMIC_BAR, 2201
88
+ define :DYNAMIC_BAZ, 2202
89
+ end
90
+
91
+ class DynamicMessageType < ::Protobuf::Message; end
92
+
93
+ end
94
+
95
+ class TestRepeatedScalarDifferentTagSizes < ::Protobuf::Message; end
96
+ class TestParsingMerge < ::Protobuf::Message
97
+ class RepeatedFieldsGenerator < ::Protobuf::Message; end
98
+
99
+ end
100
+
101
+ class TestCommentInjectionMessage < ::Protobuf::Message; end
102
+ class FooRequest < ::Protobuf::Message; end
103
+ class FooResponse < ::Protobuf::Message; end
104
+ class FooClientMessage < ::Protobuf::Message; end
105
+ class FooServerMessage < ::Protobuf::Message; end
106
+ class BarRequest < ::Protobuf::Message; end
107
+ class BarResponse < ::Protobuf::Message; end
108
+
109
+
110
+ ##
111
+ # Message Fields
112
+ #
113
+ class TestAllTypes
114
+ class NestedMessage
115
+ optional :int32, :bb, 1
116
+ end
117
+
118
+ optional :int32, :optional_int32, 1
119
+ optional :int64, :optional_int64, 2
120
+ optional :uint32, :optional_uint32, 3
121
+ optional :uint64, :optional_uint64, 4
122
+ optional :sint32, :optional_sint32, 5
123
+ optional :sint64, :optional_sint64, 6
124
+ optional :fixed32, :optional_fixed32, 7
125
+ optional :fixed64, :optional_fixed64, 8
126
+ optional :sfixed32, :optional_sfixed32, 9
127
+ optional :sfixed64, :optional_sfixed64, 10
128
+ optional :float, :optional_float, 11
129
+ optional :double, :optional_double, 12
130
+ optional :bool, :optional_bool, 13
131
+ optional :string, :optional_string, 14
132
+ optional :bytes, :optional_bytes, 15
133
+ optional ::GoogleUnittest::TestAllTypes::NestedMessage, :optional_nested_message, 18
134
+ optional ::GoogleUnittest::ForeignMessage, :optional_foreign_message, 19
135
+ optional ::GoogleUnittestImport::ImportMessage, :optional_import_message, 20
136
+ optional ::GoogleUnittest::TestAllTypes::NestedEnum, :optional_nested_enum, 21
137
+ optional ::GoogleUnittest::ForeignEnum, :optional_foreign_enum, 22
138
+ optional ::GoogleUnittestImport::ImportEnum, :optional_import_enum, 23
139
+ optional :string, :optional_string_piece, 24
140
+ optional :string, :optional_cord, 25
141
+ optional ::GoogleUnittestImport::PublicImportMessage, :optional_public_import_message, 26
142
+ optional ::GoogleUnittest::TestAllTypes::NestedMessage, :optional_lazy_message, 27
143
+ repeated :int32, :repeated_int32, 31
144
+ repeated :int64, :repeated_int64, 32
145
+ repeated :uint32, :repeated_uint32, 33
146
+ repeated :uint64, :repeated_uint64, 34
147
+ repeated :sint32, :repeated_sint32, 35
148
+ repeated :sint64, :repeated_sint64, 36
149
+ repeated :fixed32, :repeated_fixed32, 37
150
+ repeated :fixed64, :repeated_fixed64, 38
151
+ repeated :sfixed32, :repeated_sfixed32, 39
152
+ repeated :sfixed64, :repeated_sfixed64, 40
153
+ repeated :float, :repeated_float, 41
154
+ repeated :double, :repeated_double, 42
155
+ repeated :bool, :repeated_bool, 43
156
+ repeated :string, :repeated_string, 44
157
+ repeated :bytes, :repeated_bytes, 45
158
+ repeated ::GoogleUnittest::TestAllTypes::NestedMessage, :repeated_nested_message, 48
159
+ repeated ::GoogleUnittest::ForeignMessage, :repeated_foreign_message, 49
160
+ repeated ::GoogleUnittestImport::ImportMessage, :repeated_import_message, 50
161
+ repeated ::GoogleUnittest::TestAllTypes::NestedEnum, :repeated_nested_enum, 51
162
+ repeated ::GoogleUnittest::ForeignEnum, :repeated_foreign_enum, 52
163
+ repeated ::GoogleUnittestImport::ImportEnum, :repeated_import_enum, 53
164
+ repeated :string, :repeated_string_piece, 54
165
+ repeated :string, :repeated_cord, 55
166
+ repeated ::GoogleUnittest::TestAllTypes::NestedMessage, :repeated_lazy_message, 57
167
+ optional :int32, :default_int32, 61, :default => 41
168
+ optional :int64, :default_int64, 62, :default => 42
169
+ optional :uint32, :default_uint32, 63, :default => 43
170
+ optional :uint64, :default_uint64, 64, :default => 44
171
+ optional :sint32, :default_sint32, 65, :default => -45
172
+ optional :sint64, :default_sint64, 66, :default => 46
173
+ optional :fixed32, :default_fixed32, 67, :default => 47
174
+ optional :fixed64, :default_fixed64, 68, :default => 48
175
+ optional :sfixed32, :default_sfixed32, 69, :default => 49
176
+ optional :sfixed64, :default_sfixed64, 70, :default => -50
177
+ optional :float, :default_float, 71, :default => 51.5
178
+ optional :double, :default_double, 72, :default => 52000
179
+ optional :bool, :default_bool, 73, :default => true
180
+ optional :string, :default_string, 74, :default => "hello"
181
+ optional :bytes, :default_bytes, 75, :default => "world"
182
+ optional ::GoogleUnittest::TestAllTypes::NestedEnum, :default_nested_enum, 81, :default => ::GoogleUnittest::TestAllTypes::NestedEnum::BAR
183
+ optional ::GoogleUnittest::ForeignEnum, :default_foreign_enum, 82, :default => ::GoogleUnittest::ForeignEnum::FOREIGN_BAR
184
+ optional ::GoogleUnittestImport::ImportEnum, :default_import_enum, 83, :default => ::GoogleUnittestImport::ImportEnum::IMPORT_BAR
185
+ optional :string, :default_string_piece, 84, :default => "abc"
186
+ optional :string, :default_cord, 85, :default => "123"
187
+ end
188
+
189
+ class TestDeprecatedFields
190
+ optional :int32, :deprecated_int32, 1, :deprecated => true
191
+ end
192
+
193
+ class ForeignMessage
194
+ optional :int32, :c, 1
195
+ end
196
+
197
+ class TestAllExtensions
198
+ # Extension Fields
199
+ extensions 1...536870912
200
+ optional :int32, :optional_int32_extension, 1, :extension => true
201
+ optional :int64, :optional_int64_extension, 2, :extension => true
202
+ optional :uint32, :optional_uint32_extension, 3, :extension => true
203
+ optional :uint64, :optional_uint64_extension, 4, :extension => true
204
+ optional :sint32, :optional_sint32_extension, 5, :extension => true
205
+ optional :sint64, :optional_sint64_extension, 6, :extension => true
206
+ optional :fixed32, :optional_fixed32_extension, 7, :extension => true
207
+ optional :fixed64, :optional_fixed64_extension, 8, :extension => true
208
+ optional :sfixed32, :optional_sfixed32_extension, 9, :extension => true
209
+ optional :sfixed64, :optional_sfixed64_extension, 10, :extension => true
210
+ optional :float, :optional_float_extension, 11, :extension => true
211
+ optional :double, :optional_double_extension, 12, :extension => true
212
+ optional :bool, :optional_bool_extension, 13, :extension => true
213
+ optional :string, :optional_string_extension, 14, :extension => true
214
+ optional :bytes, :optional_bytes_extension, 15, :extension => true
215
+ optional ::GoogleUnittest::TestAllTypes::NestedMessage, :optional_nested_message_extension, 18, :extension => true
216
+ optional ::GoogleUnittest::ForeignMessage, :optional_foreign_message_extension, 19, :extension => true
217
+ optional ::GoogleUnittestImport::ImportMessage, :optional_import_message_extension, 20, :extension => true
218
+ optional ::GoogleUnittest::TestAllTypes::NestedEnum, :optional_nested_enum_extension, 21, :extension => true
219
+ optional ::GoogleUnittest::ForeignEnum, :optional_foreign_enum_extension, 22, :extension => true
220
+ optional ::GoogleUnittestImport::ImportEnum, :optional_import_enum_extension, 23, :extension => true
221
+ optional :string, :optional_string_piece_extension, 24, :extension => true
222
+ optional :string, :optional_cord_extension, 25, :extension => true
223
+ optional ::GoogleUnittestImport::PublicImportMessage, :optional_public_import_message_extension, 26, :extension => true
224
+ optional ::GoogleUnittest::TestAllTypes::NestedMessage, :optional_lazy_message_extension, 27, :extension => true
225
+ repeated :int32, :repeated_int32_extension, 31, :extension => true
226
+ repeated :int64, :repeated_int64_extension, 32, :extension => true
227
+ repeated :uint32, :repeated_uint32_extension, 33, :extension => true
228
+ repeated :uint64, :repeated_uint64_extension, 34, :extension => true
229
+ repeated :sint32, :repeated_sint32_extension, 35, :extension => true
230
+ repeated :sint64, :repeated_sint64_extension, 36, :extension => true
231
+ repeated :fixed32, :repeated_fixed32_extension, 37, :extension => true
232
+ repeated :fixed64, :repeated_fixed64_extension, 38, :extension => true
233
+ repeated :sfixed32, :repeated_sfixed32_extension, 39, :extension => true
234
+ repeated :sfixed64, :repeated_sfixed64_extension, 40, :extension => true
235
+ repeated :float, :repeated_float_extension, 41, :extension => true
236
+ repeated :double, :repeated_double_extension, 42, :extension => true
237
+ repeated :bool, :repeated_bool_extension, 43, :extension => true
238
+ repeated :string, :repeated_string_extension, 44, :extension => true
239
+ repeated :bytes, :repeated_bytes_extension, 45, :extension => true
240
+ repeated ::GoogleUnittest::TestAllTypes::NestedMessage, :repeated_nested_message_extension, 48, :extension => true
241
+ repeated ::GoogleUnittest::ForeignMessage, :repeated_foreign_message_extension, 49, :extension => true
242
+ repeated ::GoogleUnittestImport::ImportMessage, :repeated_import_message_extension, 50, :extension => true
243
+ repeated ::GoogleUnittest::TestAllTypes::NestedEnum, :repeated_nested_enum_extension, 51, :extension => true
244
+ repeated ::GoogleUnittest::ForeignEnum, :repeated_foreign_enum_extension, 52, :extension => true
245
+ repeated ::GoogleUnittestImport::ImportEnum, :repeated_import_enum_extension, 53, :extension => true
246
+ repeated :string, :repeated_string_piece_extension, 54, :extension => true
247
+ repeated :string, :repeated_cord_extension, 55, :extension => true
248
+ repeated ::GoogleUnittest::TestAllTypes::NestedMessage, :repeated_lazy_message_extension, 57, :extension => true
249
+ optional :int32, :default_int32_extension, 61, :default => 41, :extension => true
250
+ optional :int64, :default_int64_extension, 62, :default => 42, :extension => true
251
+ optional :uint32, :default_uint32_extension, 63, :default => 43, :extension => true
252
+ optional :uint64, :default_uint64_extension, 64, :default => 44, :extension => true
253
+ optional :sint32, :default_sint32_extension, 65, :default => -45, :extension => true
254
+ optional :sint64, :default_sint64_extension, 66, :default => 46, :extension => true
255
+ optional :fixed32, :default_fixed32_extension, 67, :default => 47, :extension => true
256
+ optional :fixed64, :default_fixed64_extension, 68, :default => 48, :extension => true
257
+ optional :sfixed32, :default_sfixed32_extension, 69, :default => 49, :extension => true
258
+ optional :sfixed64, :default_sfixed64_extension, 70, :default => -50, :extension => true
259
+ optional :float, :default_float_extension, 71, :default => 51.5, :extension => true
260
+ optional :double, :default_double_extension, 72, :default => 52000, :extension => true
261
+ optional :bool, :default_bool_extension, 73, :default => true, :extension => true
262
+ optional :string, :default_string_extension, 74, :default => "hello", :extension => true
263
+ optional :bytes, :default_bytes_extension, 75, :default => "world", :extension => true
264
+ optional ::GoogleUnittest::TestAllTypes::NestedEnum, :default_nested_enum_extension, 81, :default => ::GoogleUnittest::TestAllTypes::NestedEnum::BAR, :extension => true
265
+ optional ::GoogleUnittest::ForeignEnum, :default_foreign_enum_extension, 82, :default => ::GoogleUnittest::ForeignEnum::FOREIGN_BAR, :extension => true
266
+ optional ::GoogleUnittestImport::ImportEnum, :default_import_enum_extension, 83, :default => ::GoogleUnittestImport::ImportEnum::IMPORT_BAR, :extension => true
267
+ optional :string, :default_string_piece_extension, 84, :default => "abc", :extension => true
268
+ optional :string, :default_cord_extension, 85, :default => "123", :extension => true
269
+ optional :string, :test, 1002, :default => "test", :extension => true
270
+ optional ::GoogleUnittest::TestRequired, :single, 1000, :extension => true
271
+ repeated ::GoogleUnittest::TestRequired, :multi, 1001, :extension => true
272
+ end
273
+
274
+ class TestRequired
275
+ required :int32, :a, 1
276
+ optional :int32, :dummy2, 2
277
+ required :int32, :b, 3
278
+ optional :int32, :dummy4, 4
279
+ optional :int32, :dummy5, 5
280
+ optional :int32, :dummy6, 6
281
+ optional :int32, :dummy7, 7
282
+ optional :int32, :dummy8, 8
283
+ optional :int32, :dummy9, 9
284
+ optional :int32, :dummy10, 10
285
+ optional :int32, :dummy11, 11
286
+ optional :int32, :dummy12, 12
287
+ optional :int32, :dummy13, 13
288
+ optional :int32, :dummy14, 14
289
+ optional :int32, :dummy15, 15
290
+ optional :int32, :dummy16, 16
291
+ optional :int32, :dummy17, 17
292
+ optional :int32, :dummy18, 18
293
+ optional :int32, :dummy19, 19
294
+ optional :int32, :dummy20, 20
295
+ optional :int32, :dummy21, 21
296
+ optional :int32, :dummy22, 22
297
+ optional :int32, :dummy23, 23
298
+ optional :int32, :dummy24, 24
299
+ optional :int32, :dummy25, 25
300
+ optional :int32, :dummy26, 26
301
+ optional :int32, :dummy27, 27
302
+ optional :int32, :dummy28, 28
303
+ optional :int32, :dummy29, 29
304
+ optional :int32, :dummy30, 30
305
+ optional :int32, :dummy31, 31
306
+ optional :int32, :dummy32, 32
307
+ required :int32, :c, 33
308
+ end
309
+
310
+ class TestRequiredForeign
311
+ optional ::GoogleUnittest::TestRequired, :optional_message, 1
312
+ repeated ::GoogleUnittest::TestRequired, :repeated_message, 2
313
+ optional :int32, :dummy, 3
314
+ end
315
+
316
+ class TestForeignNested
317
+ optional ::GoogleUnittest::TestAllTypes::NestedMessage, :foreign_nested, 1
318
+ end
319
+
320
+ class TestReallyLargeTagNumber
321
+ optional :int32, :a, 1
322
+ optional :int32, :bb, 268435455
323
+ end
324
+
325
+ class TestRecursiveMessage
326
+ optional ::GoogleUnittest::TestRecursiveMessage, :a, 1
327
+ optional :int32, :i, 2
328
+ end
329
+
330
+ class TestMutualRecursionA
331
+ optional ::GoogleUnittest::TestMutualRecursionB, :bb, 1
332
+ end
333
+
334
+ class TestMutualRecursionB
335
+ optional ::GoogleUnittest::TestMutualRecursionA, :a, 1
336
+ optional :int32, :optional_int32, 2
337
+ end
338
+
339
+ class TestDupFieldNumber
340
+ optional :int32, :a, 1
341
+ end
342
+
343
+ class TestEagerMessage
344
+ optional ::GoogleUnittest::TestAllTypes, :sub_message, 1
345
+ end
346
+
347
+ class TestLazyMessage
348
+ optional ::GoogleUnittest::TestAllTypes, :sub_message, 1
349
+ end
350
+
351
+ class TestNestedMessageHasBits
352
+ class NestedMessage
353
+ repeated :int32, :nestedmessage_repeated_int32, 1
354
+ repeated ::GoogleUnittest::ForeignMessage, :nestedmessage_repeated_foreignmessage, 2
355
+ end
356
+
357
+ optional ::GoogleUnittest::TestNestedMessageHasBits::NestedMessage, :optional_nested_message, 1
358
+ end
359
+
360
+ class TestCamelCaseFieldNames
361
+ optional :int32, :PrimitiveField, 1
362
+ optional :string, :StringField, 2
363
+ optional ::GoogleUnittest::ForeignEnum, :EnumField, 3
364
+ optional ::GoogleUnittest::ForeignMessage, :MessageField, 4
365
+ optional :string, :StringPieceField, 5
366
+ optional :string, :CordField, 6
367
+ repeated :int32, :RepeatedPrimitiveField, 7
368
+ repeated :string, :RepeatedStringField, 8
369
+ repeated ::GoogleUnittest::ForeignEnum, :RepeatedEnumField, 9
370
+ repeated ::GoogleUnittest::ForeignMessage, :RepeatedMessageField, 10
371
+ repeated :string, :RepeatedStringPieceField, 11
372
+ repeated :string, :RepeatedCordField, 12
373
+ end
374
+
375
+ class TestFieldOrderings
376
+ optional :string, :my_string, 11
377
+ optional :int64, :my_int, 1
378
+ optional :float, :my_float, 101
379
+ # Extension Fields
380
+ extensions 2...11
381
+ extensions 12...101
382
+ optional :string, :my_extension_string, 50, :extension => true
383
+ optional :int32, :my_extension_int, 5, :extension => true
384
+ end
385
+
386
+ class TestExtremeDefaultValues
387
+ optional :bytes, :escaped_bytes, 1, :default => "\000\001\007\010\014\n\r\t\013\\\\'\"\376"
388
+ optional :uint32, :large_uint32, 2, :default => 4294967295
389
+ optional :uint64, :large_uint64, 3, :default => 18446744073709551615
390
+ optional :int32, :small_int32, 4, :default => -2147483647
391
+ optional :int64, :small_int64, 5, :default => -9223372036854775807
392
+ optional :int32, :really_small_int32, 21, :default => -2147483648
393
+ optional :int64, :really_small_int64, 22, :default => -9223372036854775808
394
+ optional :string, :utf8_string, 6, :default => "ሴ"
395
+ optional :float, :zero_float, 7, :default => 0
396
+ optional :float, :one_float, 8, :default => 1
397
+ optional :float, :small_float, 9, :default => 1.5
398
+ optional :float, :negative_one_float, 10, :default => -1
399
+ optional :float, :negative_float, 11, :default => -1.5
400
+ optional :float, :large_float, 12, :default => 2e+08
401
+ optional :float, :small_negative_float, 13, :default => -8e-28
402
+ optional :double, :inf_double, 14, :default => ::Float::INFINITY
403
+ optional :double, :neg_inf_double, 15, :default => -::Float::INFINITY
404
+ optional :double, :nan_double, 16, :default => ::Float::NAN
405
+ optional :float, :inf_float, 17, :default => ::Float::INFINITY
406
+ optional :float, :neg_inf_float, 18, :default => -::Float::INFINITY
407
+ optional :float, :nan_float, 19, :default => ::Float::NAN
408
+ optional :string, :cpp_trigraph, 20, :default => "? ? ?? ?? ??? ??/ ??-"
409
+ optional :string, :string_with_zero, 23, :default => "hello"
410
+ optional :bytes, :bytes_with_zero, 24, :default => "wor\000ld"
411
+ optional :string, :string_piece_with_zero, 25, :default => "abc"
412
+ optional :string, :cord_with_zero, 26, :default => "123"
413
+ end
414
+
415
+ class SparseEnumMessage
416
+ optional ::GoogleUnittest::TestSparseEnum, :sparse_enum, 1
417
+ end
418
+
419
+ class OneString
420
+ optional :string, :data, 1
421
+ end
422
+
423
+ class MoreString
424
+ repeated :string, :data, 1
425
+ end
426
+
427
+ class OneBytes
428
+ optional :bytes, :data, 1
429
+ end
430
+
431
+ class MoreBytes
432
+ repeated :bytes, :data, 1
433
+ end
434
+
435
+ class TestPackedTypes
436
+ repeated :int32, :packed_int32, 90, :packed => true
437
+ repeated :int64, :packed_int64, 91, :packed => true
438
+ repeated :uint32, :packed_uint32, 92, :packed => true
439
+ repeated :uint64, :packed_uint64, 93, :packed => true
440
+ repeated :sint32, :packed_sint32, 94, :packed => true
441
+ repeated :sint64, :packed_sint64, 95, :packed => true
442
+ repeated :fixed32, :packed_fixed32, 96, :packed => true
443
+ repeated :fixed64, :packed_fixed64, 97, :packed => true
444
+ repeated :sfixed32, :packed_sfixed32, 98, :packed => true
445
+ repeated :sfixed64, :packed_sfixed64, 99, :packed => true
446
+ repeated :float, :packed_float, 100, :packed => true
447
+ repeated :double, :packed_double, 101, :packed => true
448
+ repeated :bool, :packed_bool, 102, :packed => true
449
+ repeated ::GoogleUnittest::ForeignEnum, :packed_enum, 103, :packed => true
450
+ end
451
+
452
+ class TestUnpackedTypes
453
+ repeated :int32, :unpacked_int32, 90
454
+ repeated :int64, :unpacked_int64, 91
455
+ repeated :uint32, :unpacked_uint32, 92
456
+ repeated :uint64, :unpacked_uint64, 93
457
+ repeated :sint32, :unpacked_sint32, 94
458
+ repeated :sint64, :unpacked_sint64, 95
459
+ repeated :fixed32, :unpacked_fixed32, 96
460
+ repeated :fixed64, :unpacked_fixed64, 97
461
+ repeated :sfixed32, :unpacked_sfixed32, 98
462
+ repeated :sfixed64, :unpacked_sfixed64, 99
463
+ repeated :float, :unpacked_float, 100
464
+ repeated :double, :unpacked_double, 101
465
+ repeated :bool, :unpacked_bool, 102
466
+ repeated ::GoogleUnittest::ForeignEnum, :unpacked_enum, 103
467
+ end
468
+
469
+ class TestPackedExtensions
470
+ # Extension Fields
471
+ extensions 1...536870912
472
+ repeated :int32, :packed_int32_extension, 90, :packed => true, :extension => true
473
+ repeated :int64, :packed_int64_extension, 91, :packed => true, :extension => true
474
+ repeated :uint32, :packed_uint32_extension, 92, :packed => true, :extension => true
475
+ repeated :uint64, :packed_uint64_extension, 93, :packed => true, :extension => true
476
+ repeated :sint32, :packed_sint32_extension, 94, :packed => true, :extension => true
477
+ repeated :sint64, :packed_sint64_extension, 95, :packed => true, :extension => true
478
+ repeated :fixed32, :packed_fixed32_extension, 96, :packed => true, :extension => true
479
+ repeated :fixed64, :packed_fixed64_extension, 97, :packed => true, :extension => true
480
+ repeated :sfixed32, :packed_sfixed32_extension, 98, :packed => true, :extension => true
481
+ repeated :sfixed64, :packed_sfixed64_extension, 99, :packed => true, :extension => true
482
+ repeated :float, :packed_float_extension, 100, :packed => true, :extension => true
483
+ repeated :double, :packed_double_extension, 101, :packed => true, :extension => true
484
+ repeated :bool, :packed_bool_extension, 102, :packed => true, :extension => true
485
+ repeated ::GoogleUnittest::ForeignEnum, :packed_enum_extension, 103, :packed => true, :extension => true
486
+ end
487
+
488
+ class TestDynamicExtensions
489
+ class DynamicMessageType
490
+ optional :int32, :dynamic_field, 2100
491
+ end
492
+
493
+ optional :fixed32, :scalar_extension, 2000
494
+ optional ::GoogleUnittest::ForeignEnum, :enum_extension, 2001
495
+ optional ::GoogleUnittest::TestDynamicExtensions::DynamicEnumType, :dynamic_enum_extension, 2002
496
+ optional ::GoogleUnittest::ForeignMessage, :message_extension, 2003
497
+ optional ::GoogleUnittest::TestDynamicExtensions::DynamicMessageType, :dynamic_message_extension, 2004
498
+ repeated :string, :repeated_extension, 2005
499
+ repeated :sint32, :packed_extension, 2006, :packed => true
500
+ end
501
+
502
+ class TestRepeatedScalarDifferentTagSizes
503
+ repeated :fixed32, :repeated_fixed32, 12
504
+ repeated :int32, :repeated_int32, 13
505
+ repeated :fixed64, :repeated_fixed64, 2046
506
+ repeated :int64, :repeated_int64, 2047
507
+ repeated :float, :repeated_float, 262142
508
+ repeated :uint64, :repeated_uint64, 262143
509
+ end
510
+
511
+ class TestParsingMerge
512
+ class RepeatedFieldsGenerator
513
+ repeated ::GoogleUnittest::TestAllTypes, :field1, 1
514
+ repeated ::GoogleUnittest::TestAllTypes, :field2, 2
515
+ repeated ::GoogleUnittest::TestAllTypes, :field3, 3
516
+ repeated ::GoogleUnittest::TestAllTypes, :ext1, 1000
517
+ repeated ::GoogleUnittest::TestAllTypes, :ext2, 1001
518
+ end
519
+
520
+ required ::GoogleUnittest::TestAllTypes, :required_all_types, 1
521
+ optional ::GoogleUnittest::TestAllTypes, :optional_all_types, 2
522
+ repeated ::GoogleUnittest::TestAllTypes, :repeated_all_types, 3
523
+ # Extension Fields
524
+ extensions 1000...536870912
525
+ optional ::GoogleUnittest::TestAllTypes, :optional_ext, 1000, :extension => true
526
+ repeated ::GoogleUnittest::TestAllTypes, :repeated_ext, 1001, :extension => true
527
+ end
528
+
529
+ class TestCommentInjectionMessage
530
+ optional :string, :a, 1, :default => "*/ <- Neither should this."
531
+ end
532
+
533
+
534
+ ##
535
+ # Service Classes
536
+ #
537
+ class TestService < ::Protobuf::Rpc::Service
538
+ rpc :foo, ::GoogleUnittest::FooRequest, ::GoogleUnittest::FooResponse
539
+ rpc :bar, ::GoogleUnittest::BarRequest, ::GoogleUnittest::BarResponse
540
+ end
541
+
542
+ end
543
+