protobuf 1.4.0 → 1.4.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -12,6 +12,7 @@ require 'protobuf/rpc/servers/zmq_runner'
12
12
  server = OpenStruct.new({
13
13
  :app => nil,
14
14
  :env => ENV['RPC_SERVER_ENV'] || 'development',
15
+ :pre_cache_definitions => false,
15
16
  :gc_pause_during_request => false,
16
17
  :gc_pause_during_serialization => false,
17
18
  :host => '127.0.0.1',
@@ -79,6 +80,10 @@ parser = OptionParser.new do |opts|
79
80
  server.runner = ::Protobuf::Rpc::ZmqRunner
80
81
  end
81
82
 
83
+ opts.on("--[no-]pre-cache-definitions", "Enable/Disable Message class pre-caching") do |v|
84
+ server.pre_cache_definitions = v
85
+ end
86
+
82
87
  opts.on("--[no-]gc-pause-request", "Enable/Disable GC pause during request.") do |v|
83
88
  server.gc_pause_during_request = v
84
89
  end
@@ -170,6 +175,7 @@ begin
170
175
  # Require the given application file
171
176
  require server.app
172
177
 
178
+ ::Protobuf::Message.pre_cache_class_definitions if server.pre_cache_definitions
173
179
  server.runner.run(server)
174
180
  rescue
175
181
  msg = 'ERROR: RPC Server failed to start. %s' % $!.inspect
@@ -1,3 +1,4 @@
1
+ require 'set'
1
2
  require 'protobuf/descriptor/descriptor'
2
3
  require 'protobuf/message/decoder'
3
4
  require 'protobuf/message/encoder'
@@ -25,6 +26,18 @@ module Protobuf
25
26
  end
26
27
  end
27
28
 
29
+ def self.inherited(klass)
30
+ @_children ||= Set.new
31
+ @_children << klass
32
+ end
33
+
34
+ def self.pre_cache_class_definitions
35
+ @_children ||= Set.new
36
+ @_children.each do |child_class|
37
+ child_class.new
38
+ end
39
+ end
40
+
28
41
  class << self
29
42
  include Protoable
30
43
 
@@ -1,3 +1,3 @@
1
1
  module Protobuf
2
- VERSION = '1.4.0'
2
+ VERSION = '1.4.1'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: protobuf
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.4.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-09-18 00:00:00.000000000Z
13
+ date: 2012-09-19 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: eventmachine
17
- requirement: &2161594760 !ruby/object:Gem::Requirement
17
+ requirement: &2161070980 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2161594760
25
+ version_requirements: *2161070980
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: eventually
28
- requirement: &2161594340 !ruby/object:Gem::Requirement
28
+ requirement: &2161070560 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *2161594340
36
+ version_requirements: *2161070560
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: json_pure
39
- requirement: &2161593920 !ruby/object:Gem::Requirement
39
+ requirement: &2161070140 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: '0'
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *2161593920
47
+ version_requirements: *2161070140
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: ffi-rzmq
50
- requirement: &2161593500 !ruby/object:Gem::Requirement
50
+ requirement: &2161069720 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: '0'
56
56
  type: :runtime
57
57
  prerelease: false
58
- version_requirements: *2161593500
58
+ version_requirements: *2161069720
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: rake
61
- requirement: &2161593080 !ruby/object:Gem::Requirement
61
+ requirement: &2161069300 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ! '>='
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: '0'
67
67
  type: :development
68
68
  prerelease: false
69
- version_requirements: *2161593080
69
+ version_requirements: *2161069300
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: pry
72
- requirement: &2161592660 !ruby/object:Gem::Requirement
72
+ requirement: &2161068880 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ! '>='
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: '0'
78
78
  type: :development
79
79
  prerelease: false
80
- version_requirements: *2161592660
80
+ version_requirements: *2161068880
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: pry-nav
83
- requirement: &2161592240 !ruby/object:Gem::Requirement
83
+ requirement: &2161068460 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ! '>='
@@ -88,10 +88,10 @@ dependencies:
88
88
  version: '0'
89
89
  type: :development
90
90
  prerelease: false
91
- version_requirements: *2161592240
91
+ version_requirements: *2161068460
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: rspec
94
- requirement: &2161591820 !ruby/object:Gem::Requirement
94
+ requirement: &2161068040 !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements:
97
97
  - - ! '>='
@@ -99,10 +99,10 @@ dependencies:
99
99
  version: '0'
100
100
  type: :development
101
101
  prerelease: false
102
- version_requirements: *2161591820
102
+ version_requirements: *2161068040
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: yard
105
- requirement: &2161591400 !ruby/object:Gem::Requirement
105
+ requirement: &2161067620 !ruby/object:Gem::Requirement
106
106
  none: false
107
107
  requirements:
108
108
  - - ! '>='
@@ -110,10 +110,10 @@ dependencies:
110
110
  version: '0'
111
111
  type: :development
112
112
  prerelease: false
113
- version_requirements: *2161591400
113
+ version_requirements: *2161067620
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: simplecov
116
- requirement: &2161590980 !ruby/object:Gem::Requirement
116
+ requirement: &2161067200 !ruby/object:Gem::Requirement
117
117
  none: false
118
118
  requirements:
119
119
  - - ! '>='
@@ -121,7 +121,7 @@ dependencies:
121
121
  version: '0'
122
122
  type: :development
123
123
  prerelease: false
124
- version_requirements: *2161590980
124
+ version_requirements: *2161067200
125
125
  description: ! 'Ruby implementation for Protocol Buffers. Works with other protobuf
126
126
  rpc implementations (e.g. Java, Python, C++).
127
127