protip 0.20.5 → 0.20.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/protip/standard_converter.rb +15 -3
- data/test/unit/protip/standard_converter_test.rb +73 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aefcea9ce37ffdc3bd5efcbea6aee568e3118715
|
4
|
+
data.tar.gz: 278db3d2ee173853e20822fb91ccb3c5b1640ae0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 641d74e159b5c2faf1ee52e4c8bdf6de21a4ad4ab4c5da88c2b8945bb7c82dab79f6b511e85204dede81357be84399b3f3358e1865242d83ad10059723bca4cd
|
7
|
+
data.tar.gz: 44b654905cf19cc006452765fc5d1920841710bbc48c1a93c6c89525d8bdddf4edfd09a905b384b1c7ebc2a32bbc4898c3bf1cacb2c08281255a862cedbb8e45
|
@@ -59,17 +59,29 @@ module Protip
|
|
59
59
|
}
|
60
60
|
|
61
61
|
## Standard wrappers
|
62
|
-
|
62
|
+
{
|
63
|
+
Int64: :to_i,
|
64
|
+
Int32: :to_i,
|
65
|
+
UInt64: :to_i,
|
66
|
+
UInt32: :to_i,
|
67
|
+
Double: :to_f,
|
68
|
+
Float: :to_f,
|
69
|
+
String: :to_s,
|
70
|
+
Bytes: nil,
|
71
|
+
}.each do |type, conversion|
|
63
72
|
@conversions["google.protobuf.#{type}Value"] = {
|
64
73
|
to_object: ->(message, field) { message.value },
|
65
74
|
to_message: lambda do |value, message_class, field|
|
66
|
-
message_class.new value: value
|
75
|
+
message_class.new value: (conversion ? value.public_send(conversion) : value)
|
67
76
|
end
|
68
77
|
}
|
69
78
|
@conversions["protip.messages.Repeated#{type}"] = {
|
70
79
|
to_object: ->(message, field) { message.values.to_a.freeze },
|
71
80
|
to_message: lambda do |value, message_class, field|
|
72
|
-
|
81
|
+
values = (value.is_a?(Enumerable) ? value : [value]).map do |v|
|
82
|
+
conversion ? v.public_send(conversion) : v
|
83
|
+
end
|
84
|
+
message_class.new values: values
|
73
85
|
end
|
74
86
|
}
|
75
87
|
end
|
@@ -228,6 +228,28 @@ describe Protip::StandardConverter do
|
|
228
228
|
end
|
229
229
|
end
|
230
230
|
|
231
|
+
it 'converts wrapper types when set as a non-native type' do
|
232
|
+
# Convert from string
|
233
|
+
{
|
234
|
+
integer_value => integer_types,
|
235
|
+
float_value => float_types,
|
236
|
+
bool_value => bool_types,
|
237
|
+
}.each do |value, message_types|
|
238
|
+
message_types.each do |message_class|
|
239
|
+
assert_equal message_class.new(value: value), converter.to_message(value.to_s, message_class, field)
|
240
|
+
end
|
241
|
+
end
|
242
|
+
|
243
|
+
# Convert from integer
|
244
|
+
{
|
245
|
+
'4' => string_types,
|
246
|
+
}.each do |value, message_types|
|
247
|
+
message_types.each do |message_class|
|
248
|
+
assert_equal message_class.new(value: value), converter.to_message(value.to_i, message_class, field)
|
249
|
+
end
|
250
|
+
end
|
251
|
+
end
|
252
|
+
|
231
253
|
it 'converts repeated types when set with a scalar value' do
|
232
254
|
{
|
233
255
|
integer_value => repeated_integer_types,
|
@@ -242,6 +264,29 @@ describe Protip::StandardConverter do
|
|
242
264
|
end
|
243
265
|
end
|
244
266
|
|
267
|
+
it 'converts repeated types when set with a non-native scalar type' do
|
268
|
+
# Convert from string
|
269
|
+
{
|
270
|
+
integer_value => repeated_integer_types,
|
271
|
+
float_value => repeated_float_types,
|
272
|
+
bool_value => repeated_bool_types,
|
273
|
+
}.each do |value, message_types|
|
274
|
+
message_types.each do |message_class|
|
275
|
+
assert_equal message_class.new(values: [value]), converter.to_message(value.to_s, message_class, field)
|
276
|
+
end
|
277
|
+
end
|
278
|
+
|
279
|
+
# Convert from integer
|
280
|
+
{
|
281
|
+
'4' => repeated_string_types,
|
282
|
+
}.each do |value, message_types|
|
283
|
+
message_types.each do |message_class|
|
284
|
+
assert_equal message_class.new(values: [value]), converter.to_message(value.to_i, message_class, field)
|
285
|
+
end
|
286
|
+
end
|
287
|
+
|
288
|
+
end
|
289
|
+
|
245
290
|
it 'converts repeated types when set with an enumerable value' do
|
246
291
|
{
|
247
292
|
integer_value => repeated_integer_types,
|
@@ -258,6 +303,33 @@ describe Protip::StandardConverter do
|
|
258
303
|
end
|
259
304
|
end
|
260
305
|
|
306
|
+
it 'converts repeated types when set with a non-native enumerable type' do
|
307
|
+
# Convert from string
|
308
|
+
{
|
309
|
+
integer_value => repeated_integer_types,
|
310
|
+
float_value => repeated_float_types,
|
311
|
+
bool_value => repeated_bool_types,
|
312
|
+
}.each do |value, message_types|
|
313
|
+
message_types.each do |message_class|
|
314
|
+
assert_equal message_class.new(values: [value, value]), converter.to_message(
|
315
|
+
[value.to_s, value.to_s], message_class, field
|
316
|
+
)
|
317
|
+
end
|
318
|
+
end
|
319
|
+
|
320
|
+
# Convert from integer
|
321
|
+
{
|
322
|
+
'4' => repeated_string_types,
|
323
|
+
}.each do |value, message_types|
|
324
|
+
message_types.each do |message_class|
|
325
|
+
assert_equal message_class.new(values: [value, value]), converter.to_message(
|
326
|
+
[value.to_i, value.to_i], message_class, field
|
327
|
+
)
|
328
|
+
end
|
329
|
+
end
|
330
|
+
|
331
|
+
end
|
332
|
+
|
261
333
|
it 'converts dates' do
|
262
334
|
date = ::Date.new(2012, 5, 7)
|
263
335
|
assert_equal 7, date.day # Sanity check argument order
|
@@ -427,4 +499,4 @@ describe Protip::StandardConverter do
|
|
427
499
|
|
428
500
|
end
|
429
501
|
|
430
|
-
end
|
502
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: protip
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.20.
|
4
|
+
version: 0.20.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- AngelList
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-04-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|