You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
9776 lines
345 KiB
9776 lines
345 KiB
;;; GNU Guix --- Functional package management for GNU
|
|
;;; Copyright © 2014, 2015 Pjotr Prins <pjotr.guix@thebird.nl>
|
|
;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
|
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
|
|
;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org>
|
|
;;; Copyright © 2015, 2019 Ricardo Wurmus <rekado@elephly.net>
|
|
;;; Copyright © 2015, 2016, 2017 Ben Woodcroft <donttrustben@gmail.com>
|
|
;;; Copyright © 2017 Nikita <nikita@n0.is>
|
|
;;; Copyright © 2017, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
|
|
;;; Copyright © 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
|
|
;;; Copyright © 2017, 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
|
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
|
|
;;; Copyright © 2017, 2018, 2019 Christopher Baines <mail@cbaines.net>
|
|
;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
|
|
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
|
|
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
|
;;; Copyright © 2019 Mikhail Kirillov <w96k.ru@gmail.com>
|
|
;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
|
|
;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com>
|
|
;;; Copyright © 2019 Collin J. Doering <collin@rekahsoft.ca>
|
|
;;; Copyright © 2019 Diego N. Barbato <dnbarbato@posteo.de>
|
|
;;; Copyright © 2019 Brett Gilio <brettg@posteo.de>
|
|
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
|
;;;
|
|
;;; This file is part of GNU Guix.
|
|
;;;
|
|
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
|
;;; under the terms of the GNU General Public License as published by
|
|
;;; the Free Software Foundation; either version 3 of the License, or (at
|
|
;;; your option) any later version.
|
|
;;;
|
|
;;; GNU Guix is distributed in the hope that it will be useful, but
|
|
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
;;; GNU General Public License for more details.
|
|
;;;
|
|
;;; You should have received a copy of the GNU General Public License
|
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
(define-module (gnu packages ruby)
|
|
#:use-module ((guix licenses) #:prefix license:)
|
|
#:use-module (gnu packages)
|
|
#:use-module (gnu packages base)
|
|
#:use-module (gnu packages bison)
|
|
#:use-module (gnu packages c)
|
|
#:use-module (gnu packages check)
|
|
#:use-module (gnu packages compression)
|
|
#:use-module (gnu packages crypto)
|
|
#:use-module (gnu packages databases)
|
|
#:use-module (gnu packages dbm)
|
|
#:use-module (gnu packages rails)
|
|
#:use-module (gnu packages readline)
|
|
#:use-module (gnu packages autotools)
|
|
#:use-module (gnu packages java)
|
|
#:use-module (gnu packages libffi)
|
|
#:use-module (gnu packages libidn)
|
|
#:use-module (gnu packages linux)
|
|
#:use-module (gnu packages lsof)
|
|
#:use-module (gnu packages maths)
|
|
#:use-module (gnu packages ncurses)
|
|
#:use-module (gnu packages networking)
|
|
#:use-module (gnu packages node)
|
|
#:use-module (gnu packages python)
|
|
#:use-module (gnu packages python-xyz)
|
|
#:use-module (gnu packages ragel)
|
|
#:use-module (gnu packages rsync)
|
|
#:use-module (gnu packages sqlite)
|
|
#:use-module (gnu packages tls)
|
|
#:use-module (gnu packages version-control)
|
|
#:use-module (guix packages)
|
|
#:use-module (guix download)
|
|
#:use-module (guix git-download)
|
|
#:use-module (guix utils)
|
|
#:use-module (guix build-system gnu)
|
|
#:use-module (gnu packages xml)
|
|
#:use-module (gnu packages web)
|
|
#:use-module (guix build-system ruby)
|
|
#:use-module ((srfi srfi-1) #:select (alist-delete)))
|
|
|
|
(define-public ruby
|
|
(package
|
|
(name "ruby")
|
|
(version "2.6.5")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append "http://cache.ruby-lang.org/pub/ruby/"
|
|
(version-major+minor version)
|
|
"/ruby-" version ".tar.xz"))
|
|
(sha256
|
|
(base32
|
|
"0qhsw2mr04f3lqinkh557msr35pb5rdaqy4vdxcj91flgxqxmmnm"))
|
|
(modules '((guix build utils)))
|
|
(snippet `(begin
|
|
;; Remove bundled libffi
|
|
(delete-file-recursively "ext/fiddle/libffi-3.2.1")
|
|
#t))))
|
|
(build-system gnu-build-system)
|
|
(arguments
|
|
`(#:test-target "test"
|
|
#:configure-flags '("--enable-shared") ; dynamic linking
|
|
#:phases
|
|
(modify-phases %standard-phases
|
|
(add-before 'configure 'replace-bin-sh-and-remove-libffi
|
|
(lambda _
|
|
(substitute* '("Makefile.in"
|
|
"ext/pty/pty.c"
|
|
"io.c"
|
|
"lib/mkmf.rb"
|
|
"process.c"
|
|
"test/rubygems/test_gem_ext_configure_builder.rb"
|
|
"test/rdoc/test_rdoc_parser.rb"
|
|
"test/ruby/test_rubyoptions.rb"
|
|
"test/ruby/test_process.rb"
|
|
"test/ruby/test_system.rb"
|
|
"tool/rbinstall.rb")
|
|
(("/bin/sh") (which "sh")))
|
|
#t)))))
|
|
(inputs
|
|
`(("readline" ,readline)
|
|
("openssl" ,openssl)
|
|
("libffi" ,libffi)
|
|
("gdbm" ,gdbm)))
|
|
(propagated-inputs
|
|
`(("zlib" ,zlib)))
|
|
(native-search-paths
|
|
(list (search-path-specification
|
|
(variable "GEM_PATH")
|
|
(files (list (string-append "lib/ruby/vendor_ruby"))))))
|
|
(synopsis "Programming language interpreter")
|
|
(description "Ruby is a dynamic object-oriented programming language with
|
|
a focus on simplicity and productivity.")
|
|
(home-page "https://www.ruby-lang.org")
|
|
(license license:ruby)))
|
|
|
|
(define-public ruby-2.7
|
|
(package
|
|
(inherit ruby)
|
|
(version "2.7.1")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append "http://cache.ruby-lang.org/pub/ruby/"
|
|
(version-major+minor version)
|
|
"/ruby-" version ".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"0674x98f542y02r7n2yv2qhmh97blqhi2mvh2dn5f000vlxlh66l"))
|
|
(modules '((guix build utils)))
|
|
(snippet `(begin
|
|
;; Remove bundled libffi
|
|
(delete-file-recursively "ext/fiddle/libffi-3.2.1")
|
|
#t))))
|
|
(arguments
|
|
`(#:test-target "test"
|
|
#:configure-flags '("--enable-shared") ; dynamic linking
|
|
#:phases
|
|
(modify-phases %standard-phases
|
|
(add-before 'configure 'replace-bin-sh-and-remove-libffi
|
|
(lambda _
|
|
(substitute* '("configure.ac"
|
|
"template/Makefile.in"
|
|
"lib/rubygems/installer.rb"
|
|
"ext/pty/pty.c"
|
|
"io.c"
|
|
"lib/mkmf.rb"
|
|
"process.c"
|
|
"test/rubygems/test_gem_ext_configure_builder.rb"
|
|
"test/rdoc/test_rdoc_parser.rb"
|
|
"test/ruby/test_rubyoptions.rb"
|
|
"test/ruby/test_process.rb"
|
|
"test/ruby/test_system.rb"
|
|
"tool/rbinstall.rb")
|
|
(("/bin/sh") (which "sh")))
|
|
#t)))))
|
|
(native-inputs
|
|
`(("autoconf" ,autoconf)))))
|
|
|
|
(define-public ruby-2.5
|
|
(package
|
|
(inherit ruby)
|
|
(version "2.5.8")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append "http://cache.ruby-lang.org/pub/ruby/"
|
|
(version-major+minor version)
|
|
"/ruby-" version ".tar.xz"))
|
|
(sha256
|
|
(base32
|
|
"0vad5ah1lrdhxsyqr5iqc8c7r7qczpmm76cz8rsf4crimpzv5483"))
|
|
(modules '((guix build utils)))
|
|
(snippet `(begin
|
|
;; Remove bundled libffi
|
|
(delete-file-recursively "ext/fiddle/libffi-3.2.1")
|
|
#t))))))
|
|
|
|
(define-public ruby-2.4
|
|
(package
|
|
(inherit ruby)
|
|
(version "2.4.10")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append "http://cache.ruby-lang.org/pub/ruby/"
|
|
(version-major+minor version)
|
|
"/ruby-" version ".tar.xz"))
|
|
(sha256
|
|
(base32
|
|
"1prhqlgik1zmw9lakl6hkriqslspw48pvhxff17h7ns42p8qwrnm"))
|
|
(modules '((guix build utils)))
|
|
(snippet `(begin
|
|
;; Remove bundled libffi
|
|
(delete-file-recursively "ext/fiddle/libffi-3.2.1")
|
|
#t))))))
|
|
|
|
(define-public mruby
|
|
(package
|
|
(name "mruby")
|
|
(version "2.0.0")
|
|
(source
|
|
(origin
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "https://github.com/mruby/mruby.git")
|
|
(commit version)))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32
|
|
"1r6w1asjshff43ymdwa6xmrkggza99mi2kw88k7ic6ag2j81hcj5"))))
|
|
(build-system gnu-build-system)
|
|
(arguments
|
|
`(#:test-target "test"
|
|
#:phases
|
|
(modify-phases %standard-phases
|
|
(delete 'configure)
|
|
(add-after 'unpack 'enable-verbose-tests
|
|
(lambda _
|
|
(substitute* "Makefile"
|
|
(("ruby ./minirake" m)
|
|
(string-append m " --verbose")))
|
|
#t))
|
|
(add-after 'unpack 'disable-broken-tests
|
|
(lambda _
|
|
(substitute* "mrbgems/mruby-io/test/io.rb"
|
|
(("assert\\('IO.popen.+$" m)
|
|
(string-append m "skip \"Hangs in the Guix build environment\"\n"))
|
|
(("assert\\('IO#isatty.+$" m)
|
|
(string-append m "skip \"Disable for Guix; there is no /dev/tty\"\n"))
|
|
;; This one is really weird. The *expected* output is all wrong.
|
|
(("assert\\('`cmd`.*" m)
|
|
(string-append m "skip \"Disable for Guix\"\n"))
|
|
(("echo foo")
|
|
(string-append (which "echo") " foo")))
|
|
#t))
|
|
;; There is no install target
|
|
(replace 'install
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
(let* ((out (assoc-ref outputs "out"))
|
|
(bin (string-append out "/bin"))
|
|
(lib (string-append out "/lib")))
|
|
(mkdir-p bin)
|
|
(copy-recursively "build/host/bin" bin)
|
|
(mkdir-p lib)
|
|
(copy-recursively "build/host/lib" lib))
|
|
#t)))))
|
|
(native-inputs
|
|
`(("ruby" ,ruby)
|
|
("bison" ,bison)))
|
|
(home-page "https://github.com/mruby/mruby")
|
|
(synopsis "Lightweight Ruby")
|
|
(description "mruby is the lightweight implementation of the Ruby
|
|
language. Its syntax is Ruby 1.9 compatible. mruby can be linked and
|
|
embedded within your application.")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-commander
|
|
(package
|
|
(name "ruby-commander")
|
|
(version "4.4.7")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "commander" version))
|
|
(sha256
|
|
(base32
|
|
"1pxakz596fjqak3cdbha6iva1dlqis86i3kjrgg6lf3sp8i5vhwg"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
`(#:test-target "spec"
|
|
#:phases
|
|
(modify-phases %standard-phases
|
|
;; Don't run or require rubocop, the code linting tool, as this is a
|
|
;; bit unnecessary.
|
|
(add-after 'unpack 'dont-run-rubocop
|
|
(lambda _
|
|
(substitute* "Rakefile"
|
|
((".*rubocop.*") "")
|
|
((".*RuboCop.*") ""))
|
|
#t)))))
|
|
(propagated-inputs
|
|
`(("ruby-highline" ,ruby-highline)))
|
|
(native-inputs
|
|
`(("bundler" ,bundler)
|
|
("ruby-rspec-core" ,ruby-rspec-core)
|
|
("ruby-rspec-expectations" ,ruby-rspec-expectations)
|
|
("ruby-rspec-mocks" ,ruby-rspec-mocks)
|
|
("ruby-simplecov" ,ruby-simplecov)))
|
|
(home-page "https://github.com/commander-rb/commander")
|
|
(synopsis "Library for building Ruby command-line executables")
|
|
(description
|
|
"Commander aims to be a complete solution for Ruby command-line
|
|
executables. Commander bridges the gap between other terminal related
|
|
libraries (OptionParser, HighLine), while providing many new features, and an
|
|
elegant API.")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-highline
|
|
(package
|
|
(name "ruby-highline")
|
|
(version "2.0.1")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "highline" version))
|
|
(sha256
|
|
(base32
|
|
"0gr6pckj2jayxw1gdgh9193j5jag5zrrqqlrnl4jvcwpyd3sn2zc"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
`(#:tests? #f)) ;; TODO: NameError: uninitialized constant SPEC
|
|
(native-inputs
|
|
`(("bundler" ,bundler)
|
|
("ruby-code-statistics" ,ruby-code-statistics)))
|
|
(synopsis
|
|
"HighLine helps you build command-line interfaces")
|
|
(description
|
|
"HighLine provides a high-level IO library that provides validation,
|
|
type conversion, and more for command-line interfaces. HighLine also includes
|
|
a menu system for providing multiple options to the user.")
|
|
(home-page "https://github.com/JEG2/highline")
|
|
(license (list license:gpl2 license:ruby))))
|
|
|
|
(define-public ruby-hoe
|
|
(package
|
|
(name "ruby-hoe")
|
|
(version "3.21.0")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "hoe" version))
|
|
(sha256
|
|
(base32
|
|
"0qid0n56mgsjvq5ksxajv0gb92akky8imwgvw22ajms5g4fd6nf4"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:phases
|
|
(modify-phases %standard-phases
|
|
;; One of the tests fails if the SOURCE_DATE_EPOCH environment
|
|
;; variable is set, so unset it for the duration of the tests.
|
|
;;
|
|
;; TestHoe#test_possibly_better
|
|
;; [/tmp/guix-build-ruby-hoe-3.20.0.drv-0/gem/test/test_hoe.rb:250]:
|
|
;; Expected: 2019-11-12 00:00:00 UTC
|
|
;; Actual: 1970-01-01 00:00:00 UTC
|
|
(add-before 'check 'unset-SOURCE-DATE-EPOCH
|
|
(lambda _
|
|
(unsetenv "SOURCE_DATE_EPOCH")
|
|
#t))
|
|
(add-after 'check 'set-SOURCE-DATE-EPOCH-again
|
|
(lambda _
|
|
(setenv "SOURCE_DATE_EPOCH" "1")
|
|
#t)))))
|
|
(synopsis "Ruby project management helper")
|
|
(description
|
|
"Hoe is a rake/rubygems helper for project Rakefiles. It helps manage,
|
|
maintain, and release projects and includes a dynamic plug-in system allowing
|
|
for easy extensibility. Hoe ships with plug-ins for all the usual project
|
|
tasks including rdoc generation, testing, packaging, deployment, and
|
|
announcement.")
|
|
(home-page "https://www.zenspider.com/projects/hoe.html")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-rake-compiler
|
|
(package
|
|
(name "ruby-rake-compiler")
|
|
(version "1.1.0")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "rake-compiler" version))
|
|
(sha256
|
|
(base32
|
|
"0l4hg21v0phfrfsc2hilgmwvn2imxr0byqh8dv16bya1s5d3km0q"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:tests? #f)) ; needs cucumber
|
|
(synopsis "Building and packaging helper for Ruby native extensions")
|
|
(description "Rake-compiler provides a framework for building and
|
|
packaging native C and Java extensions in Ruby.")
|
|
(home-page "https://github.com/rake-compiler/rake-compiler")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-rsync
|
|
(package
|
|
(name "ruby-rsync")
|
|
(version "1.0.9")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "rsync" version))
|
|
(sha256
|
|
(base32
|
|
"0p8b27q1gvxilqfq2528xpwglzcm2myikkjxpqk7mwbwg9r6knxv"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:test-target "spec"
|
|
#:phases
|
|
(modify-phases %standard-phases
|
|
(add-after 'unpack 'remove-coveralls-requirement
|
|
(lambda _
|
|
(substitute* "spec/spec_helper.rb"
|
|
(("require 'coveralls'") "")
|
|
(("Coveralls.wear!") ""))
|
|
#t)))))
|
|
(native-inputs
|
|
`(("bundler" ,bundler)
|
|
("rsync" ,rsync)
|
|
("ruby-rspec-core" ,ruby-rspec-core)
|
|
("ruby-rspec-expectations" ,ruby-rspec-expectations)
|
|
("ruby-rspec-mocks" ,ruby-rspec-mocks)))
|
|
(home-page "https://github.com/jbussdieker/ruby-rsync")
|
|
(synopsis "Ruby wrapper around rsync")
|
|
(description
|
|
"Ruby Rsync is a Ruby library that can synchronize files between remote
|
|
hosts by wrapping the @file{rsync} binary.")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-i18n
|
|
(package
|
|
(name "ruby-i18n")
|
|
(version "1.7.0")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "i18n" version))
|
|
(sha256
|
|
(base32
|
|
"0hmypvx9iyc0b4hski7aic2xzm09cg1c7q1qlpnk3k8s5acxzyhl"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:tests? #f)) ; no tests
|
|
(propagated-inputs `(("concurrent-ruby" ,ruby-concurrent)))
|
|
(synopsis "Internationalization library for Ruby")
|
|
(description "Ruby i18n is an internationalization and localization
|
|
solution for Ruby programs. It features translation and localization,
|
|
interpolation of values to translations, pluralization, customizable
|
|
transliteration to ASCII, flexible defaults, bulk lookup, lambdas as
|
|
translation data, custom key/scope separator, custom exception handlers, and
|
|
an extensible architecture with a swappable backend.")
|
|
(home-page "https://github.com/ruby-i18n/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.
|
|
(define-public ruby-rspec-support
|
|
(package
|
|
(name "ruby-rspec-support")
|
|
(version "3.8.0")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "rspec-support" version))
|
|
(sha256
|
|
(base32
|
|
"0p3m7drixrlhvj2zpc38b11x145bvm311x6f33jjcxmvcm0wq609"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:tests? #f)) ; avoid dependency cycles
|
|
(synopsis "RSpec support library")
|
|
(description "Support utilities for RSpec gems.")
|
|
(home-page "https://github.com/rspec/rspec-support")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-rspec-core
|
|
(package
|
|
(name "ruby-rspec-core")
|
|
(version "3.8.0")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "rspec-core" version))
|
|
(sha256
|
|
(base32
|
|
"1p1s5bnbqp3sxk67y0fh0x884jjym527r0vgmhbm81w7aq6b7l4p"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:tests? #f)) ; avoid dependency cycles
|
|
(propagated-inputs
|
|
`(("ruby-rspec-support" ,ruby-rspec-support)))
|
|
(synopsis "RSpec core library")
|
|
(description "Rspec-core provides the RSpec test runner and example
|
|
groups.")
|
|
(home-page "https://github.com/rspec/rspec-core")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-rspec-core-2
|
|
(package (inherit ruby-rspec-core)
|
|
(version "2.14.8")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "rspec-core" version))
|
|
(sha256
|
|
(base32
|
|
"0psjy5kdlz3ph39br0m01w65i1ikagnqlg39f8p65jh5q7dz8hwc"))))
|
|
(propagated-inputs `())))
|
|
|
|
(define-public ruby-diff-lcs
|
|
(package
|
|
(name "ruby-diff-lcs")
|
|
(version "1.3")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "diff-lcs" version))
|
|
(sha256
|
|
(base32
|
|
"18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:tests? #f)) ; avoid dependency cycles
|
|
(synopsis "Compute the difference between two Enumerable sequences")
|
|
(description "Diff::LCS computes the difference between two Enumerable
|
|
sequences using the McIlroy-Hunt longest common subsequence (LCS) algorithm.
|
|
It includes utilities to create a simple HTML diff output format and a
|
|
standard diff-like tool.")
|
|
(home-page "https://github.com/halostatue/diff-lcs")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-rspec-expectations
|
|
(package
|
|
(name "ruby-rspec-expectations")
|
|
(version "3.8.2")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "rspec-expectations" version))
|
|
(sha256
|
|
(base32
|
|
"18l21hy1zdc2pgc2yb17k3n2al1khpfr0z6pijlm852iz6vj0dkm"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:tests? #f)) ; avoid dependency cycles
|
|
(propagated-inputs
|
|
`(("ruby-rspec-support" ,ruby-rspec-support)
|
|
("ruby-diff-lcs" ,ruby-diff-lcs)))
|
|
(synopsis "RSpec expectations library")
|
|
(description "Rspec-expectations provides a simple API to express expected
|
|
outcomes of a code example.")
|
|
(home-page "https://github.com/rspec/rspec-expectations")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-rspec-expectations-2
|
|
(package (inherit ruby-rspec-expectations)
|
|
(version "2.14.5")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "rspec-expectations" version))
|
|
(sha256
|
|
(base32
|
|
"1ni8kw8kjv76jvwjzi4jba00k3qzj9f8wd94vm6inz0jz3gwjqf9"))))
|
|
(propagated-inputs
|
|
`(("ruby-diff-lcs" ,ruby-diff-lcs)))))
|
|
|
|
(define-public ruby-rspec-its
|
|
(package
|
|
(name "ruby-rspec-its")
|
|
(version "1.3.0")
|
|
(source
|
|
(origin
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "https://github.com/rspec/rspec-its.git")
|
|
(commit (string-append "v" version))))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32
|
|
"02mlsc9d4d1cjj5vahi8v3q8hyn9fyiv8nnlidhgfh186qp20g1p"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
`(#:test-target "spec"
|
|
#:phases
|
|
(modify-phases %standard-phases
|
|
(add-after 'unpack 'dont-install-gems-from-gemfile
|
|
(lambda _
|
|
(substitute* "Gemfile"
|
|
(("rspec rspec-core rspec-expectations rspec-mocks rspec-support")
|
|
""))
|
|
#t))
|
|
(add-before 'build 'loosen-ffi-requirement
|
|
(lambda _
|
|
;; Accept any version of ruby-ffi.
|
|
(substitute* "Gemfile"
|
|
((" gem 'ffi', '~> 1\\.9\\.25'")
|
|
" gem 'ffi'"))
|
|
#t))
|
|
(add-before 'build 'remove-unnecessary-dependency-versions-from-gemfile
|
|
(lambda _
|
|
(substitute* "rspec-its.gemspec"
|
|
(("rake.*") "rake'\n")
|
|
(("spec.add_development_dependency 'cucumber'.*")
|
|
"spec.add_development_dependency 'cucumber'\n")
|
|
(("bundler.*") "bundler'\n")
|
|
(("\"aruba.*") "'aruba'\n"))
|
|
#t)))))
|
|
(propagated-inputs
|
|
`(("ruby-rspec-core" ,ruby-rspec-core)
|
|
("ruby-rspec-expectations" ,ruby-rspec-expectations)))
|
|
(native-inputs
|
|
`(("bundler" ,bundler)
|
|
("ruby-cucumber" ,ruby-cucumber)
|
|
("ruby-ffi" ,ruby-ffi)
|
|
("ruby-aruba" ,ruby-aruba)))
|
|
(synopsis "RSpec extension that provides the @code{its} method")
|
|
(description
|
|
"RSpec::Its provides the its method as a short-hand to specify the expected
|
|
value of an attribute. For example, one can use @code{its(:size)\\{should
|
|
eq(1)\\}}.")
|
|
(home-page "https://github.com/rspec/rspec-its")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-rspec-mocks
|
|
(package
|
|
(name "ruby-rspec-mocks")
|
|
(version "3.8.0")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "rspec-mocks" version))
|
|
(sha256
|
|
(base32
|
|
"06y508cjqycb4yfhxmb3nxn0v9xqf17qbd46l1dh4xhncinr4fyp"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:tests? #f)) ; avoid dependency cycles
|
|
(propagated-inputs
|
|
`(("ruby-rspec-support" ,ruby-rspec-support)
|
|
("ruby-diff-lcs" ,ruby-diff-lcs)))
|
|
(synopsis "RSpec stubbing and mocking library")
|
|
(description "Rspec-mocks provides RSpec's \"test double\" framework, with
|
|
support for stubbing and mocking.")
|
|
(home-page "https://github.com/rspec/rspec-mocks")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-rspec-mocks-2
|
|
(package (inherit ruby-rspec-mocks)
|
|
(version "2.14.6")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "rspec-mocks" version))
|
|
(sha256
|
|
(base32
|
|
"1fwsmijd6w6cmqyh4ky2nq89jrpzh56hzmndx9wgkmdgfhfakv30"))))
|
|
(propagated-inputs
|
|
`(("ruby-diff-lcs" ,ruby-diff-lcs)))))
|
|
|
|
(define-public ruby-rspec-rerun
|
|
(package
|
|
(name "ruby-rspec-rerun")
|
|
(version "1.1.0")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "rspec-rerun" version))
|
|
(sha256
|
|
(base32
|
|
"1gy7znkcaqhpccfnk2nvaqbsvgxy3q57cmjwkl9fi1zabaq5lbkj"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(;; No included tests
|
|
#:tests? #f))
|
|
(propagated-inputs `(("ruby-rspec" ,ruby-rspec)))
|
|
(synopsis "Track failed RSpec tests to re-run them")
|
|
(description
|
|
"This package provides an automated way to track, and then re-run failed
|
|
RSpec tests.")
|
|
(home-page "https://github.com/dblock/rspec-rerun")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-rspec-wait
|
|
(package
|
|
(name "ruby-rspec-wait")
|
|
(version "0.0.9")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "rspec-wait" version))
|
|
(sha256
|
|
(base32
|
|
"0gvj1bp5ccx001dyvcgk2j49s5sl6vs9fdaqqb08z3bd1554hsww"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:phases
|
|
(modify-phases %standard-phases
|
|
(replace 'check
|
|
(lambda _
|
|
(invoke "rake" "spec"))))))
|
|
(native-inputs
|
|
`(("bundler" ,bundler)))
|
|
(propagated-inputs
|
|
`(("ruby-rspec" ,ruby-rspec)))
|
|
(home-page "https://github.com/laserlemon/rspec-wait")
|
|
(synopsis "Wait for conditions in RSpec")
|
|
(description
|
|
"RSpec::Wait strives to make it easier to test asynchronous or slow
|
|
interactions.")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-rspec
|
|
(package
|
|
(name "ruby-rspec")
|
|
(version "3.8.0")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "rspec" version))
|
|
(sha256
|
|
(base32
|
|
"15ppasvb9qrscwlyjz67ppw1lnxiqnkzx5vkx1bd8x5n3dhikxc3"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:tests? #f)) ; avoid dependency cycles
|
|
(propagated-inputs
|
|
`(("ruby-rspec-core" ,ruby-rspec-core)
|
|
("ruby-rspec-mocks" ,ruby-rspec-mocks)
|
|
("ruby-rspec-expectations" ,ruby-rspec-expectations)))
|
|
(synopsis "Behavior-driven development framework for Ruby")
|
|
(description "RSpec is a behavior-driven development (BDD) framework for
|
|
Ruby. This meta-package includes the RSpec test runner, along with the
|
|
expectations and mocks frameworks.")
|
|
(home-page "https://rspec.info/")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-rspec-2
|
|
(package (inherit ruby-rspec)
|
|
(version "2.14.1")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "rspec" version))
|
|
(sha256
|
|
(base32
|
|
"134y4wzk1prninb5a0bhxgm30kqfzl8dg06af4js5ylnhv2wd7sg"))))
|
|
(propagated-inputs
|
|
`(("ruby-rspec-core" ,ruby-rspec-core-2)
|
|
("ruby-rspec-mocks" ,ruby-rspec-mocks-2)
|
|
("ruby-rspec-expectations" ,ruby-rspec-expectations-2)))))
|
|
|
|
;; Bundler is yet another source of circular dependencies, so we must disable
|
|
;; its test suite as well.
|
|
(define-public bundler
|
|
(package
|
|
(name "bundler")
|
|
(version "1.17.3")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "bundler" version))
|
|
(sha256
|
|
(base32
|
|
"0ln3gnk7cls81gwsbxvrmlidsfd78s6b2hzlm4d4a9wbaidzfjxw"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:tests? #f)) ; avoid dependency cycles
|
|
(synopsis "Ruby gem bundler")
|
|
(description "Bundler automatically downloads and installs a list of gems
|
|
specified in a \"Gemfile\", as well as their dependencies.")
|
|
(home-page "https://bundler.io/")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-builder
|
|
(package
|
|
(name "ruby-builder")
|
|
(version "3.2.3")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "builder" version))
|
|
(sha256
|
|
(base32
|
|
"0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
`(#:phases
|
|
(modify-phases %standard-phases
|
|
(add-after 'unpack 'do-not-use-rvm
|
|
(lambda _
|
|
(substitute* "rakelib/tags.rake"
|
|
(("RVM_GEMDIR = .*") "RVM_GEMDIR = 'no-rvm-please'\n"))
|
|
#t)))))
|
|
(synopsis "Ruby library to create structured data")
|
|
(description "Builder provides a number of builder objects that make it
|
|
easy to create structured data. Currently the following builder objects are
|
|
supported: XML Markup and XML Events.")
|
|
(home-page "https://github.com/jimweirich/builder")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-bump
|
|
(package
|
|
(name "ruby-bump")
|
|
(version "0.7.0")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "bump" version))
|
|
(sha256
|
|
(base32
|
|
"1xinbr9rzh6cj75x24niwgqcnbhdxc68a8bc41lk8xv6fd906fym"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(;; No included tests
|
|
#:tests? #f))
|
|
(synopsis "Tool for working with Rubygems")
|
|
(description
|
|
"Bump provides commands to manage Rubygem versioning, updating to the
|
|
next patch version for example.")
|
|
(home-page "https://github.com/gregorym/bump")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-rjb
|
|
(package
|
|
(name "ruby-rjb")
|
|
(version "1.5.5")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "rjb" version))
|
|
(sha256
|
|
(base32
|
|
"1ppj8rbicj3w0nhh7f73mflq19yd7pzdzkh2a91hcvphriy5b0ca"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
`(#:tests? #f ; no rakefile
|
|
#:phases
|
|
(modify-phases %standard-phases
|
|
(add-before 'build 'set-java-home
|
|
(lambda* (#:key inputs #:allow-other-keys)
|
|
(setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
|
|
#t)))))
|
|
(native-inputs
|
|
`(("jdk" ,icedtea "jdk")))
|
|
(synopsis "Ruby-to-Java bridge using the Java Native Interface")
|
|
(description "RJB is a bridge program that connects Ruby and Java via the
|
|
Java Native Interface.")
|
|
(home-page "https://www.artonx.org/collabo/backyard/?RubyJavaBridge")
|
|
(license license:lgpl2.1+)))
|
|
|
|
(define-public ruby-log4r
|
|
(package
|
|
(name "ruby-log4r")
|
|
(version "1.1.10")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "log4r" version))
|
|
(sha256
|
|
(base32
|
|
"0ri90q0frfmigkirqv5ihyrj59xm8pq5zcmf156cbdv4r4l2jicv"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:tests? #f)) ; no Rakefile in gem
|
|
(synopsis "Flexible logging library for Ruby")
|
|
(description "Comprehensive and flexible logging library written
|
|
in Ruby for use in Ruby programs. It features a hierarchical logging
|
|
system of any number of levels, custom level names, logger
|
|
inheritance, multiple output destinations per log event, execution
|
|
tracing, custom formatting, thread safteyness, XML and YAML
|
|
configuration, and more.")
|
|
(home-page "http://log4r.rubyforge.org/")
|
|
(license license:bsd-3)))
|
|
|
|
(define-public ruby-atoulme-antwrap
|
|
(package
|
|
(name "ruby-atoulme-antwrap")
|
|
(version "0.7.5")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "atoulme-Antwrap" version))
|
|
(sha256
|
|
(base32
|
|
"05s3iw44lqa81f8nfy5f0xjj808600h82zb9bsh46b9kcq2w2kmz"))))
|
|
(build-system ruby-build-system)
|
|
;; Test data required for most of the tests are not included.
|
|
(arguments `(#:tests? #f))
|
|
(native-inputs
|
|
`(("ruby-hoe" ,ruby-hoe)))
|
|
(inputs
|
|
`(("ruby-rjb" ,ruby-rjb)))
|
|
(synopsis "Ruby wrapper for the Ant build tool")
|
|
(description "Antwrap is a Ruby module that wraps the Apache Ant build
|
|
tool. Antwrap can be used to invoke Ant tasks from a Ruby or a JRuby
|
|
script.")
|
|
(home-page "http://rubyforge.org/projects/antwrap/")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-atoulme-saikuro
|
|
(package
|
|
(name "ruby-atoulme-saikuro")
|
|
(version "1.2.1")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "atoulme-Saikuro" version))
|
|
(sha256
|
|
(base32
|
|
"0kvd2nsxffbza61d3q4j94wrbnbv50r1zy3a7q26f6k706fw1f19"))))
|
|
(build-system ruby-build-system)
|
|
;; FIXME: There are no unit tests. The tests are demonstrations of the
|
|
;; "saikuro" tool.
|
|
(arguments `(#:tests? #f))
|
|
(synopsis "Cyclomatic complexity analyzer")
|
|
(description "Saikuro is a Ruby cyclomatic complexity analyzer. When
|
|
given Ruby source code Saikuro will generate a report listing the cyclomatic
|
|
complexity of each method found. In addition, Saikuro counts the number of
|
|
lines per method and can generate a listing of the number of tokens on each
|
|
line of code.")
|
|
(home-page "http://www.github.com/atoulme/Saikuro")
|
|
;; File headers contain the BSD-3 license and the README.rdoc says that
|
|
;; "Saikuro uses the BSD license", but the LICENSE file contains the text
|
|
;; of the Expat license.
|
|
(license license:bsd-3)))
|
|
|
|
(define-public ruby-asciidoctor
|
|
(package
|
|
(name "ruby-asciidoctor")
|
|
(version "1.5.7.1")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "asciidoctor" version))
|
|
(sha256
|
|
(base32
|
|
"0v52bzc72cvg7zfgq27pa4mgyf29dx9m20fghrw1xmvwgd519n1w"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
`(#:test-target "test:all"
|
|
#:phases
|
|
(modify-phases %standard-phases
|
|
(add-before 'check 'remove-circular-tests
|
|
(lambda _
|
|
;; Remove tests that require circular dependencies to load or pass.
|
|
(delete-file "test/invoker_test.rb")
|
|
(delete-file "test/converter_test.rb")
|
|
(delete-file "test/options_test.rb")
|
|
#t)))))
|
|
(native-inputs
|
|
`(("ruby-minitest" ,ruby-minitest)
|
|
("ruby-nokogiri" ,ruby-nokogiri)
|
|
("ruby-asciimath" ,ruby-asciimath)
|
|
("ruby-coderay" ,ruby-coderay)))
|
|
(synopsis "Converter from AsciiDoc content to other formats")
|
|
(description
|
|
"Asciidoctor is a text processor and publishing toolchain for converting
|
|
AsciiDoc content to HTML5, DocBook 5 (or 4.5), PDF, and other formats.")
|
|
(home-page "https://asciidoctor.org")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-ast
|
|
(package
|
|
(name "ruby-ast")
|
|
(version "2.4.0")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "ast" version))
|
|
(sha256
|
|
(base32
|
|
"184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:phases
|
|
(modify-phases %standard-phases
|
|
(add-after 'unpack 'remove-coveralls-requirement
|
|
(lambda _
|
|
(substitute* "test/helper.rb"
|
|
(("require 'coveralls'") "")
|
|
(("Coveralls::SimpleCov::Formatter") ""))
|
|
#t))
|
|
(add-after 'extract-gemspec 'remove-unnecessary-requirements
|
|
(lambda _
|
|
(substitute* "ast.gemspec"
|
|
((".*coveralls.*") "\n")
|
|
(("%q<rest-client>.*") "%q<rest-client>.freeze, [\">= 0\"])\n")
|
|
(("%q<mime-types>.*") "%q<mime-types>.freeze, [\">= 0\"])\n")
|
|
(("%q<rake>.*") "%q<rake>.freeze, [\">= 0\"])\n"))
|
|
#t)))))
|
|
(native-inputs
|
|
`(("bundler" ,bundler)
|
|
("ruby-simplecov" ,ruby-simplecov)
|
|
("ruby-json-pure" ,ruby-json-pure)
|
|
("ruby-mime-times" ,ruby-mime-types)
|
|
("ruby-yard" ,ruby-yard)
|
|
("ruby-kramdown" ,ruby-kramdown)
|
|
("ruby-rest-client" ,ruby-rest-client)
|
|
("ruby-bacon" ,ruby-bacon)
|
|
("ruby-bacon-colored-output" ,ruby-bacon-colored-output)
|
|
("ruby-racc" ,ruby-racc)))
|
|
(synopsis "Library for working with Abstract Syntax Trees")
|
|
(description
|
|
"@code{ast} is a Ruby library for working with Abstract Syntax Trees.
|
|
It does this through immutable data structures.")
|
|
(home-page "https://whitequark.github.io/ast/")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-sporkmonger-rack-mount
|
|
;; Testing the addressable gem requires a newer commit than that released, so
|
|
;; use an up to date version.
|
|
(let ((revision "1")
|
|
(commit "076aa2c47d9a4c081f1e9bcb56a826a9e72bd5c3"))
|
|
(package
|
|
(name "ruby-sporkmonger-rack-mount")
|
|
(version (git-version "0.8.3" revision commit))
|
|
(source (origin
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "https://github.com/sporkmonger/rack-mount.git")
|
|
(commit commit)))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32
|
|
"1scx273g3xd93424x9lxc4zyvcp2niknbw5mkz6wkivpf7xsyxdq"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
;; Tests currently fail so disable them.
|
|
;; https://github.com/sporkmonger/rack-mount/pull/1
|
|
`(#:tests? #f))
|
|
(propagated-inputs `(("ruby-rack" ,ruby-rack)))
|
|
(synopsis "Stackable dynamic tree based Rack router")
|
|
(description
|
|
"@code{Rack::Mount} supports Rack's @code{X-Cascade} convention to
|
|
continue trying routes if the response returns pass. This allows multiple
|
|
routes to be nested or stacked on top of each other.")
|
|
(home-page "https://github.com/sporkmonger/rack-mount")
|
|
(license license:expat))))
|
|
|
|
(define-public ruby-ci-reporter
|
|
(package
|
|
(name "ruby-ci-reporter")
|
|
(version "2.0.0")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "ci_reporter" version))
|
|
(sha256
|
|
(base32
|
|
"17fm20jmw3ajdryhkkxpjahcfx7bgswqzxrskivlkns2718ayyyg"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
`(#:test-target "rspec"))
|
|
(propagated-inputs
|
|
`(("ruby-builder" ,ruby-builder)))
|
|
(native-inputs
|
|
`(("bundler" ,bundler)
|
|
("ruby-rspec" ,ruby-rspec)))
|
|
(synopsis "Generate XML reports of runs test")
|
|
(description
|
|
"@code{CI::Reporter} is an add-on to Ruby testing frameworks that allows
|
|
you to generate XML reports of your test runs. The resulting files can be
|
|
read by a continuous integration system that understands Ant's JUnit report
|
|
format.")
|
|
(home-page "https://github.com/nicksieger/ci_reporter")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-contracts
|
|
(package
|
|
(name "ruby-contracts")
|
|
(version "0.16.0")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "contracts" version))
|
|
(sha256
|
|
(base32
|
|
"119f5p1n6r5svbx8h09za6a4vrsnj5i1pzr9cqdn9hj3wrxvyl3a"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:test-target "spec"
|
|
#:phases
|
|
(modify-phases %standard-phases
|
|
;; Don't run or require rubocop, the code linting tool, as this is a
|
|
;; bit unnecessary.
|
|
(add-after 'unpack 'dont-run-rubocop
|
|
(lambda _
|
|
(substitute* "Rakefile"
|
|
((".*rubocop.*") "")
|
|
((".*RuboCop.*") ""))
|
|
#t)))))
|
|
(native-inputs
|
|
`(("ruby-rspec" ,ruby-rspec)))
|
|
(synopsis "Method contracts for Ruby")
|
|
(description
|
|
"This library provides contracts for Ruby. A contract describes the
|
|
correct inputs and output for a method, and will raise an error if a incorrect
|
|
value is found.")
|
|
(home-page "https://github.com/egonSchiele/contracts.ruby")
|
|
(license license:bsd-2)))
|
|
|
|
(define-public ruby-crack
|
|
(package
|
|
(name "ruby-crack")
|
|
(version "0.4.3")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "crack" version))
|
|
(sha256
|
|
(base32
|
|
"0abb0fvgw00akyik1zxnq7yv391va148151qxdghnzngv66bl62k"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
`(#:phases
|
|
(modify-phases %standard-phases
|
|
(replace 'check
|
|
(lambda* (#:key tests? #:allow-other-keys)
|
|
(when tests?
|
|
(for-each (lambda (file)
|
|
(display file)(display "\n")
|
|
(invoke "ruby" "-Ilib" "-Itest" "-rrubygems" file))
|
|
(find-files "test" ".*rb$")))
|
|
#t)))))
|
|
(propagated-inputs
|
|
`(("ruby-safe-yaml" ,ruby-safe-yaml)))
|
|
(synopsis "Simple JSON and XML parsing for Ruby")
|
|
(description
|
|
"@code{crack} provides really simple JSON and XML parsing, extracted from
|
|
code in Merb and Rails.")
|
|
(home-page "https://github.com/jnunemaker/crack")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-cliver
|
|
(package
|
|
(name "ruby-cliver")
|
|
(version "0.3.2")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "cliver" version))
|
|
(sha256
|
|
(base32
|
|
"096f4rj7virwvqxhkavy0v55rax10r4jqf8cymbvn4n631948xc7"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:phases
|
|
(modify-phases %standard-phases
|
|
;; Avoid a incompatibility between rspec@2 and rake. Using rspec@3
|
|
;; would be nice, but the tests look to be incompatible:
|
|
;;
|
|
;; NoMethodError: undefined method `last_comment'
|
|
(replace 'check
|
|
(lambda* (#:key tests? #:allow-other-keys)
|
|
(when tests?
|
|
(invoke "rspec"))
|
|
#t)))))
|
|
(native-inputs
|
|
`(("bundler" ,bundler)
|
|
("ruby-rspec" ,ruby-rspec-2)))
|
|
(synopsis "Assertions for command-line dependencies in Ruby")
|
|
(description
|
|
"@code{cliver} provides a way to detect missing command-line
|
|
dependencies, including versions.")
|
|
(home-page "https://github.com/yaauie/cliver")
|
|
(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")
|
|
(version "0.2.0")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "saikuro_treemap" version))
|
|
(sha256
|
|
(base32
|
|
"0w70nmh43mwfbpq20iindl61siqqr8acmf7p3m7n5ipd61c24950"))))
|
|
(build-system ruby-build-system)
|
|
;; Some of the tests fail because the generated JSON has keys in a
|
|
;; different order. This is a problem with the test suite rather than any
|
|
;; of the involved libraries.
|
|
(arguments `(#:tests? #f))
|
|
(propagated-inputs
|
|
`(("ruby-json-pure" ,ruby-json-pure)
|
|
("ruby-atoulme-saikuro" ,ruby-atoulme-saikuro)))
|
|
(synopsis "Generate complexity treemap based on saikuro analysis")
|
|
(description
|
|
"This gem generates a treemap showing the complexity of Ruby code on
|
|
which it is run. It uses Saikuro under the covers to analyze Ruby code
|
|
complexity.")
|
|
(home-page "https://github.com/ThoughtWorksStudios/saikuro_treemap")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-oauth2
|
|
(package
|
|
(name "ruby-oauth2")
|
|
(version "1.4.2")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "oauth2" version))
|
|
(sha256
|
|
(base32 "15i9z4j5pcjkr30lkcd79xzbr4kpmy0bqgwa436fqyqk646fv036"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:tests? #f)) ; no included tests
|
|
(propagated-inputs
|
|
`(("ruby-faraday" ,ruby-faraday)
|
|
("ruby-jwt" ,ruby-jwt)
|
|
("ruby-multi-json" ,ruby-multi-json)
|
|
("ruby-multi-xml" ,ruby-multi-xml)
|
|
("ruby-rack" ,ruby-rack)))
|
|
(synopsis "Ruby wrapper for the OAuth 2.0")
|
|
(description
|
|
"This package provides a Ruby wrapper for the OAuth 2.0 protocol built
|
|
with a similar style to the original OAuth spec.")
|
|
(home-page "https://github.com/oauth-xx/oauth2")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-omniauth
|
|
(package
|
|
(name "ruby-omniauth")
|
|
(version "1.9.1")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "omniauth" version))
|
|
(sha256
|
|
(base32 "002vi9gwamkmhf0dsj2im1d47xw2n1jfhnzl18shxf3ampkqfmyz"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:tests? #f)) ; No included tests
|
|
(propagated-inputs
|
|
`(("ruby-hashie" ,ruby-hashie)
|
|
("ruby-rack" ,ruby-rack)))
|
|
(synopsis "Generalized Rack framework for multiple-provider authentication")
|
|
(description
|
|
"This package provides a generalized Rack framework for multiple-provider
|
|
authentication.")
|
|
(home-page "https://github.com/omniauth/omniauth")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-omniauth-oauth2
|
|
(package
|
|
(name "ruby-omniauth-oauth2")
|
|
(version "1.6.0")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "omniauth-oauth2" version))
|
|
(sha256
|
|
(base32
|
|
"11mi36l9d97r77q99jnafdc1yaa0a9wahhpp7dj7ank8q52g7g79"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:phases
|
|
(modify-phases %standard-phases
|
|
(add-after 'unpack 'remove-unnecessary-dependencies
|
|
(lambda _
|
|
;; The coveralls gem submits coverage information to an online
|
|
;; service, and is unnecessary when running the tests
|
|
(substitute* "Gemfile"
|
|
((".*coveralls\"") ""))
|
|
(substitute* "spec/helper.rb"
|
|
(("require \"coveralls\"") "")
|
|
(("Coveralls::SimpleCov::Formatter") ""))
|
|
#t)))))
|
|
(propagated-inputs
|
|
`(("ruby-oauth2" ,ruby-oauth2)
|
|
("ruby-omniauth" ,ruby-omniauth)))
|
|
(native-inputs
|
|
`(("bundler" ,bundler)
|
|
("ruby-rspec" ,ruby-rspec)
|
|
("ruby-simplecov" ,ruby-simplecov)
|
|
("ruby-rack-test" ,ruby-rack-test)
|
|
("ruby-webmock" ,ruby-webmock-2)))
|
|
(synopsis "Abstract OAuth2 strategy for OmniAuth")
|
|
(description
|
|
"This library provides a generic OAuth2 strategy for OmniAuth. It
|
|
doesn't provide a way to gather user information, so should be used as a
|
|
building block for authentication strategies.")
|
|
(home-page "https://github.com/omniauth/omniauth-oauth2")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-open4
|
|
(package
|
|
(name "ruby-open4")
|
|
(version "1.3.4")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "open4" version))
|
|
(sha256
|
|
(base32
|
|
"1cgls3f9dlrpil846q0w7h66vsc33jqn84nql4gcqkk221rh7px1"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:phases
|
|
(modify-phases %standard-phases
|
|
(add-after 'unpack 'patch
|
|
(lambda _
|
|
(substitute* "rakefile"
|
|
;; Update the Rakefile so it works
|
|
(("-rubygems") "-rrubygems")
|
|
(("Config") "RbConfig"))
|
|
#t))
|
|
(add-before 'check 'set-LIB
|
|
(lambda _
|
|
;; This is used in the rakefile when running the tests
|
|
(setenv "LIB" "open4")
|
|
#t)))))
|
|
(synopsis "Open child processes from Ruby and manage them easily")
|
|
(description
|
|
"@code{Open4} is a Ruby library to run child processes and manage their
|
|
input and output.")
|
|
(home-page "https://github.com/ahoward/open4")
|
|
(license license:ruby)))
|
|
|
|
(define-public ruby-options
|
|
(package
|
|
(name "ruby-options")
|
|
(version "2.3.2")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "options" version))
|
|
(sha256
|
|
(base32
|
|
"1s650nwnabx66w584m1cyw82icyym6hv5kzfsbp38cinkr5klh9j"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:tests? #f ;; TODO: NameError: uninitialized constant Config
|
|
#:phases
|
|
(modify-phases %standard-phases
|
|
(add-before 'check 'set-LIB
|
|
(lambda _
|
|
;; This is used in the Rakefile, and setting it avoids an issue
|
|
;; with running the tests.
|
|
(setenv "LIB" "options")
|
|
#t)))))
|
|
(synopsis "Ruby library to parse options from *args cleanly")
|
|
(description
|
|
"The @code{options} library helps with parsing keyword options in Ruby
|
|
functions.")
|
|
(home-page "https://github.com/ahoward/options")
|
|
(license license:ruby)))
|
|
|
|
(define-public ruby-erubi
|
|
(package
|
|
(name "ruby-erubi")
|
|
(version "1.8.0")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "erubi" version))
|
|
(sha256
|
|
(base32
|
|
"1kagnf6ziahj0d781s6ryy6fwqwa3ad4xbzzj84p9m4nv4c2jir1"))))
|
|
(build-system ruby-build-system)
|
|
(synopsis "ERB template engine for Ruby")
|
|
(description
|
|
"Erubi is a ERB template engine for Ruby. It is a simplified fork of
|
|
Erubis")
|
|
(home-page "https://github.com/jeremyevans/erubi")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-erubis
|
|
(package
|
|
(name "ruby-erubis")
|
|
(version "2.7.0")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "erubis" version))
|
|
(sha256
|
|
(base32
|
|
"1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:tests? #f)) ; tests do not run properly with Ruby 2.0
|
|
(synopsis "Implementation of embedded Ruby (eRuby)")
|
|
(description
|
|
"Erubis is a fast implementation of embedded Ruby (eRuby) with several
|
|
features such as multi-language support, auto escaping, auto trimming spaces
|
|
around @code{<% %>}, a changeable embedded pattern, and Ruby on Rails
|
|
support.")
|
|
(home-page "http://www.kuwata-lab.com/erubis/")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-execjs
|
|
(package
|
|
(name "ruby-execjs")
|
|
(version "2.7.0")
|
|
(source
|
|
(origin
|
|
;; fetch from github as the gem does not contain testing code
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "https://github.com/rails/execjs.git")
|
|
(commit (string-append "v" version))))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32
|
|
"0c0vd2mmqq3ar4plbwi2wsbr31vn4h45i19r5km66skydnnbp1y6"))))
|
|
(build-system ruby-build-system)
|
|
(native-inputs
|
|
`(("bundler" ,bundler)
|
|
;; The test suite tests all the available backends. Currenly, this just
|
|
;; means the node backend.
|
|
;;
|
|
;; PASSED: test:node
|
|
;; SKIPPED: test:duktape, ;; test:javascriptcore, test:jscript,
|
|
;; test:miniracer, test:rubyracer, ;; test:rubyrhino, test:v8
|
|
("node" ,node)))
|
|
(synopsis "Run JavaScript code from Ruby")
|
|
(description
|
|
"ExecJS lets you run JavaScript code from Ruby. It automatically picks a
|
|
runtime to evaluate your JavaScript program, then returns the result to you as
|
|
a Ruby object.")
|
|
(home-page "https://github.com/rails/execjs")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-fakefs
|
|
(package
|
|
(name "ruby-fakefs")
|
|
(version "1.2.2")
|
|
(home-page "https://github.com/fakefs/fakefs")
|
|
(source (origin
|
|
;; The Rubygems release does not contain tests.
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url home-page)
|
|
(commit (string-append "v" version))))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32
|
|
"008dq9knyip2bfbl0mrk8b8r7bv0k3bf128wcfqsgy1rqal4mgwk"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:phases (modify-phases %standard-phases
|
|
(replace 'replace-git-ls-files
|
|
(lambda _
|
|
(substitute* "fakefs.gemspec"
|
|
(("`git ls-files lib README.md LICENSE`")
|
|
"`find lib README.md LICENSE -type f | sort`"))
|
|
#t))
|
|
(add-before 'check 'remove-version-constraints
|
|
(lambda _
|
|
;; Drop hard version requirements for test dependencies.
|
|
(substitute* "fakefs.gemspec"
|
|
(("(.*add_development_dependency .*), .*" _ dep)
|
|
(string-append dep "\n")))
|
|
#t)))))
|
|
(native-inputs
|
|
`(("ruby-bump" ,ruby-bump)
|
|
("ruby-maxitest" ,ruby-maxitest)
|
|
("ruby-rubocop" ,ruby-rubocop)
|
|
("ruby-rspec" ,ruby-rspec)))
|
|
(synopsis "Fake file system for Ruby")
|
|
(description
|
|
"This package provides a fake file system for use in test suites. It
|
|
avoids the need for manually creating temporary directories, or dealing
|
|
with platform intricacies in @code{File} and @code{FileUtils}.")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-orderedhash
|
|
(package
|
|
(name "ruby-orderedhash")
|
|
(version "0.0.6")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "orderedhash" version))
|
|
(sha256
|
|
(base32
|
|
"0fryy7f9jbpx33jq5m402yqj01zcg563k9fsxlqbhmq638p4bzd7"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:tests? #f)) ; no test suite
|
|
(synopsis "Ruby library providing an order-preserving hash")
|
|
(description "Orderedhash is a Ruby library providing a hash
|
|
implementation that preserves the order of items and features some array-like
|
|
extensions.")
|
|
(home-page "http://codeforpeople.com/lib/ruby/orderedhash/")
|
|
(license license:public-domain)))
|
|
|
|
(define-public ruby-libxml
|
|
(package
|
|
(name "ruby-libxml")
|
|
(version "3.0.0")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "libxml-ruby" version))
|
|
(sha256
|
|
(base32
|
|
"0xy8wmjwjcnv36zi042678ncjzpxvy351ccbv7mzkns2n3kxfp54"))))
|
|
(build-system ruby-build-system)
|
|
(inputs
|
|
`(("zlib" ,zlib)
|
|
("libxml2" ,libxml2)))
|
|
(arguments
|
|
'(#:tests? #f ; test suite hangs for unknown reason
|
|
#:gem-flags
|
|
(list "--"
|
|
(string-append "--with-xml2-include="
|
|
(assoc-ref %build-inputs "libxml2")
|
|
"/include/libxml2" ))))
|
|
(synopsis "Ruby bindings for GNOME Libxml2")
|
|
(description "The Libxml-Ruby project provides Ruby language bindings for
|
|
the GNOME Libxml2 XML toolkit.")
|
|
(home-page "https://xml4r.github.com/libxml-ruby")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-lino
|
|
(package
|
|
(name "ruby-lino")
|
|
(version "1.1.0")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "lino" version))
|
|
(sha256
|
|
(base32
|
|
"11d29g0fk372b9fcpyr0k6hxm2b4j4igpysmi542hgbbgqgp9cd3"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:tests? #f)) ; No included tests
|
|
(propagated-inputs
|
|
`(("ruby-hamster" ,ruby-hamster)
|
|
("ruby-open4" ,ruby-open4)))
|
|
(synopsis "Build and execute commands in Ruby")
|
|
(description
|
|
"@code{Lino} provides an interface to run external commands. It provides
|
|
an interface to add options as well as managing the standard input, output and
|
|
error streams.")
|
|
(home-page "https://github.com/tobyclemson/lino")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-xml-simple
|
|
(package
|
|
(name "ruby-xml-simple")
|
|
(version "1.1.5")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "xml-simple" version))
|
|
(sha256
|
|
(base32
|
|
"0xlqplda3fix5pcykzsyzwgnbamb3qrqkgbrhhfz2a2fxhrkvhw8"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:tests? #f)) ; no test suite
|
|
(synopsis "Simple Ruby library for XML processing")
|
|
(description "This library provides a simple API for XML processing in
|
|
Ruby.")
|
|
(home-page "https://github.com/maik/xml-simple")
|
|
(license license:ruby)))
|
|
|
|
(define-public ruby-thor
|
|
(package
|
|
(name "ruby-thor")
|
|
(version "1.0.1")
|
|
(source (origin
|
|
;; Pull from git because the gem has no tests.
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "https://github.com/erikhuda/thor")
|
|
(commit (string-append "v" version))))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32
|
|
"1anrx5vynk57hn5c8ig5pgkmcsbj9q5mvckd5rviw1jid7n89k57"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:phases (modify-phases %standard-phases
|
|
(add-after 'unpack 'fix-readline-tests
|
|
(lambda _
|
|
;; Ensure Readline is initialized before running the
|
|
;; test to avoid a type clash with the mock ::Readline.
|
|
;; See <https://github.com/erikhuda/thor/pull/717>.
|
|
(substitute* "spec/line_editor/readline_spec.rb"
|
|
(("unless defined\\? ::Readline" all)
|
|
(string-append "Thor::LineEditor::Readline.available?\n"
|
|
all)))
|
|
#t))
|
|
(add-after 'unpack 'remove-coveralls-dependency
|
|
(lambda _
|
|
;; Do not hook the test suite into the online
|
|
;; coveralls service.
|
|
(substitute* "Gemfile"
|
|
((".*coveralls.*") ""))
|
|
(substitute* "spec/helper.rb"
|
|
(("require \"coveralls\"") "")
|
|
(("Coveralls::SimpleCov::Formatter") "")
|
|
;; Also drop the WebMock dependency which is only
|
|
;; present to allow a coveralls.io connection, and
|
|
;; would otherwise introduce a circular dependency.
|
|
(("require \"webmock/rspec\"") "")
|
|
(("WebMock\\.disable_net_connect.*") ""))
|
|
#t))
|
|
(add-after 'unpack 'disable-network-tests
|
|
(lambda _
|
|
;; These tests attempt to look up example.com.
|
|
(substitute* "spec/actions/file_manipulation_spec.rb"
|
|
(("it \"accepts (https?) remote sources" _ proto)
|
|
(string-append "xit \"accepts " proto " remote sources")))
|
|
#t))
|
|
(add-after 'unpack 'disable-quality-tests
|
|
(lambda _
|
|
;; These tests attempt to check the git repository for
|
|
;; tabs vs spaces, double vs single quotes, etc, and
|
|
;; depend on the git checkout.
|
|
(delete-file "spec/quality_spec.rb")
|
|
#t))
|
|
(add-before 'check 'make-files-writable
|
|
(lambda _
|
|
;; The tests needs rw access to the test suite.
|
|
(for-each make-file-writable (find-files "spec"))
|
|
#t))
|
|
(replace 'check
|
|
(lambda _
|
|
(invoke "rspec" "spec"))))))
|
|
(native-inputs
|
|
`(("ruby-rspec" ,ruby-rspec)
|
|
("ruby-simplecov" ,ruby-simplecov)))
|
|
(synopsis "Ruby toolkit for building command-line interfaces")
|
|
(description "Thor is a toolkit for building powerful command-line
|
|
interfaces.")
|
|
(home-page "http://whatisthor.com/")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-lumberjack
|
|
(package
|
|
(name "ruby-lumberjack")
|
|
(version "1.0.13")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "lumberjack" version))
|
|
(sha256
|
|
(base32
|
|
"06im7gcg42x77yhz2w5da2ly9xz0n0c36y5ks7xs53v0l9g0vf5n"))))
|
|
(build-system ruby-build-system)
|
|
(native-inputs
|
|
`(("ruby-rspec" ,ruby-rspec)
|
|
("ruby-timecop" ,ruby-timecop)))
|
|
(synopsis "Logging utility library for Ruby")
|
|
(description "Lumberjack is a simple logging utility that can be a drop in
|
|
replacement for Logger or ActiveSupport::BufferedLogger. It provides support
|
|
for automatically rolling log files even with multiple processes writing the
|
|
same log file.")
|
|
(home-page "https://github.com/bdurand/lumberjack")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-rbnacl
|
|
(package
|
|
(name "ruby-rbnacl")
|
|
(version "6.0.1")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "rbnacl" version))
|
|
(sha256
|
|
(base32
|
|
"0ajxy5kj2jw09wdsla3jmha8w07vj5l14288xr9djpl327g3lzhn"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
`(#:phases
|
|
(modify-phases %standard-phases
|
|
(add-after 'unpack 'remove-unnecessary-dependencies
|
|
(lambda _
|
|
;; Coveralls relates to a network service, and Rubocop to code
|
|
;; linting and both are unnecessary to run the tests
|
|
(substitute* "Gemfile"
|
|
((".*rubocop.*") "\n")
|
|
((".*guard-rspec.*") "\n")
|
|
((".*coveralls.*") "\n"))
|
|
(substitute* "spec/spec_helper.rb"
|
|
(("require \"coveralls\"") "")
|
|
(("Coveralls.wear!") ""))
|
|
#t))
|
|
(add-after 'unpack 'use-libsodium-from-store
|
|
(lambda* (#:key inputs #:allow-other-keys)
|
|
(substitute* '("lib/rbnacl/init.rb"
|
|
"lib/rbnacl/sodium.rb")
|
|
(("ffi_lib \\[.+\\]")
|
|
(string-append "ffi_lib [\""
|
|
(assoc-ref inputs "libsodium") "/lib/libsodium.so"
|
|
"\"]")))
|
|
#t))
|
|
;; Run Rspec directly to avoid the Rubocop dependency in the Rakefile
|
|
(replace 'check
|
|
(lambda* (#:key tests? #:allow-other-keys)
|
|
(when tests?
|
|
(invoke "rspec"))
|
|
#t)))))
|
|
(propagated-inputs
|
|
`(("ruby-ffi" ,ruby-ffi)))
|
|
(inputs
|
|
`(("libsodium" ,libsodium)))
|
|
(native-inputs
|
|
`(("bundler" ,bundler)
|
|
("ruby-rspec" ,ruby-rspec)))
|
|
(synopsis "Ruby FFI binding to libsodium")
|
|
(description
|
|
"This package provides Ruby FFI bindings to the Networking and
|
|
Cryptography (NaCl) library, also known as libsodium. This provides a
|
|
high-level toolkit for building cryptographic systems and protocols.")
|
|
(home-page "https://github.com/crypto-rb/rbnacl")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-nenv
|
|
(package
|
|
(name "ruby-nenv")
|
|
(version "0.3.0")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "nenv" version))
|
|
(sha256
|
|
(base32
|
|
"0r97jzknll9bhd8yyg2bngnnkj8rjhal667n7d32h8h7ny7nvpnr"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
`(#:tests? #f)) ; no tests included
|
|
(native-inputs
|
|
`(("ruby-rspec" ,ruby-rspec)
|
|
("bundler" ,bundler)))
|
|
(synopsis "Ruby interface for modifying the environment")
|
|
(description "Nenv provides a convenient wrapper for Ruby's ENV to modify
|
|
and inspect the environment.")
|
|
(home-page "https://github.com/e2/nenv")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-ptools
|
|
(package
|
|
(name "ruby-ptools")
|
|
(version "1.3.5")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "ptools" version))
|
|
(sha256
|
|
(base32
|
|
"1jb1h1nsk9zwykpniw8filbsk26kjsdlpk5wz6w0zyamcd41h87j"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:phases (modify-phases %standard-phases
|
|
(add-after 'unpack 'patch-/bin/ls
|
|
(lambda _
|
|
(substitute* "test/test_binary.rb"
|
|
(("/bin/ls")
|
|
(which "ls")))
|
|
#t))
|
|
(add-before 'install 'create-gem
|
|
(lambda _
|
|
;; Do not attempt to sign the gem.
|
|
(substitute* "Rakefile"
|
|
(("spec\\.signing_key = .*")
|
|
""))
|
|
(invoke "rake" "gem:create"))))))
|
|
(synopsis "Extra methods for Ruby's @code{File} class")
|
|
(description
|
|
"The @dfn{ptools} (power tools) library extends Ruby's core @code{File}
|
|
class with many additional methods modelled after common POSIX tools, such as
|
|
@code{File.which} for finding executables, @code{File.tail} to print the last
|
|
lines of a file, @code{File.wc} to count words, and so on.")
|
|
(home-page "https://github.com/djberg96/ptools")
|
|
(license license:artistic2.0)))
|
|
|
|
(define-public ruby-permutation
|
|
(package
|
|
(name "ruby-permutation")
|
|
(version "0.1.8")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "permutation" version))
|
|
(sha256
|
|
(base32
|
|
"13crwk2vfbzv99czva7881027dbcnidihmvx2jc58z2vm3bp9sl8"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
`(#:phases
|
|
(modify-phases %standard-phases
|
|
(add-after 'unpack 'fix-rakefile
|
|
(lambda _
|
|
(substitute* "Rakefile"
|
|
(("require 'rake/gempackagetask'")
|
|
"require 'rubygems/package_task'")
|
|
(("include Config") ""))
|
|
#t))
|
|
(replace 'check
|
|
(lambda _
|
|
(invoke "ruby" "-Ilib" "test/test.rb"))))))
|
|
(synopsis "Library to perform operations with sequence permutations")
|
|
(description "This package provides a Ruby library to perform different
|
|
operations with permutations of sequences, such as strings and arrays.")
|
|
(home-page "https://flori.github.io/permutation")
|
|
(license license:gpl2))) ; GPL 2 only
|
|
|
|
(define-public ruby-shellany
|
|
(package
|
|
(name "ruby-shellany")
|
|
(version "0.0.1")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "shellany" version))
|
|
(sha256
|
|
(base32
|
|
"1ryyzrj1kxmnpdzhlv4ys3dnl2r5r3d2rs2jwzbnd1v96a8pl4hf"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
`(#:test-target "default"
|
|
#:phases
|
|
(modify-phases %standard-phases
|
|
(add-after 'unpack 'fix-version-test
|
|
(lambda _
|
|
(substitute* "spec/shellany_spec.rb"
|
|
(("^RSpec") "require \"shellany\"\nRSpec"))
|
|
#t)))))
|
|
(native-inputs
|
|
`(("ruby-rspec" ,ruby-rspec)
|
|
("ruby-nenv" ,ruby-nenv)
|
|
("bundler" ,bundler)))
|
|
(synopsis "Capture command output")
|
|
(description "Shellany is a Ruby library providing functions to capture
|
|
the output produced by running shell commands.")
|
|
(home-page "https://rubygems.org/gems/shellany")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-notiffany
|
|
(package
|
|
(name "ruby-notiffany")
|
|
(version "0.1.3")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "notiffany" version))
|
|
(sha256
|
|
(base32
|
|
"0f47h3bmg1apr4x51szqfv3rh2vq58z3grh4w02cp3bzbdh6jxnk"))))
|
|
(build-system ruby-build-system)
|
|
;; Tests are not included in the gem.
|
|
(arguments `(#:tests? #f))
|
|
(propagated-inputs
|
|
`(("ruby-shellany" ,ruby-shellany)
|
|
("ruby-nenv" ,ruby-nenv)))
|
|
(native-inputs
|
|
`(("bundler" ,bundler)))
|
|
(synopsis "Wrapper library for notification libraries")
|
|
(description "Notiffany is a Ruby wrapper library for notification
|
|
libraries such as Libnotify.")
|
|
(home-page "https://github.com/guard/notiffany")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-forking-test-runner
|
|
(package
|
|
(name "ruby-forking-test-runner")
|
|
(version "1.6.0")
|
|
(home-page "https://github.com/grosser/forking_test_runner")
|
|
(source (origin
|
|
(method git-fetch)
|
|
(uri (git-reference (url home-page)
|
|
(commit (string-append "v" version))))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32
|
|
"1mrglzkj2nrgisccf2f30zbfmcs0awv1g3lw994b2az90fl39x8m"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:test-target "spec"
|
|
;; FIXME: ActiveRecord depends on sqlite3 1.3.6, but Guix has
|
|
;; 1.4.1, which in turn breaks the tests that use ActiveRecord.
|
|
#:tests? #f
|
|
#:phases (modify-phases %standard-phases
|
|
(replace 'replace-git-ls-files
|
|
(lambda _
|
|
(substitute* "forking_test_runner.gemspec"
|
|
(("`git ls-files lib/ bin/ MIT-LICENSE`")
|
|
"`find lib/ bin/ MIT-LICENSE -type f | sort`"))
|
|
#t))
|
|
(add-before 'check 'remove-version-constraints
|
|
(lambda _
|
|
;; Ignore hard coded version constraints for the tests.
|
|
(delete-file "Gemfile.lock")
|
|
#t))
|
|
(add-before 'check 'set-HOME
|
|
(lambda _
|
|
;; Many tests invoke Bundler, and fails when Bundler
|
|
;; warns that /homeless-shelter does not exist.
|
|
(setenv "HOME" "/tmp")
|
|
#t)))))
|
|
(native-inputs
|
|
`(("ruby-activerecord" ,ruby-activerecord)
|
|
("ruby-bump" ,ruby-bump)
|
|
("ruby-rspec" ,ruby-rspec)
|
|
("ruby-sqlite3" ,ruby-sqlite3)
|
|
("ruby-wwtd" ,ruby-wwtd)))
|
|
(propagated-inputs
|
|
`(("ruby-parallel-tests" ,ruby-parallel-tests)))
|
|
(synopsis "Run every test in a fork")
|
|
(description
|
|
"This package is a wrapper around @code{parallel_tests} that runs every
|
|
test in a fork to avoid pollution and get clean output per test.")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-formatador
|
|
(package
|
|
(name "ruby-formatador")
|
|
(version "0.2.5")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "formatador" version))
|
|
(sha256
|
|
(base32
|
|
"1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0"))))
|
|
(build-system ruby-build-system)
|
|
;; Circular dependency: Tests require ruby-shindo, which requires
|
|
;; ruby-formatador at runtime.
|
|
(arguments `(#:tests? #f))
|
|
(synopsis "Ruby library to format text on stdout")
|
|
(description "Formatador is a Ruby library to format text printed to the
|
|
standard output stream.")
|
|
(home-page "https://github.com/geemus/formatador")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-fuubar
|
|
(package
|
|
(name "ruby-fuubar")
|
|
(version "2.3.2")
|
|
(source
|
|
(origin
|
|
;; Fetch from the git repository, as the gem package doesn't include
|
|
;; the tests.
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "https://github.com/thekompanee/fuubar.git")
|
|
(commit (string-append "releases/v" version))))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32
|
|
"0jm1x2xp13csbnadixaikj7mlkp5yk4byx51npm56zi13izp7259"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(;; TODO: Some tests fail, unsure why.
|
|
;; 21 examples, 7 failures
|
|
#:tests? #f
|
|
#:phases
|
|
(modify-phases %standard-phases
|
|
(add-before 'build 'delete-certificate
|
|
(lambda _
|
|
;; Remove 's.cert_chain' as we do not build with a private key
|
|
(substitute* "fuubar.gemspec"
|
|
((".*cert_chain.*") "")
|
|
((".*signing_key.*") ""))
|
|
#t))
|
|
(replace 'check
|
|
(lambda* (#:key tests? #:allow-other-keys)
|
|
(when tests?
|
|
(invoke "rspec"))
|
|
#t)))))
|
|
(native-inputs
|
|
`(("bundler" ,bundler)))
|
|
(propagated-inputs
|
|
`(("ruby-rspec-core" ,ruby-rspec-core)
|
|
("ruby-progressbar" ,ruby-progressbar)))
|
|
(synopsis "Fuubar is an RSpec formatter that uses a progress bar")
|
|
(description
|
|
"Fuubar is an RSpec formatter that uses a progress bar instead of a
|
|
string of letters and dots as feedback. It also stops on the first test
|
|
failure.")
|
|
(home-page "https://github.com/thekompanee/fuubar")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-haml
|
|
(package
|
|
(name "ruby-haml")
|
|
(version "5.0.4")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "haml" version))
|
|
(sha256
|
|
(base32
|
|
"1q0a9fvqh8kn6wm97fcks6qzbjd400bv8bx748w8v87m7p4klhac"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:tests? #f)) ; No included tests
|
|
(propagated-inputs
|
|
`(("ruby-tilt" ,ruby-tilt)
|
|
("ruby-temple" ,ruby-temple)))
|
|
(synopsis "Haml is a Ruby library to generate HTML documents")
|
|
(description
|
|
"@acronym{Haml, HTML Abstraction Markup Language} is a layer on top of
|
|
HTML or XML that is designed to express the structure of documents using
|
|
indentation rather than closing tags. It was originally envisioned as a
|
|
plugin for Ruby on Rails, but it can function as a stand-alone templating
|
|
engine.")
|
|
(home-page "http://haml.info/")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-hamster
|
|
(package
|
|
(name "ruby-hamster")
|
|
(version "3.0.0")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "hamster" version))
|
|
(sha256
|
|
(base32
|
|
"1n1lsh96vnyc1pnzyd30f9prcsclmvmkdb3nm5aahnyizyiy6lar"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:phases
|
|
(modify-phases %standard-phases
|
|
(add-after 'unpack 'remove-unnecessary-dependencies
|
|
(lambda _
|
|
;; pry is a debugging tool, and is unnecessary when running the
|
|
;; tests
|
|
(substitute* "spec/lib/hamster/vector/insert_spec.rb"
|
|
(("require 'pry'") ""))
|
|
(substitute* "spec/spec_helper.rb"
|
|
(("require \"pry\"") "")
|
|
;; CodeClimate is an online service, and is unnecessary for
|
|
;; running the tests
|
|
(("require \"codeclimate-test-reporter\"") "")
|
|
(("CodeClimate.*\n") ""))
|
|
#t))
|
|
;; No Rakefile is included, so run rspec directly.
|
|
(replace 'check
|
|
(lambda* (#:key tests? #:allow-other-keys)
|
|
(when tests?
|
|
(invoke "rspec"))
|
|
#t)))))
|
|
(propagated-inputs
|
|
`(("ruby-concurrent" ,ruby-concurrent)))
|
|
(native-inputs
|
|
`(("ruby-rspec" ,ruby-rspec)))
|
|
(synopsis "Efficient, immutable, thread-safe collection classes for Ruby")
|
|
(description
|
|
"Hamster provides 6 persistent data structures: @code{Hash}, @code{Vector},
|
|
@code{Set}, @code{SortedSet}, @code{List}, and @code{Deque} (which works as an
|
|
immutable queue or stack).")
|
|
(home-page "https://github.com/hamstergem/hamster")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-hashdiff
|
|
(package
|
|
(name "ruby-hashdiff")
|
|
(version "0.3.8")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "hashdiff" version))
|
|
(sha256
|
|
(base32
|
|
"19ykg5pax8798nh1yv71adkx0zzs7gn2rxjj86v7nsw0jba5lask"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:phases
|
|
(modify-phases %standard-phases
|
|
;; Run tests directly via rspec to avoid Rake issue:
|
|
;; NoMethodError: undefined method `last_comment'
|
|
(replace 'check
|
|
(lambda* (#:key tests? #:allow-other-keys)
|
|
(when tests?
|
|
(invoke "rspec"))
|
|
#t)))))
|
|
(native-inputs
|
|
`(("bundler" ,bundler)
|
|
("ruby-rspec" ,ruby-rspec-2)))
|
|
(synopsis "HashDiff computes the smallest difference between two hashes")
|
|
(description
|
|
"HashDiff is a Ruby library to compute the smallest difference between
|
|
two hashes.")
|
|
(home-page "https://github.com/liufengyun/hashdiff")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-hydra
|
|
;; No releases yet.
|
|
(let ((commit "5abfa378743756ae4d9306cc134bcc482f5c9525")
|
|
(revision "0"))
|
|
(package
|
|
(name "ruby-hydra")
|
|
(version (git-version "0.0" revision commit))
|
|
(home-page "https://github.com/hyphenation/hydra")
|
|
(source (origin
|
|
(method git-fetch)
|
|
(uri (git-reference (url home-page) (commit commit)))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32
|
|
"1cik398l2765y3d9sdhjzki3303hkry58ac6jlkiy7iy62nm529f"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:phases (modify-phases %standard-phases
|
|
(add-after 'unpack 'make-files-writable
|
|
(lambda _
|
|
(for-each make-file-writable (find-files "."))
|
|
#t))
|
|
(replace 'check
|
|
(lambda _
|
|
(invoke "rspec"))))))
|
|
(native-inputs
|
|
`(("ruby-rspec" ,ruby-rspec)))
|
|
(propagated-inputs
|
|
`(("ruby-byebug" ,ruby-byebug)))
|
|
(synopsis "Ruby hyphenation patterns")
|
|
(description
|
|
"ruby-hydra is a Ruby library for working with hyphenation patterns.")
|
|
(license license:expat))))
|
|
|
|
(define-public ruby-shindo
|
|
(package
|
|
(name "ruby-shindo")
|
|
(version "0.3.8")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "shindo" version))
|
|
(sha256
|
|
(base32
|
|
"0s8v1jbz8i0jh92f2fgxb3p51l1azrpkc8nv4mhrqy4vndpvd7wq"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
`(#:test-target "shindo_tests"
|
|
#:phases
|
|
(modify-phases %standard-phases
|
|
(add-after 'unpack 'fix-tests
|
|
(lambda _
|
|
(substitute* "tests/tests_helper.rb"
|
|
(("-rubygems") ""))
|
|
(substitute* "Rakefile"
|
|
(("system \"shindo") "system \"./bin/shindo")
|
|
;; This test doesn't work, so we disable it.
|
|
(("fail \"The build_error test should fail") "#")
|
|
((" -rubygems") ""))
|
|
#t)))))
|
|
(propagated-inputs
|
|
`(("ruby-formatador" ,ruby-formatador)))
|
|
(synopsis "Simple depth first Ruby testing")
|
|
(description "Shindo is a simple depth first testing library for Ruby.")
|
|
(home-page "https://github.com/geemus/shindo")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-rubygems-tasks
|
|
(package
|
|
(name "ruby-rubygems-tasks")
|
|
(version "0.2.5")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "rubygems-tasks" version))
|
|
(sha256
|
|
(base32
|
|
"1x3sz3n2dlknd3v7w1mrq6f0ag6pwzhjvg7z29p75w3p42ma1gbx"))))
|
|
(build-system ruby-build-system)
|
|
;; Tests need Internet access.
|
|
(arguments `(#:tests? #f))
|
|
(native-inputs
|
|
`(("ruby-rspec" ,ruby-rspec)
|
|
("ruby-yard" ,ruby-yard)))
|
|
(synopsis "Rake tasks for managing and releasing Ruby Gems")
|
|
(description "Rubygems-task provides Rake tasks for managing and releasing
|
|
Ruby Gems.")
|
|
(home-page "https://github.com/postmodern/rubygems-tasks")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-rubyzip
|
|
(package
|
|
(name "ruby-rubyzip")
|
|
(version "1.2.1")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "rubyzip" version))
|
|
(sha256
|
|
(base32
|
|
"06js4gznzgh8ac2ldvmjcmg9v1vg9llm357yckkpylaj6z456zqz"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:phases
|
|
(modify-phases %standard-phases
|
|
(add-before 'check 'patch-tests
|
|
(lambda* (#:key inputs #:allow-other-keys)
|
|
(substitute* "test/gentestfiles.rb"
|
|
(("/usr/bin/zip")
|
|
(string-append
|
|
(assoc-ref inputs "zip") "/bin/zip")))
|
|
(substitute* "test/input_stream_test.rb"
|
|
(("/usr/bin/env ruby") (which "ruby")))
|
|
#t)))))
|
|
(native-inputs
|
|
`(("bundler" ,bundler)
|
|
("ruby-simplecov" ,ruby-simplecov)
|
|
("zip" ,zip)
|
|
("unzip" ,unzip)))
|
|
(synopsis "Ruby module is for reading and writing zip files")
|
|
(description
|
|
"The rubyzip module provides ways to read from and create zip files.")
|
|
(home-page "http://github.com/rubyzip/rubyzip")
|
|
(license license:bsd-2)))
|
|
|
|
(define-public ruby-simplecov-html
|
|
(package
|
|
(name "ruby-simplecov-html")
|
|
(version "0.10.2")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "simplecov-html" version))
|
|
(sha256
|
|
(base32
|
|
"1lihraa4rgxk8wbfl77fy9sf0ypk31iivly8vl3w04srd7i0clzn"))))
|
|
(build-system ruby-build-system)
|
|
(arguments `(#:tests? #f)) ; there are no tests
|
|
(native-inputs
|
|
`(("bundler" ,bundler)))
|
|
(synopsis "Default HTML formatter for SimpleCov code coverage tool")
|
|
(description "This package provides the default HTML formatter for
|
|
the SimpleCov code coverage tool for Ruby version 1.9 and above.")
|
|
(home-page "https://github.com/colszowka/simplecov-html")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-simplecov
|
|
(package
|
|
(name "ruby-simplecov")
|
|
(version "0.17.1")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "simplecov" version))
|
|
(sha256
|
|
(base32
|
|
"1135k46nik05sdab30yxb8264lqiz01c8v000g16cl9pjc4mxrdw"))))
|
|
(build-system ruby-build-system)
|
|
;; Simplecov depends on rubocop for code style checking at build time.
|
|
;; Rubocop needs simplecov at build time.
|
|
(arguments `(#:tests? #f))
|
|
(propagated-inputs
|
|
`(("ruby-json" ,ruby-json)
|
|
("ruby-docile" ,ruby-docile)
|
|
("ruby-simplecov-html" ,ruby-simplecov-html)))
|
|
(native-inputs
|
|
`(("bundler" ,bundler)))
|
|
(synopsis "Code coverage framework for Ruby")
|
|
(description "SimpleCov is a code coverage framework for Ruby with a
|
|
powerful configuration library and automatic merging of coverage across test
|
|
suites.")
|
|
(home-page "https://github.com/colszowka/simplecov")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-useragent
|
|
(package
|
|
(name "ruby-useragent")
|
|
(version "0.16.10")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "useragent" version))
|
|
(sha256
|
|
(base32
|
|
"1fv5kvq494swy0p17h9qya9r50w15xsi9zmvhzb8gh55kq6ki50p"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:tests? #f)) ; no test suite
|
|
(synopsis "HTTP user agent parser for Ruby")
|
|
(description "UserAgent is a Ruby library that parses and compares HTTP
|
|
User Agents.")
|
|
(home-page "https://github.com/gshutler/useragent")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-backports
|
|
(package
|
|
(name "ruby-backports")
|
|
(version "3.11.4")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "backports" version))
|
|
(sha256
|
|
(base32
|
|
"1hshjxww2h7s0dk57njrygq4zpp0nlqrjfya7zwm27iq3rhc3y8g"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(;; TODO: This should be default, but there is one test failure
|
|
#:test-target "all_spec"))
|
|
(native-inputs
|
|
`(("ruby-mspec" ,ruby-mspec)
|
|
("ruby-activesupport" ,ruby-activesupport)))
|
|
(synopsis "Backports of the features in newer Ruby versions")
|
|
(description
|
|
"Backports enables more compatibility across Ruby versions by providing
|
|
backports of some features.")
|
|
(home-page "https://github.com/marcandre/backports")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-bacon
|
|
(package
|
|
(name "ruby-bacon")
|
|
(version "1.2.0")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "bacon" version))
|
|
(sha256
|
|
(base32
|
|
"1f06gdj77bmwzc1k5iragl1595hbn67yc7sqvs56ca8plrr2vmai"))))
|
|
(build-system ruby-build-system)
|
|
(synopsis "Small RSpec clone")
|
|
(description "Bacon is a small RSpec clone providing all essential
|
|
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-bacon-colored-output
|
|
(package
|
|
(name "ruby-bacon-colored-output")
|
|
(version "1.1.1")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "bacon-colored_output" version))
|
|
(sha256
|
|
(base32
|
|
"1znyh3vkfdlmf19p3k4zip88ibym41dn5g4p4n5hmks2iznb7qpx"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(;; No included tests
|
|
#:tests? #f))
|
|
(propagated-inputs
|
|
`(("ruby-bacon" ,ruby-bacon)))
|
|
(synopsis "Colored output for Bacon test framework")
|
|
(description
|
|
"This package adds color through ANSI escape codes to Bacon test
|
|
output.")
|
|
(home-page "https://github.com/whitequark/bacon-colored_output")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-connection-pool
|
|
(package
|
|
(name "ruby-connection-pool")
|
|
(version "2.2.2")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "connection_pool" version))
|
|
(sha256
|
|
(base32
|
|
"0lflx29mlznf1hn0nihkgllzbj8xp5qasn8j7h838465pi399k68"))))
|
|
(build-system ruby-build-system)
|
|
(native-inputs
|
|
`(("bundler" ,bundler)))
|
|
(synopsis "Generic connection pool for Ruby")
|
|
(description "Connection_pool provides a generic connection pooling
|
|
interface for Ruby programs.")
|
|
(home-page "https://github.com/mperham/connection_pool")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-fast-gettext
|
|
(package
|
|
(name "ruby-fast-gettext")
|
|
(version "2.0.3")
|
|
(home-page "https://github.com/grosser/fast_gettext")
|
|
(source (origin
|
|
(method git-fetch)
|
|
(uri (git-reference (url home-page)
|
|
(commit (string-append "v" version))))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32
|
|
"1dg14apq5sfjshhcq0idphhs7aq9ikzswhqmn689p1h76mxqr1v6"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:test-target "spec"
|
|
#:phases (modify-phases %standard-phases
|
|
(add-before 'check 'remove-version-constraints
|
|
(lambda _
|
|
(delete-file "Gemfile.lock")
|
|
#t))
|
|
(add-before 'check 'remove-activerecord-test
|
|
(lambda _
|
|
;; FIXME: This test fails because ActiveRecord depends on
|
|
;; a different version of ruby-sqlite than the currently
|
|
;; available one.
|
|
(delete-file
|
|
"spec/fast_gettext/translation_repository/db_spec.rb")
|
|
#t))
|
|
(add-before 'check 'disable-i18n-test
|
|
(lambda _
|
|
;; XXX: This test checks i18n intricasies with Rails 3 and
|
|
;; automatically disables itself for Rails 4.0, but does
|
|
;; not know about newer versions as it has not been updated
|
|
;; since 2014. Disable for later versions of Rails too.
|
|
(substitute* "spec/fast_gettext/vendor/string_spec.rb"
|
|
(((string-append "ActiveRecord::VERSION::MAJOR == 4 and "
|
|
"ActiveRecord::VERSION::MINOR == 0"))
|
|
"ActiveRecord::VERSION::MAJOR >= 4"))
|
|
#t)))))
|
|
(native-inputs
|
|
`(;; For tests.
|
|
("ruby-activerecord" ,ruby-activerecord)
|
|
("ruby-activesupport" ,ruby-activesupport)
|
|
("ruby-bump" ,ruby-bump)
|
|
("ruby-forking-test-runner" ,ruby-forking-test-runner)
|
|
("ruby-i18n" ,ruby-i18n)
|
|
("ruby-rubocop" ,ruby-rubocop)
|
|
("ruby-rspec" ,ruby-rspec)
|
|
("ruby-single-cov" ,ruby-single-cov)
|
|
("ruby-sqlite3" ,ruby-sqlite3)
|
|
("ruby-wwtd" ,ruby-wwtd)))
|
|
(synopsis "Fast implementation of @code{GetText}")
|
|
(description
|
|
"This package provides an alternative implementation of the Ruby
|
|
@code{GetText} library that is approximately 12x faster yet thread safe.")
|
|
;; Some parts are covered by the Ruby license, see file headers.
|
|
(license (list license:expat license:ruby))))
|
|
|
|
(define-public ruby-net-http-persistent
|
|
(package
|
|
(name "ruby-net-http-persistent")
|
|
(version "3.0.0")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "net-http-persistent" version))
|
|
(sha256
|
|
(base32
|
|
"156rv95bgxfz6qw5y1r7c7bswr77918hygl8dyl14qzbqc5vyp18"))))
|
|
(build-system ruby-build-system)
|
|
(native-inputs
|
|
`(("ruby-connection-pool" ,ruby-connection-pool)
|
|
("ruby-hoe" ,ruby-hoe)))
|
|
(synopsis "Persistent HTTP connection manager")
|
|
(description "Net::HTTP::Persistent manages persistent HTTP connections
|
|
using Net::HTTP, supporting reconnection and retry according to RFC 2616.")
|
|
(home-page "https://github.com/drbrain/net-http-persistent")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-power-assert
|
|
(package
|
|
(name "ruby-power-assert")
|
|
(version "1.1.5")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "power_assert" version))
|
|
(sha256
|
|
(base32
|
|
"1dii0wkfa0jm8sk9b20zl1z4980dmrjh0zqnii058485pp3ws10s"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:tests? #f)) ; No included tests
|
|
(native-inputs
|
|
`(("bundler" ,bundler)))
|
|
(synopsis "Assert library with descriptive assertion messages")
|
|
(description "Power-assert is an assertion library providing descriptive
|
|
assertion messages for tests.")
|
|
(home-page "https://github.com/k-tsj/power_assert")
|
|
(license (list license:bsd-2 license:ruby))))
|
|
|
|
(define-public ruby-powerpack
|
|
(package
|
|
(name "ruby-powerpack")
|
|
(version "0.1.2")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "powerpack" version))
|
|
(sha256
|
|
(base32
|
|
"1r51d67wd467rpdfl6x43y84vwm8f5ql9l9m85ak1s2sp3nc5hyv"))))
|
|
(build-system ruby-build-system)
|
|
(arguments
|
|
'(#:test-target "spec"))
|
|
(native-inputs
|
|
`(("bundler" ,bundler)
|
|
("ruby-rspec" ,ruby-rspec)
|
|
("ruby-yard" ,ruby-yard)))
|
|
(synopsis "Useful extensions to core Ruby classes")
|
|
(description
|
|
"This package provides a few useful extensions to core Ruby classes,
|
|
including @code{Array}, @code{Enumerable}, @code{Hash}, @code{Numeric}, and
|
|
@code{String}.")
|
|
(home-page "https://github.com/bbatsov/powerpack")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-locale
|
|
(package
|
|
(name "ruby-locale")
|
|
(version "2.1.2")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "locale" version))
|
|
(sha256
|
|
(base32
|
|
"1sls9bq4krx0fmnzmlbn64dw23c4d6pz46ynjzrn9k8zyassdd0x"))))
|
|
(build-system ruby-build-system)
|
|
;; ruby-test-unit is required to run tests, but that needs ruby-packnga,
|
|
;; which needs ruby-gettext, which needs ruby-locale. To break the
|
|
;; dependency cycle we disable tests.
|
|
(arguments `(#:tests? #f))
|
|
(native-inputs
|
|
`(("bundler" ,bundler)
|
|
("ruby-yard" ,ruby-yard)))
|
|
(synopsis "Ruby library providing basic localization APIs")
|
|
(description
|
|
"Ruby-Locale is the pure ruby library which provides basic APIs for
|
|
localization.")
|
|
(home-page "https://github.com/ruby-gettext/locale")
|
|
(license (list license:lgpl3+ license:ruby))))
|
|
|
|
(define-public ruby-temple
|
|
(package
|
|
(name "ruby-temple")
|
|
(version "0.8.1")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "temple" version))
|
|
(sha256
|
|
(base32
|
|
"158d7ygbwcifqnvrph219p7m78yjdjazhykv5darbkms7bxm5y09"))))
|
|
(build-system ruby-build-system)
|
|
(native-inputs
|
|
`(("ruby-tilt" ,ruby-tilt)
|
|
("ruby-bacon" ,ruby-bacon)
|
|
("ruby-erubis" ,ruby-erubis)))
|
|
(synopsis "Template compilation framework in Ruby")
|
|
(description
|
|
"Temple is an abstraction and framework for compiling templates to pure
|
|
Ruby.")
|
|
(home-page "https://github.com/judofyr/temple")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-text
|
|
(package
|
|
(name "ruby-text")
|
|
(version "1.3.1")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "text" version))
|
|
(sha256
|
|
(base32
|
|
"1x6kkmsr49y3rnrin91rv8mpc3dhrf3ql08kbccw8yffq61brfrg"))))
|
|
(build-system ruby-build-system)
|
|
(synopsis "Collection of text algorithms for Ruby")
|
|
(description
|
|
"This package provides a collection of text algorithms: Levenshtein,
|
|
Soundex, Metaphone, Double Metaphone, Porter Stemming.")
|
|
(home-page "https://github.com/threedaymonk/text")
|
|
(license license:expat)))
|
|
|
|
(define-public ruby-gettext
|
|
(package
|
|
(name "ruby-gettext")
|
|
(version "3.1.7")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "gettext" version))
|
|
(sha256
|
|
(base32
|
|
"1hg9islkm324mb4sd4za1fgafj1hqnm3bdvzj3k4fqpnzqnbcfiq"))))
|
|
(build-system ruby-build-system)
|
|
;; ruby-test-unit is required to run tests, but that needs ruby-packnga,
|
|
;; which needs ruby-gettext. To break the dependency cycle we disable
|
|
;; tests.
|
|
(arguments `(#:tests? #f))
|
|
(propagated-inputs
|
|
`(("ruby-locale" ,ruby-locale)
|
|
("ruby-text" ,ruby-text)))
|
|
(native-inputs
|
|
`(("bundler" ,bundler)
|
|
("ruby-yard" ,ruby-yard)))
|
|
(synopsis "GNU gettext-like program for Ruby")
|
|
(description
|
|
"Gettext is a GNU gettext-like program for Ruby. The catalog
|
|
file (po-file) used is the same as that used by GNU gettext, allowing you to
|
|
use GNU gettext tools for maintenance.")
|
|
(home-page "https://ruby-gettext.github.com/")
|
|
(license (list license:lgpl3+ license:ruby))))
|
|
|
|
(define-public ruby-packnga
|
|
(package
|
|
(name "ruby-packnga")
|
|
(version "1.0.4")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (rubygems-uri "packnga" version))
|
|
(sha256
|
|
(base32
|
|
"1vv2j0i43s4xid2km5hgrrxqlqpwgq8nlm8kaxfg2531c1vwfsd4"))))
|
|
(build-system ruby-build-system)
|
|
;; ruby-test-unit is required to run tests, but that needs ruby-packnga.
|
|