cztop 0.13.1 → 0.14.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 8bdb8f9f8cf64b23b91e19ddba6b38a378e86fa6
4
- data.tar.gz: 6e5ad9238d1f6efb1ef564122cd91a264c69ea3b
2
+ SHA256:
3
+ metadata.gz: 1b76df17a50c624efad9617599401e6b76ae5b50700544d37c5c8d0bf28b92a2
4
+ data.tar.gz: c956bf815260cd9cbf7368467a4c9f24d7db33969b706a8ad6d4aa9d61626187
5
5
  SHA512:
6
- metadata.gz: 53e330e301f917bef1a488724dada7b9ba2df3c6416530e7f6e8ea5a5ec615aaedace4eb1fc866e4a492354f83445f510d3034198c2bf809106633acd7077cb6
7
- data.tar.gz: '079fddf5ca0aee71575d4631ddac6c195838626bac39fa6257e5abecdda19e8e79398806b4c3bc7b723cf8f32c1d6311100da64360c87c2b302ca1595abf5293'
6
+ metadata.gz: 35945dabfac2708d8fa666638221495e5beffa0bb901733115a9cdc49a4ed7393e6528f870f5ef6952d780a1ffe96c0eebe24953ee87e20ea058e26d7e6dd333
7
+ data.tar.gz: 38343f20bfad8f9b5a3cf735d6bf4f1d23e7bc74ead44f7ebc09df7dbe4fdf2e50722710b230fdf1f70f99a5967ae3bc3eb77e056e7f24a928c8e6c1da6193f7
@@ -0,0 +1,32 @@
1
+ .rspec:
2
+ image: ruby:latest
3
+ stage: test
4
+ variables:
5
+ ZMQ_VERSION: "stable"
6
+ CZMQ_VERSION: "stable"
7
+ before_script:
8
+ - export LD_LIBRARY_PATH=$HOME/lib # custom libs (for execution)
9
+ - export PKG_CONFIG_PATH=$HOME/lib/pkgconfig # custom libs (for linking)
10
+ - env
11
+ - ci-scripts/install-deps
12
+ - gem install bundler --no-document
13
+ - bundle install --path vendor/bundle
14
+ script:
15
+ - bundle exec rspec
16
+ cache:
17
+ key: "$CI_JOB_NAME"
18
+ paths:
19
+ - "vendor/bundle"
20
+
21
+
22
+ ruby-latest_with_stable_czmq:
23
+ extends: .rspec
24
+ variables:
25
+ CZMQ_VERSION: "stable"
26
+
27
+
28
+ ruby-latest_with_HEAD_czmq:
29
+ extends: .rspec
30
+ allow_failure: true
31
+ variables:
32
+ CZMQ_VERSION: "HEAD"
data/CHANGES.md CHANGED
@@ -1,3 +1,9 @@
1
+ 0.14.1 (11/25/2019)
2
+ -----
3
+ * relax dependencies (ffi)
4
+ * respect env var ZMQ_PATH when loading ZMQ for CZTop::Poller
5
+
6
+
1
7
  0.13.1 (03/04/2018)
2
8
  -----
3
9
  * fix specs
data/README.md CHANGED
@@ -1,25 +1,18 @@
1
1
  # CZTop
2
2
 
3
3
  CZTop is a CZMQ binding for Ruby. It is based on
4
- [czmq-ffi-gen](https://github.com/paddor/czmq-ffi-gen), the generated low-level
4
+ [czmq-ffi-gen](https://gitlab.com/paddor/czmq-ffi-gen), the generated low-level
5
5
  FFI binding of [CZMQ](https://github.com/zeromq/czmq) and has a focus on being
6
6
  easy to use for Rubyists (POLS) and providing first class support for security
7
7
  mechanisms (like CURVE).
8
8
 
9
- You might wanna check out
10
- [cztop-patterns](https://github.com/paddor/cztop-patterns). It's still very
11
- new, but will contain some reusable patterns described in the Zguide.
12
-
13
- [![Build Status on Travis CI](https://travis-ci.org/paddor/cztop.svg?branch=master)](https://travis-ci.org/paddor/cztop?branch=master)
14
- [![Code Climate](https://codeclimate.com/repos/56677a7849f50a141c001784/badges/48f3cca3c62df9e4b17b/gpa.svg)](https://codeclimate.com/repos/56677a7849f50a141c001784/feed)
15
- [![Inline docs](http://inch-ci.org/github/paddor/cztop.svg?branch=master&style=shields)](http://inch-ci.org/github/paddor/cztop)
16
- [![Dependency Status](https://gemnasium.com/paddor/cztop.svg)](https://gemnasium.com/paddor/cztop)
17
- [![Coverage Status](https://coveralls.io/repos/paddor/cztop/badge.svg?branch=master&service=github)](https://coveralls.io/github/paddor/cztop?branch=master)
9
+ [![pipeline status](https://gitlab.com/paddor/cztop/badges/master/pipeline.svg)](https://gitlab.com/paddor/cztop/commits/master)
10
+ [![Coverage Status](https://coveralls.io/repos/gitlab/paddor/cztop/badge.svg?branch=master)](https://coveralls.io/gitlab/paddor/cztop?branch=master)
18
11
  [![ISC License](https://img.shields.io/badge/license-ISC_License-blue.svg)](LICENSE)
19
12
 
20
13
  ## Goals
21
14
 
22
- Here are some some of the goals I have/had in mind for this library:
15
+ Here are some some of the goals I had in mind for this library:
23
16
 
24
17
  - [x] as easy as possible, Ruby-esque API
25
18
  - [x] first class support for security (CURVE mechanism)
@@ -100,11 +93,10 @@ More information in the [API documentation](http://www.rubydoc.info/github/paddo
100
93
  * but you can: `CZTop::Socket.new_by_type(:REP)`
101
94
  * e.g. `#subscribe` only exists on CZTop::Socket::SUB
102
95
  * DRAFT API ready
103
- * CLIENT/SERVER/RADIO/DISH/SCATTER/GATHER and other DRAFT methods are supported if the libraries (ZMQ/CZMQ) have been compiled with DRAFT APIs enabled (`--enable-drafts`)
104
- * there is `#routing_id` and `#routing_id=` on the following classes:
105
- * CZTop::Message
106
- * CZTop::Frame
107
- * there is `#group` and `#group=` on CZTop::Frame
96
+ * certain DRAFT methods are supported if the libraries (ZMQ/CZMQ) have been compiled with DRAFT APIs enabled (`--enable-drafts`)
97
+ * use `CZMQ::FFI.has_draft?` to check if the CZMQ DRAFT API is available
98
+ * use `CZMQ::FFI::LibZMQ.has_draft?` to check if the ZMQ DRAFT API is available
99
+ * extend CZTop to your needs
108
100
  * ZMTP 3.1 heartbeat ready
109
101
  * `socket.options.heartbeat_ivl = 2000`
110
102
  * `socket.options.heartbeat_timeout = 8000`
@@ -113,8 +105,8 @@ More information in the [API documentation](http://www.rubydoc.info/github/paddo
113
105
 
114
106
  You'll need:
115
107
 
116
- * CZMQ >= 4.0.0
117
- * ZMQ >= 4.2.0
108
+ * CZMQ >= 4.1
109
+ * ZMQ >= 4.2
118
110
 
119
111
  For security mechanisms like CURVE, it's recommended to use Libsodium. However,
120
112
  ZMQ can be compiled with tweetnacl enabled.
@@ -165,222 +157,22 @@ Or install it yourself as:
165
157
  The API should be fairly straight-forward to anyone who is familiar with CZMQ
166
158
  and Ruby. The following API documentation is currently available:
167
159
 
168
- * [YARD API documentation](http://www.rubydoc.info/github/paddor/cztop) (HEAD)
169
160
  * [YARD API documentation](http://www.rubydoc.info/gems/cztop) (release)
170
161
 
171
- Feel free to start a [wiki](https://github.com/paddor/cztop/wiki) page.
162
+ Feel free to start a [wiki](https://gitlab.com/paddor/cztop/wiki) page.
172
163
 
173
164
  ## Performance
174
165
 
175
166
  Performance should be pretty okay since this is based on czmq-ffi-gen, which is
176
- reasonably thin. CZTop is basically only a convenience layer on top, with some
177
- nice error checking. But hey, it's Ruby. Don't expect 5M messages per second
178
- with a latency of 3us.
179
-
180
- The measured latency on my laptop ranges from ~20us to ~60us per message for
181
- 1kb messages, depending on whether transport is inproc, IPC, or TCP/IP.
167
+ reasonably thin. CZTop is just a convenience layer.
182
168
 
183
- Make sure you check out the
184
- [perf](https://github.com/paddor/cztop/blob/master/perf) directory for latency
169
+ Make sure to check out the
170
+ [perf](https://gitlab.com/paddor/cztop/blob/master/perf) directory for latency
185
171
  and throughput measurement scripts.
186
172
 
187
173
  ## Usage
188
174
 
189
- See the [examples](https://github.com/paddor/cztop/blob/master/examples) directory for some examples. Here's a very simple one:
190
-
191
- ### rep.rb:
192
-
193
- ```ruby
194
- #!/usr/bin/env ruby
195
- require 'cztop'
196
-
197
- # create and bind socket
198
- socket = CZTop::Socket::REP.new("ipc:///tmp/req_rep_example")
199
- puts "<<< Socket bound to #{socket.last_endpoint.inspect}"
200
-
201
- # Simply echo every message, with every frame String#upcase'd.
202
- while msg = socket.receive
203
- puts "<<< #{msg.to_a.inspect}"
204
- socket << msg.to_a.map(&:upcase)
205
- end
206
- ```
207
-
208
- ### req.rb:
209
-
210
- ```ruby
211
- #!/usr/bin/env ruby
212
- require 'cztop'
213
-
214
- # connect
215
- socket = CZTop::Socket::REQ.new("ipc:///tmp/req_rep_example")
216
- puts ">>> Socket connected."
217
-
218
- # simple string
219
- socket << "foobar"
220
- msg = socket.receive
221
- puts ">>> #{msg.to_a.inspect}"
222
-
223
- # multi frame message as array
224
- socket << %w[foo bar baz]
225
- msg = socket.receive
226
- puts ">>> #{msg.to_a.inspect}"
227
-
228
- # manually instantiating a Message
229
- msg = CZTop::Message.new("bla")
230
- msg << "another frame" # append a frame
231
- socket << msg
232
- msg = socket.receive
233
- puts ">>> #{msg.to_a.inspect}"
234
-
235
- ##
236
- # This will send 20 additional messages:
237
- #
238
- # $ ./req.rb 20
239
- #
240
- if ARGV.first
241
- ARGV.first.to_i.times do
242
- socket << ["fooooooooo", "baaaaaar"]
243
- puts ">>> " + socket.receive.to_a.inspect
244
- end
245
- end
246
- ```
247
-
248
- ### Running it
249
-
250
- ```
251
- $ ./rep.rb & ./req.rb 3
252
- [3] 35321
253
- >>> Socket connected.
254
- <<< Socket bound to "ipc:///tmp/req_rep_example"
255
- <<< ["foobar"]
256
- >>> ["FOOBAR"]
257
- <<< ["foo", "bar", "baz"]
258
- >>> ["FOO", "BAR", "BAZ"]
259
- <<< ["bla", "another frame"]
260
- >>> ["BLA", "ANOTHER FRAME"]
261
- <<< ["fooooooooo", "baaaaaar"]
262
- >>> ["FOOOOOOOOO", "BAAAAAAR"]
263
- <<< ["fooooooooo", "baaaaaar"]
264
- >>> ["FOOOOOOOOO", "BAAAAAAR"]
265
- <<< ["fooooooooo", "baaaaaar"]
266
- >>> ["FOOOOOOOOO", "BAAAAAAR"]
267
- $
268
- ```
269
-
270
- ## TODO
271
-
272
- * [x] pack generated code into its own gem ([czmq-ffi-gen](https://github.com/paddor/czmq-ffi-gen))
273
- * think of a neat Ruby API, including:
274
- - [x] Actor
275
- - [x] Beacon
276
- - [x] Certificate
277
- - [x] Socket
278
- - [50%] access to all socket options
279
- - [x] Security mechanisms
280
- - [x] Message
281
- - [x] Frame
282
- - [x] enumerable Frames
283
- - [x] Authenticator
284
- - [x] Loop
285
- - [x] Monitor
286
- - [x] Poller
287
- - [x] Proxy
288
- - [x] Config
289
- - [x] Z85
290
- * write the missing XML API files in CZMQ
291
- - [x] zarmour.xml
292
- - [x] zconfig.xml
293
- - [x] zsock_option.xml
294
- - [x] zcert.xml
295
- - [x] zcertstore.xml
296
- * [x] check availability of libsodium within CZTop
297
- * [x] read error strings for exceptions where appropriate (zmq_strerror)
298
- * [x] add support for ZMTP 3.1 heartbeats in CZMQ
299
- * [x] add padded variant of Z85
300
- * add more examples
301
- * [x] [simple REQ/REP](https://github.com/paddor/cztop/tree/master/examples/simple_req_rep)
302
- * [x] [Taxy System](https://github.com/paddor/cztop/tree/master/examples/taxi_system) with CURVE security and heartbeating
303
- * [x] change from ROUTER/DEALER to SERVER/CLIENT
304
- * [x] [Actor](https://github.com/paddor/cztop/tree/master/examples/ruby_actor) with Ruby block
305
- * [ ] PUSH/PULL
306
- * [ ] PUB/SUB
307
- * [ ] add performance benchmarks
308
- * [x] inproc latency
309
- * [x] inproc throughput
310
- * [x] local/remote latency
311
- * [ ] local/remote throughput
312
- * see [perf](https://github.com/paddor/cztop/blob/master/perf) directory
313
- * [x] support older versions of ZMQ
314
- * [x] ZMQ HEAD
315
- * [x] tested on CI
316
- * [x] ZMQ 4.1
317
- * [x] tested on CI
318
- * as of April 2016, this isn't the case anymore
319
- * [x] ZMQ 4.0
320
- * [x] tested on CI
321
- * as of March 2016, this isn't the case anymore
322
- * [ ] ZMQ 3.2
323
- * too big a pain ([d5172ab](https://github.com/paddor/czmq-ffi-gen/commit/d5172ab6db64999c50ba24f71569acf1dd45af51))
324
- * [x] support multiple versions of CZMQ
325
- * [x] CZMQ HEAD
326
- * [x] test on CI
327
- * [x] CZMQ 3.0.2 (current stable)
328
- * no `zcert_meta_unset()` ([zeromq/czmq#1246](https://github.com/zeromq/czmq/issues/1246))
329
- * [x] adapt czmq-ffi-gen so it doesn't raise while `attach_function`
330
- * no `zproc`(especially no `zproc_has_curve()`)
331
- * [x] adapt czmq-ffi-gen so it doesn't raise while `attach_function`, attach `zsys_has_curve()` instead (under same name)
332
- * [x] adapt test suite to skip affected test examples
333
- * [x] test on CI
334
- * as of March, 2016, this isn't the case anymore
335
- * [x] port [Poller](http://www.rubydoc.info/gems/cztop/CZTop/Poller) to `zmq_poll()`
336
- * backwards compatible (`#add_reader`, `#add_writer`, `#wait` behave the same)
337
- * but in addition, it has `#readables` and `#writables` which return arrays of sockets
338
- * could then be used in Celluloid::ZMQ
339
- * [ ] add `Message#to_s`
340
- * return frame as string, if there's only one frame
341
- * raise if there are multiple frames
342
- * only safe to use on messages from SERVER/CLIENT sockets
343
- * single-part messages are the future
344
- * not sure yet
345
- * [x] get rid of Loop
346
- * cannot handle CLIENT/SERVER sockets
347
- * there good timer gems for Ruby
348
- * Poller can be used to embed in an existing event loop (Celluloid), or make your own trivial one
349
- * [x] provide `z85encode` and `z85decode` utilities
350
- * can be used in a pipeline (limited memory usage)
351
- * reusable interface: `Z85::Pipe`
352
-
353
- ## Reasons
354
-
355
- Why another CZMQ Ruby binding? Here is a list of existing projects I found and
356
- the issues with them, from my point of view:
357
-
358
- * [Asmod4n/ruby-ffi-czmq](https://github.com/Asmod4n/ruby-ffi-czmq)
359
- * outdated
360
- * according to its author, it's an "abomination"
361
- * [methodmissing/rbczmq](https://github.com/methodmissing/rbczmq)
362
- * no support for security features (see [methodmissing/rbczmq#28](https://github.com/methodmissing/rbczmq/issues/28))
363
- * no JRuby support (see [methodmissing/rbczmq#48](https://github.com/methodmissing/rbczmq/issues/48))
364
- * doesn't feel like Ruby
365
- * [mtortonesi/ruby-czmq](https://github.com/mtortonesi/ruby-czmq)
366
- * no tests
367
- * no documentation
368
- * outdated
369
- * doesn't feel like Ruby
370
- * [chuckremes/ffi-rzmq](https://github.com/chuckremes/ffi-rzmq)
371
- * support discontinued
372
- * low level ZMQ gem, not CZMQ
373
-
374
- Furthermore, I knew about the generated low-level Ruby FFI binding in the
375
- [zeromq/czmq](https://github.com/zeromq/czmq) repository. I wanted to make use
376
- of it because I love that it's generated (and thus, most likely correct
377
- and up-to-date). Unfortunately, it was in pretty bad shape and missing a few
378
- CZMQ classes.
379
-
380
- So I decided to improve the quality and usability of the binding and add the
381
- missing classes. The result is
382
- [czmq-ffi-gen](https://github.com/paddor/czmq-ffi-gen) which provides a solid
383
- foundation for CZTop.
175
+ See the [examples](https://gitlab.com/paddor/cztop/blob/master/examples) directory for some examples.
384
176
 
385
177
 
386
178
  ## Contributing
@@ -2,7 +2,7 @@
2
2
  set -e
3
3
  mkdir -p vendor
4
4
  cd vendor
5
- git clone --depth 1 https://github.com/paddor/czmq-ffi-gen
5
+ git clone --depth 1 https://gitlab.com/paddor/czmq-ffi-gen
6
6
  cd czmq-ffi-gen
7
7
  ci-scripts/install-libzmq
8
8
  ci-scripts/install-libczmq
@@ -18,10 +18,10 @@ Gem::Specification.new do |spec|
18
18
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_runtime_dependency "czmq-ffi-gen", "~> 0.15.0"
21
+ spec.add_runtime_dependency "czmq-ffi-gen", "~> 0.16"
22
22
 
23
- spec.add_development_dependency "bundler", "~> 1.10"
24
- spec.add_development_dependency "rake", "~> 10.0"
23
+ spec.add_development_dependency "bundler"
24
+ spec.add_development_dependency "rake"
25
25
  spec.add_development_dependency "rspec"
26
26
  spec.add_development_dependency "minitest"
27
27
  spec.add_development_dependency "rspec-given", "~> 3.8.0"
@@ -8,7 +8,7 @@ module CZTop
8
8
  # Warns if CURVE security isn't available.
9
9
  # @return [void]
10
10
  def self.check_curve_availability
11
- return if Zproc.has_curve
11
+ return if Zsys.has_curve
12
12
  warn "CZTop: CURVE isn't available. Consider installing libsodium."
13
13
  end
14
14
 
@@ -9,8 +9,9 @@ module CZTop
9
9
 
10
10
  extend ::FFI::Library
11
11
  lib_name = 'libzmq'
12
- lib_paths = ['/usr/local/lib', '/opt/local/lib', '/usr/lib64']
13
- .map { |path| "#{path}/#{lib_name}.#{::FFI::Platform::LIBSUFFIX}" }
12
+ lib_dirs = ['/usr/local/lib', '/opt/local/lib', '/usr/lib64']
13
+ lib_dirs = [*ENV['LIBZMQ_PATH'].split(':'), *lib_dirs] if ENV['LIBZMQ_PATH']
14
+ lib_paths = lib_dirs.map { |path| "#{path}/#{lib_name}.#{::FFI::Platform::LIBSUFFIX}" }
14
15
  ffi_lib lib_paths + [lib_name]
15
16
 
16
17
  # This represents a +zmq_poller_event_t+ as in:
@@ -1,3 +1,3 @@
1
1
  module CZTop
2
- VERSION = "0.13.1"
2
+ VERSION = "0.14.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cztop
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.1
4
+ version: 0.14.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Patrik Wenger
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-03-04 00:00:00.000000000 Z
11
+ date: 2019-11-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: czmq-ffi-gen
@@ -16,42 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.15.0
19
+ version: '0.16'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.15.0
26
+ version: '0.16'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '1.10'
33
+ version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '1.10'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '10.0'
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '10.0'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -216,8 +216,8 @@ extensions: []
216
216
  extra_rdoc_files: []
217
217
  files:
218
218
  - ".gitignore"
219
+ - ".gitlab-ci.yml"
219
220
  - ".rspec"
220
- - ".travis.yml"
221
221
  - ".yardopts"
222
222
  - AUTHORS
223
223
  - CHANGES.md
@@ -302,8 +302,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
302
302
  - !ruby/object:Gem::Version
303
303
  version: '0'
304
304
  requirements: []
305
- rubyforge_project:
306
- rubygems_version: 2.6.8
305
+ rubygems_version: 3.0.6
307
306
  signing_key:
308
307
  specification_version: 4
309
308
  summary: CZMQ Ruby binding, based on the generated low-level FFI bindings of CZMQ
@@ -1,37 +0,0 @@
1
- language: ruby
2
- dist: trusty
3
- sudo: false
4
- cache:
5
- directories:
6
- - $HOME/.ccache
7
- - $HOME/.bundle
8
- rvm:
9
- - 2.4.2
10
- - 2.3.5
11
- - 2.2.8
12
- - jruby-head
13
- - rubinius-3.86
14
- env:
15
- # NOTE: These are recognized by czmq-ffi-gen's CI scripts.
16
- - CZMQ_VERSION=HEAD ZMQ_VERSION=HEAD
17
- - CZMQ_VERSION=stable ZMQ_VERSION=stable
18
- matrix:
19
- exclude:
20
- - rvm: 2.3.5
21
- env: CZMQ_VERSION=HEAD ZMQ_VERSION=HEAD
22
- - rvm: 2.2.8
23
- env: CZMQ_VERSION=HEAD ZMQ_VERSION=HEAD
24
- - rvm: jruby-head
25
- env: CZMQ_VERSION=HEAD ZMQ_VERSION=HEAD
26
- - rvm: rubinius-3.86
27
- env: CZMQ_VERSION=HEAD ZMQ_VERSION=HEAD
28
- allow_failures:
29
- - rvm: rubinius-3.86
30
- before_install:
31
- - PATH="/usr/lib/ccache:$PATH" # enable ccache
32
- - export LD_LIBRARY_PATH=$HOME/lib # custom libs (for execution)
33
- - export PKG_CONFIG_PATH=$HOME/lib/pkgconfig # custom libs (for linking)
34
- - export BUNDLE_PATH=$HOME/.bundle # bundle caching
35
- - ci-scripts/install-deps
36
- - gem install bundler -v 1.10.6
37
- script: bundle exec rake spec