celluloid-zmq 0.10.0 → 0.12.0
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/CHANGES.md +4 -0
- data/README.md +1 -1
- data/celluloid-zmq.gemspec +2 -2
- data/lib/celluloid/zmq.rb +6 -4
- data/lib/celluloid/zmq/sockets.rb +20 -6
- data/lib/celluloid/zmq/version.rb +1 -1
- metadata +19 -17
data/CHANGES.md
CHANGED
data/README.md
CHANGED
data/celluloid-zmq.gemspec
CHANGED
@@ -11,8 +11,8 @@ Gem::Specification.new do |gem|
|
|
11
11
|
gem.name = "celluloid-zmq"
|
12
12
|
gem.version = Celluloid::ZMQ::VERSION
|
13
13
|
|
14
|
-
gem.add_dependency "celluloid", "~> 0.
|
15
|
-
gem.add_dependency "celluloid-io", "~> 0.
|
14
|
+
gem.add_dependency "celluloid", "~> 0.12.0"
|
15
|
+
gem.add_dependency "celluloid-io", "~> 0.12.0"
|
16
16
|
gem.add_dependency "ffi"
|
17
17
|
gem.add_dependency "ffi-rzmq"
|
18
18
|
|
data/lib/celluloid/zmq.rb
CHANGED
@@ -19,13 +19,15 @@ module Celluloid
|
|
19
19
|
end
|
20
20
|
|
21
21
|
# Obtain a 0MQ context (or lazily initialize it)
|
22
|
-
def context(
|
22
|
+
def context(worker_threads = 1)
|
23
23
|
return @context if @context
|
24
|
-
@context = ::ZMQ::Context.new(
|
25
|
-
at_exit { @context.terminate }
|
26
|
-
@context
|
24
|
+
@context = ::ZMQ::Context.new(worker_threads)
|
27
25
|
end
|
28
26
|
alias_method :init, :context
|
27
|
+
|
28
|
+
def terminate
|
29
|
+
@context.terminate
|
30
|
+
end
|
29
31
|
end
|
30
32
|
|
31
33
|
extend Forwardable
|
@@ -1,13 +1,12 @@
|
|
1
1
|
module Celluloid
|
2
2
|
module ZMQ
|
3
|
-
attr_reader :linger
|
4
|
-
|
5
3
|
class Socket
|
6
4
|
# Create a new socket
|
7
5
|
def initialize(type)
|
8
6
|
@socket = Celluloid::ZMQ.context.socket ::ZMQ.const_get(type.to_s.upcase)
|
9
7
|
@linger = 0
|
10
8
|
end
|
9
|
+
attr_reader :linger
|
11
10
|
|
12
11
|
# Connect to the given 0MQ address
|
13
12
|
# Address should be in the form: tcp://1.2.3.4:5678/
|
@@ -79,19 +78,21 @@ module Celluloid
|
|
79
78
|
# Writable 0MQ sockets have a send method
|
80
79
|
module WritableSocket
|
81
80
|
# Send a message to the socket
|
82
|
-
def
|
83
|
-
unless ::ZMQ::Util.resultcode_ok? @socket.
|
81
|
+
def write(*messages)
|
82
|
+
unless ::ZMQ::Util.resultcode_ok? @socket.send_strings messages.flatten
|
84
83
|
raise IOError, "error sending 0MQ message: #{::ZMQ::Util.error_string}"
|
85
84
|
end
|
86
85
|
|
87
|
-
|
86
|
+
messages
|
88
87
|
end
|
89
|
-
alias_method :<<, :
|
88
|
+
alias_method :<<, :write
|
89
|
+
alias_method :send, :write # deprecated
|
90
90
|
end
|
91
91
|
|
92
92
|
# ReqSockets are the counterpart of RepSockets (REQ/REP)
|
93
93
|
class ReqSocket < Socket
|
94
94
|
include ReadableSocket
|
95
|
+
include WritableSocket
|
95
96
|
|
96
97
|
def initialize
|
97
98
|
super :req
|
@@ -100,6 +101,7 @@ module Celluloid
|
|
100
101
|
|
101
102
|
# RepSockets are the counterpart of ReqSockets (REQ/REP)
|
102
103
|
class RepSocket < Socket
|
104
|
+
include ReadableSocket
|
103
105
|
include WritableSocket
|
104
106
|
|
105
107
|
def initialize
|
@@ -141,6 +143,18 @@ module Celluloid
|
|
141
143
|
def initialize
|
142
144
|
super :sub
|
143
145
|
end
|
146
|
+
|
147
|
+
def subscribe(topic)
|
148
|
+
unless ::ZMQ::Util.resultcode_ok? @socket.setsockopt(::ZMQ::SUBSCRIBE, topic)
|
149
|
+
raise IOError, "couldn't set subscribe: #{::ZMQ::Util.error_string}"
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
def unsubscribe(topic)
|
154
|
+
unless ::ZMQ::Util.resultcode_ok? @socket.setsockopt(::ZMQ::UNSUBSCRIBE, topic)
|
155
|
+
raise IOError, "couldn't set unsubscribe: #{::ZMQ::Util.error_string}"
|
156
|
+
end
|
157
|
+
end
|
144
158
|
end
|
145
159
|
end
|
146
160
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: celluloid-zmq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,33 +9,33 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-04
|
12
|
+
date: 2012-09-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: celluloid
|
16
|
-
requirement: &
|
16
|
+
requirement: &70254147601380 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.
|
21
|
+
version: 0.12.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70254147601380
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: celluloid-io
|
27
|
-
requirement: &
|
27
|
+
requirement: &70254147600120 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 0.
|
32
|
+
version: 0.12.0
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70254147600120
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: ffi
|
38
|
-
requirement: &
|
38
|
+
requirement: &70254147599660 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70254147599660
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: ffi-rzmq
|
49
|
-
requirement: &
|
49
|
+
requirement: &70254147598820 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70254147598820
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rake
|
60
|
-
requirement: &
|
60
|
+
requirement: &70254147597640 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70254147597640
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
|
-
requirement: &
|
71
|
+
requirement: &70254147596600 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70254147596600
|
80
80
|
description: Celluloid bindings to the ffi-rzmq library
|
81
81
|
email:
|
82
82
|
- tony.arcieri@gmail.com
|
@@ -93,6 +93,7 @@ files:
|
|
93
93
|
- lib/celluloid/zmq/waker.rb
|
94
94
|
- lib/celluloid/zmq.rb
|
95
95
|
- logo.png
|
96
|
+
- pkg/celluloid-zmq-0.10.0.gem
|
96
97
|
- Rakefile
|
97
98
|
- README.md
|
98
99
|
- spec/celluloid/zmq/actor_spec.rb
|
@@ -118,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
118
119
|
version: '0'
|
119
120
|
requirements: []
|
120
121
|
rubyforge_project:
|
121
|
-
rubygems_version: 1.8.
|
122
|
+
rubygems_version: 1.8.10
|
122
123
|
signing_key:
|
123
124
|
specification_version: 3
|
124
125
|
summary: Celluloid::ZMQ provides concurrent Celluloid actors that can listen for 0MQ
|
@@ -127,3 +128,4 @@ test_files:
|
|
127
128
|
- spec/celluloid/zmq/actor_spec.rb
|
128
129
|
- spec/spec_helper.rb
|
129
130
|
- .gitignore
|
131
|
+
has_rdoc:
|