protobuf 3.2.0 → 3.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/protobuf/field/base_field.rb +74 -93
- data/lib/protobuf/field/bool_field.rb +1 -1
- data/lib/protobuf/field/bytes_field.rb +2 -2
- data/lib/protobuf/field/enum_field.rb +9 -1
- data/lib/protobuf/field/string_field.rb +1 -1
- data/lib/protobuf/message.rb +4 -4
- data/lib/protobuf/version.rb +1 -1
- data/protobuf.gemspec +0 -1
- data/spec/bin/protoc-gen-ruby_spec.rb +1 -1
- data/spec/lib/protobuf/cli_spec.rb +6 -6
- data/spec/lib/protobuf/enum_spec.rb +6 -6
- data/spec/lib/protobuf/logger_spec.rb +7 -7
- data/spec/lib/protobuf/message_spec.rb +24 -17
- data/spec/lib/protobuf/optionable_spec.rb +1 -1
- data/spec/lib/protobuf/rpc/connectors/common_spec.rb +12 -12
- data/spec/lib/protobuf/rpc/connectors/socket_spec.rb +5 -5
- data/spec/lib/protobuf/rpc/connectors/zmq_spec.rb +4 -4
- data/spec/lib/protobuf/rpc/servers/zmq/server_spec.rb +3 -3
- data/spec/lib/protobuf/rpc/service_spec.rb +2 -2
- data/spec/lib/protobuf_spec.rb +7 -7
- data/spec/spec_helper.rb +0 -1
- data/spec/support/all.rb +0 -1
- metadata +2 -18
- data/spec/support/tolerance_matcher.rb +0 -40
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6806ad95dd3051a54c6bcae3940287187fd50239
|
4
|
+
data.tar.gz: 326e902f6a3c9c64cc5a40b60562a04536d4e37d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 22f3ac751be365b4d3a2efc6e14d2e9706049557558dae209b3c0abd0d9487b4f80c9abce743c6110721a0f1940f94c6635b7869559b8923a275e8ae2f05edaf
|
7
|
+
data.tar.gz: e2b52a93261a2577ab260afefb1ab1eea6263a9a2ad8caac31a3058253c5bf55b042403b70901c8202c276302d6270f04bf1d2d72a212c2512f4728da82588e8
|
@@ -19,10 +19,7 @@ module Protobuf
|
|
19
19
|
# Attributes
|
20
20
|
#
|
21
21
|
|
22
|
-
attr_reader :
|
23
|
-
:getter_method_name, :message_class, :name, :optional,
|
24
|
-
:packed, :repeated, :required, :rule, :setter_method_name,
|
25
|
-
:tag, :type_class
|
22
|
+
attr_reader :message_class, :name, :options, :rule, :tag, :type_class
|
26
23
|
|
27
24
|
##
|
28
25
|
# Class Methods
|
@@ -37,20 +34,13 @@ module Protobuf
|
|
37
34
|
#
|
38
35
|
|
39
36
|
def initialize(message_class, rule, type_class, name, tag, options)
|
40
|
-
@message_class
|
41
|
-
|
37
|
+
@message_class = message_class
|
38
|
+
@name = name
|
39
|
+
@rule = rule
|
40
|
+
@tag = tag
|
41
|
+
@type_class = type_class
|
42
|
+
@options = options
|
42
43
|
|
43
|
-
set_rule_predicates
|
44
|
-
|
45
|
-
@getter_method_name = name
|
46
|
-
@setter_method_name = "#{name}="
|
47
|
-
@default = options.delete(:default)
|
48
|
-
@extension = options.delete(:extension)
|
49
|
-
@packed = repeated? && options.delete(:packed)
|
50
|
-
@deprecated = options.delete(:deprecated)
|
51
|
-
|
52
|
-
set_default_value
|
53
|
-
warn_excess_options(options) unless options.empty?
|
54
44
|
validate_packed_field if packed?
|
55
45
|
define_accessor
|
56
46
|
end
|
@@ -67,18 +57,70 @@ module Protobuf
|
|
67
57
|
value
|
68
58
|
end
|
69
59
|
|
60
|
+
def decode(bytes)
|
61
|
+
raise NotImplementedError, "#{self.class.name}\#decode"
|
62
|
+
end
|
63
|
+
|
64
|
+
def default
|
65
|
+
options[:default]
|
66
|
+
end
|
67
|
+
|
68
|
+
def default_value
|
69
|
+
@default_value ||= case
|
70
|
+
when repeated? then ::Protobuf::Field::FieldArray.new(self).freeze
|
71
|
+
when required? then nil
|
72
|
+
when optional? then typed_default_value
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
def deprecated?
|
77
|
+
options.key?(:deprecated)
|
78
|
+
end
|
79
|
+
|
80
|
+
def encode(value)
|
81
|
+
raise NotImplementedError, "#{self.class.name}\#encode"
|
82
|
+
end
|
83
|
+
|
84
|
+
def extension?
|
85
|
+
options.key?(:extension)
|
86
|
+
end
|
87
|
+
|
70
88
|
def enum?
|
71
89
|
false
|
72
90
|
end
|
73
91
|
|
92
|
+
def getter
|
93
|
+
name
|
94
|
+
end
|
95
|
+
|
74
96
|
def message?
|
75
97
|
false
|
76
98
|
end
|
77
99
|
|
78
|
-
|
100
|
+
def optional?
|
101
|
+
rule == :optional
|
102
|
+
end
|
103
|
+
|
104
|
+
def packed?
|
105
|
+
repeated? && options.key?(:packed)
|
106
|
+
end
|
107
|
+
|
108
|
+
def repeated?
|
109
|
+
rule == :repeated
|
110
|
+
end
|
111
|
+
|
112
|
+
def repeated_message?
|
113
|
+
repeated? && message?
|
114
|
+
end
|
115
|
+
|
116
|
+
def required?
|
117
|
+
rule == :required
|
118
|
+
end
|
119
|
+
|
120
|
+
# FIXME need to cleanup (rename) this warthog of a method.
|
79
121
|
def set(message_instance, bytes)
|
80
122
|
if packed?
|
81
|
-
array = message_instance.__send__(
|
123
|
+
array = message_instance.__send__(getter)
|
82
124
|
method = \
|
83
125
|
case wire_type
|
84
126
|
when ::Protobuf::WireType::FIXED32 then :read_fixed32
|
@@ -93,57 +135,18 @@ module Protobuf
|
|
93
135
|
else
|
94
136
|
value = decode(bytes)
|
95
137
|
if repeated?
|
96
|
-
message_instance.__send__(
|
138
|
+
message_instance.__send__(getter) << value
|
97
139
|
else
|
98
|
-
message_instance.__send__(
|
140
|
+
message_instance.__send__(setter, value)
|
99
141
|
end
|
100
142
|
end
|
101
143
|
end
|
102
144
|
|
103
|
-
|
104
|
-
|
105
|
-
raise NotImplementedError, "#{self.class.name}\#decode"
|
106
|
-
end
|
107
|
-
|
108
|
-
# Encode +value+ and return a byte string.
|
109
|
-
def encode(value)
|
110
|
-
raise NotImplementedError, "#{self.class.name}\#encode"
|
111
|
-
end
|
112
|
-
|
113
|
-
def extension?
|
114
|
-
!! extension
|
115
|
-
end
|
116
|
-
|
117
|
-
# Is this a repeated field?
|
118
|
-
def repeated?
|
119
|
-
!! repeated
|
120
|
-
end
|
121
|
-
|
122
|
-
# Is this a repeated message field?
|
123
|
-
def repeated_message?
|
124
|
-
repeated? && message?
|
125
|
-
end
|
126
|
-
|
127
|
-
# Is this a required field?
|
128
|
-
def required?
|
129
|
-
!! required
|
130
|
-
end
|
131
|
-
|
132
|
-
# Is this a optional field?
|
133
|
-
def optional?
|
134
|
-
!! optional
|
135
|
-
end
|
136
|
-
|
137
|
-
# Is this a deprecated field?
|
138
|
-
def deprecated?
|
139
|
-
!! deprecated
|
140
|
-
end
|
141
|
-
|
142
|
-
# Is this a packed repeated field?
|
143
|
-
def packed?
|
144
|
-
!! packed
|
145
|
+
def setter
|
146
|
+
@setter ||= "#{name}="
|
145
147
|
end
|
146
148
|
|
149
|
+
# FIXME add packed, deprecated, extension options to to_s output
|
147
150
|
def to_s
|
148
151
|
"#{rule} #{type_class} #{name} = #{tag} #{default ? "[default=#{default.inspect}]" : ''}"
|
149
152
|
end
|
@@ -159,6 +162,10 @@ module Protobuf
|
|
159
162
|
end
|
160
163
|
end
|
161
164
|
|
165
|
+
def wire_type
|
166
|
+
::Protobuf::WireType::VARINT
|
167
|
+
end
|
168
|
+
|
162
169
|
private
|
163
170
|
|
164
171
|
##
|
@@ -178,7 +185,7 @@ module Protobuf
|
|
178
185
|
def define_array_getter
|
179
186
|
field = self
|
180
187
|
message_class.class_eval do
|
181
|
-
define_method(field.
|
188
|
+
define_method(field.getter) do
|
182
189
|
field.warn_if_deprecated
|
183
190
|
@values[field.name] ||= ::Protobuf::Field::FieldArray.new(field)
|
184
191
|
end
|
@@ -188,7 +195,7 @@ module Protobuf
|
|
188
195
|
def define_array_setter
|
189
196
|
field = self
|
190
197
|
message_class.class_eval do
|
191
|
-
define_method(field.
|
198
|
+
define_method(field.setter) do |val|
|
192
199
|
field.warn_if_deprecated
|
193
200
|
|
194
201
|
if val.is_a?(Array)
|
@@ -214,7 +221,7 @@ module Protobuf
|
|
214
221
|
def define_getter
|
215
222
|
field = self
|
216
223
|
message_class.class_eval do
|
217
|
-
define_method(field.
|
224
|
+
define_method(field.getter) do
|
218
225
|
field.warn_if_deprecated
|
219
226
|
@values.fetch(field.name, field.default_value)
|
220
227
|
end
|
@@ -224,7 +231,7 @@ module Protobuf
|
|
224
231
|
def define_setter
|
225
232
|
field = self
|
226
233
|
message_class.class_eval do
|
227
|
-
define_method(field.
|
234
|
+
define_method(field.setter) do |val|
|
228
235
|
field.warn_if_deprecated
|
229
236
|
|
230
237
|
if val.nil? || (val.respond_to?(:empty?) && val.empty?)
|
@@ -238,28 +245,6 @@ module Protobuf
|
|
238
245
|
end
|
239
246
|
end
|
240
247
|
|
241
|
-
def set_default_value
|
242
|
-
@default_value = case
|
243
|
-
when repeated? then ::Protobuf::Field::FieldArray.new(self).freeze
|
244
|
-
when required? then nil
|
245
|
-
when optional? then typed_default_value
|
246
|
-
end
|
247
|
-
end
|
248
|
-
|
249
|
-
def set_rule_predicates
|
250
|
-
case rule
|
251
|
-
when :repeated then
|
252
|
-
@required = @optional = false
|
253
|
-
@repeated = true
|
254
|
-
when :required then
|
255
|
-
@repeated = @optional = false
|
256
|
-
@required = true
|
257
|
-
when :optional then
|
258
|
-
@repeated = @required = false
|
259
|
-
@optional = true
|
260
|
-
end
|
261
|
-
end
|
262
|
-
|
263
248
|
def typed_default_value
|
264
249
|
if default.nil?
|
265
250
|
self.class.default
|
@@ -274,10 +259,6 @@ module Protobuf
|
|
274
259
|
end
|
275
260
|
end
|
276
261
|
|
277
|
-
def warn_excess_options(options)
|
278
|
-
warn "WARNING: Invalid options: #{options.inspect} (in #{message_class.name}##{name})"
|
279
|
-
end
|
280
|
-
|
281
262
|
end
|
282
263
|
end
|
283
264
|
end
|
@@ -8,7 +8,7 @@ module Protobuf
|
|
8
8
|
# Constants
|
9
9
|
#
|
10
10
|
|
11
|
-
BYTES_ENCODING =
|
11
|
+
BYTES_ENCODING = Encoding::BINARY
|
12
12
|
|
13
13
|
##
|
14
14
|
# Class Methods
|
@@ -54,7 +54,7 @@ module Protobuf
|
|
54
54
|
def define_setter
|
55
55
|
field = self
|
56
56
|
message_class.class_eval do
|
57
|
-
define_method(field.
|
57
|
+
define_method(field.setter) do |val|
|
58
58
|
begin
|
59
59
|
field.warn_if_deprecated
|
60
60
|
val = "#{val}" if val.is_a?(Symbol)
|
@@ -4,6 +4,14 @@ module Protobuf
|
|
4
4
|
module Field
|
5
5
|
class EnumField < VarintField
|
6
6
|
|
7
|
+
##
|
8
|
+
# Class Methods
|
9
|
+
#
|
10
|
+
|
11
|
+
def self.default
|
12
|
+
raise NoMethodError, "#{self}.#{__method__} must be called on an instance"
|
13
|
+
end
|
14
|
+
|
7
15
|
##
|
8
16
|
# Public Instance Methods
|
9
17
|
#
|
@@ -53,7 +61,7 @@ module Protobuf
|
|
53
61
|
if default.is_a?(Symbol)
|
54
62
|
type_class.const_get(default)
|
55
63
|
else
|
56
|
-
|
64
|
+
type_class.fetch(default) || type_class.enums.first
|
57
65
|
end
|
58
66
|
end
|
59
67
|
|
data/lib/protobuf/message.rb
CHANGED
@@ -62,7 +62,7 @@ module Protobuf
|
|
62
62
|
#
|
63
63
|
def each_field
|
64
64
|
self.class.all_fields.each do |field|
|
65
|
-
value = __send__(field.
|
65
|
+
value = __send__(field.getter)
|
66
66
|
yield(field, value)
|
67
67
|
end
|
68
68
|
end
|
@@ -71,7 +71,7 @@ module Protobuf
|
|
71
71
|
self.class.all_fields.each do |field|
|
72
72
|
next unless field_must_be_serialized?(field)
|
73
73
|
|
74
|
-
value = @values[field.
|
74
|
+
value = @values[field.getter]
|
75
75
|
|
76
76
|
if value.nil?
|
77
77
|
raise ::Protobuf::SerializationError, "Required field #{self.class.name}##{field.name} does not have a value."
|
@@ -129,13 +129,13 @@ module Protobuf
|
|
129
129
|
|
130
130
|
def [](name)
|
131
131
|
if field = self.class.get_field(name, true)
|
132
|
-
__send__(field.
|
132
|
+
__send__(field.getter)
|
133
133
|
end
|
134
134
|
end
|
135
135
|
|
136
136
|
def []=(name, value)
|
137
137
|
if field = self.class.get_field(name, true)
|
138
|
-
__send__(field.
|
138
|
+
__send__(field.setter, value) unless value.nil?
|
139
139
|
else
|
140
140
|
unless ::Protobuf.ignore_unknown_fields?
|
141
141
|
raise ::Protobuf::FieldNotDefinedError, name
|
data/lib/protobuf/version.rb
CHANGED
data/protobuf.gemspec
CHANGED
@@ -11,7 +11,7 @@ describe 'protoc-gen-ruby' do
|
|
11
11
|
it 'reads the serialized request bytes and outputs serialized response bytes' do
|
12
12
|
::IO.popen(binpath, 'w+') do |pipe|
|
13
13
|
pipe.write(request_bytes)
|
14
|
-
pipe.read(expected_response_bytes.size).
|
14
|
+
expect(pipe.read(expected_response_bytes.size)).to eq expected_response_bytes
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
@@ -128,7 +128,7 @@ describe ::Protobuf::CLI do
|
|
128
128
|
|
129
129
|
it 'sets the deprecation warning flag to true' do
|
130
130
|
described_class.start(args)
|
131
|
-
expect(::Protobuf.print_deprecation_warnings?).to
|
131
|
+
expect(::Protobuf.print_deprecation_warnings?).to be true
|
132
132
|
end
|
133
133
|
end
|
134
134
|
|
@@ -138,7 +138,7 @@ describe ::Protobuf::CLI do
|
|
138
138
|
|
139
139
|
it 'sets the deprecation warning flag to false ' do
|
140
140
|
described_class.start(args)
|
141
|
-
expect(::Protobuf.print_deprecation_warnings?).to
|
141
|
+
expect(::Protobuf.print_deprecation_warnings?).to be false
|
142
142
|
end
|
143
143
|
end
|
144
144
|
end
|
@@ -148,7 +148,7 @@ describe ::Protobuf::CLI do
|
|
148
148
|
|
149
149
|
it 'sets the deprecation warning flag to true' do
|
150
150
|
described_class.start(args)
|
151
|
-
expect(::Protobuf.print_deprecation_warnings?).to
|
151
|
+
expect(::Protobuf.print_deprecation_warnings?).to be true
|
152
152
|
end
|
153
153
|
end
|
154
154
|
|
@@ -157,7 +157,7 @@ describe ::Protobuf::CLI do
|
|
157
157
|
|
158
158
|
it 'sets the deprecation warning flag to false' do
|
159
159
|
described_class.start(args)
|
160
|
-
expect(::Protobuf.print_deprecation_warnings?).to
|
160
|
+
expect(::Protobuf.print_deprecation_warnings?).to be false
|
161
161
|
end
|
162
162
|
end
|
163
163
|
end
|
@@ -200,7 +200,7 @@ describe ::Protobuf::CLI do
|
|
200
200
|
|
201
201
|
it 'is activated by the --workers_only switch' do
|
202
202
|
expect(runner).to receive(:new) do |options|
|
203
|
-
expect(options[:workers_only]).to
|
203
|
+
expect(options[:workers_only]).to be true
|
204
204
|
end.and_return(zmq_runner)
|
205
205
|
|
206
206
|
described_class.start(args)
|
@@ -209,7 +209,7 @@ describe ::Protobuf::CLI do
|
|
209
209
|
it 'is activated by PB_WORKERS_ONLY=1 ENV variable' do
|
210
210
|
ENV['PB_WORKERS_ONLY'] = "1"
|
211
211
|
expect(runner).to receive(:new) do |options|
|
212
|
-
expect(options[:workers_only]).to
|
212
|
+
expect(options[:workers_only]).to be true
|
213
213
|
end.and_return(zmq_runner)
|
214
214
|
|
215
215
|
described_class.start(args)
|
@@ -21,8 +21,8 @@ describe Protobuf::Enum do
|
|
21
21
|
end
|
22
22
|
|
23
23
|
describe '.aliases_allowed?' do
|
24
|
-
it 'is
|
25
|
-
expect(Test::EnumTestType.aliases_allowed?).to
|
24
|
+
it 'is nil when the option is not set' do
|
25
|
+
expect(Test::EnumTestType.aliases_allowed?).to be nil
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
@@ -155,15 +155,15 @@ describe Protobuf::Enum do
|
|
155
155
|
|
156
156
|
describe '.valid_tag?' do
|
157
157
|
context 'when tag is defined' do
|
158
|
-
specify { expect(Test::EnumTestType.valid_tag?(tag)).to
|
158
|
+
specify { expect(Test::EnumTestType.valid_tag?(tag)).to be true }
|
159
159
|
end
|
160
160
|
|
161
161
|
context 'when tag is not defined' do
|
162
|
-
specify { expect(Test::EnumTestType.valid_tag?(300)).to
|
162
|
+
specify { expect(Test::EnumTestType.valid_tag?(300)).to be false }
|
163
163
|
end
|
164
164
|
|
165
165
|
context 'is true for aliased enums' do
|
166
|
-
specify { expect(EnumAliasTest.valid_tag?(1)).to
|
166
|
+
specify { expect(EnumAliasTest.valid_tag?(1)).to be true }
|
167
167
|
end
|
168
168
|
end
|
169
169
|
|
@@ -230,7 +230,7 @@ describe Protobuf::Enum do
|
|
230
230
|
|
231
231
|
context 'when coercing from enum' do
|
232
232
|
subject { Test::StatusType::PENDING }
|
233
|
-
it {
|
233
|
+
it { is_expected.to eq(0) }
|
234
234
|
end
|
235
235
|
|
236
236
|
context 'when coercing from integer' do
|
@@ -104,13 +104,13 @@ describe Protobuf::Logger do
|
|
104
104
|
|
105
105
|
subject { MyTestClass.new }
|
106
106
|
|
107
|
-
it {
|
108
|
-
it {
|
109
|
-
it {
|
110
|
-
it {
|
111
|
-
it {
|
112
|
-
it {
|
113
|
-
it {
|
107
|
+
it { is_expected.to respond_to(:log_debug) }
|
108
|
+
it { is_expected.to respond_to(:log_info) }
|
109
|
+
it { is_expected.to respond_to(:log_warn) }
|
110
|
+
it { is_expected.to respond_to(:log_error) }
|
111
|
+
it { is_expected.to respond_to(:log_fatal) }
|
112
|
+
it { is_expected.to respond_to(:log_add) }
|
113
|
+
it { is_expected.to respond_to(:log_log) }
|
114
114
|
|
115
115
|
context '#log_exception' do
|
116
116
|
it 'logs the exception message as an error and backtrace as debug' do
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
describe Protobuf::Message do
|
@@ -126,9 +128,14 @@ describe Protobuf::Message do
|
|
126
128
|
end
|
127
129
|
|
128
130
|
describe '#initialize' do
|
129
|
-
it "
|
131
|
+
it "defaults to the first value listed in the enum's type definition" do
|
130
132
|
test_enum = Test::EnumTestMessage.new
|
131
|
-
expect(test_enum.non_default_enum).to eq(
|
133
|
+
expect(test_enum.non_default_enum).to eq(1)
|
134
|
+
end
|
135
|
+
|
136
|
+
it "defaults to a a value with a name" do
|
137
|
+
test_enum = Test::EnumTestMessage.new
|
138
|
+
expect(test_enum.non_default_enum.name).to eq(:ONE)
|
132
139
|
end
|
133
140
|
|
134
141
|
it "exposes the enum getter raw value through ! method" do
|
@@ -217,21 +224,21 @@ describe Protobuf::Message do
|
|
217
224
|
end
|
218
225
|
|
219
226
|
it "keeps utf-8 when utf-8 is input for string fields" do
|
220
|
-
name =
|
221
|
-
name.force_encoding(
|
227
|
+
name = 'my name💩'
|
228
|
+
name.force_encoding(Encoding::UTF_8)
|
222
229
|
|
223
230
|
message = ::Test::Resource.new(:name => name)
|
224
231
|
new_message = ::Test::Resource.decode(message.encode)
|
225
|
-
expect(new_message.name == name).to
|
232
|
+
expect(new_message.name == name).to be true
|
226
233
|
end
|
227
234
|
|
228
235
|
it "trims binary when binary is input for string fields" do
|
229
236
|
name = "my name\xC3"
|
230
|
-
name.force_encoding(
|
237
|
+
name.force_encoding(Encoding::BINARY)
|
231
238
|
|
232
239
|
message = ::Test::Resource.new(:name => name)
|
233
240
|
new_message = ::Test::Resource.decode(message.encode)
|
234
|
-
expect(new_message.name == "my name").to
|
241
|
+
expect(new_message.name == "my name").to be true
|
235
242
|
end
|
236
243
|
end
|
237
244
|
|
@@ -283,16 +290,16 @@ describe Protobuf::Message do
|
|
283
290
|
describe "boolean predicate methods" do
|
284
291
|
subject { Test::ResourceFindRequest.new(:name => "resource") }
|
285
292
|
|
286
|
-
it {
|
293
|
+
it { is_expected.to respond_to(:active?) }
|
287
294
|
|
288
295
|
it "sets the predicate to true when the boolean value is true" do
|
289
296
|
subject.active = true
|
290
|
-
expect(subject.active?).to
|
297
|
+
expect(subject.active?).to be true
|
291
298
|
end
|
292
299
|
|
293
300
|
it "sets the predicate to false when the boolean value is false" do
|
294
301
|
subject.active = false
|
295
|
-
expect(subject.active?).to
|
302
|
+
expect(subject.active?).to be false
|
296
303
|
end
|
297
304
|
|
298
305
|
it "does not put predicate methods on non-boolean fields" do
|
@@ -304,11 +311,11 @@ describe Protobuf::Message do
|
|
304
311
|
subject { Test::EnumTestMessage.new(:non_default_enum => 2) }
|
305
312
|
|
306
313
|
it "is false when the message does not have the field" do
|
307
|
-
expect(subject.respond_to_and_has?(:other_field)).to
|
314
|
+
expect(subject.respond_to_and_has?(:other_field)).to be false
|
308
315
|
end
|
309
316
|
|
310
317
|
it "is true when the message has the field" do
|
311
|
-
expect(subject.respond_to_and_has?(:non_default_enum)).to
|
318
|
+
expect(subject.respond_to_and_has?(:non_default_enum)).to be true
|
312
319
|
end
|
313
320
|
end
|
314
321
|
|
@@ -316,25 +323,25 @@ describe Protobuf::Message do
|
|
316
323
|
subject { Test::EnumTestMessage.new(:non_default_enum => 2) }
|
317
324
|
|
318
325
|
it "is false when the message does not have the field" do
|
319
|
-
expect(subject.respond_to_and_has_and_present?(:other_field)).to
|
326
|
+
expect(subject.respond_to_and_has_and_present?(:other_field)).to be false
|
320
327
|
end
|
321
328
|
|
322
329
|
it "is false when the field is repeated and a value is not present" do
|
323
|
-
expect(subject.respond_to_and_has_and_present?(:repeated_enums)).to
|
330
|
+
expect(subject.respond_to_and_has_and_present?(:repeated_enums)).to be false
|
324
331
|
end
|
325
332
|
|
326
333
|
it "is false when the field is repeated and the value is empty array" do
|
327
334
|
subject.repeated_enums = []
|
328
|
-
expect(subject.respond_to_and_has_and_present?(:repeated_enums)).to
|
335
|
+
expect(subject.respond_to_and_has_and_present?(:repeated_enums)).to be false
|
329
336
|
end
|
330
337
|
|
331
338
|
it "is true when the field is repeated and a value is present" do
|
332
339
|
subject.repeated_enums = [2]
|
333
|
-
expect(subject.respond_to_and_has_and_present?(:repeated_enums)).to
|
340
|
+
expect(subject.respond_to_and_has_and_present?(:repeated_enums)).to be true
|
334
341
|
end
|
335
342
|
|
336
343
|
it "is true when the message has the field" do
|
337
|
-
expect(subject.respond_to_and_has_and_present?(:non_default_enum)).to
|
344
|
+
expect(subject.respond_to_and_has_and_present?(:non_default_enum)).to be true
|
338
345
|
end
|
339
346
|
|
340
347
|
context "#API" do
|
@@ -20,7 +20,7 @@ describe 'Optionable' do
|
|
20
20
|
|
21
21
|
it 'defaults the value to true' do
|
22
22
|
OptionableSetOptionTest.set_option(:baz_enabled)
|
23
|
-
expect(OptionableSetOptionTest.get_option(:baz_enabled)).to
|
23
|
+
expect(OptionableSetOptionTest.get_option(:baz_enabled)).to be true
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
@@ -15,15 +15,15 @@ describe Protobuf::Rpc::Connectors::Common do
|
|
15
15
|
subject { @subject ||= common_class.new(subject_options) }
|
16
16
|
|
17
17
|
context "API" do
|
18
|
-
specify { expect(subject.respond_to?(:any_callbacks?)).to
|
19
|
-
specify { expect(subject.respond_to?(:request_caller)).to
|
20
|
-
specify { expect(subject.respond_to?(:data_callback)).to
|
21
|
-
specify { expect(subject.respond_to?(:error)).to
|
22
|
-
specify { expect(subject.respond_to?(:fail)).to
|
23
|
-
specify { expect(subject.respond_to?(:complete)).to
|
24
|
-
specify { expect(subject.respond_to?(:parse_response)).to
|
25
|
-
specify { expect(subject.respond_to?(:verify_options!)).to
|
26
|
-
specify { expect(subject.respond_to?(:verify_callbacks)).to
|
18
|
+
specify { expect(subject.respond_to?(:any_callbacks?)).to be true }
|
19
|
+
specify { expect(subject.respond_to?(:request_caller)).to be true }
|
20
|
+
specify { expect(subject.respond_to?(:data_callback)).to be true }
|
21
|
+
specify { expect(subject.respond_to?(:error)).to be true }
|
22
|
+
specify { expect(subject.respond_to?(:fail)).to be true }
|
23
|
+
specify { expect(subject.respond_to?(:complete)).to be true }
|
24
|
+
specify { expect(subject.respond_to?(:parse_response)).to be true }
|
25
|
+
specify { expect(subject.respond_to?(:verify_options!)).to be true }
|
26
|
+
specify { expect(subject.respond_to?(:verify_callbacks)).to be true }
|
27
27
|
end
|
28
28
|
|
29
29
|
describe "#any_callbacks?" do
|
@@ -31,7 +31,7 @@ describe Protobuf::Rpc::Connectors::Common do
|
|
31
31
|
[:@complete_cb, :@success_cb, :@failure_cb].each do |cb|
|
32
32
|
it "returns true if #{cb} is provided" do
|
33
33
|
subject.instance_variable_set(cb, "something")
|
34
|
-
expect(subject.any_callbacks?).to
|
34
|
+
expect(subject.any_callbacks?).to be true
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
@@ -40,7 +40,7 @@ describe Protobuf::Rpc::Connectors::Common do
|
|
40
40
|
subject.instance_variable_set(:@success_cb, nil)
|
41
41
|
subject.instance_variable_set(:@failure_cb, nil)
|
42
42
|
|
43
|
-
expect(subject.any_callbacks?).to
|
43
|
+
expect(subject.any_callbacks?).to be false
|
44
44
|
end
|
45
45
|
|
46
46
|
end
|
@@ -60,7 +60,7 @@ describe Protobuf::Rpc::Connectors::Common do
|
|
60
60
|
describe "#data_callback" do
|
61
61
|
it "changes state to use the data callback" do
|
62
62
|
subject.data_callback("data")
|
63
|
-
expect(subject.instance_variable_get(:@used_data_callback)).to
|
63
|
+
expect(subject.instance_variable_get(:@used_data_callback)).to be true
|
64
64
|
end
|
65
65
|
|
66
66
|
it "sets the data var when using the data_callback" do
|
@@ -6,10 +6,10 @@ shared_examples "a Protobuf Connector" do
|
|
6
6
|
|
7
7
|
context "API" do
|
8
8
|
# Check the API
|
9
|
-
specify { expect(subject.respond_to?(:send_request, true)).to
|
10
|
-
specify { expect(subject.respond_to?(:post_init, true)).to
|
11
|
-
specify { expect(subject.respond_to?(:close_connection, true)).to
|
12
|
-
specify { expect(subject.respond_to?(:error?, true)).to
|
9
|
+
specify { expect(subject.respond_to?(:send_request, true)).to be true }
|
10
|
+
specify { expect(subject.respond_to?(:post_init, true)).to be true }
|
11
|
+
specify { expect(subject.respond_to?(:close_connection, true)).to be true }
|
12
|
+
specify { expect(subject.respond_to?(:error?, true)).to be true }
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
@@ -18,7 +18,7 @@ describe Protobuf::Rpc::Connectors::Socket do
|
|
18
18
|
|
19
19
|
it_behaves_like "a Protobuf Connector"
|
20
20
|
|
21
|
-
specify { expect(described_class.include?(Protobuf::Rpc::Connectors::Common)).to
|
21
|
+
specify { expect(described_class.include?(Protobuf::Rpc::Connectors::Common)).to be true }
|
22
22
|
|
23
23
|
context "#read_response" do
|
24
24
|
let(:data) { "New data" }
|
@@ -79,7 +79,7 @@ describe ::Protobuf::Rpc::Connectors::Zmq do
|
|
79
79
|
end
|
80
80
|
|
81
81
|
it "returns true" do
|
82
|
-
expect(subject.send(:host_alive?, "yip.yip")).to
|
82
|
+
expect(subject.send(:host_alive?, "yip.yip")).to be true
|
83
83
|
end
|
84
84
|
|
85
85
|
it "does not attempt a connection" do
|
@@ -95,19 +95,19 @@ describe ::Protobuf::Rpc::Connectors::Zmq do
|
|
95
95
|
|
96
96
|
it "returns true when the connection succeeds" do
|
97
97
|
expect(TCPSocket).to receive(:new).with("huzzah.com", 3307).and_return(double(:close => nil))
|
98
|
-
expect(subject.send(:host_alive?, "huzzah.com")).to
|
98
|
+
expect(subject.send(:host_alive?, "huzzah.com")).to be true
|
99
99
|
end
|
100
100
|
|
101
101
|
it "returns false when the connection fails" do
|
102
102
|
expect(TCPSocket).to receive(:new).with("hayoob.com", 3307).and_raise(Errno::ECONNREFUSED)
|
103
|
-
expect(subject.send(:host_alive?, "hayoob.com")).to
|
103
|
+
expect(subject.send(:host_alive?, "hayoob.com")).to be false
|
104
104
|
end
|
105
105
|
|
106
106
|
it "closes the socket" do
|
107
107
|
socket = double("TCPSocket")
|
108
108
|
expect(socket).to receive(:close)
|
109
109
|
expect(TCPSocket).to receive(:new).with("absorbalof.com", 3307).and_return(socket)
|
110
|
-
expect(subject.send(:host_alive?, "absorbalof.com")).to
|
110
|
+
expect(subject.send(:host_alive?, "absorbalof.com")).to be true
|
111
111
|
end
|
112
112
|
end
|
113
113
|
end
|
@@ -22,12 +22,12 @@ describe Protobuf::Rpc::Zmq::Server do
|
|
22
22
|
describe '.running?' do
|
23
23
|
it 'returns true if running' do
|
24
24
|
subject.instance_variable_set(:@running, true)
|
25
|
-
expect(subject.running?).to
|
25
|
+
expect(subject.running?).to be true
|
26
26
|
end
|
27
27
|
|
28
28
|
it 'returns false if not running' do
|
29
29
|
subject.instance_variable_set(:@running, false)
|
30
|
-
expect(subject.running?).to
|
30
|
+
expect(subject.running?).to be false
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
@@ -35,7 +35,7 @@ describe Protobuf::Rpc::Zmq::Server do
|
|
35
35
|
it 'sets running to false' do
|
36
36
|
subject.instance_variable_set(:@workers, [])
|
37
37
|
subject.stop
|
38
|
-
expect(subject.instance_variable_get(:@running)).to
|
38
|
+
expect(subject.instance_variable_get(:@running)).to be false
|
39
39
|
end
|
40
40
|
end
|
41
41
|
end
|
@@ -85,13 +85,13 @@ describe Protobuf::Rpc::Service do
|
|
85
85
|
|
86
86
|
context 'when given name is a pre-defined rpc method' do
|
87
87
|
it 'returns true' do
|
88
|
-
expect(subject.rpc_method?(:delete)).to
|
88
|
+
expect(subject.rpc_method?(:delete)).to be true
|
89
89
|
end
|
90
90
|
end
|
91
91
|
|
92
92
|
context 'when given name is not a pre-defined rpc method' do
|
93
93
|
it 'returns false' do
|
94
|
-
expect(subject.rpc_method?(:zoobaboo)).to
|
94
|
+
expect(subject.rpc_method?(:zoobaboo)).to be false
|
95
95
|
end
|
96
96
|
end
|
97
97
|
end
|
data/spec/lib/protobuf_spec.rb
CHANGED
@@ -9,13 +9,13 @@ describe ::Protobuf do
|
|
9
9
|
subject { ::Protobuf.client_host }
|
10
10
|
|
11
11
|
context 'when client_host is not pre-configured' do
|
12
|
-
it {
|
12
|
+
it { is_expected.to eq `hostname`.chomp }
|
13
13
|
end
|
14
14
|
|
15
15
|
context 'when client_host is pre-configured' do
|
16
16
|
let(:hostname) { 'override.myhost.com' }
|
17
17
|
before { ::Protobuf.client_host = hostname }
|
18
|
-
it {
|
18
|
+
it { is_expected.to eq hostname }
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
@@ -46,12 +46,12 @@ describe ::Protobuf do
|
|
46
46
|
before { described_class.instance_variable_set(:@_gc_pause_server_request, nil) }
|
47
47
|
|
48
48
|
it 'defaults to a false value' do
|
49
|
-
expect(described_class.gc_pause_server_request?).to
|
49
|
+
expect(described_class.gc_pause_server_request?).to be false
|
50
50
|
end
|
51
51
|
|
52
52
|
it 'is settable' do
|
53
53
|
described_class.gc_pause_server_request = true
|
54
|
-
expect(described_class.gc_pause_server_request?).to
|
54
|
+
expect(described_class.gc_pause_server_request?).to be true
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
@@ -59,18 +59,18 @@ describe ::Protobuf do
|
|
59
59
|
before { described_class.instance_variable_set(:@_print_deprecation_warnings, nil) }
|
60
60
|
|
61
61
|
it 'defaults to a true value' do
|
62
|
-
expect(described_class.print_deprecation_warnings?).to
|
62
|
+
expect(described_class.print_deprecation_warnings?).to be true
|
63
63
|
end
|
64
64
|
|
65
65
|
it 'is settable' do
|
66
66
|
described_class.print_deprecation_warnings = false
|
67
|
-
expect(described_class.print_deprecation_warnings?).to
|
67
|
+
expect(described_class.print_deprecation_warnings?).to be false
|
68
68
|
end
|
69
69
|
|
70
70
|
context 'when ENV["PB_IGNORE_DEPRECATIONS"] present' do
|
71
71
|
it 'defaults to a false value' do
|
72
72
|
ENV['PB_IGNORE_DEPRECATIONS'] = '1'
|
73
|
-
expect(described_class.print_deprecation_warnings?).to
|
73
|
+
expect(described_class.print_deprecation_warnings?).to be false
|
74
74
|
end
|
75
75
|
end
|
76
76
|
end
|
data/spec/spec_helper.rb
CHANGED
data/spec/support/all.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: protobuf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.2.
|
4
|
+
version: 3.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- BJ Neilsen
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2014-08-
|
14
|
+
date: 2014-08-04 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: activesupport
|
@@ -41,20 +41,6 @@ dependencies:
|
|
41
41
|
- - ">="
|
42
42
|
- !ruby/object:Gem::Version
|
43
43
|
version: '0'
|
44
|
-
- !ruby/object:Gem::Dependency
|
45
|
-
name: multi_json
|
46
|
-
requirement: !ruby/object:Gem::Requirement
|
47
|
-
requirements:
|
48
|
-
- - ">="
|
49
|
-
- !ruby/object:Gem::Version
|
50
|
-
version: '0'
|
51
|
-
type: :runtime
|
52
|
-
prerelease: false
|
53
|
-
version_requirements: !ruby/object:Gem::Requirement
|
54
|
-
requirements:
|
55
|
-
- - ">="
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
version: '0'
|
58
44
|
- !ruby/object:Gem::Dependency
|
59
45
|
name: thor
|
60
46
|
requirement: !ruby/object:Gem::Requirement
|
@@ -368,7 +354,6 @@ files:
|
|
368
354
|
- spec/support/test/resource.proto
|
369
355
|
- spec/support/test/resource_service.rb
|
370
356
|
- spec/support/test_app_file.rb
|
371
|
-
- spec/support/tolerance_matcher.rb
|
372
357
|
homepage: https://github.com/localshred/protobuf
|
373
358
|
licenses:
|
374
359
|
- WTFPL
|
@@ -465,5 +450,4 @@ test_files:
|
|
465
450
|
- spec/support/test/resource.proto
|
466
451
|
- spec/support/test/resource_service.rb
|
467
452
|
- spec/support/test_app_file.rb
|
468
|
-
- spec/support/tolerance_matcher.rb
|
469
453
|
has_rdoc:
|
@@ -1,40 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# courtesy of sander 6
|
3
|
-
# - http://github.com/sander6/custom_matchers/blob/master/lib/matchers/tolerance_matchers.rb
|
4
|
-
#
|
5
|
-
module Sander6
|
6
|
-
module CustomMatchers
|
7
|
-
|
8
|
-
class ToleranceMatcher
|
9
|
-
def initialize(tolerance)
|
10
|
-
@tolerance = tolerance
|
11
|
-
@target = 0
|
12
|
-
end
|
13
|
-
|
14
|
-
def of(target)
|
15
|
-
@target = target
|
16
|
-
self
|
17
|
-
end
|
18
|
-
|
19
|
-
def matches?(value)
|
20
|
-
@value = value
|
21
|
-
((@target - @tolerance)..(@target + @tolerance)).include?(@value)
|
22
|
-
end
|
23
|
-
|
24
|
-
def failure_message
|
25
|
-
"Expected #{@value.inspect} to be within #{@tolerance.inspect} of #{@target.inspect}, but it wasn't.\n" +
|
26
|
-
"Difference: #{@value - @target}"
|
27
|
-
end
|
28
|
-
|
29
|
-
def negative_failure_message
|
30
|
-
"Expected #{@value.inspect} not to be within #{@tolerance.inspect} of #{@target.inspect}, but it was.\n" +
|
31
|
-
"Difference: #{@value - @target}"
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
def be_within(value)
|
36
|
-
Sander6::CustomMatchers::ToleranceMatcher.new(value)
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
40
|
-
end
|