protobuf 2.7.12 → 2.8.0.beta1

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