ffi-rzmq 0.9.3 → 0.9.6

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