protobuf 2.6.4-java → 2.6.5-java

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -3,21 +3,53 @@
3
3
  [![Gem Version](https://badge.fury.io/rb/protobuf.png)](http://badge.fury.io/rb/protobuf)
4
4
  [![Build Status](https://secure.travis-ci.org/localshred/protobuf.png?branch=master)](https://travis-ci.org/localshred/protobuf)
5
5
 
6
- ***IMPORTANT: Those upgrading from version 1.4.2 to 2.X should read the [UPGRADING.md](https://github.com/localshred/protobuf/blob/master/UPGRADING.md) notes***
6
+ ___IMPORTANT: Those upgrading from version 1.4.2 to 2.X should read the
7
+ [UPGRADING.md](https://github.com/localshred/protobuf/blob/master/UPGRADING.md) notes___
7
8
 
8
- Protobuf is an implementation of [Google's protocol buffers][google-pb] in ruby. We currently support version 2.4.1 with support for the new 2.5 coming shortly after it becomes final. It's a gem for managing 3 things:
9
+ Protobuf is an implementation of [Google's protocol buffers][google-pb] in ruby.
10
+ We currently support version 2.4.1 with support for the new 2.5 coming shortly after
11
+ it becomes final.
9
12
 
10
- 1. Generating ruby classes from `.proto` files.
11
- 2. Provide an RPC mechanism for calling remote services.
12
- 3. Provide RPC interop between ruby and other protobuf-rpc aware implementations for different languages (e.g. [protobuf-socket-rpc][]).
13
+ ---
13
14
 
14
- So let's dive in and see how to work with all three.
15
+ ## Install
15
16
 
16
- ## 1. Generating ruby classes from `.proto` files
17
+ You will likely need to install protobuf from your favorite package manager
18
+ or from source. This gem currently supports protobuf 2.4.1. You may alternatively
19
+ specify a `PROTOC_SRC` when installing with rubygems (see below).
20
+
21
+ ### OSX Install
22
+
23
+ ```shell
24
+ $ brew install protobuf
25
+ ```
26
+
27
+ ### Ubuntu
28
+ ```shell
29
+ $ sudo apt-get install -y protobuf
30
+ ```
31
+
32
+ ### Gem Install
33
+
34
+ Once the protobuf package is installed, go ahead and install with rubygems.
35
+ If you'd like to skip installing the protobuf package (above) and specify an
36
+ alternate location for the protobuf package, for instance if you have a custom
37
+ protoc package, then specify it with `PROTOC_SRC=/path/to/src`.
38
+ _Please note that this will void your warranty as it were. If you compiled with
39
+ a custom protobuf package and are having issues it may be difficult to troubleshoot._
17
40
 
18
- _The `protobuf` package is required for compilation. Mac: `brew install protobuf`, Ubuntu: `sudo apt-get install -y protobuf`_
41
+ ```shell
42
+ $ gem install protobuf
19
43
 
20
- Protocol Buffers are great because they allow you to clearly define data storage or data transfer packets. Google officially supports Java, C++, and Python for compilation and usage. Let's make it ruby aware!
44
+ # Provide an alternative protoc source directory to build from.
45
+ $ PROTOC_SRC=/path/to/protobuf/src gem install protobuf
46
+ ```
47
+
48
+ ## 1. Generating ruby classes from `.proto` files
49
+
50
+ Protocol Buffers are great because they allow you to clearly define data storage
51
+ or data transfer packets. Google officially supports Java, C++, and Python for
52
+ compilation and usage. Let's make it ruby aware!
21
53
 
22
54
  Let's say you have a `defs.proto` file that defines a User message.
23
55
 
@@ -35,7 +67,10 @@ Now let's compile that definition to ruby:
35
67
  $ rprotoc defs.proto --ruby_out ./lib
36
68
  ```
37
69
 
38
- The previous line will take whatever is defined in `defs.proto` and output ruby classes to the `./lib` directory, obeying the package directive. Assuming that's all `defs.proto` had defined, `./lib` should now look like this:
70
+ The previous line will take whatever is defined in `defs.proto` and
71
+ output ruby classes to the `./lib` directory, obeying the package
72
+ directive. Assuming that's all `defs.proto` had defined, `./lib`
73
+ should now look like this:
39
74
 
40
75
  ```
41
76
  - lib
@@ -56,9 +91,12 @@ module Foo
56
91
  end
57
92
  ```
58
93
 
59
- _Note: The generator will pre-define all the classes empty and then re-open to apply the defined fields. This is an optomization to prevent recursive field errors._
94
+ ___Note:__ The generator will pre-define all the classes empty and then
95
+ re-open to apply the defined fields. This is an optomization to prevent
96
+ recursive field errors._
60
97
 
61
- The generated class is now just a plain old ruby object and you can use it however you wish.
98
+ The generated class is now just a plain old ruby object and you
99
+ can use it however you wish.
62
100
 
63
101
  ```ruby
64
102
  require 'lib/foo/user.pb'
@@ -77,7 +115,10 @@ user.last_name # => Christmas
77
115
 
78
116
  ### Message (de)serialization
79
117
 
80
- Every message object comes ready for serialization or deserialization. Use `serialize_to_string` to write out the byte-string for the message. Use `parse_from_string` on a new message instance to inflate the byte-string back to a message in ruby.
118
+ Every message object comes ready for serialization or deserialization.
119
+ Use `serialize_to_string` to write out the byte-string for the message.
120
+ Use `parse_from_string` on a new message instance to inflate the
121
+ byte-string back to a message in ruby.
81
122
 
82
123
  ```ruby
83
124
  user = Foo::User.new(:first_name => 'Bob')
@@ -90,13 +131,21 @@ inflated_user == user #=> true
90
131
 
91
132
  ## 2. RPC
92
133
 
93
- RPC is one of many technologies that tries to solve the problem of getting smaller pieces of data from one place to another. Many will argue for or against RPC and its usefulness, but I'm not going to do that here. Google's Protocol Buffers provides support for Services with RPC and that's why you're here.
134
+ RPC is one of many technologies that tries to solve the problem of getting
135
+ smaller pieces of data from one place to another. Many will argue for or
136
+ against RPC and its usefulness, but I'm not going to do that here. Google's
137
+ Protocol Buffers provides support for Services with RPC and that's why you're here.
94
138
 
95
- Any discussion about RPC leads to a discussion about clients and servers and the remote procedures themselves. For our purposes, we'll talk about a `Client` (process that is calling the server/service), a `Service` (the remote procedure), and a `Server` (the process that manages one or more services). We'll start with the Service first.
139
+ Any discussion about RPC leads to a discussion about clients and servers
140
+ and the remote procedures themselves. For our purposes, we'll talk about
141
+ a `Client` (process that is calling the server/service), a `Service`
142
+ (the remote procedure), and a `Server` (the process that manages one or more
143
+ services). We'll start with the Service first.
96
144
 
97
145
  ### Services
98
146
 
99
- Services are simply classes that have endpoint methods defined. Here's what one looks like in protobuf:
147
+ Services are simply classes that have endpoint methods defined. Here's what
148
+ one looks like in protobuf:
100
149
 
101
150
  ```
102
151
  package foo;
@@ -124,11 +173,15 @@ module Foo
124
173
  end
125
174
  ```
126
175
 
127
- **Important Note: The UserService class here is a *stub*. You should not provide your implementation in this generated file as subsequent generations will wipe out your implmentation. Read on to learn how to use this stub.**
176
+ __Important Note: The UserService class here is a *stub*. You should not
177
+ provide your implementation in this generated file as subsequent generations
178
+ will wipe out your implmentation. Read on to learn how to use this stub.__
128
179
 
129
180
  Did you read the note above? Go read it. I'll wait.
130
181
 
131
- Ok, now that you have a generated service stub, you'll want to require it from `lib` and implement the methods. Create a service implementation file in your project. In rails I'd put this in `app/services/user_service.rb`.
182
+ Ok, now that you have a generated service stub, you'll want to require it
183
+ from `lib` and implement the methods. Create a service implementation file
184
+ in your project. In rails I'd put this in `app/services/user_service.rb`.
132
185
 
133
186
  ```ruby
134
187
  # app/services/user_service.rb
@@ -152,15 +205,27 @@ module Foo
152
205
  end
153
206
  ```
154
207
 
155
- Simply implement the instance method for the defined rpc. You can provide any other methods in this class as helpers, but only those defined in the proto file will be callable by remote clients. Every request made by a client will provide a non-empty request of the defined type. The server creates a new service instance based on the request, so you should not be constrained to just the endpoint method. This is similar to rails controllers where only methods defined by the routes file are hooked up to HTTP requests, but it's very common to implement private methods to aid in code quality and simpilicity.
156
-
157
- Every instance has a `request` and `response` object used for fulfilling the call, again, similar to a rails controller action. You should never attempt to modify the `request` object. The `response` object however should be modified or replaced entirely. If you need to create your own response object (a valid case), simply use `respond_with(new_response)`. The returned object should conform to one of three properties:
208
+ Simply implement the instance method for the defined rpc. You can provide
209
+ any other methods in this class as helpers, but only those defined in the
210
+ proto file will be callable by remote clients. Every request made by a client
211
+ will provide a non-empty request of the defined type. The server creates a new
212
+ service instance based on the request, so you should not be constrained to just
213
+ the endpoint method. This is similar to rails controllers where only methods
214
+ defined by the routes file are hooked up to HTTP requests, but it's very common
215
+ to implement private methods to aid in code quality and simpilicity.
216
+
217
+ Every instance has a `request` and `response` object used for fulfilling the call,
218
+ again, similar to a rails controller action. You should never attempt to modify the
219
+ `request` object. The `response` object however should be modified or replaced
220
+ entirely. If you need to create your own response object (a valid case), simply use
221
+ `respond_with(new_response)`. The returned object should conform to one of three properties:
158
222
 
159
223
  1. Response should be of same type as defined by the rpc definition (in this case, `Foo::UserList`), or
160
224
  2. Response should be a hash. This hash will be used to construct an instance of the defined type and should therefore conform to the appropriate fields for that type.
161
225
  3. Response should respond to the `to_proto` method. The object returned by `to_proto` should be an instance of the defined response type.
162
226
 
163
- If at any time the implementation encounters an error, the client can be instructed of the error using `rpc_failed`:
227
+ If at any time the implementation encounters an error, the client can be
228
+ instructed of the error using `rpc_failed`:
164
229
 
165
230
  ```ruby
166
231
  #...
@@ -174,11 +239,16 @@ end
174
239
  #...
175
240
  ```
176
241
 
177
- This means that the client's `on_failure` callback will be invoked instead of the `on_success` callback. Read more below on client callbacks. One drawback to the `rpc_failed` approach is that it does not short-circuit the rest of the method. This means that you must explicitly return from the method if you do not wish the remainder to be executed.
242
+ This means that the client's `on_failure` callback will be invoked instead
243
+ of the `on_success` callback. Read more below on client callbacks. One drawback
244
+ to the `rpc_failed` approach is that it does not short-circuit the rest of
245
+ the method. This means that you must explicitly return from the method if
246
+ you do not wish the remainder to be executed.
178
247
 
179
248
  ### Service Filters
180
249
 
181
- Service Filters provides ActionController-style filter support to service instances, specifically adding `before_filter`, `after_filter`, and `around_filter`.
250
+ Service Filters provides ActionController-style filter support to service
251
+ instances, specifically adding `before_filter`, `after_filter`, and `around_filter`.
182
252
 
183
253
  ```ruby
184
254
  require 'lib/foo/user.pb'
@@ -223,37 +293,74 @@ end
223
293
 
224
294
  #### Halting execution of rpc request inside a filter
225
295
 
226
- __Around Filters__ – Inside of an around filter, if you wish to halt request processing and return, simply do not `yield` the block. Since the filter is implemented as an instance method, you can use `rpc_failed` or `respond_with` just like you can in the endpoint methods.
296
+ __Around Filters__ – Inside of an around filter, if you wish to halt
297
+ request processing and return, simply do not `yield` the block. Since the
298
+ filter is implemented as an instance method, you can use `rpc_failed`
299
+ or `respond_with` just like you can in the endpoint methods.
227
300
 
228
- __Before Filters__ – Returning `false` from a before filter will cancel any other filter calls which would run afterwards, as well as canceling invocation of the service method. Note: You must actually return false, not just a "falsey" value such as nil.
301
+ __Before Filters__ – Returning `false` from a before filter will cancel
302
+ any other filter calls which would run afterwards, as well as canceling
303
+ invocation of the service method. Note: You must actually return false,
304
+ not just a "falsey" value such as nil.
229
305
 
230
- __After Filters__ – There is no request shortcutting since the after filter runs after the request. Duh.
306
+ __After Filters__ – There is no request shortcutting since the after
307
+ filter runs after the request. Duh.
231
308
 
232
309
  #### Filter options
233
310
 
234
- The following options can be applied to any of the filters as the final argument in the filter configuration. (See example above).
311
+ The following options can be applied to any of the filters as the final
312
+ argument in the filter configuration. (See example above).
235
313
 
236
- __:if__ – The object supplied to `:if` can either be a symbol/string indicating the instance method to call, or, an object that responds to `call`. The method or callable should return true or false indicating if the filter should be invoked or not. Akin to the `if` keyword.
314
+ __:if__ – The object supplied to `:if` can either be a symbol/string
315
+ indicating the instance method to call, or, an object that responds to `call`.
316
+ The method or callable should return true or false indicating if the
317
+ filter should be invoked or not. Akin to the `if` keyword.
237
318
 
238
- __:unless__ – The opposite of the `:if` option is `:unless`. Accepts the same object types. The method or callable should return true or false indicating if the filter should be invoked or not. Akin to the `unless` keyword.
319
+ __:unless__ – The opposite of the `:if` option is `:unless`. Accepts
320
+ the same object types. The method or callable should return true or
321
+ false indicating if the filter should be invoked or not. Akin to the
322
+ `unless` keyword.
239
323
 
240
- __:only__ – A string/symbol or Array of strings/symbols values that reference instance methods. The names of these methods should be the rpc method you wish to invoke the filter for. Methods not identified in this list would not have the filter applied.
324
+ __:only__ – A string/symbol or Array of strings/symbols values that
325
+ reference instance methods. The names of these methods should be the
326
+ rpc method you wish to invoke the filter for. Methods not identified
327
+ in this list would not have the filter applied.
241
328
 
242
- __:except__ – The opposite of the `:only` option. A string/symbol or Array of strings/symbols values that reference instance methods. The names of these methods should be the rpc method you wish to skip invokation of the given filter. Methods not identified in this list would have the filter applied.
329
+ __:except__ – The opposite of the `:only` option. A string/symbol or
330
+ Array of strings/symbols values that reference instance methods. The
331
+ names of these methods should be the rpc method you wish to skip
332
+ invokation of the given filter. Methods not identified in this list
333
+ would have the filter applied.
243
334
 
244
335
  ### Servers
245
336
 
246
- A service is nothing without being hooked up to a socket. It's the nerdy kid waiting by the telephone for someone to call without knowing that the phone company disconnected their house. Sad and pathetic. So hook up the phone lines!
337
+ A service is nothing without being hooked up to a socket. It's the
338
+ nerdy kid waiting by the telephone for someone to call without knowing
339
+ that the phone company disconnected their house. Sad and pathetic.
340
+ So hook up the phone lines!
247
341
 
248
342
  ```
249
343
  $ rpc_server -o myserver.com -p 9939 -l ./log/protobuf.log ./config/environment.rb
250
344
  ```
251
345
 
252
- The previous call will start a Socket server running on the given host and port which will load your application into memory. You certainly don't have to run rails or any other framework, just make sure you have some kind of file that will load your services all into memory. The server doesn't know where you put your code, so tell it.
253
-
254
- Be aware that the server needs to be able to translate the socket stream of bytes into an actual protobuf request object. If the definition for that request object aren't known to the server, you're going to have a long day getting this going. It's necessary to store all your definitions and their generated classes in a shared repository (read: gem) so that both client and server have access to the ruby classes in their respective load paths.
255
-
256
- Once the server starts, you should see it as a running process with `ps`. Sending a KILL, QUIT, or TERM signal to the pid will result in shutting the server down gracefully.
346
+ The previous call will start a Socket server running on the given
347
+ host and port which will load your application into memory. You
348
+ certainly don't have to run rails or any other framework, just
349
+ make sure you have some kind of file that will load your services
350
+ all into memory. The server doesn't know where you put your code,
351
+ so tell it.
352
+
353
+ Be aware that the server needs to be able to translate the socket
354
+ stream of bytes into an actual protobuf request object. If the
355
+ definition for that request object aren't known to the server,
356
+ you're going to have a long day getting this going. It's necessary
357
+ to store all your definitions and their generated classes in a
358
+ shared repository (read: gem) so that both client and server have
359
+ access to the ruby classes in their respective load paths.
360
+
361
+ Once the server starts, you should see it as a running process
362
+ with `ps`. Sending a KILL, QUIT, or TERM signal to the pid will
363
+ result in shutting the server down gracefully.
257
364
 
258
365
  ```
259
366
  $ ps aux | grep rpc_server
@@ -265,7 +372,8 @@ rpc_server shutdown
265
372
 
266
373
  ### Clients
267
374
 
268
- A lot of work has gone into making the client calls simple and easy to use yet still powerful. Clients have a DSL that feels very ajaxy.
375
+ A lot of work has gone into making the client calls simple and easy
376
+ to use yet still powerful. Clients have a DSL that feels very ajaxy.
269
377
 
270
378
  ```ruby
271
379
  # require the defs from the shared gem/repo
@@ -303,17 +411,33 @@ Foo::UserService.client.find(req) do |c|
303
411
  end
304
412
  ```
305
413
 
306
- Many different options can be passed to the `.client` call above (such as `:timeout => 600`). See the `lib/protobuf/rpc/client.rb` and `lib/protobuf/rpc/service.rb` files for more documentation.
414
+ Many different options can be passed to the `.client` call above
415
+ (such as `:timeout => 600`). See the `lib/protobuf/rpc/client.rb`
416
+ and `lib/protobuf/rpc/service.rb` files for more documentation.
307
417
 
308
418
  ## 3. RPC Interop
309
419
 
310
- The main reason I wrote this gem was to provide a ruby implementation to google's protobuf that worked on the RPC layer with a Java Service layer that was already running [protobuf-socket-rpc][], the supported socket rpc library for protobuf from Google. Other ruby protobuf implementations I've used did not provide this kind of support.
420
+ The main reason I wrote this gem was to provide a ruby implementation
421
+ to google's protobuf that worked on the RPC layer with a Java Service
422
+ layer that was already running [protobuf-socket-rpc][], the supported
423
+ socket rpc library for protobuf from Google. Other ruby protobuf
424
+ implementations I've used did not provide this kind of support.
311
425
 
312
426
  ## Accreditation & Caveats
313
427
 
314
- It must be noted that this gem was started originally as a fork of the [ruby-protobuf][old gem] gem. Its authors and I were unable to reach a communication point to be able to merge all of my RPC updates in with their master. Unfortunately I just simply couldn't use their RPC code and so I forked the code. Myself and others have significantly changed the internals of the gem, including the rpc implementation, the message/field implementation, and the compiler implementation. These changes were made to address glaring performance and quality issues in the code. The code was initially diverged at their 0.4.0 version.
315
-
316
- It should also be noted that there are many more features I haven't really shown here, so please let me know if you have any questions on usage or support for various features. Happy protobufing.
428
+ It must be noted that this gem was started originally as a fork of
429
+ the [ruby-protobuf][old gem] gem. Its authors and I were unable to
430
+ reach a communication point to be able to merge all of my RPC updates
431
+ in with their master. Unfortunately I just simply couldn't use their
432
+ RPC code and so I forked the code. Myself and others have significantly
433
+ changed the internals of the gem, including the rpc implementation, the
434
+ message/field implementation, and the compiler implementation. These
435
+ changes were made to address glaring performance and quality issues
436
+ in the code. The code was initially diverged at their 0.4.0 version.
437
+
438
+ It should also be noted that there are many more features I haven't
439
+ really shown here, so please let me know if you have any questions
440
+ on usage or support for various features. Happy protobufing.
317
441
 
318
442
  -- BJ Neilsen, [@localshred][]
319
443
 
@@ -1,8 +1,7 @@
1
1
  unless defined?(JRUBY_VERSION)
2
2
  begin
3
3
  require 'mkmf'
4
-
5
- include_directory = File.expand_path(File.join(File.dirname(__FILE__), "..", "protobuf-2.4.1", "src"))
4
+ include_directory = File.expand_path(ENV['PROTOC_SRC'] || File.join(File.dirname(__FILE__), "..", "protobuf-2.4.1", "src"))
6
5
 
7
6
  $CPPFLAGS << " -I#{include_directory}"
8
7
  $CPPFLAGS << " -Wall "
@@ -33,7 +33,7 @@ module Protobuf
33
33
  end
34
34
 
35
35
  def self.name_by_value(value)
36
- value.nil? ? nil : @names[value]
36
+ (!value.nil? && value.respond_to?(:to_i)) ? @names[value.to_i] : nil
37
37
  end
38
38
 
39
39
  def self.valid_tag?(tag)
@@ -1,4 +1,4 @@
1
1
  module Protobuf
2
- VERSION = '2.6.4'
2
+ VERSION = '2.6.5'
3
3
  PROTOC_VERSION = '2.4.1'
4
4
  end
@@ -53,6 +53,10 @@ describe Protobuf::Enum do
53
53
  end
54
54
 
55
55
  describe '.name_by_value' do
56
+ it 'get the name by value of the enum given the enum' do
57
+ Test::EnumTestType.name_by_value(::Test::EnumTestType::THREE).should eq name
58
+ end
59
+
56
60
  it 'gets the name of the enum corresponding to the given value (tag)' do
57
61
  Test::EnumTestType.name_by_value(tag).should eq name
58
62
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: protobuf
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 2.6.4
5
+ version: 2.6.5
6
6
  platform: java
7
7
  authors:
8
8
  - BJ Neilsen
@@ -10,149 +10,240 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-01-28 00:00:00.000000000Z
13
+ date: 2013-02-09 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
17
- version_requirements: &5666 !ruby/object:Gem::Requirement
17
+ version_requirements: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - ! '>='
19
+ - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: '0'
21
+ version: !binary |-
22
+ MA==
23
+ none: false
24
+ requirement: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ version: !binary |-
29
+ MA==
22
30
  none: false
23
- requirement: *5666
24
31
  prerelease: false
25
32
  type: :runtime
26
33
  - !ruby/object:Gem::Dependency
27
34
  name: ffi
28
- version_requirements: &5684 !ruby/object:Gem::Requirement
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: !binary |-
40
+ MA==
41
+ none: false
42
+ requirement: !ruby/object:Gem::Requirement
29
43
  requirements:
30
- - - ! '>='
44
+ - - ">="
31
45
  - !ruby/object:Gem::Version
32
- version: '0'
46
+ version: !binary |-
47
+ MA==
33
48
  none: false
34
- requirement: *5684
35
49
  prerelease: false
36
50
  type: :runtime
37
51
  - !ruby/object:Gem::Dependency
38
52
  name: multi_json
39
- version_requirements: &5700 !ruby/object:Gem::Requirement
53
+ version_requirements: !ruby/object:Gem::Requirement
40
54
  requirements:
41
- - - ! '>='
55
+ - - ">="
42
56
  - !ruby/object:Gem::Version
43
- version: '0'
57
+ version: !binary |-
58
+ MA==
59
+ none: false
60
+ requirement: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: !binary |-
65
+ MA==
44
66
  none: false
45
- requirement: *5700
46
67
  prerelease: false
47
68
  type: :runtime
48
69
  - !ruby/object:Gem::Dependency
49
70
  name: thor
50
- version_requirements: &5716 !ruby/object:Gem::Requirement
71
+ version_requirements: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: !binary |-
76
+ MA==
77
+ none: false
78
+ requirement: !ruby/object:Gem::Requirement
51
79
  requirements:
52
- - - ! '>='
80
+ - - ">="
53
81
  - !ruby/object:Gem::Version
54
- version: '0'
82
+ version: !binary |-
83
+ MA==
55
84
  none: false
56
- requirement: *5716
57
85
  prerelease: false
58
86
  type: :runtime
59
87
  - !ruby/object:Gem::Dependency
60
88
  name: eventmachine
61
- version_requirements: &5732 !ruby/object:Gem::Requirement
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: !binary |-
94
+ MA==
95
+ none: false
96
+ requirement: !ruby/object:Gem::Requirement
62
97
  requirements:
63
- - - ! '>='
98
+ - - ">="
64
99
  - !ruby/object:Gem::Version
65
- version: '0'
100
+ version: !binary |-
101
+ MA==
66
102
  none: false
67
- requirement: *5732
68
103
  prerelease: false
69
104
  type: :development
70
105
  - !ruby/object:Gem::Dependency
71
106
  name: ffi-rzmq
72
- version_requirements: &5750 !ruby/object:Gem::Requirement
107
+ version_requirements: !ruby/object:Gem::Requirement
73
108
  requirements:
74
- - - ! '>='
109
+ - - ">="
75
110
  - !ruby/object:Gem::Version
76
- version: '0'
111
+ version: !binary |-
112
+ MA==
113
+ none: false
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: !binary |-
119
+ MA==
77
120
  none: false
78
- requirement: *5750
79
121
  prerelease: false
80
122
  type: :development
81
123
  - !ruby/object:Gem::Dependency
82
124
  name: pry
83
- version_requirements: &5766 !ruby/object:Gem::Requirement
125
+ version_requirements: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ version: !binary |-
130
+ MA==
131
+ none: false
132
+ requirement: !ruby/object:Gem::Requirement
84
133
  requirements:
85
- - - ! '>='
134
+ - - ">="
86
135
  - !ruby/object:Gem::Version
87
- version: '0'
136
+ version: !binary |-
137
+ MA==
88
138
  none: false
89
- requirement: *5766
90
139
  prerelease: false
91
140
  type: :development
92
141
  - !ruby/object:Gem::Dependency
93
142
  name: pry-nav
94
- version_requirements: &5782 !ruby/object:Gem::Requirement
143
+ version_requirements: !ruby/object:Gem::Requirement
95
144
  requirements:
96
- - - ! '>='
145
+ - - ">="
97
146
  - !ruby/object:Gem::Version
98
- version: '0'
147
+ version: !binary |-
148
+ MA==
149
+ none: false
150
+ requirement: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: !binary |-
155
+ MA==
99
156
  none: false
100
- requirement: *5782
101
157
  prerelease: false
102
158
  type: :development
103
159
  - !ruby/object:Gem::Dependency
104
160
  name: rake
105
- version_requirements: &5798 !ruby/object:Gem::Requirement
161
+ version_requirements: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ version: !binary |-
166
+ MA==
167
+ none: false
168
+ requirement: !ruby/object:Gem::Requirement
106
169
  requirements:
107
- - - ! '>='
170
+ - - ">="
108
171
  - !ruby/object:Gem::Version
109
- version: '0'
172
+ version: !binary |-
173
+ MA==
110
174
  none: false
111
- requirement: *5798
112
175
  prerelease: false
113
176
  type: :development
114
177
  - !ruby/object:Gem::Dependency
115
178
  name: rake-compiler
116
- version_requirements: &5814 !ruby/object:Gem::Requirement
179
+ version_requirements: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - ">="
182
+ - !ruby/object:Gem::Version
183
+ version: !binary |-
184
+ MA==
185
+ none: false
186
+ requirement: !ruby/object:Gem::Requirement
117
187
  requirements:
118
- - - ! '>='
188
+ - - ">="
119
189
  - !ruby/object:Gem::Version
120
- version: '0'
190
+ version: !binary |-
191
+ MA==
121
192
  none: false
122
- requirement: *5814
123
193
  prerelease: false
124
194
  type: :development
125
195
  - !ruby/object:Gem::Dependency
126
196
  name: rspec
127
- version_requirements: &5830 !ruby/object:Gem::Requirement
197
+ version_requirements: !ruby/object:Gem::Requirement
128
198
  requirements:
129
- - - ! '>='
199
+ - - ">="
130
200
  - !ruby/object:Gem::Version
131
- version: '0'
201
+ version: !binary |-
202
+ MA==
203
+ none: false
204
+ requirement: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: !binary |-
209
+ MA==
132
210
  none: false
133
- requirement: *5830
134
211
  prerelease: false
135
212
  type: :development
136
213
  - !ruby/object:Gem::Dependency
137
214
  name: simplecov
138
- version_requirements: &5846 !ruby/object:Gem::Requirement
215
+ version_requirements: !ruby/object:Gem::Requirement
216
+ requirements:
217
+ - - ">="
218
+ - !ruby/object:Gem::Version
219
+ version: !binary |-
220
+ MA==
221
+ none: false
222
+ requirement: !ruby/object:Gem::Requirement
139
223
  requirements:
140
- - - ! '>='
224
+ - - ">="
141
225
  - !ruby/object:Gem::Version
142
- version: '0'
226
+ version: !binary |-
227
+ MA==
143
228
  none: false
144
- requirement: *5846
145
229
  prerelease: false
146
230
  type: :development
147
231
  - !ruby/object:Gem::Dependency
148
232
  name: yard
149
- version_requirements: &5862 !ruby/object:Gem::Requirement
233
+ version_requirements: !ruby/object:Gem::Requirement
150
234
  requirements:
151
- - - ! '>='
235
+ - - ">="
152
236
  - !ruby/object:Gem::Version
153
- version: '0'
237
+ version: !binary |-
238
+ MA==
239
+ none: false
240
+ requirement: !ruby/object:Gem::Requirement
241
+ requirements:
242
+ - - ">="
243
+ - !ruby/object:Gem::Version
244
+ version: !binary |-
245
+ MA==
154
246
  none: false
155
- requirement: *5862
156
247
  prerelease: false
157
248
  type: :development
158
249
  description: Google Protocol Buffers v2.4.1 Serialization and RPC implementation for Ruby.
@@ -165,9 +256,9 @@ executables:
165
256
  extensions: []
166
257
  extra_rdoc_files: []
167
258
  files:
168
- - .gitignore
169
- - .travis.yml
170
- - .yardopts
259
+ - ".gitignore"
260
+ - ".travis.yml"
261
+ - ".yardopts"
171
262
  - Gemfile
172
263
  - README.md
173
264
  - Rakefile
@@ -426,109 +517,29 @@ require_paths:
426
517
  - lib
427
518
  required_ruby_version: !ruby/object:Gem::Requirement
428
519
  requirements:
429
- - - ! '>='
520
+ - - ">="
430
521
  - !ruby/object:Gem::Version
431
522
  segments:
432
523
  - 0
433
524
  hash: 2
434
- version: '0'
525
+ version: !binary |-
526
+ MA==
435
527
  none: false
436
528
  required_rubygems_version: !ruby/object:Gem::Requirement
437
529
  requirements:
438
- - - ! '>='
530
+ - - ">="
439
531
  - !ruby/object:Gem::Version
440
532
  segments:
441
533
  - 0
442
534
  hash: 2
443
- version: '0'
535
+ version: !binary |-
536
+ MA==
444
537
  none: false
445
538
  requirements: []
446
539
  rubyforge_project:
447
- rubygems_version: 1.8.15
540
+ rubygems_version: 1.8.24
448
541
  signing_key:
449
542
  specification_version: 3
450
543
  summary: Google Protocol Buffers v2.4.1 Serialization and RPC implementation for Ruby.
451
- test_files:
452
- - spec/benchmark/tasks.rb
453
- - spec/functional/embedded_service_spec.rb
454
- - spec/functional/evented_server_spec.rb
455
- - spec/functional/socket_server_spec.rb
456
- - spec/functional/zmq_server_spec.rb
457
- - spec/lib/protobuf/cli_spec.rb
458
- - spec/lib/protobuf/enum_spec.rb
459
- - spec/lib/protobuf/enum_value_spec.rb
460
- - spec/lib/protobuf/field/int32_field_spec.rb
461
- - spec/lib/protobuf/logger_spec.rb
462
- - spec/lib/protobuf/message_spec.rb
463
- - spec/lib/protobuf/rpc/client_spec.rb
464
- - spec/lib/protobuf/rpc/connector_spec.rb
465
- - spec/lib/protobuf/rpc/connectors/base_spec.rb
466
- - spec/lib/protobuf/rpc/connectors/common_spec.rb
467
- - spec/lib/protobuf/rpc/connectors/socket_spec.rb
468
- - spec/lib/protobuf/rpc/connectors/zmq_spec.rb
469
- - spec/lib/protobuf/rpc/servers/evented_server_spec.rb
470
- - spec/lib/protobuf/rpc/servers/socket_server_spec.rb
471
- - spec/lib/protobuf/rpc/servers/zmq/broker_spec.rb
472
- - spec/lib/protobuf/rpc/servers/zmq/server_spec.rb
473
- - spec/lib/protobuf/rpc/servers/zmq/util_spec.rb
474
- - spec/lib/protobuf/rpc/servers/zmq/worker_spec.rb
475
- - spec/lib/protobuf/rpc/service_dispatcher_spec.rb
476
- - spec/lib/protobuf/rpc/service_filters_spec.rb
477
- - spec/lib/protobuf/rpc/service_spec.rb
478
- - spec/lib/protobuf_spec.rb
479
- - spec/spec_helper.rb
480
- - spec/support/all.rb
481
- - spec/support/packed_field.rb
482
- - spec/support/server.rb
483
- - spec/support/test/enum.pb.rb
484
- - spec/support/test/enum.proto
485
- - spec/support/test/resource.pb.rb
486
- - spec/support/test/resource.proto
487
- - spec/support/test/resource_service.rb
488
- - spec/support/test_app_file.rb
489
- - spec/support/tolerance_matcher.rb
490
- - test/data/data.bin
491
- - test/data/data_source.py
492
- - test/data/types.bin
493
- - test/data/types_source.py
494
- - test/data/unk.png
495
- - test/proto/addressbook.pb.rb
496
- - test/proto/addressbook.proto
497
- - test/proto/addressbook_base.pb.rb
498
- - test/proto/addressbook_base.proto
499
- - test/proto/addressbook_ext.pb.rb
500
- - test/proto/addressbook_ext.proto
501
- - test/proto/collision.pb.rb
502
- - test/proto/collision.proto
503
- - test/proto/ext_collision.pb.rb
504
- - test/proto/ext_collision.proto
505
- - test/proto/ext_range.pb.rb
506
- - test/proto/ext_range.proto
507
- - test/proto/float_default.proto
508
- - test/proto/lowercase.pb.rb
509
- - test/proto/lowercase.proto
510
- - test/proto/merge.pb.rb
511
- - test/proto/merge.proto
512
- - test/proto/nested.pb.rb
513
- - test/proto/nested.proto
514
- - test/proto/optional_field.pb.rb
515
- - test/proto/optional_field.proto
516
- - test/proto/packed.pb.rb
517
- - test/proto/packed.proto
518
- - test/proto/rpc.proto
519
- - test/proto/types.pb.rb
520
- - test/proto/types.proto
521
- - test/test_addressbook.rb
522
- - test/test_enum_value.rb
523
- - test/test_extension.rb
524
- - test/test_lowercase.rb
525
- - test/test_message.rb
526
- - test/test_optional_field.rb
527
- - test/test_packed_field.rb
528
- - test/test_parse.rb
529
- - test/test_repeated_types.rb
530
- - test/test_serialize.rb
531
- - test/test_standard_message.rb
532
- - test/test_types.rb
544
+ test_files: []
533
545
  has_rdoc:
534
- ...