ffi-rzmq 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,18 +2,14 @@ before_install: sudo apt-get install libzmq3-dev
2
2
  script: bundle exec rspec
3
3
  language: ruby
4
4
  rvm:
5
- - 1.9.2
6
5
  - 1.9.3
7
6
  - 2.0.0
8
7
  - ruby-head
9
- - jruby-18mode
10
8
  - jruby-19mode
11
9
  - jruby-head
12
- - rbx-18mode
13
10
  - rbx-19mode
14
11
 
15
12
  matrix:
16
13
  allow_failures:
17
14
  - rvm: ruby-head
18
15
  - rvm: jruby-head
19
- - rvm: 1.9.2
@@ -23,3 +23,7 @@ Pawel Pacana, github: pawelpacana
23
23
  Brian Ford, github: brixen
24
24
 
25
25
  Nilson Santos F. Jr., github: nilsonfsj
26
+
27
+ Simon Chiang , github: thinkerbot
28
+
29
+ Harlow Ward, github: harlow
@@ -1,3 +1,15 @@
1
+ == 1.0.2 / 20130929
2
+ * Fix for issue #94. Now includes local_path when searching for a libzmq
3
+ to load.
4
+
5
+ * Fix for issue #92. Context and Socket finalizers now track the process'
6
+ PID to handle a special case when forking a process. Thanks to
7
+ thinkerbot for the issue and a fix. (Spec is disabled on JRuby since
8
+ it does not support fork().)
9
+
10
+ * Fix a few RSpec deprecation warnings related to expectations on specific
11
+ Exception types.
12
+
1
13
  == 1.0.1 / 20130318
2
14
  * Fix for issue #77 was not included in 1.0.0 release by mistake.
3
15
 
@@ -30,6 +30,9 @@ Check out the latest performance results:
30
30
 
31
31
  http://www.zeromq.org/bindings:ruby-ffi
32
32
 
33
+ The short version is that the FFI bindings are a few microseconds slower
34
+ than using a C extension.
35
+
33
36
  == FEATURES/PROBLEMS:
34
37
 
35
38
  This gem needs more tests. This gem has been battle tested by myself
@@ -131,14 +134,13 @@ time of installation.
131
134
 
132
135
  * ffi (>= 1.0.0)
133
136
 
134
- This is a requirement for MRI only. Both Rubinius and JRuby have FFI support built
137
+ This is a requirement for MRI and Rubinius. JRuby has FFI support built
135
138
  in as a standard component. Do *not* run this gem under MRI with an old 'ffi' gem.
136
139
  It will crash randomly and you will be sad.
137
140
 
138
141
 
139
142
  == INSTALL:
140
143
 
141
- A full gem has been released to rubygems.org as of release 0.5.0.
142
144
  Make sure the ZeroMQ library is already installed on your system.
143
145
 
144
146
  % gem install ffi-rzmq # should grab the latest release
@@ -149,15 +149,15 @@ module ZMQ
149
149
  private
150
150
 
151
151
  def define_finalizer
152
- ObjectSpace.define_finalizer(self, self.class.close(@context))
152
+ ObjectSpace.define_finalizer(self, self.class.close(@context, Process.pid))
153
153
  end
154
154
 
155
155
  def remove_finalizer
156
156
  ObjectSpace.undefine_finalizer self
157
157
  end
158
158
 
159
- def self.close context
160
- Proc.new { LibZMQ.zmq_term context unless context.null? }
159
+ def self.close context, pid
160
+ Proc.new { LibZMQ.zmq_term context if !context.null? && Process.pid == pid }
161
161
  end
162
162
  end
163
163
 
@@ -10,17 +10,15 @@ module ZMQ
10
10
  # bias the library discovery to a path inside the gem first, then
11
11
  # to the usual system paths
12
12
  inside_gem = File.join(File.dirname(__FILE__), '..', '..', 'ext')
13
- if FFI::Platform::IS_WINDOWS
14
- local_path=ENV['PATH'].split(';')
15
- else
16
- local_path=ENV['PATH'].split(':')
17
- end
18
- ZMQ_LIB_PATHS = [
19
- inside_gem, '/usr/local/lib', '/opt/local/lib', '/usr/local/homebrew/lib', '/usr/lib64'
13
+ local_path = FFI::Platform::IS_WINDOWS ? ENV['PATH'].split(';') : ENV['PATH'].split(':')
14
+
15
+ # Search for libzmq in the following order...
16
+ ZMQ_LIB_PATHS = [inside_gem] + local_path + [
17
+ '/usr/local/lib', '/opt/local/lib', '/usr/local/homebrew/lib', '/usr/lib64'
20
18
  ].map{|path| "#{path}/libzmq.#{FFI::Platform::LIBSUFFIX}"}
21
19
  ffi_lib(ZMQ_LIB_PATHS + %w{libzmq})
22
20
  rescue LoadError
23
- if ZMQ_LIB_PATHS.push(*local_path).any? {|path|
21
+ if ZMQ_LIB_PATHS.any? {|path|
24
22
  File.file? File.join(path, "libzmq.#{FFI::Platform::LIBSUFFIX}")}
25
23
  warn "Unable to load this gem. The libzmq library exists, but cannot be loaded."
26
24
  warn "If this is Windows:"
@@ -629,16 +629,16 @@ module ZMQ
629
629
  # module; they *must* be in the class definition directly
630
630
 
631
631
  def define_finalizer
632
- ObjectSpace.define_finalizer(self, self.class.close(@socket))
632
+ ObjectSpace.define_finalizer(self, self.class.close(@socket, Process.pid))
633
633
  end
634
634
 
635
635
  def remove_finalizer
636
636
  ObjectSpace.undefine_finalizer self
637
637
  end
638
638
 
639
- def self.close socket
639
+ def self.close socket, pid
640
640
  Proc.new do
641
- LibZMQ.zmq_close(socket) if socket && !socket.null?
641
+ LibZMQ.zmq_close(socket) if socket && !socket.nil? && Process.pid == pid
642
642
  end
643
643
  end
644
644
  end # class Socket for version2
@@ -745,15 +745,15 @@ module ZMQ
745
745
  # module; they *must* be in the class definition directly
746
746
 
747
747
  def define_finalizer
748
- ObjectSpace.define_finalizer(self, self.class.close(@socket))
748
+ ObjectSpace.define_finalizer(self, self.class.close(@socket, Process.pid))
749
749
  end
750
750
 
751
751
  def remove_finalizer
752
752
  ObjectSpace.undefine_finalizer self
753
753
  end
754
754
 
755
- def self.close socket
756
- Proc.new { LibZMQ.zmq_close socket }
755
+ def self.close socket, pid
756
+ Proc.new { LibZMQ.zmq_close socket if Process.pid == pid }
757
757
  end
758
758
  end # Socket for version3
759
759
  end # LibZMQ.version3?
@@ -1,3 +1,3 @@
1
1
  module ZMQ
2
- VERSION = "1.0.1"
2
+ VERSION = "1.0.2"
3
3
  end
@@ -99,7 +99,7 @@ module ZMQ
99
99
  context "when allocating a socket" do
100
100
  it "should return nil when allocation fails" do
101
101
  ctx = Context.new
102
- LibZMQ.stub!(:zmq_socket => nil)
102
+ LibZMQ.stub(:zmq_socket => nil)
103
103
  ctx.socket(ZMQ::REQ).should be_nil
104
104
  end
105
105
  end # context socket
@@ -16,10 +16,10 @@ module ZMQ
16
16
 
17
17
  context "#register" do
18
18
 
19
- let(:pollable) { mock('pollable') }
19
+ let(:pollable) { double('pollable') }
20
20
  let(:poller) { Poller.new }
21
21
  let(:socket) { FFI::MemoryPointer.new(4) }
22
- let(:io) { stub(:posix_fileno => fd) }
22
+ let(:io) { double(:posix_fileno => fd) }
23
23
  let(:fd) { 1 }
24
24
 
25
25
  it "returns false when given a nil pollable" do
@@ -53,10 +53,10 @@ module ZMQ
53
53
 
54
54
  context "#deregister" do
55
55
 
56
- let(:pollable) { mock('pollable') }
56
+ let(:pollable) { double('pollable') }
57
57
  let(:poller) { Poller.new }
58
58
  let(:socket) { FFI::MemoryPointer.new(4) }
59
- let(:io) { stub(:posix_fileno => fd) }
59
+ let(:io) { double(:posix_fileno => fd) }
60
60
  let(:fd) { 1 }
61
61
 
62
62
  it "returns true when deregistered pollable from event" do
@@ -26,14 +26,14 @@ module ZMQ
26
26
  lambda do
27
27
  s = Socket.new(@ctx.pointer, ZMQ::REQ)
28
28
  s.close
29
- end.should_not raise_exception(ZMQ::ContextError)
29
+ end.should_not raise_exception
30
30
  end
31
31
 
32
32
  it "works with a Context instance as the context_ptr" do
33
33
  lambda do
34
34
  s = Socket.new(@ctx, ZMQ::SUB)
35
35
  s.close
36
- end.should_not raise_exception(ZMQ::ContextError)
36
+ end.should_not raise_exception
37
37
  end
38
38
 
39
39
 
@@ -47,8 +47,8 @@ module ZMQ
47
47
  end # each socket_type
48
48
 
49
49
  it "should set the :socket accessor to the raw socket allocated by libzmq" do
50
- socket = mock('socket')
51
- socket.stub!(:null? => false)
50
+ socket = double('socket')
51
+ socket.stub(:null? => false)
52
52
  LibZMQ.should_receive(:zmq_socket).and_return(socket)
53
53
 
54
54
  sock = Socket.new(@ctx.pointer, ZMQ::REQ)
@@ -60,6 +60,15 @@ module ZMQ
60
60
  sock = Socket.new(@ctx.pointer, ZMQ::REQ)
61
61
  sock.close
62
62
  end
63
+
64
+ unless jruby?
65
+ it "should track pid in finalizer so subsequent fork will not segfault" do
66
+ sock = Socket.new(@ctx.pointer, ZMQ::REQ)
67
+ pid = fork { }
68
+ Process.wait(pid)
69
+ sock.close
70
+ end
71
+ end
63
72
  end # context initializing
64
73
 
65
74
 
@@ -22,6 +22,10 @@ def version3?
22
22
  ZMQ::LibZMQ.version3?
23
23
  end
24
24
 
25
+ def jruby?
26
+ RUBY_PLATFORM =~ /java/
27
+ end
28
+
25
29
 
26
30
  def connect_to_inproc(socket, endpoint)
27
31
  begin
@@ -30,16 +34,6 @@ def connect_to_inproc(socket, endpoint)
30
34
  end
31
35
 
32
36
  module APIHelper
33
- def stub_libzmq
34
- @err_str_mock = mock("error string")
35
-
36
- LibZMQ.stub!(
37
- :zmq_init => 0,
38
- :zmq_errno => 0,
39
- :zmq_sterror => @err_str_mock
40
- )
41
- end
42
-
43
37
  def poller_setup
44
38
  @helper_poller ||= ZMQ::Poller.new
45
39
  end
metadata CHANGED
@@ -1,252 +1,173 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffi-rzmq
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
5
- prerelease:
4
+ version: 1.0.2
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Chuck Remes
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-18 00:00:00.000000000 Z
12
+ date: 2013-09-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- type: :runtime
16
- version_requirements: !ruby/object:Gem::Requirement
15
+ requirement: !ruby/object:Gem::Requirement
17
16
  none: false
18
17
  requirements:
19
- - - ! '>='
18
+ - - '>='
20
19
  - !ruby/object:Gem::Version
21
20
  version: '0'
22
21
  name: ffi
23
- prerelease: false
24
- requirement: !ruby/object:Gem::Requirement
22
+ type: :runtime
23
+ version_requirements: !ruby/object:Gem::Requirement
25
24
  none: false
26
25
  requirements:
27
- - - ! '>='
26
+ - - '>='
28
27
  - !ruby/object:Gem::Version
29
28
  version: '0'
29
+ prerelease: false
30
30
  - !ruby/object:Gem::Dependency
31
- type: :development
32
- version_requirements: !ruby/object:Gem::Requirement
31
+ requirement: !ruby/object:Gem::Requirement
33
32
  none: false
34
33
  requirements:
35
34
  - - ~>
36
35
  - !ruby/object:Gem::Version
37
36
  version: '2.6'
38
37
  name: rspec
39
- prerelease: false
40
- requirement: !ruby/object:Gem::Requirement
38
+ type: :development
39
+ version_requirements: !ruby/object:Gem::Requirement
41
40
  none: false
42
41
  requirements:
43
42
  - - ~>
44
43
  - !ruby/object:Gem::Version
45
44
  version: '2.6'
45
+ prerelease: false
46
46
  - !ruby/object:Gem::Dependency
47
- type: :development
48
- version_requirements: !ruby/object:Gem::Requirement
47
+ requirement: !ruby/object:Gem::Requirement
49
48
  none: false
50
49
  requirements:
51
- - - ! '>='
50
+ - - '>='
52
51
  - !ruby/object:Gem::Version
53
52
  version: '0'
54
53
  name: rake
55
- prerelease: false
56
- requirement: !ruby/object:Gem::Requirement
54
+ type: :development
55
+ version_requirements: !ruby/object:Gem::Requirement
57
56
  none: false
58
57
  requirements:
59
- - - ! '>='
58
+ - - '>='
60
59
  - !ruby/object:Gem::Version
61
60
  version: '0'
62
- description: ! 'This gem wraps the ZeroMQ networking library using the ruby FFI (foreign
63
-
64
- function interface). It''s a pure ruby wrapper so this gem can be loaded
65
-
66
- and run by any ruby runtime that supports FFI. That''s all of the major ones -
67
-
68
- MRI, Rubinius and JRuby.'
61
+ prerelease: false
62
+ description: |-
63
+ This gem wraps the ZeroMQ networking library using the ruby FFI (foreign
64
+ function interface). It's a pure ruby wrapper so this gem can be loaded
65
+ and run by any ruby runtime that supports FFI. That's all of the major ones -
66
+ MRI, Rubinius and JRuby.
69
67
  email:
70
68
  - git@chuckremes.com
71
69
  executables: []
72
70
  extensions: []
73
71
  extra_rdoc_files: []
74
72
  files:
75
- - !binary |-
76
- LmJuc2lnbm9yZQ==
77
- - !binary |-
78
- LmdpdGlnbm9yZQ==
79
- - !binary |-
80
- LnRyYXZpcy55bWw=
81
- - !binary |-
82
- QVVUSE9SUy50eHQ=
83
- - !binary |-
84
- R2VtZmlsZQ==
85
- - !binary |-
86
- SGlzdG9yeS50eHQ=
87
- - !binary |-
88
- UkVBRE1FLnJkb2M=
89
- - !binary |-
90
- UmFrZWZpbGU=
91
- - !binary |-
92
- ZXhhbXBsZXMvUkVBRE1FLnJkb2M=
93
- - !binary |-
94
- ZXhhbXBsZXMvdjJhcGkvbGF0ZW5jeV9tZWFzdXJlbWVudC5yYg==
95
- - !binary |-
96
- ZXhhbXBsZXMvdjJhcGkvbG9jYWxfbGF0LnJi
97
- - !binary |-
98
- ZXhhbXBsZXMvdjJhcGkvbG9jYWxfbGF0X3BvbGwucmI=
99
- - !binary |-
100
- ZXhhbXBsZXMvdjJhcGkvbG9jYWxfdGhyb3VnaHB1dC5yYg==
101
- - !binary |-
102
- ZXhhbXBsZXMvdjJhcGkvcHViLnJi
103
- - !binary |-
104
- ZXhhbXBsZXMvdjJhcGkvcHVibGlzaF9zdWJzY3JpYmUucmI=
105
- - !binary |-
106
- ZXhhbXBsZXMvdjJhcGkvcmVtb3RlX2xhdC5yYg==
107
- - !binary |-
108
- ZXhhbXBsZXMvdjJhcGkvcmVtb3RlX3Rocm91Z2hwdXQucmI=
109
- - !binary |-
110
- ZXhhbXBsZXMvdjJhcGkvcmVxcmVwX3BvbGwucmI=
111
- - !binary |-
112
- ZXhhbXBsZXMvdjJhcGkvcmVxdWVzdF9yZXNwb25zZS5yYg==
113
- - !binary |-
114
- ZXhhbXBsZXMvdjJhcGkvc3ViLnJi
115
- - !binary |-
116
- ZXhhbXBsZXMvdjJhcGkvdGhyb3VnaHB1dF9tZWFzdXJlbWVudC5yYg==
117
- - !binary |-
118
- ZXhhbXBsZXMvdjJhcGkveHJlcXhyZXBfcG9sbC5yYg==
119
- - !binary |-
120
- ZXhhbXBsZXMvdjNhcGkvbGF0ZW5jeV9tZWFzdXJlbWVudC5yYg==
121
- - !binary |-
122
- ZXhhbXBsZXMvdjNhcGkvbG9jYWxfbGF0LnJi
123
- - !binary |-
124
- ZXhhbXBsZXMvdjNhcGkvbG9jYWxfbGF0X3BvbGwucmI=
125
- - !binary |-
126
- ZXhhbXBsZXMvdjNhcGkvbG9jYWxfdGhyb3VnaHB1dC5yYg==
127
- - !binary |-
128
- ZXhhbXBsZXMvdjNhcGkvcHViLnJi
129
- - !binary |-
130
- ZXhhbXBsZXMvdjNhcGkvcHVibGlzaF9zdWJzY3JpYmUucmI=
131
- - !binary |-
132
- ZXhhbXBsZXMvdjNhcGkvcmVtb3RlX2xhdC5yYg==
133
- - !binary |-
134
- ZXhhbXBsZXMvdjNhcGkvcmVtb3RlX3Rocm91Z2hwdXQucmI=
135
- - !binary |-
136
- ZXhhbXBsZXMvdjNhcGkvcmVxcmVwX3BvbGwucmI=
137
- - !binary |-
138
- ZXhhbXBsZXMvdjNhcGkvcmVxdWVzdF9yZXNwb25zZS5yYg==
139
- - !binary |-
140
- ZXhhbXBsZXMvdjNhcGkvc3ViLnJi
141
- - !binary |-
142
- ZXhhbXBsZXMvdjNhcGkvdGhyb3VnaHB1dF9tZWFzdXJlbWVudC5yYg==
143
- - !binary |-
144
- ZXhhbXBsZXMvdjNhcGkveHJlcXhyZXBfcG9sbC5yYg==
145
- - !binary |-
146
- ZXh0L1JFQURNRQ==
147
- - !binary |-
148
- ZmZpLXJ6bXEuZ2Vtc3BlYw==
149
- - !binary |-
150
- bGliL2ZmaS1yem1xLnJi
151
- - !binary |-
152
- bGliL2ZmaS1yem1xL2NvbnN0YW50cy5yYg==
153
- - !binary |-
154
- bGliL2ZmaS1yem1xL2NvbnRleHQucmI=
155
- - !binary |-
156
- bGliL2ZmaS1yem1xL2RldmljZS5yYg==
157
- - !binary |-
158
- bGliL2ZmaS1yem1xL2V4Y2VwdGlvbnMucmI=
159
- - !binary |-
160
- bGliL2ZmaS1yem1xL2xpYmMucmI=
161
- - !binary |-
162
- bGliL2ZmaS1yem1xL2xpYnptcS5yYg==
163
- - !binary |-
164
- bGliL2ZmaS1yem1xL21lc3NhZ2UucmI=
165
- - !binary |-
166
- bGliL2ZmaS1yem1xL3BvbGwucmI=
167
- - !binary |-
168
- bGliL2ZmaS1yem1xL3BvbGxfaXRlbS5yYg==
169
- - !binary |-
170
- bGliL2ZmaS1yem1xL3BvbGxfaXRlbXMucmI=
171
- - !binary |-
172
- bGliL2ZmaS1yem1xL3NvY2tldC5yYg==
173
- - !binary |-
174
- bGliL2ZmaS1yem1xL3V0aWwucmI=
175
- - !binary |-
176
- bGliL2ZmaS1yem1xL3ZlcnNpb24ucmI=
177
- - !binary |-
178
- bGliL2lvX2V4dGVuc2lvbnMucmI=
179
- - !binary |-
180
- c3BlYy9jb250ZXh0X3NwZWMucmI=
181
- - !binary |-
182
- c3BlYy9kZXZpY2Vfc3BlYy5yYg==
183
- - !binary |-
184
- c3BlYy9tZXNzYWdlX3NwZWMucmI=
185
- - !binary |-
186
- c3BlYy9tdWx0aXBhcnRfc3BlYy5yYg==
187
- - !binary |-
188
- c3BlYy9ub25ibG9ja2luZ19yZWN2X3NwZWMucmI=
189
- - !binary |-
190
- c3BlYy9wb2xsX3NwZWMucmI=
191
- - !binary |-
192
- c3BlYy9wdXNocHVsbF9zcGVjLnJi
193
- - !binary |-
194
- c3BlYy9yZXFyZXBfc3BlYy5yYg==
195
- - !binary |-
196
- c3BlYy9zb2NrZXRfc3BlYy5yYg==
197
- - !binary |-
198
- c3BlYy9zcGVjX2hlbHBlci5yYg==
199
- - !binary |-
200
- c3BlYy9zdXBwb3J0L3Rlc3QuY3J0
201
- - !binary |-
202
- c3BlYy9zdXBwb3J0L3Rlc3Qua2V5
73
+ - .bnsignore
74
+ - .gitignore
75
+ - .travis.yml
76
+ - AUTHORS.txt
77
+ - Gemfile
78
+ - History.txt
79
+ - README.rdoc
80
+ - Rakefile
81
+ - examples/README.rdoc
82
+ - examples/v2api/latency_measurement.rb
83
+ - examples/v2api/local_lat.rb
84
+ - examples/v2api/local_lat_poll.rb
85
+ - examples/v2api/local_throughput.rb
86
+ - examples/v2api/pub.rb
87
+ - examples/v2api/publish_subscribe.rb
88
+ - examples/v2api/remote_lat.rb
89
+ - examples/v2api/remote_throughput.rb
90
+ - examples/v2api/reqrep_poll.rb
91
+ - examples/v2api/request_response.rb
92
+ - examples/v2api/sub.rb
93
+ - examples/v2api/throughput_measurement.rb
94
+ - examples/v2api/xreqxrep_poll.rb
95
+ - examples/v3api/latency_measurement.rb
96
+ - examples/v3api/local_lat.rb
97
+ - examples/v3api/local_lat_poll.rb
98
+ - examples/v3api/local_throughput.rb
99
+ - examples/v3api/pub.rb
100
+ - examples/v3api/publish_subscribe.rb
101
+ - examples/v3api/remote_lat.rb
102
+ - examples/v3api/remote_throughput.rb
103
+ - examples/v3api/reqrep_poll.rb
104
+ - examples/v3api/request_response.rb
105
+ - examples/v3api/sub.rb
106
+ - examples/v3api/throughput_measurement.rb
107
+ - examples/v3api/xreqxrep_poll.rb
108
+ - ext/README
109
+ - ffi-rzmq.gemspec
110
+ - lib/ffi-rzmq.rb
111
+ - lib/ffi-rzmq/constants.rb
112
+ - lib/ffi-rzmq/context.rb
113
+ - lib/ffi-rzmq/device.rb
114
+ - lib/ffi-rzmq/exceptions.rb
115
+ - lib/ffi-rzmq/libc.rb
116
+ - lib/ffi-rzmq/libzmq.rb
117
+ - lib/ffi-rzmq/message.rb
118
+ - lib/ffi-rzmq/poll.rb
119
+ - lib/ffi-rzmq/poll_item.rb
120
+ - lib/ffi-rzmq/poll_items.rb
121
+ - lib/ffi-rzmq/socket.rb
122
+ - lib/ffi-rzmq/util.rb
123
+ - lib/ffi-rzmq/version.rb
124
+ - lib/io_extensions.rb
125
+ - spec/context_spec.rb
126
+ - spec/device_spec.rb
127
+ - spec/message_spec.rb
128
+ - spec/multipart_spec.rb
129
+ - spec/nonblocking_recv_spec.rb
130
+ - spec/poll_spec.rb
131
+ - spec/pushpull_spec.rb
132
+ - spec/reqrep_spec.rb
133
+ - spec/socket_spec.rb
134
+ - spec/spec_helper.rb
135
+ - spec/support/test.crt
136
+ - spec/support/test.key
203
137
  homepage: http://github.com/chuckremes/ffi-rzmq
204
138
  licenses: []
205
- post_install_message:
139
+ post_install_message:
206
140
  rdoc_options: []
207
141
  require_paths:
208
142
  - lib
209
143
  required_ruby_version: !ruby/object:Gem::Requirement
210
144
  none: false
211
145
  requirements:
212
- - - ! '>='
146
+ - - '>='
213
147
  - !ruby/object:Gem::Version
214
148
  version: '0'
215
149
  required_rubygems_version: !ruby/object:Gem::Requirement
216
150
  none: false
217
151
  requirements:
218
- - - ! '>='
152
+ - - '>='
219
153
  - !ruby/object:Gem::Version
220
154
  version: '0'
221
155
  requirements: []
222
156
  rubyforge_project: ffi-rzmq
223
- rubygems_version: 1.8.25
224
- signing_key:
157
+ rubygems_version: 1.8.24
158
+ signing_key:
225
159
  specification_version: 3
226
- summary: This gem wraps the ZeroMQ (0mq) networking library using Ruby FFI (foreign
227
- function interface).
160
+ summary: This gem wraps the ZeroMQ (0mq) networking library using Ruby FFI (foreign function interface).
228
161
  test_files:
229
- - !binary |-
230
- c3BlYy9jb250ZXh0X3NwZWMucmI=
231
- - !binary |-
232
- c3BlYy9kZXZpY2Vfc3BlYy5yYg==
233
- - !binary |-
234
- c3BlYy9tZXNzYWdlX3NwZWMucmI=
235
- - !binary |-
236
- c3BlYy9tdWx0aXBhcnRfc3BlYy5yYg==
237
- - !binary |-
238
- c3BlYy9ub25ibG9ja2luZ19yZWN2X3NwZWMucmI=
239
- - !binary |-
240
- c3BlYy9wb2xsX3NwZWMucmI=
241
- - !binary |-
242
- c3BlYy9wdXNocHVsbF9zcGVjLnJi
243
- - !binary |-
244
- c3BlYy9yZXFyZXBfc3BlYy5yYg==
245
- - !binary |-
246
- c3BlYy9zb2NrZXRfc3BlYy5yYg==
247
- - !binary |-
248
- c3BlYy9zcGVjX2hlbHBlci5yYg==
249
- - !binary |-
250
- c3BlYy9zdXBwb3J0L3Rlc3QuY3J0
251
- - !binary |-
252
- c3BlYy9zdXBwb3J0L3Rlc3Qua2V5
162
+ - spec/context_spec.rb
163
+ - spec/device_spec.rb
164
+ - spec/message_spec.rb
165
+ - spec/multipart_spec.rb
166
+ - spec/nonblocking_recv_spec.rb
167
+ - spec/poll_spec.rb
168
+ - spec/pushpull_spec.rb
169
+ - spec/reqrep_spec.rb
170
+ - spec/socket_spec.rb
171
+ - spec/spec_helper.rb
172
+ - spec/support/test.crt
173
+ - spec/support/test.key