protobuf 2.7.12 → 2.8.0.beta1
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.
- data/README.md +39 -2
- data/lib/protobuf.rb +17 -26
- data/lib/protobuf/cli.rb +106 -86
- data/lib/protobuf/field/bytes_field.rb +6 -8
- data/lib/protobuf/field/float_field.rb +5 -1
- data/lib/protobuf/field/string_field.rb +7 -8
- data/lib/protobuf/rpc/connectors/base.rb +1 -1
- data/lib/protobuf/rpc/connectors/zmq.rb +157 -29
- data/lib/protobuf/rpc/dynamic_discovery.pb.rb +49 -0
- data/lib/protobuf/rpc/error/client_error.rb +5 -5
- data/lib/protobuf/rpc/error/server_error.rb +7 -7
- data/lib/protobuf/rpc/rpc.pb.rb +13 -12
- data/lib/protobuf/rpc/servers/evented_runner.rb +11 -6
- data/lib/protobuf/rpc/servers/socket/server.rb +19 -15
- data/lib/protobuf/rpc/servers/socket_runner.rb +21 -18
- data/lib/protobuf/rpc/servers/zmq/broker.rb +104 -94
- data/lib/protobuf/rpc/servers/zmq/server.rb +263 -43
- data/lib/protobuf/rpc/servers/zmq/util.rb +18 -6
- data/lib/protobuf/rpc/servers/zmq/worker.rb +102 -39
- data/lib/protobuf/rpc/servers/zmq_runner.rb +31 -20
- data/lib/protobuf/rpc/service.rb +24 -12
- data/lib/protobuf/rpc/service_directory.rb +206 -0
- data/lib/protobuf/rpc/stat.rb +1 -1
- data/lib/protobuf/version.rb +1 -1
- data/proto/dynamic_discovery.proto +44 -0
- data/spec/benchmark/tasks.rb +1 -3
- data/spec/functional/socket_server_spec.rb +6 -5
- data/spec/functional/zmq_server_spec.rb +59 -30
- data/spec/lib/protobuf/cli_spec.rb +49 -54
- data/spec/lib/protobuf/enum_spec.rb +1 -1
- data/spec/lib/protobuf/rpc/client_spec.rb +1 -1
- data/spec/lib/protobuf/rpc/connectors/zmq_spec.rb +43 -1
- data/spec/lib/protobuf/rpc/servers/evented_server_spec.rb +2 -1
- data/spec/lib/protobuf/rpc/servers/socket_server_spec.rb +9 -8
- data/spec/lib/protobuf/rpc/servers/zmq/server_spec.rb +24 -19
- data/spec/lib/protobuf/rpc/servers/zmq/util_spec.rb +5 -5
- data/spec/lib/protobuf/rpc/service_directory_spec.rb +183 -0
- data/spec/support/server.rb +21 -12
- data/spec/support/test/resource.pb.rb +6 -0
- data/spec/support/test/resource.proto +5 -0
- data/spec/support/test/resource_service.rb +7 -0
- metadata +70 -38
- checksums.yaml +0 -7
- data/spec/lib/protobuf/field/string_field_spec.rb +0 -46
- data/spec/lib/protobuf/rpc/servers/zmq/broker_spec.rb +0 -31
@@ -21,6 +21,7 @@ module Test
|
|
21
21
|
# Message Classes
|
22
22
|
#
|
23
23
|
class ResourceFindRequest < ::Protobuf::Message; end
|
24
|
+
class ResourceSleepRequest < ::Protobuf::Message; end
|
24
25
|
class Resource < ::Protobuf::Message; end
|
25
26
|
class Searchable < ::Protobuf::Message
|
26
27
|
class SearchType < ::Protobuf::Enum
|
@@ -44,6 +45,10 @@ module Test
|
|
44
45
|
optional ::Protobuf::Field::BoolField, :active, 2
|
45
46
|
end
|
46
47
|
|
48
|
+
class ResourceSleepRequest
|
49
|
+
optional ::Protobuf::Field::Int32Field, :sleep, 1
|
50
|
+
end
|
51
|
+
|
47
52
|
class Resource
|
48
53
|
required ::Protobuf::Field::StringField, :name, 1
|
49
54
|
optional ::Protobuf::Field::Int64Field, :date_created, 2
|
@@ -93,6 +98,7 @@ module Test
|
|
93
98
|
#
|
94
99
|
class ResourceService < ::Protobuf::Rpc::Service
|
95
100
|
rpc :find, ::Test::ResourceFindRequest, ::Test::Resource
|
101
|
+
rpc :find_with_sleep, ::Test::ResourceSleepRequest, ::Test::Resource
|
96
102
|
end
|
97
103
|
end
|
98
104
|
|
@@ -12,6 +12,10 @@ message ResourceFindRequest {
|
|
12
12
|
optional bool active = 2;
|
13
13
|
}
|
14
14
|
|
15
|
+
message ResourceSleepRequest {
|
16
|
+
optional int32 sleep = 1;
|
17
|
+
}
|
18
|
+
|
15
19
|
message Resource {
|
16
20
|
extensions 100 to max;
|
17
21
|
|
@@ -78,4 +82,5 @@ extend Nested.NestedLevelOne {
|
|
78
82
|
|
79
83
|
service ResourceService {
|
80
84
|
rpc Find (ResourceFindRequest) returns (Resource);
|
85
|
+
rpc FindWithSleep (ResourceSleepRequest) returns (Resource);
|
81
86
|
}
|
@@ -10,5 +10,12 @@ module Test
|
|
10
10
|
response.status = request.active ? 1 : 0
|
11
11
|
end
|
12
12
|
|
13
|
+
# request -> Test::ResourceSleepRequest
|
14
|
+
# response -> Test::Resource
|
15
|
+
def find_with_sleep
|
16
|
+
sleep (request.sleep || 1)
|
17
|
+
response.name = 'Request should have timed out'
|
18
|
+
end
|
19
|
+
|
13
20
|
end
|
14
21
|
end
|
metadata
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: protobuf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.8.0.beta1
|
5
|
+
prerelease: 6
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- BJ Neilsen
|
@@ -9,188 +10,214 @@ authors:
|
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date: 2013-
|
13
|
+
date: 2013-06-13 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: activesupport
|
16
17
|
requirement: !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
17
19
|
requirements:
|
18
|
-
- - '>='
|
20
|
+
- - ! '>='
|
19
21
|
- !ruby/object:Gem::Version
|
20
22
|
version: '0'
|
21
23
|
type: :runtime
|
22
24
|
prerelease: false
|
23
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
24
27
|
requirements:
|
25
|
-
- - '>='
|
28
|
+
- - ! '>='
|
26
29
|
- !ruby/object:Gem::Version
|
27
30
|
version: '0'
|
28
31
|
- !ruby/object:Gem::Dependency
|
29
32
|
name: ffi
|
30
33
|
requirement: !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
31
35
|
requirements:
|
32
|
-
- - '>='
|
36
|
+
- - ! '>='
|
33
37
|
- !ruby/object:Gem::Version
|
34
38
|
version: '0'
|
35
39
|
type: :runtime
|
36
40
|
prerelease: false
|
37
41
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
38
43
|
requirements:
|
39
|
-
- - '>='
|
44
|
+
- - ! '>='
|
40
45
|
- !ruby/object:Gem::Version
|
41
46
|
version: '0'
|
42
47
|
- !ruby/object:Gem::Dependency
|
43
48
|
name: multi_json
|
44
49
|
requirement: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
45
51
|
requirements:
|
46
|
-
- - '>='
|
52
|
+
- - ! '>='
|
47
53
|
- !ruby/object:Gem::Version
|
48
54
|
version: '0'
|
49
55
|
type: :runtime
|
50
56
|
prerelease: false
|
51
57
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
52
59
|
requirements:
|
53
|
-
- - '>='
|
60
|
+
- - ! '>='
|
54
61
|
- !ruby/object:Gem::Version
|
55
62
|
version: '0'
|
56
63
|
- !ruby/object:Gem::Dependency
|
57
64
|
name: thor
|
58
65
|
requirement: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
59
67
|
requirements:
|
60
|
-
- - '>='
|
68
|
+
- - ! '>='
|
61
69
|
- !ruby/object:Gem::Version
|
62
70
|
version: '0'
|
63
71
|
type: :runtime
|
64
72
|
prerelease: false
|
65
73
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
66
75
|
requirements:
|
67
|
-
- - '>='
|
76
|
+
- - ! '>='
|
68
77
|
- !ruby/object:Gem::Version
|
69
78
|
version: '0'
|
70
79
|
- !ruby/object:Gem::Dependency
|
71
80
|
name: eventmachine
|
72
81
|
requirement: !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
73
83
|
requirements:
|
74
|
-
- - '>='
|
84
|
+
- - ! '>='
|
75
85
|
- !ruby/object:Gem::Version
|
76
86
|
version: '0'
|
77
87
|
type: :development
|
78
88
|
prerelease: false
|
79
89
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
80
91
|
requirements:
|
81
|
-
- - '>='
|
92
|
+
- - ! '>='
|
82
93
|
- !ruby/object:Gem::Version
|
83
94
|
version: '0'
|
84
95
|
- !ruby/object:Gem::Dependency
|
85
96
|
name: ffi-rzmq
|
86
97
|
requirement: !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
87
99
|
requirements:
|
88
|
-
- - '>='
|
100
|
+
- - ! '>='
|
89
101
|
- !ruby/object:Gem::Version
|
90
102
|
version: '0'
|
91
103
|
type: :development
|
92
104
|
prerelease: false
|
93
105
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
94
107
|
requirements:
|
95
|
-
- - '>='
|
108
|
+
- - ! '>='
|
96
109
|
- !ruby/object:Gem::Version
|
97
110
|
version: '0'
|
98
111
|
- !ruby/object:Gem::Dependency
|
99
112
|
name: pry
|
100
113
|
requirement: !ruby/object:Gem::Requirement
|
114
|
+
none: false
|
101
115
|
requirements:
|
102
|
-
- - '>='
|
116
|
+
- - ! '>='
|
103
117
|
- !ruby/object:Gem::Version
|
104
118
|
version: '0'
|
105
119
|
type: :development
|
106
120
|
prerelease: false
|
107
121
|
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
none: false
|
108
123
|
requirements:
|
109
|
-
- - '>='
|
124
|
+
- - ! '>='
|
110
125
|
- !ruby/object:Gem::Version
|
111
126
|
version: '0'
|
112
127
|
- !ruby/object:Gem::Dependency
|
113
128
|
name: pry-nav
|
114
129
|
requirement: !ruby/object:Gem::Requirement
|
130
|
+
none: false
|
115
131
|
requirements:
|
116
|
-
- - '>='
|
132
|
+
- - ! '>='
|
117
133
|
- !ruby/object:Gem::Version
|
118
134
|
version: '0'
|
119
135
|
type: :development
|
120
136
|
prerelease: false
|
121
137
|
version_requirements: !ruby/object:Gem::Requirement
|
138
|
+
none: false
|
122
139
|
requirements:
|
123
|
-
- - '>='
|
140
|
+
- - ! '>='
|
124
141
|
- !ruby/object:Gem::Version
|
125
142
|
version: '0'
|
126
143
|
- !ruby/object:Gem::Dependency
|
127
144
|
name: rake
|
128
145
|
requirement: !ruby/object:Gem::Requirement
|
146
|
+
none: false
|
129
147
|
requirements:
|
130
|
-
- - '>='
|
148
|
+
- - ! '>='
|
131
149
|
- !ruby/object:Gem::Version
|
132
150
|
version: '0'
|
133
151
|
type: :development
|
134
152
|
prerelease: false
|
135
153
|
version_requirements: !ruby/object:Gem::Requirement
|
154
|
+
none: false
|
136
155
|
requirements:
|
137
|
-
- - '>='
|
156
|
+
- - ! '>='
|
138
157
|
- !ruby/object:Gem::Version
|
139
158
|
version: '0'
|
140
159
|
- !ruby/object:Gem::Dependency
|
141
160
|
name: rake-compiler
|
142
161
|
requirement: !ruby/object:Gem::Requirement
|
162
|
+
none: false
|
143
163
|
requirements:
|
144
|
-
- - '>='
|
164
|
+
- - ! '>='
|
145
165
|
- !ruby/object:Gem::Version
|
146
166
|
version: '0'
|
147
167
|
type: :development
|
148
168
|
prerelease: false
|
149
169
|
version_requirements: !ruby/object:Gem::Requirement
|
170
|
+
none: false
|
150
171
|
requirements:
|
151
|
-
- - '>='
|
172
|
+
- - ! '>='
|
152
173
|
- !ruby/object:Gem::Version
|
153
174
|
version: '0'
|
154
175
|
- !ruby/object:Gem::Dependency
|
155
176
|
name: rspec
|
156
177
|
requirement: !ruby/object:Gem::Requirement
|
178
|
+
none: false
|
157
179
|
requirements:
|
158
|
-
- - '>='
|
180
|
+
- - ! '>='
|
159
181
|
- !ruby/object:Gem::Version
|
160
182
|
version: '0'
|
161
183
|
type: :development
|
162
184
|
prerelease: false
|
163
185
|
version_requirements: !ruby/object:Gem::Requirement
|
186
|
+
none: false
|
164
187
|
requirements:
|
165
|
-
- - '>='
|
188
|
+
- - ! '>='
|
166
189
|
- !ruby/object:Gem::Version
|
167
190
|
version: '0'
|
168
191
|
- !ruby/object:Gem::Dependency
|
169
192
|
name: simplecov
|
170
193
|
requirement: !ruby/object:Gem::Requirement
|
194
|
+
none: false
|
171
195
|
requirements:
|
172
|
-
- - '>='
|
196
|
+
- - ! '>='
|
173
197
|
- !ruby/object:Gem::Version
|
174
198
|
version: '0'
|
175
199
|
type: :development
|
176
200
|
prerelease: false
|
177
201
|
version_requirements: !ruby/object:Gem::Requirement
|
202
|
+
none: false
|
178
203
|
requirements:
|
179
|
-
- - '>='
|
204
|
+
- - ! '>='
|
180
205
|
- !ruby/object:Gem::Version
|
181
206
|
version: '0'
|
182
207
|
- !ruby/object:Gem::Dependency
|
183
208
|
name: yard
|
184
209
|
requirement: !ruby/object:Gem::Requirement
|
210
|
+
none: false
|
185
211
|
requirements:
|
186
|
-
- - '>='
|
212
|
+
- - ! '>='
|
187
213
|
- !ruby/object:Gem::Version
|
188
214
|
version: '0'
|
189
215
|
type: :development
|
190
216
|
prerelease: false
|
191
217
|
version_requirements: !ruby/object:Gem::Requirement
|
218
|
+
none: false
|
192
219
|
requirements:
|
193
|
-
- - '>='
|
220
|
+
- - ! '>='
|
194
221
|
- !ruby/object:Gem::Version
|
195
222
|
version: '0'
|
196
223
|
description: Google Protocol Buffers v2.4.1 Serialization and RPC implementation for
|
@@ -353,6 +380,7 @@ files:
|
|
353
380
|
- lib/protobuf/rpc/connectors/eventmachine.rb
|
354
381
|
- lib/protobuf/rpc/connectors/socket.rb
|
355
382
|
- lib/protobuf/rpc/connectors/zmq.rb
|
383
|
+
- lib/protobuf/rpc/dynamic_discovery.pb.rb
|
356
384
|
- lib/protobuf/rpc/error.rb
|
357
385
|
- lib/protobuf/rpc/error/client_error.rb
|
358
386
|
- lib/protobuf/rpc/error/server_error.rb
|
@@ -369,6 +397,7 @@ files:
|
|
369
397
|
- lib/protobuf/rpc/servers/zmq/worker.rb
|
370
398
|
- lib/protobuf/rpc/servers/zmq_runner.rb
|
371
399
|
- lib/protobuf/rpc/service.rb
|
400
|
+
- lib/protobuf/rpc/service_directory.rb
|
372
401
|
- lib/protobuf/rpc/service_dispatcher.rb
|
373
402
|
- lib/protobuf/rpc/service_filters.rb
|
374
403
|
- lib/protobuf/rpc/stat.rb
|
@@ -376,6 +405,7 @@ files:
|
|
376
405
|
- lib/protobuf/version.rb
|
377
406
|
- lib/protobuf/wire_type.rb
|
378
407
|
- lib/protobuf/zmq.rb
|
408
|
+
- proto/dynamic_discovery.proto
|
379
409
|
- proto/rpc.proto
|
380
410
|
- protobuf.gemspec
|
381
411
|
- spec/benchmark/tasks.rb
|
@@ -387,7 +417,6 @@ files:
|
|
387
417
|
- spec/lib/protobuf/enum_spec.rb
|
388
418
|
- spec/lib/protobuf/enum_value_spec.rb
|
389
419
|
- spec/lib/protobuf/field/int32_field_spec.rb
|
390
|
-
- spec/lib/protobuf/field/string_field_spec.rb
|
391
420
|
- spec/lib/protobuf/logger_spec.rb
|
392
421
|
- spec/lib/protobuf/message_spec.rb
|
393
422
|
- spec/lib/protobuf/rpc/client_spec.rb
|
@@ -398,10 +427,10 @@ files:
|
|
398
427
|
- spec/lib/protobuf/rpc/connectors/zmq_spec.rb
|
399
428
|
- spec/lib/protobuf/rpc/servers/evented_server_spec.rb
|
400
429
|
- spec/lib/protobuf/rpc/servers/socket_server_spec.rb
|
401
|
-
- spec/lib/protobuf/rpc/servers/zmq/broker_spec.rb
|
402
430
|
- spec/lib/protobuf/rpc/servers/zmq/server_spec.rb
|
403
431
|
- spec/lib/protobuf/rpc/servers/zmq/util_spec.rb
|
404
432
|
- spec/lib/protobuf/rpc/servers/zmq/worker_spec.rb
|
433
|
+
- spec/lib/protobuf/rpc/service_directory_spec.rb
|
405
434
|
- spec/lib/protobuf/rpc/service_dispatcher_spec.rb
|
406
435
|
- spec/lib/protobuf/rpc/service_filters_spec.rb
|
407
436
|
- spec/lib/protobuf/rpc/service_spec.rb
|
@@ -466,26 +495,30 @@ files:
|
|
466
495
|
- test/test_types.rb
|
467
496
|
homepage: https://github.com/localshred/protobuf
|
468
497
|
licenses: []
|
469
|
-
metadata: {}
|
470
498
|
post_install_message:
|
471
499
|
rdoc_options: []
|
472
500
|
require_paths:
|
473
501
|
- lib
|
474
502
|
required_ruby_version: !ruby/object:Gem::Requirement
|
503
|
+
none: false
|
475
504
|
requirements:
|
476
|
-
- - '>='
|
505
|
+
- - ! '>='
|
477
506
|
- !ruby/object:Gem::Version
|
478
507
|
version: '0'
|
508
|
+
segments:
|
509
|
+
- 0
|
510
|
+
hash: -841170997409404401
|
479
511
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
512
|
+
none: false
|
480
513
|
requirements:
|
481
|
-
- - '
|
514
|
+
- - ! '>'
|
482
515
|
- !ruby/object:Gem::Version
|
483
|
-
version:
|
516
|
+
version: 1.3.1
|
484
517
|
requirements: []
|
485
518
|
rubyforge_project:
|
486
|
-
rubygems_version:
|
519
|
+
rubygems_version: 1.8.23
|
487
520
|
signing_key:
|
488
|
-
specification_version:
|
521
|
+
specification_version: 3
|
489
522
|
summary: Google Protocol Buffers v2.4.1 Serialization and RPC implementation for Ruby.
|
490
523
|
test_files:
|
491
524
|
- spec/benchmark/tasks.rb
|
@@ -497,7 +530,6 @@ test_files:
|
|
497
530
|
- spec/lib/protobuf/enum_spec.rb
|
498
531
|
- spec/lib/protobuf/enum_value_spec.rb
|
499
532
|
- spec/lib/protobuf/field/int32_field_spec.rb
|
500
|
-
- spec/lib/protobuf/field/string_field_spec.rb
|
501
533
|
- spec/lib/protobuf/logger_spec.rb
|
502
534
|
- spec/lib/protobuf/message_spec.rb
|
503
535
|
- spec/lib/protobuf/rpc/client_spec.rb
|
@@ -508,10 +540,10 @@ test_files:
|
|
508
540
|
- spec/lib/protobuf/rpc/connectors/zmq_spec.rb
|
509
541
|
- spec/lib/protobuf/rpc/servers/evented_server_spec.rb
|
510
542
|
- spec/lib/protobuf/rpc/servers/socket_server_spec.rb
|
511
|
-
- spec/lib/protobuf/rpc/servers/zmq/broker_spec.rb
|
512
543
|
- spec/lib/protobuf/rpc/servers/zmq/server_spec.rb
|
513
544
|
- spec/lib/protobuf/rpc/servers/zmq/util_spec.rb
|
514
545
|
- spec/lib/protobuf/rpc/servers/zmq/worker_spec.rb
|
546
|
+
- spec/lib/protobuf/rpc/service_directory_spec.rb
|
515
547
|
- spec/lib/protobuf/rpc/service_dispatcher_spec.rb
|
516
548
|
- spec/lib/protobuf/rpc/service_filters_spec.rb
|
517
549
|
- spec/lib/protobuf/rpc/service_spec.rb
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: ec668a441b215626889c81b6488fbb722e413cbc
|
4
|
-
data.tar.gz: 39d03c378294a8205404b21424aa9c66eb05e95d
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 5e10279b2fdb399cbbe358d1acd6fa32d2cc29865ceb960cfc3d79247b5dee9f2657503c7ee2b9e61bc28977c48847ecfa726ef442c2963559d424fb6c659365
|
7
|
-
data.tar.gz: 94a7266d6e6014906f65304614df869c3fa21fad026a529186460889dde64fb9e9cef52b521dd6df11b74c624f19d58bc2a715a72c7a21fa1acf5508a59d1fb3
|
@@ -1,46 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe ::Protobuf::Field::StringField do
|
6
|
-
|
7
|
-
describe '#encode' do
|
8
|
-
context 'when a repeated string field contains frozen strings' do
|
9
|
-
it 'does not raise an encoding error' do
|
10
|
-
expect {
|
11
|
-
frozen_strings = [ "foo".freeze, "bar".freeze, "baz".freeze ]
|
12
|
-
::Test::ResourceFindRequest.new(:name => 'resource', :widgets => frozen_strings).serialize_to_string
|
13
|
-
}.not_to raise_error
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
context 'when a repeated bytes field contains frozen strings' do
|
18
|
-
it 'does not raise an encoding error' do
|
19
|
-
expect {
|
20
|
-
frozen_strings = [ "foo".freeze, "bar".freeze, "baz".freeze ]
|
21
|
-
::Test::ResourceFindRequest.new(:name => 'resource', :widget_bytes => frozen_strings).serialize_to_string
|
22
|
-
}.not_to raise_error
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'does not alter string values after encoding multiple times' do
|
27
|
-
source_string = "foo"
|
28
|
-
proto = ::Test::Resource.new(:name => source_string)
|
29
|
-
proto.serialize_to_string
|
30
|
-
proto.name.should eq source_string
|
31
|
-
proto.serialize_to_string
|
32
|
-
proto.name.should eq source_string
|
33
|
-
end
|
34
|
-
|
35
|
-
it 'does not alter unicode string values after encoding multiple times' do
|
36
|
-
source_string = "¢"
|
37
|
-
proto = ::Test::Resource.new(:name => source_string)
|
38
|
-
proto.serialize_to_string
|
39
|
-
proto.name.should eq source_string
|
40
|
-
proto.serialize_to_string
|
41
|
-
proto.name.should eq source_string
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
|
46
|
-
end
|