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.
Files changed (45) hide show
  1. data/README.md +39 -2
  2. data/lib/protobuf.rb +17 -26
  3. data/lib/protobuf/cli.rb +106 -86
  4. data/lib/protobuf/field/bytes_field.rb +6 -8
  5. data/lib/protobuf/field/float_field.rb +5 -1
  6. data/lib/protobuf/field/string_field.rb +7 -8
  7. data/lib/protobuf/rpc/connectors/base.rb +1 -1
  8. data/lib/protobuf/rpc/connectors/zmq.rb +157 -29
  9. data/lib/protobuf/rpc/dynamic_discovery.pb.rb +49 -0
  10. data/lib/protobuf/rpc/error/client_error.rb +5 -5
  11. data/lib/protobuf/rpc/error/server_error.rb +7 -7
  12. data/lib/protobuf/rpc/rpc.pb.rb +13 -12
  13. data/lib/protobuf/rpc/servers/evented_runner.rb +11 -6
  14. data/lib/protobuf/rpc/servers/socket/server.rb +19 -15
  15. data/lib/protobuf/rpc/servers/socket_runner.rb +21 -18
  16. data/lib/protobuf/rpc/servers/zmq/broker.rb +104 -94
  17. data/lib/protobuf/rpc/servers/zmq/server.rb +263 -43
  18. data/lib/protobuf/rpc/servers/zmq/util.rb +18 -6
  19. data/lib/protobuf/rpc/servers/zmq/worker.rb +102 -39
  20. data/lib/protobuf/rpc/servers/zmq_runner.rb +31 -20
  21. data/lib/protobuf/rpc/service.rb +24 -12
  22. data/lib/protobuf/rpc/service_directory.rb +206 -0
  23. data/lib/protobuf/rpc/stat.rb +1 -1
  24. data/lib/protobuf/version.rb +1 -1
  25. data/proto/dynamic_discovery.proto +44 -0
  26. data/spec/benchmark/tasks.rb +1 -3
  27. data/spec/functional/socket_server_spec.rb +6 -5
  28. data/spec/functional/zmq_server_spec.rb +59 -30
  29. data/spec/lib/protobuf/cli_spec.rb +49 -54
  30. data/spec/lib/protobuf/enum_spec.rb +1 -1
  31. data/spec/lib/protobuf/rpc/client_spec.rb +1 -1
  32. data/spec/lib/protobuf/rpc/connectors/zmq_spec.rb +43 -1
  33. data/spec/lib/protobuf/rpc/servers/evented_server_spec.rb +2 -1
  34. data/spec/lib/protobuf/rpc/servers/socket_server_spec.rb +9 -8
  35. data/spec/lib/protobuf/rpc/servers/zmq/server_spec.rb +24 -19
  36. data/spec/lib/protobuf/rpc/servers/zmq/util_spec.rb +5 -5
  37. data/spec/lib/protobuf/rpc/service_directory_spec.rb +183 -0
  38. data/spec/support/server.rb +21 -12
  39. data/spec/support/test/resource.pb.rb +6 -0
  40. data/spec/support/test/resource.proto +5 -0
  41. data/spec/support/test/resource_service.rb +7 -0
  42. metadata +70 -38
  43. checksums.yaml +0 -7
  44. data/spec/lib/protobuf/field/string_field_spec.rb +0 -46
  45. 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.7.12
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-09-17 00:00:00.000000000 Z
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: '0'
516
+ version: 1.3.1
484
517
  requirements: []
485
518
  rubyforge_project:
486
- rubygems_version: 2.1.2
519
+ rubygems_version: 1.8.23
487
520
  signing_key:
488
- specification_version: 4
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