protip 0.20.5 → 0.20.6
Sign up to get free protection for your applications and to get access to all the features.
- 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
|