protobuf 3.3.6 → 3.4.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 (141) hide show
  1. checksums.yaml +7 -0
  2. data/.rubocop.yml +48 -0
  3. data/.rubocop_todo.yml +79 -0
  4. data/.travis.yml +12 -4
  5. data/Rakefile +14 -11
  6. data/bin/protoc-gen-ruby +0 -1
  7. data/bin/rpc_server +1 -0
  8. data/install-protobuf.sh +8 -0
  9. data/lib/protobuf.rb +30 -24
  10. data/lib/protobuf/cli.rb +35 -35
  11. data/lib/protobuf/code_generator.rb +11 -8
  12. data/lib/protobuf/decoder.rb +4 -5
  13. data/lib/protobuf/deprecation.rb +20 -0
  14. data/lib/protobuf/descriptors/google/protobuf/compiler/plugin.pb.rb +2 -0
  15. data/lib/protobuf/descriptors/google/protobuf/descriptor.pb.rb +2 -0
  16. data/lib/protobuf/encoder.rb +9 -4
  17. data/lib/protobuf/enum.rb +38 -54
  18. data/lib/protobuf/field.rb +2 -2
  19. data/lib/protobuf/field/base_field.rb +28 -32
  20. data/lib/protobuf/field/bool_field.rb +4 -4
  21. data/lib/protobuf/field/bytes_field.rb +5 -4
  22. data/lib/protobuf/field/double_field.rb +0 -1
  23. data/lib/protobuf/field/enum_field.rb +4 -7
  24. data/lib/protobuf/field/field_array.rb +3 -4
  25. data/lib/protobuf/field/fixed32_field.rb +1 -1
  26. data/lib/protobuf/field/fixed64_field.rb +0 -1
  27. data/lib/protobuf/field/float_field.rb +0 -1
  28. data/lib/protobuf/field/int32_field.rb +0 -1
  29. data/lib/protobuf/field/int64_field.rb +0 -1
  30. data/lib/protobuf/field/integer_field.rb +0 -1
  31. data/lib/protobuf/field/message_field.rb +2 -3
  32. data/lib/protobuf/field/sfixed32_field.rb +0 -1
  33. data/lib/protobuf/field/sfixed64_field.rb +0 -1
  34. data/lib/protobuf/field/signed_integer_field.rb +0 -1
  35. data/lib/protobuf/field/sint32_field.rb +0 -1
  36. data/lib/protobuf/field/sint64_field.rb +0 -1
  37. data/lib/protobuf/field/string_field.rb +0 -1
  38. data/lib/protobuf/field/uint32_field.rb +0 -1
  39. data/lib/protobuf/field/uint64_field.rb +0 -1
  40. data/lib/protobuf/field/varint_field.rb +0 -1
  41. data/lib/protobuf/generators/base.rb +1 -2
  42. data/lib/protobuf/generators/enum_generator.rb +1 -2
  43. data/lib/protobuf/generators/extension_generator.rb +1 -2
  44. data/lib/protobuf/generators/field_generator.rb +4 -5
  45. data/lib/protobuf/generators/file_generator.rb +22 -27
  46. data/lib/protobuf/generators/group_generator.rb +15 -16
  47. data/lib/protobuf/generators/message_generator.rb +13 -14
  48. data/lib/protobuf/generators/printable.rb +9 -10
  49. data/lib/protobuf/generators/service_generator.rb +1 -2
  50. data/lib/protobuf/lifecycle.rb +20 -33
  51. data/lib/protobuf/logging.rb +4 -6
  52. data/lib/protobuf/message.rb +22 -16
  53. data/lib/protobuf/message/fields.rb +14 -17
  54. data/lib/protobuf/message/serialization.rb +6 -5
  55. data/lib/protobuf/rpc/buffer.rb +10 -12
  56. data/lib/protobuf/rpc/client.rb +12 -12
  57. data/lib/protobuf/rpc/connectors/base.rb +4 -3
  58. data/lib/protobuf/rpc/connectors/common.rb +15 -17
  59. data/lib/protobuf/rpc/connectors/socket.rb +2 -2
  60. data/lib/protobuf/rpc/connectors/zmq.rb +118 -108
  61. data/lib/protobuf/rpc/dynamic_discovery.pb.rb +2 -0
  62. data/lib/protobuf/rpc/env.rb +12 -12
  63. data/lib/protobuf/rpc/error.rb +1 -1
  64. data/lib/protobuf/rpc/error/client_error.rb +4 -4
  65. data/lib/protobuf/rpc/error/server_error.rb +6 -6
  66. data/lib/protobuf/rpc/middleware/exception_handler.rb +1 -1
  67. data/lib/protobuf/rpc/middleware/logger.rb +3 -3
  68. data/lib/protobuf/rpc/middleware/request_decoder.rb +5 -5
  69. data/lib/protobuf/rpc/middleware/response_encoder.rb +3 -3
  70. data/lib/protobuf/rpc/rpc.pb.rb +2 -0
  71. data/lib/protobuf/rpc/servers/socket/server.rb +75 -65
  72. data/lib/protobuf/rpc/servers/socket/worker.rb +2 -2
  73. data/lib/protobuf/rpc/servers/socket_runner.rb +12 -6
  74. data/lib/protobuf/rpc/servers/zmq/broker.rb +10 -6
  75. data/lib/protobuf/rpc/servers/zmq/server.rb +20 -26
  76. data/lib/protobuf/rpc/servers/zmq/util.rb +7 -7
  77. data/lib/protobuf/rpc/servers/zmq/worker.rb +5 -7
  78. data/lib/protobuf/rpc/servers/zmq_runner.rb +14 -3
  79. data/lib/protobuf/rpc/service.rb +15 -15
  80. data/lib/protobuf/rpc/service_directory.rb +7 -11
  81. data/lib/protobuf/rpc/service_dispatcher.rb +3 -3
  82. data/lib/protobuf/rpc/service_filters.rb +27 -28
  83. data/lib/protobuf/rpc/stat.rb +4 -7
  84. data/lib/protobuf/socket.rb +0 -1
  85. data/lib/protobuf/tasks/compile.rake +2 -2
  86. data/lib/protobuf/version.rb +1 -1
  87. data/protobuf.gemspec +20 -4
  88. data/spec/benchmark/tasks.rb +49 -23
  89. data/spec/bin/protoc-gen-ruby_spec.rb +11 -6
  90. data/spec/encoding/all_types_spec.rb +91 -77
  91. data/spec/encoding/extreme_values_spec.rb +0 -0
  92. data/spec/functional/socket_server_spec.rb +9 -10
  93. data/spec/functional/zmq_server_spec.rb +21 -19
  94. data/spec/lib/protobuf/cli_spec.rb +20 -20
  95. data/spec/lib/protobuf/code_generator_spec.rb +6 -6
  96. data/spec/lib/protobuf/enum_spec.rb +57 -31
  97. data/spec/lib/protobuf/field/float_field_spec.rb +2 -2
  98. data/spec/lib/protobuf/field/int32_field_spec.rb +1 -1
  99. data/spec/lib/protobuf/field/string_field_spec.rb +7 -8
  100. data/spec/lib/protobuf/field_spec.rb +3 -6
  101. data/spec/lib/protobuf/generators/base_spec.rb +6 -6
  102. data/spec/lib/protobuf/generators/enum_generator_spec.rb +22 -17
  103. data/spec/lib/protobuf/generators/extension_generator_spec.rb +8 -9
  104. data/spec/lib/protobuf/generators/field_generator_spec.rb +14 -11
  105. data/spec/lib/protobuf/generators/file_generator_spec.rb +7 -4
  106. data/spec/lib/protobuf/generators/service_generator_spec.rb +14 -11
  107. data/spec/lib/protobuf/lifecycle_spec.rb +9 -4
  108. data/spec/lib/protobuf/message_spec.rb +63 -35
  109. data/spec/lib/protobuf/optionable_spec.rb +3 -3
  110. data/spec/lib/protobuf/rpc/client_spec.rb +2 -2
  111. data/spec/lib/protobuf/rpc/connector_spec.rb +1 -1
  112. data/spec/lib/protobuf/rpc/connectors/base_spec.rb +6 -6
  113. data/spec/lib/protobuf/rpc/connectors/common_spec.rb +26 -18
  114. data/spec/lib/protobuf/rpc/connectors/socket_spec.rb +4 -4
  115. data/spec/lib/protobuf/rpc/connectors/zmq_spec.rb +11 -9
  116. data/spec/lib/protobuf/rpc/middleware/exception_handler_spec.rb +2 -2
  117. data/spec/lib/protobuf/rpc/middleware/logger_spec.rb +7 -7
  118. data/spec/lib/protobuf/rpc/middleware/request_decoder_spec.rb +14 -14
  119. data/spec/lib/protobuf/rpc/middleware/response_encoder_spec.rb +5 -5
  120. data/spec/lib/protobuf/rpc/servers/socket_server_spec.rb +1 -1
  121. data/spec/lib/protobuf/rpc/servers/zmq/server_spec.rb +9 -7
  122. data/spec/lib/protobuf/rpc/servers/zmq/util_spec.rb +9 -9
  123. data/spec/lib/protobuf/rpc/servers/zmq/worker_spec.rb +2 -2
  124. data/spec/lib/protobuf/rpc/service_directory_spec.rb +24 -23
  125. data/spec/lib/protobuf/rpc/service_dispatcher_spec.rb +4 -4
  126. data/spec/lib/protobuf/rpc/service_filters_spec.rb +84 -51
  127. data/spec/lib/protobuf/rpc/service_spec.rb +15 -14
  128. data/spec/lib/protobuf/rpc/stat_spec.rb +1 -1
  129. data/spec/lib/protobuf_spec.rb +9 -9
  130. data/spec/spec_helper.rb +7 -19
  131. data/spec/support/server.rb +29 -59
  132. data/spec/support/test/defaults.pb.rb +2 -0
  133. data/spec/support/test/enum.pb.rb +2 -0
  134. data/spec/support/test/extended.pb.rb +2 -0
  135. data/spec/support/test/google_unittest_import.pb.rb +2 -0
  136. data/spec/support/test/google_unittest_import_public.pb.rb +2 -0
  137. data/spec/support/test/multi_field_extensions.pb.rb +2 -0
  138. data/spec/support/test/resource.pb.rb +2 -0
  139. data/spec/support/test/resource_service.rb +17 -20
  140. metadata +153 -112
  141. data/lib/protobuf/deprecator.rb +0 -42
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
  require 'spec/support/test/resource_service'
3
3
 
4
- describe 'Functional Socket Client' do
4
+ RSpec.describe 'Functional Socket Client' do
5
5
  before(:all) do
6
6
  load "protobuf/socket.rb"
7
7
  @options = OpenStruct.new(:host => "127.0.0.1", :port => 9399, :backlog => 100, :threshold => 100)
@@ -16,7 +16,7 @@ describe 'Functional Socket Client' do
16
16
  end
17
17
 
18
18
  it 'runs fine when required fields are set' do
19
- expect {
19
+ expect do
20
20
  client = ::Test::ResourceService.client
21
21
 
22
22
  client.find(:name => 'Test Name', :active => true) do |c|
@@ -26,10 +26,10 @@ describe 'Functional Socket Client' do
26
26
  end
27
27
 
28
28
  c.on_failure do |err|
29
- raise err.inspect
29
+ fail err.inspect
30
30
  end
31
31
  end
32
- }.to_not raise_error
32
+ end.to_not raise_error
33
33
  end
34
34
 
35
35
  it 'calls the on_failure callback when a message is malformed' do
@@ -38,11 +38,11 @@ describe 'Functional Socket Client' do
38
38
  client = ::Test::ResourceService.client
39
39
 
40
40
  client.find(request) do |c|
41
- c.on_success { raise "shouldn't pass"}
42
- c.on_failure {|e| error = e}
41
+ c.on_success { fail "shouldn't pass" }
42
+ c.on_failure { |e| error = e }
43
43
  end
44
44
 
45
- expect(error.message).to match(/name.*required/)
45
+ expect(error.message).to match(/Required field.*does not have a value/)
46
46
  end
47
47
 
48
48
  it 'calls the on_failure callback when the request type is wrong' do
@@ -51,10 +51,9 @@ describe 'Functional Socket Client' do
51
51
  client = ::Test::ResourceService.client
52
52
 
53
53
  client.find(request) do |c|
54
- c.on_success { raise "shouldn't pass"}
55
- c.on_failure {|e| error = e}
54
+ c.on_success { fail "shouldn't pass" }
55
+ c.on_failure { |e| error = e }
56
56
  end
57
57
  expect(error.message).to match(/expected request.*ResourceFindRequest.*Resource instead/i)
58
58
  end
59
59
  end
60
-
@@ -3,15 +3,17 @@ require 'spec_helper'
3
3
  require 'spec/support/test/resource_service'
4
4
  require 'protobuf/rpc/service_directory'
5
5
 
6
- describe 'Functional ZMQ Client' do
6
+ RSpec.describe 'Functional ZMQ Client' do
7
7
  before(:all) do
8
8
  load "protobuf/zmq.rb"
9
- @runner = ::Protobuf::Rpc::ZmqRunner.new({ :host => "127.0.0.1",
10
- :port => 9399,
11
- :worker_port => 9408,
12
- :backlog => 100,
13
- :threshold => 100,
14
- :threads => 5 })
9
+ @runner = ::Protobuf::Rpc::ZmqRunner.new(
10
+ :host => "127.0.0.1",
11
+ :port => 9399,
12
+ :worker_port => 9408,
13
+ :backlog => 100,
14
+ :threshold => 100,
15
+ :threads => 5,
16
+ )
15
17
  @server_thread = Thread.new(@runner) { |runner| runner.run }
16
18
  Thread.pass until @runner.running?
17
19
  end
@@ -22,7 +24,7 @@ describe 'Functional ZMQ Client' do
22
24
  end
23
25
 
24
26
  it 'runs fine when required fields are set' do
25
- expect {
27
+ expect do
26
28
  client = ::Test::ResourceService.client
27
29
 
28
30
  client.find(:name => 'Test Name', :active => true) do |c|
@@ -32,15 +34,15 @@ describe 'Functional ZMQ Client' do
32
34
  end
33
35
 
34
36
  c.on_failure do |err|
35
- raise err.inspect
37
+ fail err.inspect
36
38
  end
37
39
  end
38
- }.to_not raise_error
40
+ end.to_not raise_error
39
41
  end
40
42
 
41
43
  it 'runs under heavy load' do
42
- 10.times do |x|
43
- 5.times.map do |y|
44
+ 10.times do
45
+ 5.times.map do
44
46
  Thread.new do
45
47
  client = ::Test::ResourceService.client
46
48
 
@@ -51,7 +53,7 @@ describe 'Functional ZMQ Client' do
51
53
  end
52
54
 
53
55
  c.on_failure do |err|
54
- raise err.inspect
56
+ fail err.inspect
55
57
  end
56
58
  end
57
59
  end
@@ -66,10 +68,10 @@ describe 'Functional ZMQ Client' do
66
68
  client = ::Test::ResourceService.client
67
69
 
68
70
  client.find(request) do |c|
69
- c.on_success { raise "shouldn't pass" }
70
- c.on_failure {|e| error = e }
71
+ c.on_success { fail "shouldn't pass" }
72
+ c.on_failure { |e| error = e }
71
73
  end
72
- expect(error.message).to match(/name.*required/)
74
+ expect(error.message).to match(/Required field.*does not have a value/)
73
75
  end
74
76
  end
75
77
 
@@ -80,8 +82,8 @@ describe 'Functional ZMQ Client' do
80
82
  client = ::Test::ResourceService.client
81
83
 
82
84
  client.find(request) do |c|
83
- c.on_success { raise "shouldn't pass" }
84
- c.on_failure {|e| error = e}
85
+ c.on_success { fail "shouldn't pass" }
86
+ c.on_failure { |e| error = e }
85
87
  end
86
88
  expect(error.message).to match(/expected request.*ResourceFindRequest.*Resource instead/i)
87
89
  end
@@ -93,7 +95,7 @@ describe 'Functional ZMQ Client' do
93
95
  client = ::Test::ResourceService.client(:timeout => 1)
94
96
 
95
97
  client.find_with_sleep(:sleep => 2) do |c|
96
- c.on_success { raise "shouldn't pass" }
98
+ c.on_success { fail "shouldn't pass" }
97
99
  c.on_failure { |e| error = e }
98
100
  end
99
101
  expect(error.message).to match(/The server repeatedly failed to respond/)
@@ -1,23 +1,23 @@
1
1
  require 'spec_helper'
2
2
  require 'protobuf/cli'
3
3
 
4
- describe ::Protobuf::CLI do
4
+ RSpec.describe ::Protobuf::CLI do
5
5
 
6
6
  let(:app_file) do
7
7
  File.expand_path('../../../support/test_app_file.rb', __FILE__)
8
8
  end
9
9
 
10
- let(:sock_runner) {
10
+ let(:sock_runner) do
11
11
  runner = double("SocketRunner", :register_signals => nil)
12
12
  allow(runner).to receive(:run).and_return(::ActiveSupport::Notifications.publish("after_server_bind"))
13
13
  runner
14
- }
14
+ end
15
15
 
16
- let(:zmq_runner) {
17
- runner = double "ZmqRunner", register_signals: nil
16
+ let(:zmq_runner) do
17
+ runner = double("ZmqRunner", :register_signals => nil)
18
18
  allow(runner).to receive(:run).and_return(::ActiveSupport::Notifications.publish("after_server_bind"))
19
19
  runner
20
- }
20
+ end
21
21
 
22
22
  around(:each) do |example|
23
23
  logger = ::Protobuf::Logging.logger
@@ -31,12 +31,12 @@ describe ::Protobuf::CLI do
31
31
  end
32
32
 
33
33
  describe '#start' do
34
- let(:base_args) { [ 'start', app_file ] }
34
+ let(:base_args) { ['start', app_file] }
35
35
  let(:test_args) { [] }
36
36
  let(:args) { base_args + test_args }
37
37
 
38
38
  context 'host option' do
39
- let(:test_args) { [ '--host=123.123.123.123' ] }
39
+ let(:test_args) { ['--host=123.123.123.123'] }
40
40
 
41
41
  it 'sends the host option to the runner' do
42
42
  expect(::Protobuf::Rpc::SocketRunner).to receive(:new) do |options|
@@ -47,7 +47,7 @@ describe ::Protobuf::CLI do
47
47
  end
48
48
 
49
49
  context 'port option' do
50
- let(:test_args) { [ '--port=12345' ] }
50
+ let(:test_args) { ['--port=12345'] }
51
51
 
52
52
  it 'sends the port option to the runner' do
53
53
  expect(::Protobuf::Rpc::SocketRunner).to receive(:new) do |options|
@@ -58,7 +58,7 @@ describe ::Protobuf::CLI do
58
58
  end
59
59
 
60
60
  context 'threads option' do
61
- let(:test_args) { [ '--threads=500' ] }
61
+ let(:test_args) { ['--threads=500'] }
62
62
 
63
63
  it 'sends the threads option to the runner' do
64
64
  expect(::Protobuf::Rpc::SocketRunner).to receive(:new) do |options|
@@ -69,7 +69,7 @@ describe ::Protobuf::CLI do
69
69
  end
70
70
 
71
71
  context 'backlog option' do
72
- let(:test_args) { [ '--backlog=500' ] }
72
+ let(:test_args) { ['--backlog=500'] }
73
73
 
74
74
  it 'sends the backlog option to the runner' do
75
75
  expect(::Protobuf::Rpc::SocketRunner).to receive(:new) do |options|
@@ -80,7 +80,7 @@ describe ::Protobuf::CLI do
80
80
  end
81
81
 
82
82
  context 'threshold option' do
83
- let(:test_args) { [ '--threshold=500' ] }
83
+ let(:test_args) { ['--threshold=500'] }
84
84
 
85
85
  it 'sends the backlog option to the runner' do
86
86
  expect(::Protobuf::Rpc::SocketRunner).to receive(:new) do |options|
@@ -91,7 +91,7 @@ describe ::Protobuf::CLI do
91
91
  end
92
92
 
93
93
  context 'log options' do
94
- let(:test_args) { [ '--log=mylog.log', '--level=0' ] }
94
+ let(:test_args) { ['--log=mylog.log', '--level=0'] }
95
95
 
96
96
  it 'sends the log file and level options to the runner' do
97
97
  expect(::Protobuf::Logging).to receive(:initialize_logger) do |file, level|
@@ -115,7 +115,7 @@ describe ::Protobuf::CLI do
115
115
 
116
116
  unless defined?(JRUBY_VERSION)
117
117
  context 'request pausing' do
118
- let(:test_args) { [ '--gc_pause_request' ] }
118
+ let(:test_args) { ['--gc_pause_request'] }
119
119
 
120
120
  it 'sets the configuration option to GC pause server request' do
121
121
  described_class.start(args)
@@ -150,7 +150,7 @@ describe ::Protobuf::CLI do
150
150
  end
151
151
 
152
152
  context 'when enabled' do
153
- let(:test_args) { [ '--print_deprecation_warnings' ] }
153
+ let(:test_args) { ['--print_deprecation_warnings'] }
154
154
 
155
155
  it 'sets the deprecation warning flag to true' do
156
156
  described_class.start(args)
@@ -159,7 +159,7 @@ describe ::Protobuf::CLI do
159
159
  end
160
160
 
161
161
  context 'when disabled' do
162
- let(:test_args) { [ '--no-print_deprecation_warnings' ] }
162
+ let(:test_args) { ['--no-print_deprecation_warnings'] }
163
163
 
164
164
  it 'sets the deprecation warning flag to false' do
165
165
  described_class.start(args)
@@ -171,7 +171,7 @@ describe ::Protobuf::CLI do
171
171
  context 'run modes' do
172
172
 
173
173
  context 'socket' do
174
- let(:test_args) { [ '--socket' ] }
174
+ let(:test_args) { ['--socket'] }
175
175
  let(:runner) { ::Protobuf::Rpc::SocketRunner }
176
176
 
177
177
  before do
@@ -197,7 +197,7 @@ describe ::Protobuf::CLI do
197
197
  end
198
198
 
199
199
  context 'zmq workers only' do
200
- let(:test_args) { [ '--workers_only', '--zmq' ] }
200
+ let(:test_args) { ['--workers_only', '--zmq'] }
201
201
  let(:runner) { ::Protobuf::Rpc::ZmqRunner }
202
202
 
203
203
  before do
@@ -224,7 +224,7 @@ describe ::Protobuf::CLI do
224
224
  end
225
225
 
226
226
  context 'zmq worker port' do
227
- let(:test_args) { [ '--worker_port=1234', '--zmq' ] }
227
+ let(:test_args) { ['--worker_port=1234', '--zmq'] }
228
228
  let(:runner) { ::Protobuf::Rpc::ZmqRunner }
229
229
 
230
230
  before do
@@ -241,7 +241,7 @@ describe ::Protobuf::CLI do
241
241
  end
242
242
 
243
243
  context 'zmq' do
244
- let(:test_args) { [ '--zmq' ] }
244
+ let(:test_args) { ['--zmq'] }
245
245
  let(:runner) { ::Protobuf::Rpc::ZmqRunner }
246
246
 
247
247
  before do
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  require 'protobuf/code_generator'
4
4
 
5
- describe ::Protobuf::CodeGenerator do
5
+ RSpec.describe ::Protobuf::CodeGenerator do
6
6
 
7
7
  # Some constants to shorten things up
8
8
  DESCRIPTOR = ::Google::Protobuf
@@ -19,11 +19,11 @@ describe ::Protobuf::CodeGenerator do
19
19
  let(:file_generator2) { double('file generator 2', :generate_output_file => output_file2) }
20
20
 
21
21
  let(:request_bytes) do
22
- COMPILER::CodeGeneratorRequest.encode(:proto_file => [ input_file1, input_file2 ])
22
+ COMPILER::CodeGeneratorRequest.encode(:proto_file => [input_file1, input_file2])
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])
27
27
  end
28
28
 
29
29
  before do
@@ -40,11 +40,11 @@ describe ::Protobuf::CodeGenerator do
40
40
  context 'class-level printing methods' do
41
41
  describe '.fatal' do
42
42
  it 'raises a CodeGeneratorFatalError error' do
43
- expect {
43
+ expect do
44
44
  described_class.fatal("something is wrong")
45
- }.to raise_error(
45
+ end.to raise_error(
46
46
  ::Protobuf::CodeGenerator::CodeGeneratorFatalError,
47
- "something is wrong"
47
+ "something is wrong",
48
48
  )
49
49
  end
50
50
  end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Protobuf::Enum do
3
+ RSpec.describe Protobuf::Enum do
4
4
 
5
5
  describe 'class dsl' do
6
6
  let(:name) { :THREE }
@@ -40,40 +40,43 @@ describe Protobuf::Enum do
40
40
  end
41
41
 
42
42
  it 'allows defining enums with the same tag number' do
43
- expect {
43
+ expect do
44
44
  DefineEnumAlias.define(:FOO, 1)
45
45
  DefineEnumAlias.define(:BAR, 1)
46
- }.not_to raise_error
46
+ end.not_to raise_error
47
47
  end
48
48
  end
49
49
  end
50
50
 
51
51
  describe '.enums' do
52
52
  it 'provides an array of defined Enums' do
53
- expect(Test::EnumTestType.enums).to eq([
54
- Test::EnumTestType::ONE,
55
- Test::EnumTestType::TWO,
56
- Test::EnumTestType::MINUS_ONE,
57
- Test::EnumTestType::THREE
58
- ])
53
+ expect(Test::EnumTestType.enums).to eq(
54
+ [
55
+ Test::EnumTestType::ONE,
56
+ Test::EnumTestType::TWO,
57
+ Test::EnumTestType::MINUS_ONE,
58
+ Test::EnumTestType::THREE,
59
+ ],
60
+ )
59
61
  end
60
62
 
61
63
  context 'when enum allows aliases' do
62
64
  it 'treats aliased enums as valid' do
63
- expect(EnumAliasTest.enums).to eq([
64
- EnumAliasTest::FOO,
65
- EnumAliasTest::BAR,
66
- EnumAliasTest::BAZ
67
- ])
65
+ expect(EnumAliasTest.enums).to eq(
66
+ [
67
+ EnumAliasTest::FOO,
68
+ EnumAliasTest::BAR,
69
+ EnumAliasTest::BAZ,
70
+ ],
71
+ )
68
72
  end
69
73
  end
70
74
  end
71
75
 
72
-
73
76
  describe '.enums_for_tag' do
74
77
  it 'returns an array of Enums for the given tag, if any' do
75
- expect(EnumAliasTest.enums_for_tag(1)).to eq([ EnumAliasTest::FOO, EnumAliasTest::BAR ])
76
- expect(EnumAliasTest.enums_for_tag(2)).to eq([ EnumAliasTest::BAZ ])
78
+ expect(EnumAliasTest.enums_for_tag(1)).to eq([EnumAliasTest::FOO, EnumAliasTest::BAR])
79
+ expect(EnumAliasTest.enums_for_tag(2)).to eq([EnumAliasTest::BAZ])
77
80
  expect(EnumAliasTest.enums_for_tag(3)).to eq([])
78
81
  end
79
82
  end
@@ -174,21 +177,26 @@ describe Protobuf::Enum do
174
177
  end
175
178
 
176
179
  describe '.values' do
180
+ around do |example|
181
+ # this method is deprecated
182
+ ::Protobuf.deprecator.silence(&example)
183
+ end
184
+
177
185
  it 'provides a hash of defined Enums' do
178
- expect(Test::EnumTestType.values).to eq({
186
+ expect(Test::EnumTestType.values).to eq(
179
187
  :MINUS_ONE => Test::EnumTestType::MINUS_ONE,
180
188
  :ONE => Test::EnumTestType::ONE,
181
189
  :TWO => Test::EnumTestType::TWO,
182
- :THREE => Test::EnumTestType::THREE
183
- })
190
+ :THREE => Test::EnumTestType::THREE,
191
+ )
184
192
  end
185
193
 
186
194
  it 'contains aliased Enums' do
187
- expect(EnumAliasTest.values).to eq({
195
+ expect(EnumAliasTest.values).to eq(
188
196
  :FOO => EnumAliasTest::FOO,
189
197
  :BAR => EnumAliasTest::BAR,
190
- :BAZ => EnumAliasTest::BAZ
191
- })
198
+ :BAZ => EnumAliasTest::BAZ,
199
+ )
192
200
  end
193
201
  end
194
202
 
@@ -200,15 +208,24 @@ describe Protobuf::Enum do
200
208
  end
201
209
  end
202
210
 
203
- subject { Test::EnumTestType::ONE }
211
+ subject { Test::EnumTestType::ONE }
204
212
  specify { expect(subject.class).to eq(Fixnum) }
205
213
  specify { expect(subject.parent_class).to eq(Test::EnumTestType) }
206
- specify { expect(subject.name).to eq(:ONE) }
207
- specify { expect(subject.tag).to eq(1) }
208
- specify { expect(subject.value).to eq(1) }
209
- specify { expect(subject.to_hash_value).to eq(1) }
210
- specify { expect(subject.to_s).to eq("1") }
211
- specify { expect(subject.inspect).to eq('#<Protobuf::Enum(Test::EnumTestType)::ONE=1>') }
214
+ specify { expect(subject.name).to eq(:ONE) }
215
+ specify { expect(subject.tag).to eq(1) }
216
+
217
+ context 'deprecated' do
218
+ around do |example|
219
+ # this method is deprecated
220
+ ::Protobuf.deprecator.silence(&example)
221
+ end
222
+
223
+ specify { expect(subject.value).to eq(1) }
224
+ end
225
+
226
+ specify { expect(subject.to_hash_value).to eq(1) }
227
+ specify { expect(subject.to_s).to eq("1") }
228
+ specify { expect(subject.inspect).to eq('#<Protobuf::Enum(Test::EnumTestType)::ONE=1>') }
212
229
  specify { expect(subject.to_s(:tag)).to eq("1") }
213
230
  specify { expect(subject.to_s(:name)).to eq("ONE") }
214
231
 
@@ -222,7 +239,16 @@ describe Protobuf::Enum do
222
239
  specify { expect(subject.try(:class)).to eq(subject.class) }
223
240
  specify { expect(subject.try(:name)).to eq(subject.name) }
224
241
  specify { expect(subject.try(:tag)).to eq(subject.tag) }
225
- specify { expect(subject.try(:value)).to eq(subject.value) }
242
+
243
+ context 'deprecated' do
244
+ around do |example|
245
+ # this method is deprecated
246
+ ::Protobuf.deprecator.silence(&example)
247
+ end
248
+
249
+ specify { expect(subject.try(:value)).to eq(subject.value) }
250
+ end
251
+
226
252
  specify { expect(subject.try(:to_i)).to eq(subject.to_i) }
227
253
  specify { expect(subject.try(:to_int)).to eq(subject.to_int) }
228
254
  specify { subject.try { |yielded| expect(yielded).to eq(subject) } }