ffi-rzmq 0.9.3 → 0.9.6

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/spec/socket_spec.rb CHANGED
@@ -5,6 +5,7 @@ module ZMQ
5
5
 
6
6
 
7
7
  describe Socket do
8
+ include APIHelper
8
9
 
9
10
  socket_types = if LibZMQ.version2?
10
11
  [ZMQ::REQ, ZMQ::REP, ZMQ::DEALER, ZMQ::ROUTER, ZMQ::PUB, ZMQ::SUB, ZMQ::PUSH, ZMQ::PULL, ZMQ::PAIR]
@@ -78,54 +79,52 @@ module ZMQ
78
79
  end # context calling close
79
80
 
80
81
 
81
- if version2? || version3?
82
82
 
83
- context "identity=" do
84
- before(:all) { @ctx = Context.new }
85
- after(:all) { @ctx.terminate }
83
+ context "identity=" do
84
+ before(:all) { @ctx = Context.new }
85
+ after(:all) { @ctx.terminate }
86
86
 
87
- it "fails to set identity for identities in excess of 255 bytes" do
88
- sock = Socket.new @ctx.pointer, ZMQ::REQ
87
+ it "fails to set identity for identities in excess of 255 bytes" do
88
+ sock = Socket.new @ctx.pointer, ZMQ::REQ
89
89
 
90
- sock.identity = ('a' * 256)
91
- sock.identity.should == ''
92
- sock.close
93
- end
90
+ sock.identity = ('a' * 256)
91
+ sock.identity.should == ''
92
+ sock.close
93
+ end
94
94
 
95
- it "fails to set identity for identities of length 0" do
96
- sock = Socket.new @ctx.pointer, ZMQ::REQ
95
+ it "fails to set identity for identities of length 0" do
96
+ sock = Socket.new @ctx.pointer, ZMQ::REQ
97
97
 
98
- sock.identity = ''
99
- sock.identity.should == ''
100
- sock.close
101
- end
98
+ sock.identity = ''
99
+ sock.identity.should == ''
100
+ sock.close
101
+ end
102
102
 
103
- it "sets the identity for identities of 1 byte" do
104
- sock = Socket.new @ctx.pointer, ZMQ::REQ
103
+ it "sets the identity for identities of 1 byte" do
104
+ sock = Socket.new @ctx.pointer, ZMQ::REQ
105
105
 
106
- sock.identity = 'a'
107
- sock.identity.should == 'a'
108
- sock.close
109
- end
106
+ sock.identity = 'a'
107
+ sock.identity.should == 'a'
108
+ sock.close
109
+ end
110
110
 
111
- it "set the identity identities of 255 bytes" do
112
- sock = Socket.new @ctx.pointer, ZMQ::REQ
111
+ it "set the identity identities of 255 bytes" do
112
+ sock = Socket.new @ctx.pointer, ZMQ::REQ
113
113
 
114
- sock.identity = ('a' * 255)
115
- sock.identity.should == ('a' * 255)
116
- sock.close
117
- end
114
+ sock.identity = ('a' * 255)
115
+ sock.identity.should == ('a' * 255)
116
+ sock.close
117
+ end
118
118
 
119
- it "should convert numeric identities to strings" do
120
- sock = Socket.new @ctx.pointer, ZMQ::REQ
119
+ it "should convert numeric identities to strings" do
120
+ sock = Socket.new @ctx.pointer, ZMQ::REQ
121
121
 
122
- sock.identity = 7
123
- sock.identity.should == '7'
124
- sock.close
125
- end
126
- end # context identity=
122
+ sock.identity = 7
123
+ sock.identity.should == '7'
124
+ sock.close
125
+ end
126
+ end # context identity=
127
127
 
128
- end # version2? || version3?
129
128
 
130
129
 
131
130
  socket_types.each do |socket_type|
@@ -143,31 +142,27 @@ module ZMQ
143
142
  end
144
143
 
145
144
 
146
- if version2? || version3?
147
-
148
- context "using option ZMQ::IDENTITY" do
149
- it "should set the identity given any string under 255 characters" do
150
- length = 4
151
- (1..255).each do |length|
152
- identity = 'a' * length
153
- socket.setsockopt ZMQ::IDENTITY, identity
154
-
155
- array = []
156
- rc = socket.getsockopt(ZMQ::IDENTITY, array)
157
- rc.should == 0
158
- array[0].should == identity
159
- end
160
- end
145
+ context "using option ZMQ::IDENTITY" do
146
+ it "should set the identity given any string under 255 characters" do
147
+ length = 4
148
+ (1..255).each do |length|
149
+ identity = 'a' * length
150
+ socket.setsockopt ZMQ::IDENTITY, identity
161
151
 
162
- it "returns -1 given a string 256 characters or longer" do
163
- identity = 'a' * 256
164
152
  array = []
165
- rc = socket.setsockopt(ZMQ::IDENTITY, identity)
166
- rc.should == -1
153
+ rc = socket.getsockopt(ZMQ::IDENTITY, array)
154
+ rc.should == 0
155
+ array[0].should == identity
167
156
  end
168
- end # context using option ZMQ::IDENTITY
157
+ end
169
158
 
170
- end # version2? || version3?
159
+ it "returns -1 given a string 256 characters or longer" do
160
+ identity = 'a' * 256
161
+ array = []
162
+ rc = socket.setsockopt(ZMQ::IDENTITY, identity)
163
+ rc.should == -1
164
+ end
165
+ end # context using option ZMQ::IDENTITY
171
166
 
172
167
 
173
168
  if version2?
@@ -240,7 +235,41 @@ module ZMQ
240
235
  end
241
236
  end # context using option ZMQ::RECOVERY_IVL_MSEC
242
237
 
243
- end # version2?
238
+ else # version3 or higher
239
+
240
+ context "using option ZMQ::IPV4ONLY" do
241
+ it "should enable use of IPV6 sockets when set to 0" do
242
+ value = 0
243
+ socket.setsockopt ZMQ::IPV4ONLY, value
244
+ array = []
245
+ rc = socket.getsockopt(ZMQ::IPV4ONLY, array)
246
+ rc.should == 0
247
+ array[0].should == value
248
+ end
249
+
250
+ it "should default to a value of 1" do
251
+ value = 1
252
+ array = []
253
+ rc = socket.getsockopt(ZMQ::IPV4ONLY, array)
254
+ rc.should == 0
255
+ array[0].should == value
256
+ end
257
+
258
+ it "returns -1 given a negative value" do
259
+ value = -1
260
+ rc = socket.setsockopt ZMQ::IPV4ONLY, value
261
+ rc.should == -1
262
+ end
263
+
264
+ it "returns -1 given a value > 1" do
265
+ value = 2
266
+ rc = socket.setsockopt ZMQ::IPV4ONLY, value
267
+ rc.should == -1
268
+ end
269
+ end # context using option ZMQ::IPV4ONLY
270
+
271
+
272
+ end # version2? if/else block
244
273
 
245
274
 
246
275
  context "using option ZMQ::SUBSCRIBE" do
@@ -366,7 +395,7 @@ module ZMQ
366
395
  array[0].should == value
367
396
  end
368
397
 
369
- if ZMQ::SUB == socket_type || ZMQ::XSUB == socket_type
398
+ if (ZMQ::SUB == socket_type) && version3? || (defined?(ZMQ::XSUB) && ZMQ::XSUB == socket_type)
370
399
  it "should default to a value of 0" do
371
400
  value = 0
372
401
  array = []
@@ -424,6 +453,7 @@ module ZMQ
424
453
  array[0].should == value
425
454
  end
426
455
  end # context using option ZMQ::BACKLOG
456
+
427
457
  end # context #setsockopt
428
458
 
429
459
 
@@ -512,7 +542,7 @@ module ZMQ
512
542
 
513
543
  describe "Mapping socket EVENTS to POLLIN and POLLOUT" do
514
544
  include APIHelper
515
-
545
+
516
546
  shared_examples_for "pubsub sockets where" do
517
547
  it "SUB socket that received a message always has POLLIN set" do
518
548
  events = []
@@ -547,37 +577,40 @@ module ZMQ
547
577
 
548
578
  before(:each) do
549
579
  @ctx = Context.new
580
+ poller_setup
550
581
 
582
+ endpoint = "inproc://socket_test"
551
583
  @sub = @ctx.socket ZMQ::SUB
552
584
  rc = @sub.setsockopt ZMQ::SUBSCRIBE, ''
585
+ rc.should == 0
553
586
 
554
587
  @pub = @ctx.socket ZMQ::PUB
555
- port = bind_to_random_tcp_port(@sub)
556
- rc = @pub.connect "tcp://127.0.0.1:#{port}"
557
- sleep 0.5
588
+ @sub.bind(endpoint)
589
+ connect_to_inproc(@pub, endpoint)
558
590
 
559
- rc = @pub.send_string('test')
560
- sleep 0.2
591
+ @pub.send_string('test')
561
592
  end
562
593
 
563
- it_behaves_like "pubsub sockets where"
594
+ #it_behaves_like "pubsub sockets where" # see Jira LIBZMQ-270
564
595
  end # context SUB binds PUB connects
565
596
 
566
597
  context "when SUB connects and PUB binds" do
567
598
 
568
599
  before(:each) do
569
600
  @ctx = Context.new
601
+ poller_setup
570
602
 
603
+ endpoint = "inproc://socket_test"
571
604
  @sub = @ctx.socket ZMQ::SUB
572
605
  rc = @sub.setsockopt ZMQ::SUBSCRIBE, ''
573
606
 
574
607
  @pub = @ctx.socket ZMQ::PUB
575
- port = bind_to_random_tcp_port(@pub)
576
- rc = @sub.connect "tcp://127.0.0.1:#{port}"
577
- sleep 0.5
608
+ @pub.bind(endpoint)
609
+ connect_to_inproc(@sub, endpoint)
578
610
 
579
- rc = @pub.send_string('test')
580
- sleep 0.2
611
+ poll_it_for_read(@sub) do
612
+ rc = @pub.send_string('test')
613
+ end
581
614
  end
582
615
 
583
616
  it_behaves_like "pubsub sockets where"
data/spec/spec_helper.rb CHANGED
@@ -5,6 +5,7 @@
5
5
  require File.expand_path(
6
6
  File.join(File.dirname(__FILE__), %w[.. lib ffi-rzmq]))
7
7
 
8
+ require 'thread' # necessary when testing in MRI 1.8 mode
8
9
  Thread.abort_on_exception = true
9
10
 
10
11
  # define some version guards so we can turn on/off specs based upon
@@ -18,8 +19,19 @@ def version3?
18
19
  end
19
20
 
20
21
 
21
- NonBlockingFlag = (ZMQ::LibZMQ.version2? ? ZMQ::NOBLOCK : ZMQ::DONTWAIT) unless defined?(NonBlockingFlag)
22
+ SLEEP_SHORT = 0.1
23
+ SLEEP_LONG = 0.3
22
24
 
25
+ def delivery_sleep() sleep(SLEEP_SHORT); end
26
+ def connect_sleep() sleep(SLEEP_SHORT); end
27
+ def bind_sleep() sleep(SLEEP_LONG); end
28
+ def thread_startup_sleep() sleep(1.0); end
29
+
30
+ def connect_to_inproc(socket, endpoint)
31
+ begin
32
+ rc = socket.connect(endpoint)
33
+ end until ZMQ::Util.resultcode_ok?(rc)
34
+ end
23
35
 
24
36
  module APIHelper
25
37
  def stub_libzmq
@@ -31,20 +43,48 @@ module APIHelper
31
43
  :zmq_sterror => @err_str_mock
32
44
  )
33
45
  end
46
+
47
+ def poller_setup
48
+ @helper_poller ||= ZMQ::Poller.new
49
+ end
50
+
51
+ def poller_register_socket(socket)
52
+ @helper_poller.register(socket, ZMQ::POLLIN)
53
+ end
54
+
55
+ def poller_deregister_socket(socket)
56
+ @helper_poller.deregister(socket, ZMQ::POLLIN)
57
+ end
58
+
59
+ def poll_delivery
60
+ # timeout after 1 second
61
+ @helper_poller.poll(1000)
62
+ end
63
+
64
+ def poll_it_for_read(socket, &blk)
65
+ poller_register_socket(socket)
66
+ blk.call
67
+ poll_delivery
68
+ poller_deregister_socket(socket)
69
+ end
34
70
 
35
71
  # generate a random port between 10_000 and 65534
36
72
  def random_port
37
73
  rand(55534) + 10_000
38
74
  end
39
75
 
40
- def bind_to_random_tcp_port socket, max_tries = 500
76
+ def bind_to_random_tcp_port(socket, max_tries = 500)
41
77
  tries = 0
42
78
  rc = -1
43
79
 
44
80
  while !ZMQ::Util.resultcode_ok?(rc) && tries < max_tries
45
81
  tries += 1
46
82
  random = random_port
47
- rc = socket.bind "tcp://127.0.0.1:#{random}"
83
+ rc = socket.bind(local_transport_string(random))
84
+ end
85
+
86
+ unless ZMQ::Util.resultcode_ok?(rc)
87
+ raise "Could not bind to random port successfully; retries all failed!"
48
88
  end
49
89
 
50
90
  random
@@ -57,12 +97,20 @@ module APIHelper
57
97
  while !ZMQ::Util.resultcode_ok?(rc) && tries < max_tries
58
98
  tries += 1
59
99
  random = random_port
60
- rc = socket.connect "tcp://127.0.0.1:#{random}"
100
+ rc = socket.connect(local_transport_string(random))
101
+ end
102
+
103
+ unless ZMQ::Util.resultcode_ok?(rc)
104
+ raise "Could not connect to random port successfully; retries all failed!"
61
105
  end
62
106
 
63
107
  random
64
108
  end
65
109
 
110
+ def local_transport_string(port)
111
+ "tcp://127.0.0.1:#{port}"
112
+ end
113
+
66
114
  def assert_ok(rc)
67
115
  raise "Failed with rc [#{rc}] and errno [#{ZMQ::Util.errno}], msg [#{ZMQ::Util.error_string}]! #{caller(0)}" unless rc >= 0
68
116
  end
metadata CHANGED
@@ -1,154 +1,174 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: ffi-rzmq
3
- version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.9.3
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.9.6
6
6
  platform: ruby
7
- authors:
8
- - Chuck Remes
9
- autorequire:
7
+ authors:
8
+ - Chuck Remes
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
+ date: 2012-08-08 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: ffi
16
+ version_requirements: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ! '>='
19
+ - !ruby/object:Gem::Version
20
+ version: !binary |-
21
+ MA==
22
+ none: false
23
+ requirement: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ! '>='
26
+ - !ruby/object:Gem::Version
27
+ version: !binary |-
28
+ MA==
29
+ none: false
30
+ prerelease: false
31
+ type: :runtime
32
+ - !ruby/object:Gem::Dependency
33
+ name: rspec
34
+ version_requirements: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ~>
37
+ - !ruby/object:Gem::Version
38
+ version: '2.6'
39
+ none: false
40
+ requirement: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ~>
43
+ - !ruby/object:Gem::Version
44
+ version: '2.6'
45
+ none: false
46
+ prerelease: false
47
+ type: :development
48
+ - !ruby/object:Gem::Dependency
49
+ name: rake
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: !binary |-
55
+ MA==
56
+ none: false
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: !binary |-
62
+ MA==
63
+ none: false
64
+ prerelease: false
65
+ type: :development
66
+ description: This gem wraps the ZeroMQ networking library using the ruby FFI (foreign
12
67
 
13
- date: 2011-12-20 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: ffi
17
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
19
- none: false
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: "0"
24
- type: :runtime
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
27
- name: rspec
28
- prerelease: false
29
- requirement: &id002 !ruby/object:Gem::Requirement
30
- none: false
31
- requirements:
32
- - - ~>
33
- - !ruby/object:Gem::Version
34
- version: "2.6"
35
- type: :development
36
- version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
38
- name: rake
39
- prerelease: false
40
- requirement: &id003 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- version: "0"
46
- type: :development
47
- version_requirements: *id003
48
- description: |-
49
- This gem wraps the ZeroMQ networking library using the ruby FFI (foreign
50
68
  function interface). It's a pure ruby wrapper so this gem can be loaded
51
- and run by any ruby runtime that supports FFI. That's all of them:
69
+
70
+ and run by any ruby runtime that supports FFI. That's all of them -
71
+
52
72
  MRI 1.9.x, Rubinius and JRuby.
53
- email:
54
- - cremes@mac.com
73
+ email:
74
+ - git@chuckremes.com
55
75
  executables: []
56
-
57
76
  extensions: []
58
-
59
77
  extra_rdoc_files: []
60
-
61
- files:
62
- - .bnsignore
63
- - .gitignore
64
- - AUTHORS.txt
65
- - Gemfile
66
- - History.txt
67
- - README.rdoc
68
- - Rakefile
69
- - examples/README.rdoc
70
- - examples/v2api/latency_measurement.rb
71
- - examples/v2api/local_lat.rb
72
- - examples/v2api/local_lat_poll.rb
73
- - examples/v2api/local_throughput.rb
74
- - examples/v2api/publish_subscribe.rb
75
- - examples/v2api/remote_lat.rb
76
- - examples/v2api/remote_throughput.rb
77
- - examples/v2api/reqrep_poll.rb
78
- - examples/v2api/request_response.rb
79
- - examples/v2api/throughput_measurement.rb
80
- - examples/v2api/xreqxrep_poll.rb
81
- - examples/v3api/latency_measurement.rb
82
- - examples/v3api/local_lat.rb
83
- - examples/v3api/local_lat_poll.rb
84
- - examples/v3api/local_throughput.rb
85
- - examples/v3api/publish_subscribe.rb
86
- - examples/v3api/remote_lat.rb
87
- - examples/v3api/remote_throughput.rb
88
- - examples/v3api/reqrep_poll.rb
89
- - examples/v3api/request_response.rb
90
- - examples/v3api/throughput_measurement.rb
91
- - examples/v3api/xreqxrep_poll.rb
92
- - ext/README
93
- - ffi-rzmq.gemspec
94
- - lib/ffi-rzmq.rb
95
- - lib/ffi-rzmq/constants.rb
96
- - lib/ffi-rzmq/context.rb
97
- - lib/ffi-rzmq/device.rb
98
- - lib/ffi-rzmq/exceptions.rb
99
- - lib/ffi-rzmq/libc.rb
100
- - lib/ffi-rzmq/libzmq.rb
101
- - lib/ffi-rzmq/message.rb
102
- - lib/ffi-rzmq/poll.rb
103
- - lib/ffi-rzmq/poll_items.rb
104
- - lib/ffi-rzmq/socket.rb
105
- - lib/ffi-rzmq/util.rb
106
- - lib/ffi-rzmq/version.rb
107
- - spec/context_spec.rb
108
- - spec/device_spec.rb
109
- - spec/message_spec.rb
110
- - spec/multipart_spec.rb
111
- - spec/nonblocking_recv_spec.rb
112
- - spec/poll_spec.rb
113
- - spec/pushpull_spec.rb
114
- - spec/reqrep_spec.rb
115
- - spec/socket_spec.rb
116
- - spec/spec_helper.rb
78
+ files:
79
+ - .bnsignore
80
+ - .gitignore
81
+ - AUTHORS.txt
82
+ - Gemfile
83
+ - History.txt
84
+ - README.rdoc
85
+ - Rakefile
86
+ - examples/README.rdoc
87
+ - examples/v2api/latency_measurement.rb
88
+ - examples/v2api/local_lat.rb
89
+ - examples/v2api/local_lat_poll.rb
90
+ - examples/v2api/local_throughput.rb
91
+ - examples/v2api/pub.rb
92
+ - examples/v2api/publish_subscribe.rb
93
+ - examples/v2api/remote_lat.rb
94
+ - examples/v2api/remote_throughput.rb
95
+ - examples/v2api/reqrep_poll.rb
96
+ - examples/v2api/request_response.rb
97
+ - examples/v2api/sub.rb
98
+ - examples/v2api/throughput_measurement.rb
99
+ - examples/v2api/xreqxrep_poll.rb
100
+ - examples/v3api/latency_measurement.rb
101
+ - examples/v3api/local_lat.rb
102
+ - examples/v3api/local_lat_poll.rb
103
+ - examples/v3api/local_throughput.rb
104
+ - examples/v3api/pub.rb
105
+ - examples/v3api/publish_subscribe.rb
106
+ - examples/v3api/remote_lat.rb
107
+ - examples/v3api/remote_throughput.rb
108
+ - examples/v3api/reqrep_poll.rb
109
+ - examples/v3api/request_response.rb
110
+ - examples/v3api/sub.rb
111
+ - examples/v3api/throughput_measurement.rb
112
+ - examples/v3api/xreqxrep_poll.rb
113
+ - ext/README
114
+ - ffi-rzmq.gemspec
115
+ - lib/ffi-rzmq.rb
116
+ - lib/ffi-rzmq/constants.rb
117
+ - lib/ffi-rzmq/context.rb
118
+ - lib/ffi-rzmq/device.rb
119
+ - lib/ffi-rzmq/exceptions.rb
120
+ - lib/ffi-rzmq/libc.rb
121
+ - lib/ffi-rzmq/libzmq.rb
122
+ - lib/ffi-rzmq/message.rb
123
+ - lib/ffi-rzmq/poll.rb
124
+ - lib/ffi-rzmq/poll_items.rb
125
+ - lib/ffi-rzmq/socket.rb
126
+ - lib/ffi-rzmq/util.rb
127
+ - lib/ffi-rzmq/version.rb
128
+ - spec/context_spec.rb
129
+ - spec/device_spec.rb
130
+ - spec/message_spec.rb
131
+ - spec/multipart_spec.rb
132
+ - spec/nonblocking_recv_spec.rb
133
+ - spec/poll_spec.rb
134
+ - spec/pushpull_spec.rb
135
+ - spec/reqrep_spec.rb
136
+ - spec/socket_spec.rb
137
+ - spec/spec_helper.rb
117
138
  homepage: http://github.com/chuckremes/ffi-rzmq
118
139
  licenses: []
119
-
120
- post_install_message:
140
+ post_install_message:
121
141
  rdoc_options: []
122
-
123
- require_paths:
124
- - lib
125
- required_ruby_version: !ruby/object:Gem::Requirement
142
+ require_paths:
143
+ - lib
144
+ required_ruby_version: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - ! '>='
147
+ - !ruby/object:Gem::Version
148
+ version: !binary |-
149
+ MA==
126
150
  none: false
127
- requirements:
128
- - - ">="
129
- - !ruby/object:Gem::Version
130
- version: "0"
131
- required_rubygems_version: !ruby/object:Gem::Requirement
151
+ required_rubygems_version: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ! '>='
154
+ - !ruby/object:Gem::Version
155
+ version: !binary |-
156
+ MA==
132
157
  none: false
133
- requirements:
134
- - - ">="
135
- - !ruby/object:Gem::Version
136
- version: "0"
137
158
  requirements: []
138
-
139
159
  rubyforge_project: ffi-rzmq
140
- rubygems_version: 1.8.9
141
- signing_key:
160
+ rubygems_version: 1.8.24
161
+ signing_key:
142
162
  specification_version: 3
143
163
  summary: This gem wraps the ZeroMQ (0mq) networking library using Ruby FFI (foreign function interface).
144
- test_files:
145
- - spec/context_spec.rb
146
- - spec/device_spec.rb
147
- - spec/message_spec.rb
148
- - spec/multipart_spec.rb
149
- - spec/nonblocking_recv_spec.rb
150
- - spec/poll_spec.rb
151
- - spec/pushpull_spec.rb
152
- - spec/reqrep_spec.rb
153
- - spec/socket_spec.rb
154
- - spec/spec_helper.rb
164
+ test_files:
165
+ - spec/context_spec.rb
166
+ - spec/device_spec.rb
167
+ - spec/message_spec.rb
168
+ - spec/multipart_spec.rb
169
+ - spec/nonblocking_recv_spec.rb
170
+ - spec/poll_spec.rb
171
+ - spec/pushpull_spec.rb
172
+ - spec/reqrep_spec.rb
173
+ - spec/socket_spec.rb
174
+ - spec/spec_helper.rb