summaryrefslogtreecommitdiff
path: root/gnu/packages/ruby.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/ruby.scm')
-rw-r--r--gnu/packages/ruby.scm258
1 files changed, 258 insertions, 0 deletions
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index b15e1a2717..ee5d20955c 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -36,6 +36,7 @@
#:use-module (gnu packages autotools)
#:use-module (gnu packages java)
#:use-module (gnu packages libffi)
+ #:use-module (gnu packages networking)
#:use-module (gnu packages python)
#:use-module (gnu packages ragel)
#:use-module (gnu packages tls)
@@ -280,6 +281,62 @@ an extensible architecture with a swappable backend.")
(home-page "https://github.com/svenfuchs/i18n")
(license license:expat)))
+(define-public ruby-iruby
+ (package
+ (name "ruby-iruby")
+ (version "0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "iruby" version))
+ (sha256
+ (base32
+ "1wdf2c0x8y6cya0n3y0p3p7b1sxkb2fdavdn2k58rf4rs37s7rzn"))))
+ (build-system ruby-build-system)
+ (arguments
+ ;; TODO: Tests currently fail.
+ ;;
+ ;; Finished in 1.764405s, 1.1335 runs/s, 5.1009 assertions/s.
+ ;;
+ ;; 1) Failure:
+ ;; IntegrationTest#test_interaction [/tmp/guix-build-ruby-iruby-0.3.drv-0/gem/test/integration_test.rb:25]:
+ ;; In [ expected
+ ;;
+ ;; 2 runs, 9 assertions, 1 failures, 0 errors, 0 skips
+ '(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-ipython
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "lib/iruby/command.rb"
+ (("version = `")
+ (string-append
+ "version = `"
+ (assoc-ref inputs "python-ipython")
+ "/bin/"))
+ (("Kernel\\.exec\\('")
+ (string-append
+ "Kernel.exec('"
+ (assoc-ref inputs "python-ipython")
+ "/bin/")))
+ #t)))))
+ (inputs
+ `(("python-ipython" ,python-ipython)))
+ (propagated-inputs
+ `(("ruby-bond" ,ruby-bond)
+ ("ruby-data_uri" ,ruby-data_uri)
+ ("ruby-mimemagic" ,ruby-mimemagic)
+ ("ruby-multi-json" ,ruby-multi-json)
+ ("ruby-cztop" ,ruby-cztop)
+ ;; Optional inputs
+ ("ruby-pry" ,ruby-pry)))
+ (synopsis "Ruby kernel for Jupyter/IPython")
+ (description
+ "This package provides a Ruby kernel for Jupyter/IPython frontends (e.g.
+notebook).")
+ (home-page "https://github.com/SciRuby/iruby")
+ (license license:expat)))
+
;; RSpec is the dominant testing library for Ruby projects. Even RSpec's
;; dependencies use RSpec for their test suites! To avoid these circular
;; dependencies, we disable tests for all of the RSpec-related packages.
@@ -635,6 +692,84 @@ format.")
(home-page "https://github.com/nicksieger/ci_reporter")
(license license:expat)))
+(define-public ruby-czmq-ffi-gen
+ (package
+ (name "ruby-czmq-ffi-gen")
+ (version "0.13.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "czmq-ffi-gen" version))
+ (sha256
+ (base32
+ "1yf719dmf4mwks1hqdsy6i5kzfvlsha69sfnhb2fr2cgk2snbys3"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:tests? #f ;; Tests are not included in the release on rubygems.org
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-lib_dirs
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "lib/czmq-ffi-gen/czmq/ffi.rb"
+ (("lib\\_dirs = \\[.*\\]")
+ (string-append "lib_dirs = ['"
+ (assoc-ref inputs "czmq") "/lib"
+ "']")))
+ (substitute* "lib/czmq-ffi-gen/libzmq.rb"
+ (("lib\\_dirs = \\[.*\\]")
+ (string-append "lib_dirs = ['"
+ (assoc-ref inputs "zeromq") "/lib"
+ "']"))))))))
+ (inputs
+ `(("zeromq" ,zeromq)
+ ("czmq" ,czmq)))
+ (propagated-inputs `(("ruby-ffi" ,ruby-ffi)))
+ (synopsis "Low-level Ruby bindings for CZMQ (generated using zproject)")
+ (description
+ "These Ruby bindings are not intended to be directly used, but rather
+used by higher level bindings like those provided by CZTop.")
+ (home-page
+ "https://github.com/paddor/czmq-ffi-gen")
+ (license license:isc)))
+
+(define-public ruby-cztop
+ (package
+ (name "ruby-cztop")
+ (version "0.12.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "cztop" version))
+ (sha256
+ (base32
+ "0yqbpaiw5d7f271d73lyrsh8xpx6n4zi6xqwfgi00dacxrq3s3fa"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:test-target "spec"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-lib_paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "lib/cztop/poller/zmq.rb"
+ (("lib\\_paths = \\[.*\\]")
+ (string-append "lib_paths = ['"
+ (assoc-ref inputs "zeromq") "/lib"
+ "']"))))))))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-rspec" ,ruby-rspec)))
+ (inputs
+ `(("zeromq" ,zeromq)))
+ (propagated-inputs
+ `(("ruby-czmq-ffi-gen" ,ruby-czmq-ffi-gen)))
+ (synopsis "CZMQ Ruby bindings")
+ (description
+ "CZMQ Ruby bindings, based on the generated low-level FFI bindings of
+CZMQ. The focus of of CZTop is on being easy to use and providing first class
+support for security mechanisms.")
+ (home-page "https://github.com/paddor/cztop")
+ (license license:isc)))
+
(define-public ruby-saikuro-treemap
(package
(name "ruby-saikuro-treemap")
@@ -1094,6 +1229,30 @@ features.")
(home-page "https://github.com/chneukirchen/bacon")
(license license:expat)))
+(define-public ruby-bacon-bits
+ (package
+ (name "ruby-bacon-bits")
+ (version "0.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "bacon-bits" version))
+ (sha256
+ (base32
+ "1ghpj8ja94lhi8rgi872hqk4fd2amz2k7g9znd64z5dj7v6l0dmx"))))
+ (build-system ruby-build-system)
+ (arguments
+ ;; No tests
+ '(#:tests? #f))
+ (propagated-inputs `(("ruby-bacon" ,ruby-bacon)))
+ (synopsis "Extensions to Bacon, for disabling tests, before and after
+blocks and more")
+ (description
+ "This extends the bacon testing framework with useful extensions to
+disable tests, have before and after blocks that run once and more.")
+ (home-page "https://github.com/cldwalker/bacon-bits")
+ (license license:expat)))
+
(define-public ruby-connection-pool
(package
(name "ruby-connection-pool")
@@ -1337,6 +1496,34 @@ as a base class when writing classes that depend upon
(home-page "https://github.com/masover/blankslate")
(license license:expat)))
+(define-public ruby-bond
+ (package
+ (name "ruby-bond")
+ (version "0.5.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "bond" version))
+ (sha256
+ (base32
+ "1r19ifc4skyl2gxnifrxa5jvbbay9fb2in79ppgv02b6n4bhsw90"))))
+ (build-system ruby-build-system)
+ (native-inputs
+ `(("ruby-bacon" ,ruby-bacon)
+ ("ruby-bacon-bits" ,ruby-bacon-bits)
+ ("ruby-mocha-on-bacon" ,ruby-mocha-on-bacon)))
+ (synopsis "Bond can provide custom autocompletion for arguments, methods
+and more")
+ (description
+ "Bond can autocomplete argument(s) to methods, uniquely completing per
+module, per method and per argument. Bond provides a configuration system and
+a DSL for creating custom completions and completion rules. Bond can also
+load completions that ship with gems. Bond is able to offer more than irb's
+completion since it uses the full line of input when completing as opposed to
+irb's last-word approach.")
+ (home-page "http://tagaholic.me/bond/")
+ (license license:expat)))
+
(define-public ruby-instantiator
(package
(name "ruby-instantiator")
@@ -1502,6 +1689,30 @@ allows mocking and stubbing of methods on real (non-mock) classes.")
(home-page "http://gofreerange.com/mocha/docs")
(license license:expat)))
+(define-public ruby-mocha-on-bacon
+ (package
+ (name "ruby-mocha-on-bacon")
+ (version "0.2.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "mocha-on-bacon" version))
+ (sha256
+ (base32
+ "1h49b33rq889hn8x3wp9byczl91va16jh1w4d2wyy4yj23icdrcp"))))
+ (build-system ruby-build-system)
+ (arguments
+ ;; rubygems.org release missing tests
+ '(#:tests? #f))
+ (propagated-inputs `(("ruby-mocha" ,ruby-mocha)))
+ (synopsis "Mocha adapter for Bacon")
+ (description
+ "This package provides a Mocha adapter for Bacon, allowing you to use the
+Mocha stubbing and mocking library with Bacon, a small RSpec clone.")
+ (home-page
+ "https://github.com/alloy/mocha-on-bacon")
+ (license license:expat)))
+
(define-public ruby-net-ssh
(package
(name "ruby-net-ssh")
@@ -1810,6 +2021,26 @@ run as a daemon and to be controlled by simple start/stop/restart commands.")
(home-page "https://github.com/thuehlinger/daemons")
(license license:expat)))
+(define-public ruby-data_uri
+ (package
+ (name "ruby-data_uri")
+ (version "0.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "data_uri" version))
+ (sha256
+ (base32
+ "0fzkxgdxrlbfl4537y3n9mjxbm28kir639gcw3x47ffchwsgdcky"))))
+ (build-system ruby-build-system)
+ (synopsis "URI class for parsing data URIs")
+ (description
+ "Data @acronym{URI, universal resource idenfitier}s allow resources to be
+embedded inside a URI. The URI::Data class provides support for parsing these
+URIs using the normal URI.parse method.")
+ (home-page "https://github.com/dball/data_uri")
+ (license license:expat)))
+
(define-public ruby-git
(package
(name "ruby-git")
@@ -3328,6 +3559,33 @@ that TURN is no longer being maintained.")
(home-page "http://rubygems.org/gems/turn")
(license license:expat)))
+(define-public ruby-mimemagic
+ (package
+ (name "ruby-mimemagic")
+ (version "0.3.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "mimemagic" version))
+ (sha256
+ (base32
+ "00ibc1mhvdfyfyl103xwb45621nwyqxf124cni5hyfhag0fn1c3q"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; This phase breaks the tests, as it patches some of the test data.
+ (delete 'patch-source-shebangs))))
+ (native-inputs
+ `(("ruby-bacon" ,ruby-bacon)))
+ (synopsis "Ruby library for MIME detection by extension or content")
+ (description
+ "@acronym{MIME, Multipurpose Internet Mail Extensions} detection by
+extension or content, using the freedesktop.org.xml shared-mime-info
+database.")
+ (home-page "https://github.com/minad/mimemagic")
+ (license license:expat)))
+
(define-public ruby-mime-types-data
(package
(name "ruby-mime-types-data")