diff options
| author | Nicolas Graves <ngraves@ngraves.fr> | 2025-06-05 03:13:25 +0200 |
|---|---|---|
| committer | Andreas Enge <andreas@enge.fr> | 2025-06-20 20:40:02 +0200 |
| commit | 01ad0cf43ea778e59e8fd7ed3cf03d809d920639 (patch) | |
| tree | 69446c1788b8e9cb203148b5a7f19dd8f7cd9136 /gnu/packages | |
| parent | 6fe1237ce6b437732d936546048dc256f34b32ad (diff) | |
gnu: ruby: Populating (gnu packages ruby-check/ruby-xyz).
* gnu/packages/ruby.scm: Move all packages except different versions
of ruby and mruby, to either (gnu packages ruby-check) or
(gnu packages ruby-xyz).
* gnu/packages/ruby-check.scm (bundler, ruby-builder, ruby-cucumber-ci-environment,
ruby-cucumber-compatibility-kit,
ruby-cucumber-compatibility-kit-bootstrap, ruby-cucumber-core,
ruby-cucumber-expressions, ruby-cucumber-gherkin,
ruby-cucumber-html-formatter, ruby-cucumber-messages,
ruby-cucumber-tag-expressions, ruby-cucumber-wire, ruby-diff-lcs,
ruby-docile, ruby-fivemat, ruby-given-core, ruby-hoe, ruby-hoe-3,
ruby-json, ruby-mime-types, ruby-mime-types-data, ruby-mini-portile,
ruby-mini-portile-2, ruby-minitest, ruby-minitest-bonus-assertions,
ruby-minitest-focus, ruby-minitest-hooks, ruby-minitest-moar,
ruby-multi-test, ruby-rake, ruby-rake-compiler,
ruby-rake-compiler-dock, ruby-rspec, ruby-rspec-2, ruby-rspec-core,
ruby-rspec-core-2, ruby-rspec-expectations, ruby-rspec-expectations-2,
ruby-rspec-mocks, ruby-rspec-mocks-2, ruby-rspec-support, ruby-sequel,
ruby-simplecov-json-formatter, ruby-simplecov, ruby-simplecov-html,
ruby-sorcerer, ruby-unindent): Moved from (gnu packages ruby).
(ruby-asciidoctor/minimal): New variable, to allow more minimal
import of only (gnu packages ruby-check) in a lot of modules.
(ruby-rubocop/minimal): New variable to build cucumber with a lot
less dependencies.
(cucumber-ruby-core)[native-inputs]: Replace ruby-rubocop by
ruby-rubocop/minimal. Remove ruby-coveralls.
* gnu/packages/ruby-xyz.scm: Move all other packages from
(gnu packages ruby).
* gnu/packages/admin.scm
* gnu/packages/bioinformatics.scm
* gnu/packages/databases.scm
* gnu/packages/emacs-xyz.scm
* gnu/packages/gnome-xyz.scm
* gnu/packages/gnome.scm
* gnu/packages/groff.scm
* gnu/packages/kde-systemtools.scm
* gnu/packages/libffi.scm
* gnu/packages/mail.scm
* gnu/packages/maths.scm
* gnu/packages/mpd.scm
* gnu/packages/ntp.scm
* gnu/packages/package-management.scm
* gnu/packages/plotutils.scm
* gnu/packages/protobuf.scm
* gnu/packages/rails.scm
* gnu/packages/ruby-check.scm
* gnu/packages/ruby-xyz.scm
* gnu/packages/ruby.scm
* gnu/packages/shellutils.scm
* gnu/packages/statistics.scm
* gnu/packages/tex.scm
* gnu/packages/virtualization.scm:
Adapt module imports accordingly.
* gnu/packages/backup.scm (btrbk):
* gnu/packages/ccache.scm (ccache):
* gnu/packages/cluster.scm (drbd-utils):
* gnu/packages/compton.scm (picom):
* gnu/packages/cryptsetup.scm (cryptsetup):
* gnu/packages/engineering.scm (kicad-doc):
* gnu/packages/games.scm (warzone2100):
* gnu/packages/irc.scm (open-adventure):
* gnu/packages/ntp.scm (weechat):
* gnu/packages/password-utils.scm (keepassxc):
* gnu/packages/radio.scm (wsjtx, jtdx):
* gnu/packages/syndication.scm (newsboat):
* gnu/packages/task-management.scm (timewarrior):
* gnu/packages/version-control.scm (git-lfs):
[native-inputs]: Replace ruby-asciidoctor by
ruby-asciidoctor/minimal. Adapt module imports accordingly.
* gnu/packages/text-editors.scm: Remove (gnu packages ruby) import.
Signed-off-by: Andreas Enge <andreas@enge.fr>
Diffstat (limited to 'gnu/packages')
38 files changed, 18004 insertions, 17817 deletions
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 4e3b1da8823..5baaa4a9222 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm | |||
| @@ -197,6 +197,8 @@ | |||
| 197 | #:use-module (gnu packages qt) | 197 | #:use-module (gnu packages qt) |
| 198 | #:use-module (gnu packages readline) | 198 | #:use-module (gnu packages readline) |
| 199 | #:use-module (gnu packages ruby) | 199 | #:use-module (gnu packages ruby) |
| 200 | #:use-module (gnu packages ruby-check) | ||
| 201 | #:use-module (gnu packages ruby-xyz) | ||
| 200 | #:use-module (gnu packages selinux) | 202 | #:use-module (gnu packages selinux) |
| 201 | #:use-module (gnu packages serialization) | 203 | #:use-module (gnu packages serialization) |
| 202 | #:use-module (gnu packages sqlite) | 204 | #:use-module (gnu packages sqlite) |
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 4a0d5226bd4..db80915c281 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm | |||
| @@ -102,7 +102,7 @@ | |||
| 102 | #:use-module (gnu packages python-xyz) | 102 | #:use-module (gnu packages python-xyz) |
| 103 | #:use-module (gnu packages qt) | 103 | #:use-module (gnu packages qt) |
| 104 | #:use-module (gnu packages rsync) | 104 | #:use-module (gnu packages rsync) |
| 105 | #:use-module (gnu packages ruby) | 105 | #:use-module (gnu packages ruby-check) |
| 106 | #:use-module (gnu packages serialization) | 106 | #:use-module (gnu packages serialization) |
| 107 | #:use-module (gnu packages ssh) | 107 | #:use-module (gnu packages ssh) |
| 108 | #:use-module (gnu packages time) | 108 | #:use-module (gnu packages time) |
| @@ -1222,8 +1222,8 @@ interactive mode.") | |||
| 1222 | "bin/mbuffer" | 1222 | "bin/mbuffer" |
| 1223 | "bin/ssh"))))))))) | 1223 | "bin/ssh"))))))))) |
| 1224 | (native-inputs | 1224 | (native-inputs |
| 1225 | (if (supported-package? ruby-asciidoctor) | 1225 | (if (supported-package? ruby-asciidoctor/minimal) |
| 1226 | (list ruby-asciidoctor) | 1226 | (list ruby-asciidoctor/minimal) |
| 1227 | '())) | 1227 | '())) |
| 1228 | (inputs (list bash-minimal | 1228 | (inputs (list bash-minimal |
| 1229 | btrfs-progs | 1229 | btrfs-progs |
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index a119a13a6f1..4e289baeed1 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm | |||
| @@ -159,6 +159,8 @@ | |||
| 159 | #:use-module (gnu packages rpc) | 159 | #:use-module (gnu packages rpc) |
| 160 | #:use-module (gnu packages rsync) | 160 | #:use-module (gnu packages rsync) |
| 161 | #:use-module (gnu packages ruby) | 161 | #:use-module (gnu packages ruby) |
| 162 | #:use-module (gnu packages ruby-check) | ||
| 163 | #:use-module (gnu packages ruby-xyz) | ||
| 162 | #:use-module (gnu packages serialization) | 164 | #:use-module (gnu packages serialization) |
| 163 | #:use-module (gnu packages shells) | 165 | #:use-module (gnu packages shells) |
| 164 | #:use-module (gnu packages skribilo) | 166 | #:use-module (gnu packages skribilo) |
diff --git a/gnu/packages/ccache.scm b/gnu/packages/ccache.scm index a1af25df2bf..bc7c6bfb6c2 100644 --- a/gnu/packages/ccache.scm +++ b/gnu/packages/ccache.scm | |||
| @@ -30,7 +30,7 @@ | |||
| 30 | #:use-module (gnu packages base) | 30 | #:use-module (gnu packages base) |
| 31 | #:use-module (gnu packages compression) | 31 | #:use-module (gnu packages compression) |
| 32 | #:use-module (gnu packages perl) | 32 | #:use-module (gnu packages perl) |
| 33 | #:use-module (gnu packages ruby)) | 33 | #:use-module (gnu packages ruby-check)) |
| 34 | 34 | ||
| 35 | (define-public ccache | 35 | (define-public ccache |
| 36 | (package | 36 | (package |
| @@ -64,8 +64,8 @@ | |||
| 64 | (setenv "HOME" (getenv "TMPDIR"))))))) | 64 | (setenv "HOME" (getenv "TMPDIR"))))))) |
| 65 | (native-inputs | 65 | (native-inputs |
| 66 | (append (list perl which) | 66 | (append (list perl which) |
| 67 | (if (supported-package? ruby-asciidoctor) | 67 | (if (supported-package? ruby-asciidoctor/minimal) |
| 68 | (list ruby-asciidoctor) | 68 | (list ruby-asciidoctor/minimal) |
| 69 | '()))) | 69 | '()))) |
| 70 | (inputs (list zlib `(,zstd "lib"))) | 70 | (inputs (list zlib `(,zstd "lib"))) |
| 71 | (home-page "https://ccache.dev/") | 71 | (home-page "https://ccache.dev/") |
diff --git a/gnu/packages/cluster.scm b/gnu/packages/cluster.scm index 6d5ea0c3b26..866cfdce5b7 100644 --- a/gnu/packages/cluster.scm +++ b/gnu/packages/cluster.scm | |||
| @@ -37,7 +37,7 @@ | |||
| 37 | #:use-module (gnu packages libevent) | 37 | #:use-module (gnu packages libevent) |
| 38 | #:use-module (gnu packages linux) | 38 | #:use-module (gnu packages linux) |
| 39 | #:use-module (gnu packages pkg-config) | 39 | #:use-module (gnu packages pkg-config) |
| 40 | #:use-module (gnu packages ruby) | 40 | #:use-module (gnu packages ruby-check) |
| 41 | #:use-module (gnu packages sphinx) | 41 | #:use-module (gnu packages sphinx) |
| 42 | #:use-module (gnu packages sqlite) | 42 | #:use-module (gnu packages sqlite) |
| 43 | #:use-module (gnu packages texinfo) | 43 | #:use-module (gnu packages texinfo) |
| @@ -135,12 +135,12 @@ | |||
| 135 | eudev ;just to satisfy a configure check | 135 | eudev ;just to satisfy a configure check |
| 136 | flex) | 136 | flex) |
| 137 | ;; For the documentation. | 137 | ;; For the documentation. |
| 138 | (if (supported-package? ruby-asciidoctor) | 138 | (if (supported-package? ruby-asciidoctor/minimal) |
| 139 | (list docbook-xml | 139 | (list docbook-xml |
| 140 | docbook-xml-4.4 ;used by documentation/ra2refentry.xsl | 140 | docbook-xml-4.4 ;used by documentation/ra2refentry.xsl |
| 141 | docbook-xsl | 141 | docbook-xsl |
| 142 | libxslt ;for xsltproc | 142 | libxslt ;for xsltproc |
| 143 | ruby-asciidoctor) | 143 | ruby-asciidoctor/minimal) |
| 144 | '()))) | 144 | '()))) |
| 145 | (home-page "https://www.linbit.com/drbd/") | 145 | (home-page "https://www.linbit.com/drbd/") |
| 146 | (synopsis "Replicate block devices between machines") | 146 | (synopsis "Replicate block devices between machines") |
diff --git a/gnu/packages/compton.scm b/gnu/packages/compton.scm index 6e8dd5442e8..1d20cf3b274 100644 --- a/gnu/packages/compton.scm +++ b/gnu/packages/compton.scm | |||
| @@ -43,7 +43,7 @@ | |||
| 43 | #:use-module (gnu packages xdisorg) | 43 | #:use-module (gnu packages xdisorg) |
| 44 | #:use-module (gnu packages xml) | 44 | #:use-module (gnu packages xml) |
| 45 | #:use-module (gnu packages xorg) | 45 | #:use-module (gnu packages xorg) |
| 46 | #:use-module (gnu packages ruby)) | 46 | #:use-module (gnu packages ruby-check)) |
| 47 | 47 | ||
| 48 | (define-public compton | 48 | (define-public compton |
| 49 | (let ((upstream-version "0.1_beta2")) | 49 | (let ((upstream-version "0.1_beta2")) |
| @@ -146,8 +146,8 @@ performance). | |||
| 146 | (native-inputs | 146 | (native-inputs |
| 147 | (append | 147 | (append |
| 148 | (list pkg-config xorgproto) | 148 | (list pkg-config xorgproto) |
| 149 | (if (supported-package? ruby-asciidoctor) | 149 | (if (supported-package? ruby-asciidoctor/minimal) |
| 150 | (list ruby-asciidoctor) | 150 | (list ruby-asciidoctor/minimal) |
| 151 | '()))) | 151 | '()))) |
| 152 | (arguments | 152 | (arguments |
| 153 | (list #:build-type "release" | 153 | (list #:build-type "release" |
diff --git a/gnu/packages/cryptsetup.scm b/gnu/packages/cryptsetup.scm index 44f9c779845..d2f537681dd 100644 --- a/gnu/packages/cryptsetup.scm +++ b/gnu/packages/cryptsetup.scm | |||
| @@ -32,7 +32,7 @@ | |||
| 32 | #:use-module (gnu packages pkg-config) | 32 | #:use-module (gnu packages pkg-config) |
| 33 | #:use-module (gnu packages popt) | 33 | #:use-module (gnu packages popt) |
| 34 | #:use-module (gnu packages linux) | 34 | #:use-module (gnu packages linux) |
| 35 | #:use-module (gnu packages ruby) | 35 | #:use-module (gnu packages ruby-check) |
| 36 | #:use-module (gnu packages web)) | 36 | #:use-module (gnu packages web)) |
| 37 | 37 | ||
| 38 | (define-public cryptsetup | 38 | (define-public cryptsetup |
| @@ -71,8 +71,8 @@ | |||
| 71 | (assoc-ref %build-inputs "libgcrypt")))))) | 71 | (assoc-ref %build-inputs "libgcrypt")))))) |
| 72 | (native-inputs | 72 | (native-inputs |
| 73 | (append (list pkg-config) | 73 | (append (list pkg-config) |
| 74 | (if (supported-package? ruby-asciidoctor) | 74 | (if (supported-package? ruby-asciidoctor/minimal) |
| 75 | (list ruby-asciidoctor) | 75 | (list ruby-asciidoctor/minimal) |
| 76 | '()))) | 76 | '()))) |
| 77 | (inputs | 77 | (inputs |
| 78 | (list argon2 | 78 | (list argon2 |
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index a423210435d..99fd787a491 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm | |||
| @@ -162,6 +162,8 @@ | |||
| 162 | #:use-module (gnu packages regex) | 162 | #:use-module (gnu packages regex) |
| 163 | #:use-module (gnu packages rpc) | 163 | #:use-module (gnu packages rpc) |
| 164 | #:use-module (gnu packages ruby) | 164 | #:use-module (gnu packages ruby) |
| 165 | #:use-module (gnu packages ruby-check) | ||
| 166 | #:use-module (gnu packages ruby-xyz) | ||
| 165 | #:use-module (gnu packages serialization) | 167 | #:use-module (gnu packages serialization) |
| 166 | #:use-module (gnu packages sphinx) | 168 | #:use-module (gnu packages sphinx) |
| 167 | #:use-module (gnu packages ssh) | 169 | #:use-module (gnu packages ssh) |
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 6dec8af804d..3f163426322 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm | |||
| @@ -272,6 +272,8 @@ | |||
| 272 | #:use-module (gnu packages pdf) | 272 | #:use-module (gnu packages pdf) |
| 273 | #:use-module (gnu packages racket) | 273 | #:use-module (gnu packages racket) |
| 274 | #:use-module (gnu packages ruby) | 274 | #:use-module (gnu packages ruby) |
| 275 | #:use-module (gnu packages ruby-check) | ||
| 276 | #:use-module (gnu packages ruby-xyz) | ||
| 275 | #:use-module (gnu packages rust) | 277 | #:use-module (gnu packages rust) |
| 276 | #:use-module (gnu packages rust-apps) | 278 | #:use-module (gnu packages rust-apps) |
| 277 | #:use-module (gnu packages scheme) | 279 | #:use-module (gnu packages scheme) |
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index b42360517a4..0a1d3cdf642 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm | |||
| @@ -161,7 +161,7 @@ | |||
| 161 | #:use-module (gnu packages python-xyz) | 161 | #:use-module (gnu packages python-xyz) |
| 162 | #:use-module (gnu packages qt) | 162 | #:use-module (gnu packages qt) |
| 163 | #:use-module (gnu packages readline) | 163 | #:use-module (gnu packages readline) |
| 164 | #:use-module (gnu packages ruby) | 164 | #:use-module (gnu packages ruby-check) |
| 165 | #:use-module (gnu packages sagemath) | 165 | #:use-module (gnu packages sagemath) |
| 166 | #:use-module (gnu packages serialization) | 166 | #:use-module (gnu packages serialization) |
| 167 | #:use-module (gnu packages sqlite) | 167 | #:use-module (gnu packages sqlite) |
| @@ -1409,7 +1409,7 @@ electrical diagrams), gerbview (viewing Gerber files) and others.") | |||
| 1409 | perl-unicode-linebreak | 1409 | perl-unicode-linebreak |
| 1410 | perl-yaml-tiny | 1410 | perl-yaml-tiny |
| 1411 | po4a | 1411 | po4a |
| 1412 | ruby-asciidoctor | 1412 | ruby-asciidoctor/minimal |
| 1413 | source-highlight)) | 1413 | source-highlight)) |
| 1414 | (home-page "https://kicad.org") | 1414 | (home-page "https://kicad.org") |
| 1415 | (synopsis "KiCad official documentation") | 1415 | (synopsis "KiCad official documentation") |
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index a2e1241056d..a782d52111b 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm | |||
| @@ -218,7 +218,7 @@ | |||
| 218 | #:use-module (gnu packages python-xyz) | 218 | #:use-module (gnu packages python-xyz) |
| 219 | #:use-module (gnu packages qt) | 219 | #:use-module (gnu packages qt) |
| 220 | #:use-module (gnu packages readline) | 220 | #:use-module (gnu packages readline) |
| 221 | #:use-module (gnu packages ruby) | 221 | #:use-module (gnu packages ruby-check) |
| 222 | #:use-module (gnu packages shells) | 222 | #:use-module (gnu packages shells) |
| 223 | #:use-module (gnu packages sdl) | 223 | #:use-module (gnu packages sdl) |
| 224 | #:use-module (gnu packages serialization) | 224 | #:use-module (gnu packages serialization) |
| @@ -6469,7 +6469,7 @@ in-window at 640x480 resolution or fullscreen.") | |||
| 6469 | "iV_DrawTextRotated(\"Press ESC to exit.\", " | 6469 | "iV_DrawTextRotated(\"Press ESC to exit.\", " |
| 6470 | "100, 100, 0.0f, font_regular);")))))))) | 6470 | "100, 100, 0.0f, font_regular);")))))))) |
| 6471 | (native-inputs (list asciidoc | 6471 | (native-inputs (list asciidoc |
| 6472 | ruby-asciidoctor | 6472 | ruby-asciidoctor/minimal |
| 6473 | gettext-minimal | 6473 | gettext-minimal |
| 6474 | pkg-config | 6474 | pkg-config |
| 6475 | unzip | 6475 | unzip |
| @@ -8299,8 +8299,8 @@ at their peak of economic growth and military prowess. | |||
| 8299 | python-pylint | 8299 | python-pylint |
| 8300 | python-pyyaml | 8300 | python-pyyaml |
| 8301 | python-wrapper) | 8301 | python-wrapper) |
| 8302 | (if (supported-package? ruby-asciidoctor) | 8302 | (if (supported-package? ruby-asciidoctor/minimal) |
| 8303 | (list ruby-asciidoctor) | 8303 | (list ruby-asciidoctor/minimal) |
| 8304 | '()))) | 8304 | '()))) |
| 8305 | (home-page "https://gitlab.com/esr/open-adventure") | 8305 | (home-page "https://gitlab.com/esr/open-adventure") |
| 8306 | (synopsis "Colossal Cave Adventure") | 8306 | (synopsis "Colossal Cave Adventure") |
diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm index 34c61fe343a..8d53e895590 100644 --- a/gnu/packages/gnome-xyz.scm +++ b/gnu/packages/gnome-xyz.scm | |||
| @@ -83,7 +83,7 @@ | |||
| 83 | #:use-module (gnu packages ssh) | 83 | #:use-module (gnu packages ssh) |
| 84 | #:use-module (gnu packages textutils) | 84 | #:use-module (gnu packages textutils) |
| 85 | #:use-module (gnu packages tls) | 85 | #:use-module (gnu packages tls) |
| 86 | #:use-module (gnu packages ruby) | 86 | #:use-module (gnu packages ruby-xyz) |
| 87 | #:use-module (gnu packages web) | 87 | #:use-module (gnu packages web) |
| 88 | #:use-module (gnu packages xml) | 88 | #:use-module (gnu packages xml) |
| 89 | #:use-module (gnu packages xorg)) | 89 | #:use-module (gnu packages xorg)) |
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index c63e1ff29e0..da70b9017af 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm | |||
| @@ -211,7 +211,7 @@ | |||
| 211 | #:use-module (gnu packages rdesktop) | 211 | #:use-module (gnu packages rdesktop) |
| 212 | #:use-module (gnu packages rdf) | 212 | #:use-module (gnu packages rdf) |
| 213 | #:use-module (gnu packages readline) | 213 | #:use-module (gnu packages readline) |
| 214 | #:use-module (gnu packages ruby) | 214 | #:use-module (gnu packages ruby-xyz) |
| 215 | #:use-module (gnu packages rust) | 215 | #:use-module (gnu packages rust) |
| 216 | #:use-module (gnu packages samba) | 216 | #:use-module (gnu packages samba) |
| 217 | #:use-module (gnu packages scanner) | 217 | #:use-module (gnu packages scanner) |
diff --git a/gnu/packages/groff.scm b/gnu/packages/groff.scm index d4e1bc21276..5434c308880 100644 --- a/gnu/packages/groff.scm +++ b/gnu/packages/groff.scm | |||
| @@ -35,7 +35,7 @@ | |||
| 35 | #:use-module (guix gexp) | 35 | #:use-module (guix gexp) |
| 36 | #:use-module (gnu packages) | 36 | #:use-module (gnu packages) |
| 37 | #:use-module (gnu packages bash) | 37 | #:use-module (gnu packages bash) |
| 38 | #:use-module (gnu packages ruby) | 38 | #:use-module (gnu packages ruby-xyz) |
| 39 | #:use-module (gnu packages bison) | 39 | #:use-module (gnu packages bison) |
| 40 | #:use-module (gnu packages flex) | 40 | #:use-module (gnu packages flex) |
| 41 | #:use-module (gnu packages ghostscript) | 41 | #:use-module (gnu packages ghostscript) |
diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index 1ab72a36364..79039c6c589 100644 --- a/gnu/packages/irc.scm +++ b/gnu/packages/irc.scm | |||
| @@ -103,6 +103,7 @@ | |||
| 103 | #:use-module (gnu packages python-xyz) | 103 | #:use-module (gnu packages python-xyz) |
| 104 | #:use-module (gnu packages regex) | 104 | #:use-module (gnu packages regex) |
| 105 | #:use-module (gnu packages ruby) | 105 | #:use-module (gnu packages ruby) |
| 106 | #:use-module (gnu packages ruby-check) | ||
| 106 | #:use-module (gnu packages sphinx) | 107 | #:use-module (gnu packages sphinx) |
| 107 | #:use-module (gnu packages sqlite) | 108 | #:use-module (gnu packages sqlite) |
| 108 | #:use-module (gnu packages qt) | 109 | #:use-module (gnu packages qt) |
| @@ -389,7 +390,7 @@ Conferencing} and @acronym{ICB, Internet Citizen's Band}.") | |||
| 389 | (native-inputs | 390 | (native-inputs |
| 390 | (append (list gettext-minimal pkg-config) | 391 | (append (list gettext-minimal pkg-config) |
| 391 | (if (target-x86?) | 392 | (if (target-x86?) |
| 392 | (list ruby-asciidoctor) | 393 | (list ruby-asciidoctor/minimal) |
| 393 | '()))) | 394 | '()))) |
| 394 | (inputs | 395 | (inputs |
| 395 | (list aspell | 396 | (list aspell |
diff --git a/gnu/packages/kde-systemtools.scm b/gnu/packages/kde-systemtools.scm index 4923854a7c7..905cde50811 100644 --- a/gnu/packages/kde-systemtools.scm +++ b/gnu/packages/kde-systemtools.scm | |||
| @@ -38,6 +38,7 @@ | |||
| 38 | #:use-module (gnu packages qt) | 38 | #:use-module (gnu packages qt) |
| 39 | #:use-module (gnu packages glib) | 39 | #:use-module (gnu packages glib) |
| 40 | #:use-module (gnu packages ruby) | 40 | #:use-module (gnu packages ruby) |
| 41 | #:use-module (gnu packages ruby-xyz) | ||
| 41 | #:use-module (gnu packages search) | 42 | #:use-module (gnu packages search) |
| 42 | #:use-module (gnu packages vnc) | 43 | #:use-module (gnu packages vnc) |
| 43 | #:use-module (gnu packages perl) | 44 | #:use-module (gnu packages perl) |
diff --git a/gnu/packages/libffi.scm b/gnu/packages/libffi.scm index 5ac092da1cc..b1e8cd53336 100644 --- a/gnu/packages/libffi.scm +++ b/gnu/packages/libffi.scm | |||
| @@ -39,7 +39,8 @@ | |||
| 39 | #:use-module (gnu packages python) | 39 | #:use-module (gnu packages python) |
| 40 | #:use-module (gnu packages python-build) | 40 | #:use-module (gnu packages python-build) |
| 41 | #:use-module (gnu packages python-xyz) | 41 | #:use-module (gnu packages python-xyz) |
| 42 | #:use-module (gnu packages ruby) | 42 | #:use-module (gnu packages ruby-check) |
| 43 | #:use-module (gnu packages ruby-xyz) | ||
| 43 | #:use-module (gnu packages sphinx) | 44 | #:use-module (gnu packages sphinx) |
| 44 | #:use-module (guix build-system gnu) | 45 | #:use-module (guix build-system gnu) |
| 45 | #:use-module (guix build-system pyproject) | 46 | #:use-module (guix build-system pyproject) |
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 30825ad0e21..614d686c599 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm | |||
| @@ -169,6 +169,8 @@ | |||
| 169 | #:use-module (gnu packages readline) | 169 | #:use-module (gnu packages readline) |
| 170 | #:use-module (gnu packages regex) | 170 | #:use-module (gnu packages regex) |
| 171 | #:use-module (gnu packages ruby) | 171 | #:use-module (gnu packages ruby) |
| 172 | #:use-module (gnu packages ruby-check) | ||
| 173 | #:use-module (gnu packages ruby-xyz) | ||
| 172 | #:use-module (gnu packages rust-apps) | 174 | #:use-module (gnu packages rust-apps) |
| 173 | #:use-module (gnu packages samba) | 175 | #:use-module (gnu packages samba) |
| 174 | #:use-module (gnu packages screen) | 176 | #:use-module (gnu packages screen) |
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 4de8ddd77d2..20df070d336 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm | |||
| @@ -184,7 +184,8 @@ | |||
| 184 | #:use-module (gnu packages python-xyz) | 184 | #:use-module (gnu packages python-xyz) |
| 185 | #:use-module (gnu packages qt) | 185 | #:use-module (gnu packages qt) |
| 186 | #:use-module (gnu packages readline) | 186 | #:use-module (gnu packages readline) |
| 187 | #:use-module (gnu packages ruby) | 187 | #:use-module (gnu packages ruby-check) |
| 188 | #:use-module (gnu packages ruby-xyz) | ||
| 188 | #:use-module (gnu packages tbb) | 189 | #:use-module (gnu packages tbb) |
| 189 | #:use-module (gnu packages scheme) | 190 | #:use-module (gnu packages scheme) |
| 190 | #:use-module (gnu packages serialization) | 191 | #:use-module (gnu packages serialization) |
diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index 4afd2dd8f56..ceee854ebfa 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm | |||
| @@ -58,7 +58,7 @@ | |||
| 58 | #:use-module (gnu packages libusb) | 58 | #:use-module (gnu packages libusb) |
| 59 | #:use-module (gnu packages lua) | 59 | #:use-module (gnu packages lua) |
| 60 | #:use-module (gnu packages readline) | 60 | #:use-module (gnu packages readline) |
| 61 | #:use-module (gnu packages ruby) | 61 | #:use-module (gnu packages ruby-xyz) |
| 62 | #:use-module (gnu packages check) | 62 | #:use-module (gnu packages check) |
| 63 | #:use-module (gnu packages compression) | 63 | #:use-module (gnu packages compression) |
| 64 | #:use-module (gnu packages curl) | 64 | #:use-module (gnu packages curl) |
diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm index 64ecb8a8f19..88661061648 100644 --- a/gnu/packages/ntp.scm +++ b/gnu/packages/ntp.scm | |||
| @@ -42,7 +42,7 @@ | |||
| 42 | #:use-module (gnu packages python) | 42 | #:use-module (gnu packages python) |
| 43 | #:use-module (gnu packages python-xyz) | 43 | #:use-module (gnu packages python-xyz) |
| 44 | #:use-module (gnu packages readline) | 44 | #:use-module (gnu packages readline) |
| 45 | #:use-module (gnu packages ruby) | 45 | #:use-module (gnu packages ruby-check) |
| 46 | #:use-module (gnu packages time) | 46 | #:use-module (gnu packages time) |
| 47 | #:use-module (gnu packages tls) | 47 | #:use-module (gnu packages tls) |
| 48 | #:use-module (guix build-system gnu) | 48 | #:use-module (guix build-system gnu) |
| @@ -110,8 +110,8 @@ | |||
| 110 | (native-inputs | 110 | (native-inputs |
| 111 | (append (list bison | 111 | (append (list bison |
| 112 | pkg-config) | 112 | pkg-config) |
| 113 | (if (supported-package? ruby-asciidoctor) | 113 | (if (supported-package? ruby-asciidoctor/minimal) |
| 114 | (list ruby-asciidoctor) | 114 | (list ruby-asciidoctor/minimal) |
| 115 | '()))) | 115 | '()))) |
| 116 | (inputs | 116 | (inputs |
| 117 | (list gnutls libcap libseccomp nettle)) | 117 | (list gnutls libcap libseccomp nettle)) |
| @@ -213,7 +213,7 @@ computers over a network.") | |||
| 213 | pkg-config | 213 | pkg-config |
| 214 | pps-tools | 214 | pps-tools |
| 215 | python-waf | 215 | python-waf |
| 216 | ruby-asciidoctor)) | 216 | ruby-asciidoctor/minimal)) |
| 217 | (inputs (cons* gpsd openssl | 217 | (inputs (cons* gpsd openssl |
| 218 | ;; Build with POSIX capabilities and syscall filtering | 218 | ;; Build with POSIX capabilities and syscall filtering |
| 219 | ;; support on GNU/Linux, for extra security features. | 219 | ;; support on GNU/Linux, for extra security features. |
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 67a8f743f6d..14214646814 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm | |||
| @@ -109,7 +109,8 @@ | |||
| 109 | #:use-module (gnu packages python-check) | 109 | #:use-module (gnu packages python-check) |
| 110 | #:use-module (gnu packages python-web) | 110 | #:use-module (gnu packages python-web) |
| 111 | #:use-module (gnu packages python-xyz) | 111 | #:use-module (gnu packages python-xyz) |
| 112 | #:use-module (gnu packages ruby) | 112 | #:use-module (gnu packages ruby-check) |
| 113 | #:use-module (gnu packages ruby-xyz) | ||
| 113 | #:use-module (gnu packages serialization) | 114 | #:use-module (gnu packages serialization) |
| 114 | #:use-module (gnu packages sqlite) | 115 | #:use-module (gnu packages sqlite) |
| 115 | #:use-module (gnu packages ssh) | 116 | #:use-module (gnu packages ssh) |
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index c0c0f551063..2f2e7a8a18f 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm | |||
| @@ -121,6 +121,7 @@ | |||
| 121 | #:use-module (gnu packages rdesktop) | 121 | #:use-module (gnu packages rdesktop) |
| 122 | #:use-module (gnu packages readline) | 122 | #:use-module (gnu packages readline) |
| 123 | #:use-module (gnu packages ruby) | 123 | #:use-module (gnu packages ruby) |
| 124 | #:use-module (gnu packages ruby-check) | ||
| 124 | #:use-module (gnu packages security-token) | 125 | #:use-module (gnu packages security-token) |
| 125 | #:use-module (gnu packages suckless) | 126 | #:use-module (gnu packages suckless) |
| 126 | #:use-module (gnu packages tcl) | 127 | #:use-module (gnu packages tcl) |
| @@ -247,7 +248,8 @@ human.") | |||
| 247 | (list "-DWITH_XC_ALL=YES" | 248 | (list "-DWITH_XC_ALL=YES" |
| 248 | "-DWITH_XC_UPDATECHECK=NO") | 249 | "-DWITH_XC_UPDATECHECK=NO") |
| 249 | #$(if (member (%current-system) | 250 | #$(if (member (%current-system) |
| 250 | (package-transitive-supported-systems ruby-asciidoctor)) | 251 | (package-transitive-supported-systems |
| 252 | ruby-asciidoctor/minimal)) | ||
| 251 | #~'() | 253 | #~'() |
| 252 | #~(list "-DWITH_XC_DOCS=NO"))) | 254 | #~(list "-DWITH_XC_DOCS=NO"))) |
| 253 | #:phases | 255 | #:phases |
| @@ -288,8 +290,9 @@ human.") | |||
| 288 | (append | 290 | (append |
| 289 | (list qttools-5) | 291 | (list qttools-5) |
| 290 | (if (member (%current-system) | 292 | (if (member (%current-system) |
| 291 | (package-transitive-supported-systems ruby-asciidoctor)) | 293 | (package-transitive-supported-systems |
| 292 | (list ruby-asciidoctor) | 294 | ruby-asciidoctor/minimal)) |
| 295 | (list ruby-asciidoctor/minimal) | ||
| 293 | '()))) | 296 | '()))) |
| 294 | (inputs | 297 | (inputs |
| 295 | (list argon2 | 298 | (list argon2 |
diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm index feec60ca42d..fd63e6952cb 100644 --- a/gnu/packages/plotutils.scm +++ b/gnu/packages/plotutils.scm | |||
| @@ -56,7 +56,8 @@ | |||
| 56 | #:use-module (gnu packages python-xyz) | 56 | #:use-module (gnu packages python-xyz) |
| 57 | #:use-module (gnu packages qt) | 57 | #:use-module (gnu packages qt) |
| 58 | #:use-module (gnu packages readline) | 58 | #:use-module (gnu packages readline) |
| 59 | #:use-module (gnu packages ruby) | 59 | #:use-module (gnu packages ruby-check) |
| 60 | #:use-module (gnu packages ruby-xyz) | ||
| 60 | #:use-module (gnu packages statistics) | 61 | #:use-module (gnu packages statistics) |
| 61 | #:use-module (gnu packages tex) | 62 | #:use-module (gnu packages tex) |
| 62 | #:use-module (gnu packages texinfo) | 63 | #:use-module (gnu packages texinfo) |
diff --git a/gnu/packages/protobuf.scm b/gnu/packages/protobuf.scm index 1dabaeec346..6ac17d37339 100644 --- a/gnu/packages/protobuf.scm +++ b/gnu/packages/protobuf.scm | |||
| @@ -51,7 +51,8 @@ | |||
| 51 | #:use-module (gnu packages python-xyz) | 51 | #:use-module (gnu packages python-xyz) |
| 52 | #:use-module (gnu packages rpc) | 52 | #:use-module (gnu packages rpc) |
| 53 | #:use-module (gnu packages rails) | 53 | #:use-module (gnu packages rails) |
| 54 | #:use-module (gnu packages ruby) | 54 | #:use-module (gnu packages ruby-check) |
| 55 | #:use-module (gnu packages ruby-xyz) | ||
| 55 | #:use-module (srfi srfi-1)) | 56 | #:use-module (srfi srfi-1)) |
| 56 | 57 | ||
| 57 | (define-public fstrm | 58 | (define-public fstrm |
diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm index 25f9d53fedc..7402895249d 100644 --- a/gnu/packages/radio.scm +++ b/gnu/packages/radio.scm | |||
| @@ -104,7 +104,7 @@ | |||
| 104 | #:use-module (gnu packages python-xyz) | 104 | #:use-module (gnu packages python-xyz) |
| 105 | #:use-module (gnu packages qt) | 105 | #:use-module (gnu packages qt) |
| 106 | #:use-module (gnu packages readline) | 106 | #:use-module (gnu packages readline) |
| 107 | #:use-module (gnu packages ruby) | 107 | #:use-module (gnu packages ruby-check) |
| 108 | #:use-module (gnu packages sdl) | 108 | #:use-module (gnu packages sdl) |
| 109 | #:use-module (gnu packages serialization) | 109 | #:use-module (gnu packages serialization) |
| 110 | #:use-module (gnu packages sphinx) | 110 | #:use-module (gnu packages sphinx) |
| @@ -1774,8 +1774,8 @@ instances over the network, and general QSO and DXpedition logging.") | |||
| 1774 | gfortran | 1774 | gfortran |
| 1775 | pkg-config | 1775 | pkg-config |
| 1776 | qttools-5) | 1776 | qttools-5) |
| 1777 | (if (supported-package? ruby-asciidoctor) | 1777 | (if (supported-package? ruby-asciidoctor/minimal) |
| 1778 | (list ruby-asciidoctor) | 1778 | (list ruby-asciidoctor/minimal) |
| 1779 | '()))) | 1779 | '()))) |
| 1780 | (inputs | 1780 | (inputs |
| 1781 | (list boost | 1781 | (list boost |
| @@ -1812,8 +1812,8 @@ weak-signal conditions.") | |||
| 1812 | (build-system qt-build-system) | 1812 | (build-system qt-build-system) |
| 1813 | (native-inputs | 1813 | (native-inputs |
| 1814 | (append (list asciidoc gfortran pkg-config qttools-5) | 1814 | (append (list asciidoc gfortran pkg-config qttools-5) |
| 1815 | (if (supported-package? ruby-asciidoctor) | 1815 | (if (supported-package? ruby-asciidoctor/minimal) |
| 1816 | (list ruby-asciidoctor) | 1816 | (list ruby-asciidoctor/minimal) |
| 1817 | '()))) | 1817 | '()))) |
| 1818 | (inputs | 1818 | (inputs |
| 1819 | (list | 1819 | (list |
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm index 2045be03f0f..2a7aa36f824 100644 --- a/gnu/packages/rails.scm +++ b/gnu/packages/rails.scm | |||
| @@ -32,6 +32,8 @@ | |||
| 32 | #:use-module (gnu packages databases) | 32 | #:use-module (gnu packages databases) |
| 33 | #:use-module (gnu packages node) | 33 | #:use-module (gnu packages node) |
| 34 | #:use-module (gnu packages ruby) | 34 | #:use-module (gnu packages ruby) |
| 35 | #:use-module (gnu packages ruby-check) | ||
| 36 | #:use-module (gnu packages ruby-xyz) | ||
| 35 | #:use-module (gnu packages sqlite) | 37 | #:use-module (gnu packages sqlite) |
| 36 | #:use-module (gnu packages version-control) | 38 | #:use-module (gnu packages version-control) |
| 37 | #:use-module (guix build-system ruby)) | 39 | #:use-module (guix build-system ruby)) |
diff --git a/gnu/packages/ruby-check.scm b/gnu/packages/ruby-check.scm index bb42267b129..5db07ff240a 100644 --- a/gnu/packages/ruby-check.scm +++ b/gnu/packages/ruby-check.scm | |||
| @@ -1,4 +1,37 @@ | |||
| 1 | ;;; GNU Guix --- Functional package management for GNU | 1 | ;;; GNU Guix --- Functional package management for GNU |
| 2 | ;;; Copyright © 2015-2018 Ben Woodcroft <donttrustben@gmail.com> | ||
| 3 | ;;; Copyright © 2015 David Thompson <davet@gnu.org> | ||
| 4 | ;;; Copyright © 2015 Pjotr Prins <pjotr.guix@thebird.nl> | ||
| 5 | ;;; Copyright © 2015, 2019 Ricardo Wurmus <rekado@elephly.net> | ||
| 6 | ;;; Copyright © 2016 Muriithi Frederick Muriuki <fredmanglis@gmail.com> | ||
| 7 | ;;; Copyright © 2017-2020, 2023 Christopher Baines <mail@cbaines.net> | ||
| 8 | ;;; Copyright © 2017, 2021 Efraim Flashner <efraim@flashner.co.il> | ||
| 9 | ;;; Copyright © 2017 nikita <nikita@n0.is> | ||
| 10 | ;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org> | ||
| 11 | ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu> | ||
| 12 | ;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> | ||
| 13 | ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com> | ||
| 14 | ;;; Copyright © 2019 Collin J. Doering <collin@rekahsoft.ca> | ||
| 15 | ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org> | ||
| 16 | ;;; Copyright © 2019 Mikhail Kirillov <w96k.ru@gmail.com> | ||
| 17 | ;;; Copyright © 2020 Holger Peters <holger.peters@posteo.de> | ||
| 18 | ;;; Copyright © 2020, 2021, 2022 Marius Bakke <marius@gnu.org> | ||
| 19 | ;;; Copyright © 2020, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> | ||
| 20 | ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> | ||
| 21 | ;;; Copyright © 2021 EuAndreh <eu@euandre.org> | ||
| 22 | ;;; Copyright © 2021 Giacomo Leidi <goodoldpaul@autistici.org> | ||
| 23 | ;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org> | ||
| 24 | ;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org> | ||
| 25 | ;;; Copyright © 2022, 2024 Danny Milosavljevic <dannym@scratchpost.org> | ||
| 26 | ;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be> | ||
| 27 | ;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com> | ||
| 28 | ;;; Copyright © 2022 Stephen Paul Weber <singpolyma@singpolyma.net> | ||
| 29 | ;;; Copyright © 2022 Taiju HIGASHI <higashi@taiju.info> | ||
| 30 | ;;; Copyright © 2022 Tom Fitzhenry <tom@tom-fitzhenry.me.uk> | ||
| 31 | ;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com> | ||
| 32 | ;;; Copyright © 2023 Hartmut Goebel <h.goebel@crazy-compilers.com> | ||
| 33 | ;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream> | ||
| 34 | ;;; Copyright © 2025 Nicolas Graves <ngraves@ngraves.fr> | ||
| 2 | ;;; | 35 | ;;; |
| 3 | ;;; This file is part of GNU Guix. | 36 | ;;; This file is part of GNU Guix. |
| 4 | ;;; | 37 | ;;; |
| @@ -18,10 +51,13 @@ | |||
| 18 | (define-module (gnu packages ruby-check) | 51 | (define-module (gnu packages ruby-check) |
| 19 | #:use-module ((guix licenses) #:prefix license:) | 52 | #:use-module ((guix licenses) #:prefix license:) |
| 20 | #:use-module (guix build-system ruby) | 53 | #:use-module (guix build-system ruby) |
| 54 | #:use-module (guix download) | ||
| 21 | #:use-module (guix gexp) | 55 | #:use-module (guix gexp) |
| 22 | #:use-module (guix git-download) | 56 | #:use-module (guix git-download) |
| 23 | #:use-module (guix packages) | 57 | #:use-module (guix packages) |
| 24 | #:use-module (gnu packages)) | 58 | #:use-module (guix utils) |
| 59 | #:use-module (gnu packages) | ||
| 60 | #:use-module (gnu packages ruby)) | ||
| 25 | 61 | ||
| 26 | ;;; Commentary: | 62 | ;;; Commentary: |
| 27 | ;;; | 63 | ;;; |
| @@ -30,6 +66,1125 @@ | |||
| 30 | ;;; Code: | 66 | ;;; Code: |
| 31 | 67 | ||
| 32 | 68 | ||
| 69 | ;; Bundler is yet another source of circular dependencies, so we must disable | ||
| 70 | ;; its test suite as well. | ||
| 71 | (define-public bundler | ||
| 72 | (package | ||
| 73 | (name "bundler") | ||
| 74 | (version "2.4.18") | ||
| 75 | (source (origin | ||
| 76 | (method url-fetch) | ||
| 77 | (uri (rubygems-uri "bundler" version)) | ||
| 78 | (sha256 | ||
| 79 | (base32 | ||
| 80 | "03ppd60cbwzlrhsidi7frj826ssmxzwd954ikjk7966l45qx5xxn")))) | ||
| 81 | (build-system ruby-build-system) | ||
| 82 | (arguments | ||
| 83 | '(#:tests? #f)) ; avoid dependency cycles | ||
| 84 | (synopsis "Ruby gem bundler") | ||
| 85 | (description "Bundler automatically downloads and installs a list of gems | ||
| 86 | specified in a \"Gemfile\", as well as their dependencies.") | ||
| 87 | (home-page "https://bundler.io/") | ||
| 88 | (license license:expat))) | ||
| 89 | |||
| 90 | (define-public ruby-asciidoctor/minimal | ||
| 91 | (hidden-package | ||
| 92 | (package | ||
| 93 | (name "ruby-asciidoctor") | ||
| 94 | (version "2.0.20") | ||
| 95 | (source | ||
| 96 | (origin | ||
| 97 | (method git-fetch) ;the gem release lacks a Rakefile | ||
| 98 | (uri (git-reference | ||
| 99 | (url "https://github.com/asciidoctor/asciidoctor") | ||
| 100 | (commit (string-append "v" version)))) | ||
| 101 | (file-name (git-file-name name version)) | ||
| 102 | (sha256 | ||
| 103 | (base32 | ||
| 104 | "19qvilhwa9plg80ppspn5ys0ybl8qfyaicqbl9w316hk5ldwi1jq")))) | ||
| 105 | (build-system ruby-build-system) | ||
| 106 | (arguments (list #:tests? #f)) | ||
| 107 | (synopsis "Converter from AsciiDoc content to other formats") | ||
| 108 | (description "Asciidoctor is a text processor and publishing toolchain for | ||
| 109 | converting AsciiDoc content to HTML5, DocBook 5, PDF, and other formats.") | ||
| 110 | (home-page "https://asciidoctor.org") | ||
| 111 | (license license:expat)))) | ||
| 112 | |||
| 113 | (define-public ruby-builder | ||
| 114 | (package | ||
| 115 | (name "ruby-builder") | ||
| 116 | (version "3.2.4") | ||
| 117 | (source (origin | ||
| 118 | (method url-fetch) | ||
| 119 | (uri (rubygems-uri "builder" version)) | ||
| 120 | (sha256 | ||
| 121 | (base32 | ||
| 122 | "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr")))) | ||
| 123 | (build-system ruby-build-system) | ||
| 124 | (arguments | ||
| 125 | (list | ||
| 126 | #:phases | ||
| 127 | #~(modify-phases %standard-phases | ||
| 128 | (add-after 'unpack 'patch | ||
| 129 | (lambda _ | ||
| 130 | (substitute* "rakelib/tags.rake" | ||
| 131 | (("File\\.exists\\?") "File.exist?")) | ||
| 132 | |||
| 133 | ;; TODO This test is broken | ||
| 134 | ;; https://github.com/tenderlove/builder/issues/13 | ||
| 135 | (substitute* "test/test_blankslate.rb" | ||
| 136 | (("test_late_included_module_in_kernel_is_ok") | ||
| 137 | "test_late_included_module_in_kernel_is_ok | ||
| 138 | skip(\"test expected to fail\") | ||
| 139 | ")) | ||
| 140 | (substitute* "rakelib/tags.rake" | ||
| 141 | (("RVM_GEMDIR = .*") "RVM_GEMDIR = 'no-rvm-please'\n"))))))) | ||
| 142 | (synopsis "Ruby library to create structured data") | ||
| 143 | (description "Builder provides a number of builder objects that make it | ||
| 144 | easy to create structured data. Currently the following builder objects are | ||
| 145 | supported: XML Markup and XML Events.") | ||
| 146 | (home-page "https://github.com/tenderlove/builder") | ||
| 147 | (license license:expat))) | ||
| 148 | |||
| 149 | (define-public ruby-cucumber-ci-environment | ||
| 150 | (package | ||
| 151 | (name "ruby-cucumber-ci-environment") | ||
| 152 | (version "9.1.0") | ||
| 153 | (source (origin | ||
| 154 | (method url-fetch) | ||
| 155 | (uri (rubygems-uri "cucumber-ci-environment" version)) | ||
| 156 | (sha256 | ||
| 157 | (base32 | ||
| 158 | "1nmn2hfrjlbazgcryr3hwvsa5v4csfbjqxb4q7wbjhaxl9xxn0k7")))) | ||
| 159 | (build-system ruby-build-system) | ||
| 160 | (arguments (list #:phases #~(modify-phases %standard-phases | ||
| 161 | (replace 'check | ||
| 162 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 163 | (when tests? | ||
| 164 | (invoke "rspec"))))))) | ||
| 165 | (native-inputs (list ruby-rspec)) | ||
| 166 | (synopsis "Detect CI Environment from environment variables") | ||
| 167 | (description "This is a Ruby utility library for Cucumber that detects a | ||
| 168 | CI environment from environment variables.") | ||
| 169 | (home-page "https://github.com/cucumber/ci-environment") | ||
| 170 | (license license:expat))) | ||
| 171 | |||
| 172 | (define-public ruby-cucumber-compatibility-kit | ||
| 173 | (package | ||
| 174 | (name "ruby-cucumber-compatibility-kit") | ||
| 175 | (version "11.2.0") | ||
| 176 | (source (origin | ||
| 177 | (method url-fetch) | ||
| 178 | (uri (rubygems-uri "cucumber-compatibility-kit" version)) | ||
| 179 | (sha256 | ||
| 180 | (base32 | ||
| 181 | "17c8zx0yn68rcpfbw4nb1gzvh9fzpwsi1y0qivb99ahdlgzcdp8q")))) | ||
| 182 | (build-system ruby-build-system) | ||
| 183 | (arguments (list #:phases #~(modify-phases %standard-phases | ||
| 184 | (replace 'check | ||
| 185 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 186 | (when tests? | ||
| 187 | (invoke "rspec"))))))) | ||
| 188 | (propagated-inputs (list ruby-cucumber-messages ruby-rake ruby-rspec)) | ||
| 189 | (synopsis "Cucumber compatibility verification utility") | ||
| 190 | (description "The Cucumber Compatibility Kit (CCK) aims to validate a | ||
| 191 | Cucumber implementation's support for the Cucumber Messages protocol.") | ||
| 192 | (home-page "https://github.com/cucumber/compatibility-kit") | ||
| 193 | (license license:expat))) | ||
| 194 | |||
| 195 | ;;; Variant package to break a cycle with ruby-cucumber-messages. | ||
| 196 | (define ruby-cucumber-compatibility-kit-bootstrap | ||
| 197 | (package/inherit ruby-cucumber-compatibility-kit | ||
| 198 | (arguments (list #:tests? #f)) | ||
| 199 | (propagated-inputs (modify-inputs (package-propagated-inputs | ||
| 200 | ruby-cucumber-compatibility-kit) | ||
| 201 | (delete "ruby-cucumber-messages"))))) | ||
| 202 | |||
| 203 | (define-public ruby-cucumber-core | ||
| 204 | (package | ||
| 205 | (name "ruby-cucumber-core") | ||
| 206 | (version "11.1.0") | ||
| 207 | (source | ||
| 208 | (origin | ||
| 209 | (method git-fetch) | ||
| 210 | (uri (git-reference | ||
| 211 | (url "https://github.com/cucumber/cucumber-ruby-core") | ||
| 212 | (commit (string-append "v" version)))) | ||
| 213 | (file-name (git-file-name name version)) | ||
| 214 | (sha256 | ||
| 215 | (base32 | ||
| 216 | "0lf2inlam0951djc2qz81x0nkffmw2dpj44iadw1fw31m7r8wqvh")))) | ||
| 217 | (build-system ruby-build-system) | ||
| 218 | (arguments (list #:test-target "spec" | ||
| 219 | #:phases | ||
| 220 | #~(modify-phases %standard-phases | ||
| 221 | (add-after 'extract-gemspec 'relax-version-requirements | ||
| 222 | (lambda _ | ||
| 223 | (substitute* "cucumber-core.gemspec" | ||
| 224 | (("'cucumber-tag-expressions',.*") | ||
| 225 | "'cucumber-tag-expressions', '>=4.1.0'\n"))))))) | ||
| 226 | (native-inputs | ||
| 227 | (list ruby-rspec | ||
| 228 | ruby-rubocop/minimal | ||
| 229 | ruby-simplecov | ||
| 230 | ruby-unindent)) | ||
| 231 | (propagated-inputs | ||
| 232 | (list ruby-cucumber-gherkin | ||
| 233 | ruby-cucumber-messages | ||
| 234 | ruby-cucumber-tag-expressions)) | ||
| 235 | (synopsis "Core library for the Cucumber BDD app") | ||
| 236 | (description "Cucumber is a tool for running automated tests | ||
| 237 | written in plain language. Because they're written in plain language, | ||
| 238 | they can be read by anyone on your team. Because they can be read by | ||
| 239 | anyone, you can use them to help improve communication, collaboration | ||
| 240 | and trust on your team.") | ||
| 241 | (home-page "https://cucumber.io/") | ||
| 242 | (license license:expat))) | ||
| 243 | |||
| 244 | (define-public ruby-cucumber-expressions | ||
| 245 | (package | ||
| 246 | (name "ruby-cucumber-expressions") | ||
| 247 | (version "16.1.2") | ||
| 248 | (source | ||
| 249 | (origin | ||
| 250 | (method git-fetch) | ||
| 251 | (uri (git-reference | ||
| 252 | (url "https://github.com/cucumber/cucumber-expressions") | ||
| 253 | (commit (string-append "v" version)))) | ||
| 254 | (file-name (git-file-name name version)) | ||
| 255 | (sha256 | ||
| 256 | (base32 | ||
| 257 | "1dhq88k9x2x8svam5bc7rrcd166fqymda8wxryqkbkffhnzla0id")))) | ||
| 258 | (build-system ruby-build-system) | ||
| 259 | (arguments | ||
| 260 | (list #:test-target "spec" | ||
| 261 | #:phases #~(modify-phases %standard-phases | ||
| 262 | (add-after 'unpack 'chdir | ||
| 263 | (lambda _ | ||
| 264 | (chdir "ruby")))))) | ||
| 265 | (native-inputs (list ruby-rspec ruby-simplecov)) | ||
| 266 | (synopsis "Simpler alternative to Regular Expressions") | ||
| 267 | (description "Cucumber Expressions offer similar functionality to Regular | ||
| 268 | Expressions, with a syntax that is easier to read and write. Cucumber | ||
| 269 | Expressions are extensible with parameter types.") | ||
| 270 | (home-page "https://github.com/cucumber/cucumber-expressions/") | ||
| 271 | (license license:expat))) | ||
| 272 | |||
| 273 | (define-public ruby-cucumber-gherkin | ||
| 274 | (package | ||
| 275 | (name "ruby-cucumber-gherkin") | ||
| 276 | (version "26.1.0") | ||
| 277 | (source (origin | ||
| 278 | (method git-fetch) | ||
| 279 | (uri (git-reference | ||
| 280 | (url "https://github.com/cucumber/gherkin") | ||
| 281 | (commit (string-append "v" version)))) | ||
| 282 | (file-name (git-file-name name version)) | ||
| 283 | (sha256 | ||
| 284 | (base32 | ||
| 285 | "1rsannfcg5rqh5a3d3paw10kf6mmqjrgbq3k235px4swbyqysmgn")))) | ||
| 286 | (build-system ruby-build-system) | ||
| 287 | (arguments (list #:test-target "spec" | ||
| 288 | #:phases #~(modify-phases %standard-phases | ||
| 289 | (add-after 'unpack 'chdir | ||
| 290 | (lambda _ | ||
| 291 | (chdir "ruby")))))) | ||
| 292 | (native-inputs (list ruby-rspec)) | ||
| 293 | (propagated-inputs (list ruby-cucumber-messages)) | ||
| 294 | (synopsis "Gherkin parser for Ruby") | ||
| 295 | (description "Gherkin is a parser and compiler for the Gherkin language. | ||
| 296 | It is intended be used by all Cucumber implementations to parse | ||
| 297 | @file{.feature} files.") | ||
| 298 | (home-page "https://github.com/cucumber/gherkin") | ||
| 299 | (license license:expat))) | ||
| 300 | |||
| 301 | (define-public ruby-cucumber-html-formatter | ||
| 302 | (package | ||
| 303 | (name "ruby-cucumber-html-formatter") | ||
| 304 | (version "20.2.1") | ||
| 305 | (source | ||
| 306 | (origin | ||
| 307 | (method url-fetch) | ||
| 308 | (uri (rubygems-uri "cucumber-html-formatter" version)) | ||
| 309 | (sha256 | ||
| 310 | (base32 | ||
| 311 | "0c7r9mfmph4c6yzc7y3dkr92rhwvpyksr0mdhpqp67xmmr8z1br4")))) | ||
| 312 | (build-system ruby-build-system) | ||
| 313 | (arguments | ||
| 314 | (list #:phases #~(modify-phases %standard-phases | ||
| 315 | (add-after 'extract-gemspec 'relax-requirements | ||
| 316 | (lambda _ | ||
| 317 | (substitute* ".gemspec" | ||
| 318 | (("~> 18.0") "~> 21.0")))) ;cucumber-messages | ||
| 319 | (replace 'check | ||
| 320 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 321 | (when tests? | ||
| 322 | (invoke "rspec"))))))) | ||
| 323 | (native-inputs (list ruby-cucumber-compatibility-kit ruby-rspec)) | ||
| 324 | (propagated-inputs (list ruby-cucumber-messages)) | ||
| 325 | (synopsis "HTML formatter for Cucumber") | ||
| 326 | (description "Cucumber HTML Formatter produces a HTML report for Cucumber | ||
| 327 | runs. It is built on top of cucumber-react and works with any Cucumber | ||
| 328 | implementation with a protocol buffer formatter that outputs Cucumber | ||
| 329 | messages.") | ||
| 330 | (home-page "https://github.com/cucumber/html-formatter") | ||
| 331 | (license license:expat))) | ||
| 332 | |||
| 333 | (define-public ruby-cucumber-messages | ||
| 334 | (package | ||
| 335 | (name "ruby-cucumber-messages") | ||
| 336 | (version "21.0.1") | ||
| 337 | (source (origin | ||
| 338 | (method url-fetch) | ||
| 339 | (uri (rubygems-uri "cucumber-messages" version)) | ||
| 340 | (sha256 | ||
| 341 | (base32 | ||
| 342 | "0482a63y7my0arn2bv208g401dq8525f0gwhnwaa11mhv6ph0q5i")))) | ||
| 343 | (build-system ruby-build-system) | ||
| 344 | (arguments | ||
| 345 | (list #:phases | ||
| 346 | #~(modify-phases %standard-phases | ||
| 347 | ;; The test suite requires the gem to be installed, so move it | ||
| 348 | ;; after the install phase. | ||
| 349 | (delete 'check) | ||
| 350 | (add-after 'install 'check | ||
| 351 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 352 | (setenv "GEM_PATH" (string-append | ||
| 353 | (getenv "GEM_PATH") ":" | ||
| 354 | #$output "/lib/ruby/vendor_ruby")) | ||
| 355 | (when tests? | ||
| 356 | (invoke "rspec"))))))) | ||
| 357 | (native-inputs | ||
| 358 | (list ruby-cucumber-compatibility-kit-bootstrap ruby-rspec)) | ||
| 359 | (home-page "https://github.com/cucumber/messages/") | ||
| 360 | (synopsis "Cucumber Messages for Ruby (Protocol Buffers)") | ||
| 361 | (description "Cucumber Messages for Ruby is a library which allows | ||
| 362 | serialization and deserialization of the protocol buffer messages used in | ||
| 363 | Cucumber.") | ||
| 364 | (license license:expat))) | ||
| 365 | |||
| 366 | (define-public ruby-cucumber-tag-expressions | ||
| 367 | (package | ||
| 368 | (name "ruby-cucumber-tag-expressions") | ||
| 369 | (version "5.0.1") | ||
| 370 | (source | ||
| 371 | (origin | ||
| 372 | (method git-fetch) | ||
| 373 | (uri (git-reference | ||
| 374 | (url "https://github.com/cucumber/tag-expressions") | ||
| 375 | (commit (string-append "v" version)))) | ||
| 376 | (file-name (git-file-name name version)) | ||
| 377 | (sha256 | ||
| 378 | (base32 | ||
| 379 | "1ziq30szn8m5y29hsdpx4dn1a8sy29h01nvcldm8nr1mx4b7dj1w")))) | ||
| 380 | (build-system ruby-build-system) | ||
| 381 | (arguments | ||
| 382 | (list #:test-target "spec" | ||
| 383 | #:phases #~(modify-phases %standard-phases | ||
| 384 | (add-after 'unpack 'chdir | ||
| 385 | (lambda _ | ||
| 386 | (chdir "ruby")))))) | ||
| 387 | (native-inputs (list ruby-rspec)) | ||
| 388 | (synopsis "Cucumber tag expressions for Ruby") | ||
| 389 | (description "Cucumber tag expression parser for Ruby. A tag expression | ||
| 390 | is an infix boolean expression used by Cucumber.") | ||
| 391 | (home-page "https://github.com/cucumber/tag-expressions") | ||
| 392 | (license license:expat))) | ||
| 393 | |||
| 394 | (define-public ruby-cucumber-wire | ||
| 395 | (package | ||
| 396 | (name "ruby-cucumber-wire") | ||
| 397 | (version "6.2.1") | ||
| 398 | (source | ||
| 399 | (origin | ||
| 400 | (method url-fetch) | ||
| 401 | (uri (rubygems-uri "cucumber-wire" version)) | ||
| 402 | (sha256 | ||
| 403 | (base32 | ||
| 404 | "1pmydrh9lcckj7p0cn67jw7msxdkgr9zir86cs19h3mf2zlcv7b9")))) | ||
| 405 | (build-system ruby-build-system) | ||
| 406 | (arguments | ||
| 407 | (list #:tests? #f)) ;tests use cucumber, causing a cycle | ||
| 408 | (propagated-inputs | ||
| 409 | (list ruby-cucumber-core ruby-cucumber-expressions | ||
| 410 | ruby-cucumber-messages)) | ||
| 411 | (synopsis "Cucumber wire protocol plugin") | ||
| 412 | (description "Cucumber's wire protocol allows step definitions to be | ||
| 413 | implemented and invoked on any platform.") | ||
| 414 | (home-page "https://github.com/cucumber/cucumber-ruby-wire") | ||
| 415 | (license license:expat))) | ||
| 416 | |||
| 417 | (define-public ruby-diff-lcs | ||
| 418 | (package | ||
| 419 | (name "ruby-diff-lcs") | ||
| 420 | (version "1.3") | ||
| 421 | (source (origin | ||
| 422 | (method url-fetch) | ||
| 423 | (uri (rubygems-uri "diff-lcs" version)) | ||
| 424 | (sha256 | ||
| 425 | (base32 | ||
| 426 | "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza")))) | ||
| 427 | (build-system ruby-build-system) | ||
| 428 | (arguments | ||
| 429 | '(#:tests? #f)) ; avoid dependency cycles | ||
| 430 | (synopsis "Compute the difference between two Enumerable sequences") | ||
| 431 | (description "Diff::LCS computes the difference between two Enumerable | ||
| 432 | sequences using the McIlroy-Hunt longest common subsequence (LCS) algorithm. | ||
| 433 | It includes utilities to create a simple HTML diff output format and a | ||
| 434 | standard diff-like tool.") | ||
| 435 | (home-page "https://github.com/halostatue/diff-lcs") | ||
| 436 | (license license:expat))) | ||
| 437 | |||
| 438 | (define-public ruby-docile | ||
| 439 | (package | ||
| 440 | (name "ruby-docile") | ||
| 441 | (version "1.1.5") | ||
| 442 | (source | ||
| 443 | (origin | ||
| 444 | (method url-fetch) | ||
| 445 | (uri (rubygems-uri "docile" version)) | ||
| 446 | (sha256 | ||
| 447 | (base32 | ||
| 448 | "0m8j31whq7bm5ljgmsrlfkiqvacrw6iz9wq10r3gwrv5785y8gjx")))) | ||
| 449 | (build-system ruby-build-system) | ||
| 450 | (arguments | ||
| 451 | '(#:tests? #f)) ; needs github-markup, among others | ||
| 452 | (synopsis "Ruby EDSL helper library") | ||
| 453 | (description "Docile is a Ruby library that provides an interface for | ||
| 454 | creating embedded domain specific languages (EDSLs) that manipulate existing | ||
| 455 | Ruby classes.") | ||
| 456 | (home-page "https://ms-ati.github.io/docile/") | ||
| 457 | (license license:expat))) | ||
| 458 | |||
| 459 | (define-public ruby-fivemat | ||
| 460 | (package | ||
| 461 | (name "ruby-fivemat") | ||
| 462 | (version "1.3.7") | ||
| 463 | (source | ||
| 464 | (origin | ||
| 465 | (method url-fetch) | ||
| 466 | (uri (rubygems-uri "fivemat" version)) | ||
| 467 | (sha256 | ||
| 468 | (base32 | ||
| 469 | "0pzlycasvwmg4bbx7plllpqnhd9zlmmff8l2w3yii86nrm2nvf9n")))) | ||
| 470 | (build-system ruby-build-system) | ||
| 471 | (arguments | ||
| 472 | `(#:tests? #f)) ; no tests | ||
| 473 | (synopsis "Each test file given its own line of dots") | ||
| 474 | (description | ||
| 475 | "Fivemat is a MiniTest/RSpec/Cucumber formatter that gives each test file | ||
| 476 | its own line of dots during testing. It aims to provide test output that is | ||
| 477 | neither too verbose nor too minimal.") | ||
| 478 | (home-page "https://github.com/tpope/fivemat") | ||
| 479 | (license license:expat))) | ||
| 480 | |||
| 481 | (define-public ruby-given-core | ||
| 482 | (package | ||
| 483 | (name "ruby-given-core") | ||
| 484 | (version "3.8.2") | ||
| 485 | (source | ||
| 486 | (origin | ||
| 487 | (method url-fetch) | ||
| 488 | (uri (rubygems-uri "given_core" version)) | ||
| 489 | (sha256 | ||
| 490 | (base32 | ||
| 491 | "0w1pyhgb2am7c267s8v06dpd9qhmsk2x4hfr2aq8l8lh49ma227s")))) | ||
| 492 | (build-system ruby-build-system) | ||
| 493 | (arguments '(#:tests? #f)) ;no test suite for the core package | ||
| 494 | (propagated-inputs | ||
| 495 | (list ruby-sorcerer)) | ||
| 496 | (synopsis "Core abstractions used by rspec-given and minitest-given") | ||
| 497 | (description "Given_core is the basic functionality behind rspec-given and | ||
| 498 | minitest-given, extensions that allow the use of Given/When/Then terminology | ||
| 499 | when defining specifications.") | ||
| 500 | (home-page "https://github.com/rspec-given/rspec-given") | ||
| 501 | (license license:expat))) | ||
| 502 | |||
| 503 | (define-public ruby-hoe | ||
| 504 | (package | ||
| 505 | (name "ruby-hoe") | ||
| 506 | (version "4.2.2") | ||
| 507 | (source (origin | ||
| 508 | (method url-fetch) | ||
| 509 | (uri (rubygems-uri "hoe" version)) | ||
| 510 | (sha256 | ||
| 511 | (base32 | ||
| 512 | "1rhj1zs02mpdw6f4fh3mpfmj0p5pfar7rfxm758pk7l931mm8pyn")))) | ||
| 513 | (build-system ruby-build-system) | ||
| 514 | (arguments | ||
| 515 | (list | ||
| 516 | ;; Circular dependency with minitest | ||
| 517 | #:tests? #f)) | ||
| 518 | (synopsis "Ruby project management helper") | ||
| 519 | (description | ||
| 520 | "Hoe is a rake/rubygems helper for project Rakefiles. It helps manage, | ||
| 521 | maintain, and release projects and includes a dynamic plug-in system allowing | ||
| 522 | for easy extensibility. Hoe ships with plug-ins for all the usual project | ||
| 523 | tasks including rdoc generation, testing, packaging, deployment, and | ||
| 524 | announcement.") | ||
| 525 | (home-page "https://www.zenspider.com/projects/hoe.html") | ||
| 526 | (license license:expat))) | ||
| 527 | |||
| 528 | (define-public ruby-hoe-3 | ||
| 529 | (package | ||
| 530 | (inherit ruby-hoe) | ||
| 531 | (version "3.26.0") | ||
| 532 | (source (origin | ||
| 533 | (method url-fetch) | ||
| 534 | (uri (rubygems-uri "hoe" version)) | ||
| 535 | (sha256 | ||
| 536 | (base32 | ||
| 537 | "02vmphnfzna1dbb1l5nczcvlvvsg4flr26bdhmvdyf447bpswa63")))))) | ||
| 538 | |||
| 539 | (define-public ruby-json | ||
| 540 | (package | ||
| 541 | (name "ruby-json") | ||
| 542 | (version "2.1.0") | ||
| 543 | (source | ||
| 544 | (origin | ||
| 545 | (method url-fetch) | ||
| 546 | (uri (rubygems-uri "json" version)) | ||
| 547 | (sha256 | ||
| 548 | (base32 | ||
| 549 | "01v6jjpvh3gnq6sgllpfqahlgxzj50ailwhj9b3cd20hi2dx0vxp")))) | ||
| 550 | (build-system ruby-build-system) | ||
| 551 | (arguments '(#:tests? #f)) ; dependency cycle with sdoc | ||
| 552 | (synopsis "JSON library for Ruby") | ||
| 553 | (description "This Ruby library provides a JSON implementation written as | ||
| 554 | a native C extension.") | ||
| 555 | (home-page "http://json-jruby.rubyforge.org/") | ||
| 556 | (license (list license:ruby license:gpl2)))) ; GPL2 only | ||
| 557 | |||
| 558 | (define-public ruby-mime-types | ||
| 559 | (package | ||
| 560 | (name "ruby-mime-types") | ||
| 561 | (version "3.4.1") | ||
| 562 | (source | ||
| 563 | (origin | ||
| 564 | (method url-fetch) | ||
| 565 | (uri (rubygems-uri "mime-types" version)) | ||
| 566 | (sha256 | ||
| 567 | (base32 | ||
| 568 | "0ipw892jbksbxxcrlx9g5ljq60qx47pm24ywgfbyjskbcl78pkvb")))) | ||
| 569 | (build-system ruby-build-system) | ||
| 570 | (propagated-inputs | ||
| 571 | (list ruby-mime-types-data)) | ||
| 572 | (native-inputs | ||
| 573 | (list ruby-hoe | ||
| 574 | ruby-fivemat | ||
| 575 | ruby-minitest-focus | ||
| 576 | ruby-minitest-bonus-assertions | ||
| 577 | ruby-minitest-hooks)) | ||
| 578 | (synopsis "Library and registry for MIME content type definitions") | ||
| 579 | (description "The mime-types library provides a library and registry for | ||
| 580 | information about Multipurpose Internet Mail Extensions (MIME) content type | ||
| 581 | definitions. It can be used to determine defined filename extensions for MIME | ||
| 582 | types, or to use filename extensions to look up the likely MIME type | ||
| 583 | definitions.") | ||
| 584 | (home-page "https://github.com/mime-types/ruby-mime-types") | ||
| 585 | (license license:expat))) | ||
| 586 | |||
| 587 | (define-public ruby-mime-types-data | ||
| 588 | (package | ||
| 589 | (name "ruby-mime-types-data") | ||
| 590 | (version "3.2016.0521") | ||
| 591 | (source | ||
| 592 | (origin | ||
| 593 | (method url-fetch) | ||
| 594 | (uri (rubygems-uri "mime-types-data" version)) | ||
| 595 | (sha256 | ||
| 596 | (base32 | ||
| 597 | "04my3746hwa4yvbx1ranhfaqkgf6vavi1kyijjnw8w3dy37vqhkm")))) | ||
| 598 | (build-system ruby-build-system) | ||
| 599 | (native-inputs | ||
| 600 | (list ruby-hoe)) | ||
| 601 | (synopsis "Registry for information about MIME media type definitions") | ||
| 602 | (description | ||
| 603 | "@code{mime-types-data} provides a registry for information about | ||
| 604 | Multipurpose Internet Mail Extensions (MIME) media type definitions. It can | ||
| 605 | be used with the Ruby mime-types library or other software to determine | ||
| 606 | defined filename extensions for MIME types, or to use filename extensions to | ||
| 607 | look up the likely MIME type definitions.") | ||
| 608 | (home-page "https://github.com/mime-types/mime-types-data/") | ||
| 609 | (license license:expat))) | ||
| 610 | |||
| 611 | (define-public ruby-mini-portile | ||
| 612 | (package | ||
| 613 | (name "ruby-mini-portile") | ||
| 614 | (version "0.6.2") | ||
| 615 | (source | ||
| 616 | (origin | ||
| 617 | (method url-fetch) | ||
| 618 | (uri (rubygems-uri "mini_portile" version)) | ||
| 619 | (sha256 | ||
| 620 | (base32 | ||
| 621 | "0h3xinmacscrnkczq44s6pnhrp4nqma7k056x5wv5xixvf2wsq2w")))) | ||
| 622 | (build-system ruby-build-system) | ||
| 623 | (arguments | ||
| 624 | '(#:tests? #f)) ; tests require network access | ||
| 625 | (synopsis "Ports system for Ruby developers") | ||
| 626 | (description "Mini-portile is a port/recipe system for Ruby developers. | ||
| 627 | It provides a standard way to compile against specific versions of libraries | ||
| 628 | to reproduce user environments.") | ||
| 629 | (home-page "https://github.com/flavorjones/mini_portile") | ||
| 630 | (license license:expat))) | ||
| 631 | |||
| 632 | (define-public ruby-mini-portile-2 | ||
| 633 | (package | ||
| 634 | (inherit ruby-mini-portile) | ||
| 635 | (version "2.8.2") | ||
| 636 | (source (origin | ||
| 637 | (method url-fetch) | ||
| 638 | (uri (rubygems-uri "mini_portile2" version)) | ||
| 639 | (sha256 | ||
| 640 | (base32 | ||
| 641 | "0z7f38iq37h376n9xbl4gajdrnwzq284c9v1py4imw3gri2d5cj6")))))) | ||
| 642 | |||
| 643 | (define-public ruby-minitest | ||
| 644 | (package | ||
| 645 | (name "ruby-minitest") | ||
| 646 | (version "5.18.1") | ||
| 647 | (source (origin | ||
| 648 | (method url-fetch) | ||
| 649 | (uri (rubygems-uri "minitest" version)) | ||
| 650 | (sha256 | ||
| 651 | (base32 | ||
| 652 | "1kg9wh7jlc9zsr3hkhpzkbn0ynf4np5ap9m2d8xdrb8shy0y6pmb")))) | ||
| 653 | (build-system ruby-build-system) | ||
| 654 | (native-inputs (list ruby-hoe)) | ||
| 655 | (home-page "https://github.com/minitest/minitest") | ||
| 656 | (synopsis "Small test suite library for Ruby") | ||
| 657 | (description "Minitest provides a complete suite of Ruby testing | ||
| 658 | facilities supporting TDD, BDD, mocking, and benchmarking.") | ||
| 659 | (license license:expat))) | ||
| 660 | |||
| 661 | (define-public ruby-minitest-bonus-assertions | ||
| 662 | (package | ||
| 663 | (name "ruby-minitest-bonus-assertions") | ||
| 664 | (version "3.0") | ||
| 665 | (source | ||
| 666 | (origin | ||
| 667 | (method url-fetch) | ||
| 668 | (uri (rubygems-uri "minitest-bonus-assertions" version)) | ||
| 669 | (sha256 | ||
| 670 | (base32 | ||
| 671 | "1hbq9jk904xkz868yha1bqcm6azm7kmjsll2k4pn2nrcib508h2a")))) | ||
| 672 | (build-system ruby-build-system) | ||
| 673 | (arguments | ||
| 674 | (list | ||
| 675 | #:tests? #f ; Test suite has bitrotted. | ||
| 676 | #:phases | ||
| 677 | #~(modify-phases %standard-phases | ||
| 678 | (add-before 'check 'clean-dependencies | ||
| 679 | (lambda _ | ||
| 680 | ;; Remove unneeded require statement that would entail another | ||
| 681 | ;; dependency. | ||
| 682 | (substitute* "test/minitest_config.rb" | ||
| 683 | (("require 'minitest/bisect'") ""))))))) | ||
| 684 | (native-inputs | ||
| 685 | (list ruby-hoe | ||
| 686 | ruby-minitest-focus | ||
| 687 | ruby-minitest-moar)) | ||
| 688 | (synopsis "Bonus assertions for @code{Minitest}") | ||
| 689 | (description | ||
| 690 | "Minitest bonus assertions provides extra MiniTest assertions. For | ||
| 691 | instance, it provides @code{assert_true}, @code{assert_false} and | ||
| 692 | @code{assert_set_equal}.") | ||
| 693 | (home-page "https://github.com/halostatue/minitest-bonus-assertions") | ||
| 694 | (license license:expat))) | ||
| 695 | |||
| 696 | (define-public ruby-minitest-focus | ||
| 697 | (package | ||
| 698 | (name "ruby-minitest-focus") | ||
| 699 | (version "1.3.1") | ||
| 700 | (source | ||
| 701 | (origin | ||
| 702 | (method url-fetch) | ||
| 703 | (uri (rubygems-uri "minitest-focus" version)) | ||
| 704 | (sha256 | ||
| 705 | (base32 | ||
| 706 | "13kd2dkd9akfb99ziqndz9mir5iynyfyj2l45mcibab6mq5k8g67")))) | ||
| 707 | (build-system ruby-build-system) | ||
| 708 | (propagated-inputs | ||
| 709 | (list ruby-minitest)) | ||
| 710 | (native-inputs | ||
| 711 | (list ruby-hoe)) | ||
| 712 | (synopsis "Allows a few specific tests to be focused on") | ||
| 713 | (description | ||
| 714 | "@code{minitest-focus} gives the ability focus on a few tests with ease | ||
| 715 | without having to use command-line arguments. It introduces a @code{focus} | ||
| 716 | class method for use in testing classes, specifying that the next defined test | ||
| 717 | is to be run.") | ||
| 718 | (home-page "https://github.com/seattlerb/minitest-focus") | ||
| 719 | (license license:expat))) | ||
| 720 | |||
| 721 | (define-public ruby-minitest-hooks | ||
| 722 | (package | ||
| 723 | (name "ruby-minitest-hooks") | ||
| 724 | (version "1.5.2") | ||
| 725 | (source | ||
| 726 | (origin | ||
| 727 | (method url-fetch) | ||
| 728 | (uri (rubygems-uri "minitest-hooks" version)) | ||
| 729 | (sha256 | ||
| 730 | (base32 "11jb31dl5kbpyl3kgxql0p7da9066r2aqw54y5q6cni9nmld3zf5")))) | ||
| 731 | (build-system ruby-build-system) | ||
| 732 | (arguments | ||
| 733 | '(#:tests? #f)) ; No tests bundled. | ||
| 734 | (native-inputs | ||
| 735 | (list ruby-sequel ;ruby-sqlite3 | ||
| 736 | )) | ||
| 737 | (synopsis "Hooks for the minitest framework") | ||
| 738 | (description | ||
| 739 | "Minitest-hooks adds @code{around}, @code{before_all}, @code{after_all}, | ||
| 740 | @code{around_all} hooks for Minitest. This allows, for instance, running each | ||
| 741 | suite of specs inside a database transaction, running each spec inside its own | ||
| 742 | savepoint inside that transaction. This can significantly speed up testing | ||
| 743 | for specs that share expensive database setup code.") | ||
| 744 | (home-page "https://github.com/jeremyevans/minitest-hooks") | ||
| 745 | (license license:expat))) | ||
| 746 | |||
| 747 | (define-public ruby-minitest-moar | ||
| 748 | (package | ||
| 749 | (name "ruby-minitest-moar") | ||
| 750 | (version "0.0.4") | ||
| 751 | (source | ||
| 752 | (origin | ||
| 753 | (method url-fetch) | ||
| 754 | (uri (rubygems-uri "minitest-moar" version)) | ||
| 755 | (sha256 | ||
| 756 | (base32 | ||
| 757 | "0nb83blrsab92gcy6nfpw39njys7zisia8pw4igzzfzfl51cis0x")))) | ||
| 758 | (build-system ruby-build-system) | ||
| 759 | (arguments | ||
| 760 | `(#:phases | ||
| 761 | (modify-phases %standard-phases | ||
| 762 | (add-before 'check 'clean-dependencies | ||
| 763 | (lambda _ | ||
| 764 | ;; Remove all gems defined in the Gemfile because these are not | ||
| 765 | ;; truly needed. | ||
| 766 | (substitute* "Gemfile" | ||
| 767 | (("gem .*") "")) | ||
| 768 | ;; Remove byebug as not needed to run tests. | ||
| 769 | (substitute* "test/test_helper.rb" | ||
| 770 | (("require 'byebug'") ""))))))) | ||
| 771 | (native-inputs | ||
| 772 | (list bundler ruby-minitest)) | ||
| 773 | (synopsis "Extra features and changes to MiniTest") | ||
| 774 | (description "@code{MiniTest Moar} add some additional features and | ||
| 775 | changes some default behaviours in MiniTest. For instance, Moar replaces the | ||
| 776 | MiniTest @code{Object#stub} with a global @code{stub} method.") | ||
| 777 | (home-page "https://github.com/dockyard/minitest-moar") | ||
| 778 | (license license:expat))) | ||
| 779 | |||
| 780 | (define-public ruby-multi-test | ||
| 781 | (package | ||
| 782 | (name "ruby-multi-test") | ||
| 783 | (version "0.1.2") | ||
| 784 | (source | ||
| 785 | (origin | ||
| 786 | (method url-fetch) | ||
| 787 | (uri (rubygems-uri "multi_test" version)) | ||
| 788 | (sha256 | ||
| 789 | (base32 | ||
| 790 | "1sx356q81plr67hg16jfwz9hcqvnk03bd9n75pmdw8pfxjfy1yxd")))) | ||
| 791 | (build-system ruby-build-system) | ||
| 792 | (arguments | ||
| 793 | '(;; Tests require different sets of specific gem versions to be available, | ||
| 794 | ;; and there is no gemfile that specifies the newest versions of | ||
| 795 | ;; dependencies to be tested. | ||
| 796 | #:tests? #f)) | ||
| 797 | (synopsis | ||
| 798 | "Interface to testing libraries loaded into a running Ruby process") | ||
| 799 | (description | ||
| 800 | "@code{multi_test} provides a uniform interface onto whatever testing | ||
| 801 | libraries that have been loaded into a running Ruby process to help control | ||
| 802 | rogue test/unit/autorun requires.") | ||
| 803 | (home-page "https://github.com/cucumber/multi_test") | ||
| 804 | (license license:expat))) | ||
| 805 | |||
| 806 | (define-public ruby-rake | ||
| 807 | (package | ||
| 808 | (name "ruby-rake") | ||
| 809 | (version "13.0.6") | ||
| 810 | (source | ||
| 811 | (origin | ||
| 812 | (method git-fetch) ;for tests | ||
| 813 | (uri (git-reference | ||
| 814 | (url "https://github.com/ruby/rake") | ||
| 815 | (commit (string-append "v" version)))) | ||
| 816 | (file-name (git-file-name name version)) | ||
| 817 | (sha256 | ||
| 818 | (base32 | ||
| 819 | "0c77xyl677s966f8yvk8yv7l31c1ffa1yl4kcwiram219h0s76in")))) | ||
| 820 | (build-system ruby-build-system) | ||
| 821 | (native-inputs | ||
| 822 | (list bundler)) | ||
| 823 | (synopsis "Rake is a Make-like program implemented in Ruby") | ||
| 824 | (description | ||
| 825 | "Rake is a Make-like program where tasks and dependencies are specified | ||
| 826 | in standard Ruby syntax.") | ||
| 827 | (home-page "https://github.com/ruby/rake") | ||
| 828 | (license license:expat))) | ||
| 829 | |||
| 830 | (define-public ruby-rake-compiler | ||
| 831 | (package | ||
| 832 | (name "ruby-rake-compiler") | ||
| 833 | (version "1.2.9") | ||
| 834 | (source (origin | ||
| 835 | (method url-fetch) | ||
| 836 | (uri (rubygems-uri "rake-compiler" version)) | ||
| 837 | (sha256 | ||
| 838 | (base32 | ||
| 839 | "01rnl94p1sr84xkbnh66db42qsndykbfx2z2fggxyxx9vnji6cjs")))) | ||
| 840 | (build-system ruby-build-system) | ||
| 841 | (arguments | ||
| 842 | '(#:tests? #f)) ; needs cucumber | ||
| 843 | (synopsis "Building and packaging helper for Ruby native extensions") | ||
| 844 | (description "Rake-compiler provides a framework for building and | ||
| 845 | packaging native C and Java extensions in Ruby.") | ||
| 846 | (home-page "https://github.com/rake-compiler/rake-compiler") | ||
| 847 | (license license:expat))) | ||
| 848 | |||
| 849 | (define-public ruby-rake-compiler-dock | ||
| 850 | (package | ||
| 851 | (name "ruby-rake-compiler-dock") | ||
| 852 | (version "1.3.0") | ||
| 853 | (source (origin | ||
| 854 | (method url-fetch) | ||
| 855 | (uri (rubygems-uri "rake-compiler-dock" version)) | ||
| 856 | (sha256 | ||
| 857 | (base32 | ||
| 858 | "0yr5f72irvhmnk12q7bbr4qw0xwy7diqkbcvb4lygjbg7rvk3k8k")))) | ||
| 859 | (build-system ruby-build-system) | ||
| 860 | (arguments (list #:tests? #f)) ;test suite requires docker | ||
| 861 | (synopsis "Cross compiler environment for building Ruby gems") | ||
| 862 | (description "The code{rake-compiler-dock} gem provides a cross compiler | ||
| 863 | environment for building gems on a variety of platforms (GNU/Linux, JRuby, | ||
| 864 | Windows and Mac).") | ||
| 865 | (home-page "https://github.com/rake-compiler/rake-compiler-dock") | ||
| 866 | (license license:expat))) | ||
| 867 | |||
| 868 | (define-public ruby-rubocop/minimal | ||
| 869 | (hidden-package | ||
| 870 | (package | ||
| 871 | (name "ruby-rubocop") | ||
| 872 | (version "1.68.0") | ||
| 873 | (source | ||
| 874 | (origin | ||
| 875 | (method git-fetch) ;no tests in distributed gem | ||
| 876 | (uri (git-reference | ||
| 877 | (url "https://github.com/rubocop/rubocop") | ||
| 878 | (commit (string-append "v" version)))) | ||
| 879 | (file-name (git-file-name name version)) | ||
| 880 | (sha256 | ||
| 881 | (base32 "0pfsrgkg2dhb6a2rknciqskgxgmb9kf48rvbkhay9n8n6m712v2w")))) | ||
| 882 | (build-system ruby-build-system) | ||
| 883 | (arguments | ||
| 884 | (list #:tests? #f | ||
| 885 | #:phases | ||
| 886 | #~(modify-phases %standard-phases | ||
| 887 | (add-after 'unpack 'remove-runtime-dependencies | ||
| 888 | (lambda _ | ||
| 889 | (substitute* "rubocop.gemspec" | ||
| 890 | (("s\\.add_dependency.*") ""))))))) | ||
| 891 | (synopsis "Ruby code style checking tool") | ||
| 892 | (description | ||
| 893 | "@code{rubocop} is a Ruby code style checking tool. It aims to enforce | ||
| 894 | the community-driven Ruby Style Guide.") | ||
| 895 | (home-page "https://github.com/rubocop/rubocop") | ||
| 896 | (license license:expat)))) | ||
| 897 | |||
| 898 | (define-public ruby-rspec | ||
| 899 | (package | ||
| 900 | (name "ruby-rspec") | ||
| 901 | (version "3.13.0") | ||
| 902 | (source (origin | ||
| 903 | (method url-fetch) | ||
| 904 | (uri (rubygems-uri "rspec" version)) | ||
| 905 | (sha256 | ||
| 906 | (base32 | ||
| 907 | "14xrp8vq6i9zx37vh0yp4h9m0anx9paw200l1r5ad9fmq559346l")))) | ||
| 908 | (build-system ruby-build-system) | ||
| 909 | (arguments | ||
| 910 | '(#:tests? #f)) ; avoid dependency cycles | ||
| 911 | (propagated-inputs | ||
| 912 | (list ruby-rspec-core ruby-rspec-expectations ruby-rspec-mocks)) | ||
| 913 | (synopsis "Behavior-driven development framework for Ruby") | ||
| 914 | (description "RSpec is a behavior-driven development (BDD) framework for | ||
| 915 | Ruby. This meta-package includes the RSpec test runner, along with the | ||
| 916 | expectations and mocks frameworks.") | ||
| 917 | (home-page "https://rspec.info/") | ||
| 918 | (license license:expat))) | ||
| 919 | |||
| 920 | (define-public ruby-rspec-2 | ||
| 921 | (package (inherit ruby-rspec) | ||
| 922 | (version "2.14.1") | ||
| 923 | (source (origin | ||
| 924 | (method url-fetch) | ||
| 925 | (uri (rubygems-uri "rspec" version)) | ||
| 926 | (sha256 | ||
| 927 | (base32 | ||
| 928 | "134y4wzk1prninb5a0bhxgm30kqfzl8dg06af4js5ylnhv2wd7sg")))) | ||
| 929 | (propagated-inputs | ||
| 930 | (list ruby-rspec-core-2 ruby-rspec-mocks-2 ruby-rspec-expectations-2)))) | ||
| 931 | |||
| 932 | (define-public ruby-rspec-core | ||
| 933 | (package | ||
| 934 | (name "ruby-rspec-core") | ||
| 935 | (version "3.13.2") | ||
| 936 | (source (origin | ||
| 937 | (method url-fetch) | ||
| 938 | (uri (rubygems-uri "rspec-core" version)) | ||
| 939 | (sha256 | ||
| 940 | (base32 | ||
| 941 | "001kazj244cb6fbkmh7ap74csbr78717qaskqzqpir1q8xpdmywl")))) | ||
| 942 | (build-system ruby-build-system) | ||
| 943 | (arguments | ||
| 944 | '(#:tests? #f)) ; avoid dependency cycles | ||
| 945 | (propagated-inputs | ||
| 946 | (list ruby-rspec-support)) | ||
| 947 | (synopsis "RSpec core library") | ||
| 948 | (description "Rspec-core provides the RSpec test runner and example | ||
| 949 | groups.") | ||
| 950 | (home-page "https://github.com/rspec/rspec-core") | ||
| 951 | (license license:expat))) | ||
| 952 | |||
| 953 | (define-public ruby-rspec-core-2 | ||
| 954 | (package (inherit ruby-rspec-core) | ||
| 955 | (version "2.14.8") | ||
| 956 | (source (origin | ||
| 957 | (method url-fetch) | ||
| 958 | (uri (rubygems-uri "rspec-core" version)) | ||
| 959 | (sha256 | ||
| 960 | (base32 | ||
| 961 | "0psjy5kdlz3ph39br0m01w65i1ikagnqlg39f8p65jh5q7dz8hwc")))) | ||
| 962 | (arguments | ||
| 963 | (cons* | ||
| 964 | #:phases | ||
| 965 | #~(modify-phases %standard-phases | ||
| 966 | (add-after 'unpack 'patch | ||
| 967 | (lambda _ | ||
| 968 | (substitute* "lib/rspec/core/ruby_project.rb" | ||
| 969 | (("File\\.exists\\?") "File.exist?"))))) | ||
| 970 | (package-arguments ruby-rspec-core))) | ||
| 971 | (propagated-inputs `()))) | ||
| 972 | |||
| 973 | (define-public ruby-rspec-expectations | ||
| 974 | (package | ||
| 975 | (name "ruby-rspec-expectations") | ||
| 976 | (version "3.13.3") | ||
| 977 | (source (origin | ||
| 978 | (method url-fetch) | ||
| 979 | (uri (rubygems-uri "rspec-expectations" version)) | ||
| 980 | (sha256 | ||
| 981 | (base32 | ||
| 982 | "0n3cyrhsa75x5wwvskrrqk56jbjgdi2q1zx0irllf0chkgsmlsqf")))) | ||
| 983 | (build-system ruby-build-system) | ||
| 984 | (arguments | ||
| 985 | '(#:tests? #f)) ; avoid dependency cycles | ||
| 986 | (propagated-inputs | ||
| 987 | (list ruby-diff-lcs ruby-rspec-support)) | ||
| 988 | (synopsis "RSpec expectations library") | ||
| 989 | (description "Rspec-expectations provides a simple API to express expected | ||
| 990 | outcomes of a code example.") | ||
| 991 | (home-page "https://github.com/rspec/rspec-expectations") | ||
| 992 | (license license:expat))) | ||
| 993 | |||
| 994 | (define-public ruby-rspec-expectations-2 | ||
| 995 | (package (inherit ruby-rspec-expectations) | ||
| 996 | (version "2.14.5") | ||
| 997 | (source (origin | ||
| 998 | (method url-fetch) | ||
| 999 | (uri (rubygems-uri "rspec-expectations" version)) | ||
| 1000 | (sha256 | ||
| 1001 | (base32 | ||
| 1002 | "1ni8kw8kjv76jvwjzi4jba00k3qzj9f8wd94vm6inz0jz3gwjqf9")))) | ||
| 1003 | (propagated-inputs | ||
| 1004 | (list ruby-diff-lcs)))) | ||
| 1005 | |||
| 1006 | (define-public ruby-rspec-mocks | ||
| 1007 | (package | ||
| 1008 | (name "ruby-rspec-mocks") | ||
| 1009 | (version "3.13.2") | ||
| 1010 | (source (origin | ||
| 1011 | (method url-fetch) | ||
| 1012 | (uri (rubygems-uri "rspec-mocks" version)) | ||
| 1013 | (sha256 | ||
| 1014 | (base32 | ||
| 1015 | "1vxxkb2sf2b36d8ca2nq84kjf85fz4x7wqcvb8r6a5hfxxfk69r3")))) | ||
| 1016 | (build-system ruby-build-system) | ||
| 1017 | (arguments | ||
| 1018 | '(#:tests? #f)) ; avoid dependency cycles | ||
| 1019 | (propagated-inputs | ||
| 1020 | (list ruby-diff-lcs ruby-rspec-support)) | ||
| 1021 | (synopsis "RSpec stubbing and mocking library") | ||
| 1022 | (description "Rspec-mocks provides RSpec's \"test double\" framework, with | ||
| 1023 | support for stubbing and mocking.") | ||
| 1024 | (home-page "https://github.com/rspec/rspec-mocks") | ||
| 1025 | (license license:expat))) | ||
| 1026 | |||
| 1027 | (define-public ruby-rspec-mocks-2 | ||
| 1028 | (package (inherit ruby-rspec-mocks) | ||
| 1029 | (version "2.14.6") | ||
| 1030 | (source (origin | ||
| 1031 | (method url-fetch) | ||
| 1032 | (uri (rubygems-uri "rspec-mocks" version)) | ||
| 1033 | (sha256 | ||
| 1034 | (base32 | ||
| 1035 | "1fwsmijd6w6cmqyh4ky2nq89jrpzh56hzmndx9wgkmdgfhfakv30")))) | ||
| 1036 | (propagated-inputs | ||
| 1037 | (list ruby-diff-lcs)))) | ||
| 1038 | |||
| 1039 | ;; RSpec is the dominant testing library for Ruby projects. Even RSpec's | ||
| 1040 | ;; dependencies use RSpec for their test suites! To avoid these circular | ||
| 1041 | ;; dependencies, we disable tests for all of the RSpec-related packages. | ||
| 1042 | (define-public ruby-rspec-support | ||
| 1043 | (package | ||
| 1044 | (name "ruby-rspec-support") | ||
| 1045 | (version "3.13.2") | ||
| 1046 | (source (origin | ||
| 1047 | (method url-fetch) | ||
| 1048 | (uri (rubygems-uri "rspec-support" version)) | ||
| 1049 | (sha256 | ||
| 1050 | (base32 | ||
| 1051 | "1v6v6xvxcpkrrsrv7v1xgf7sl0d71vcfz1cnrjflpf6r7x3a58yf")))) | ||
| 1052 | (build-system ruby-build-system) | ||
| 1053 | (arguments | ||
| 1054 | '(#:tests? #f)) ; avoid dependency cycles | ||
| 1055 | (synopsis "RSpec support library") | ||
| 1056 | (description "Support utilities for RSpec gems.") | ||
| 1057 | (home-page "https://github.com/rspec/rspec-support") | ||
| 1058 | (license license:expat))) | ||
| 1059 | |||
| 1060 | (define-public ruby-sequel | ||
| 1061 | (package | ||
| 1062 | (name "ruby-sequel") | ||
| 1063 | (version "5.47.0") | ||
| 1064 | (source | ||
| 1065 | (origin | ||
| 1066 | (method url-fetch) | ||
| 1067 | (uri (rubygems-uri "sequel" version)) | ||
| 1068 | (sha256 | ||
| 1069 | (base32 | ||
| 1070 | "03pmhj4kc3ga75wy397l57bvd18jxxmrk3qsznjw93b993qgvj3z")))) | ||
| 1071 | (build-system ruby-build-system) | ||
| 1072 | (arguments | ||
| 1073 | '(#:tests? #f)) ; Avoid dependency loop with ruby-minitest-hooks. | ||
| 1074 | (synopsis "Database toolkit for Ruby") | ||
| 1075 | (description "Sequel provides thread safety, connection pooling and a | ||
| 1076 | concise DSL for constructing SQL queries and table schemas. It includes a | ||
| 1077 | comprehensive ORM layer for mapping records to Ruby objects and handling | ||
| 1078 | associated records.") | ||
| 1079 | (home-page "https://sequel.jeremyevans.net") | ||
| 1080 | (license license:expat))) | ||
| 1081 | |||
| 1082 | (define-public ruby-simplecov-json-formatter | ||
| 1083 | (package | ||
| 1084 | (name "ruby-simplecov-json-formatter") | ||
| 1085 | (version "0.1.4") | ||
| 1086 | (source (origin | ||
| 1087 | (method url-fetch) | ||
| 1088 | (uri (rubygems-uri "simplecov_json_formatter" version)) | ||
| 1089 | (sha256 | ||
| 1090 | (base32 | ||
| 1091 | "0a5l0733hj7sk51j81ykfmlk2vd5vaijlq9d5fn165yyx3xii52j")))) | ||
| 1092 | (build-system ruby-build-system) | ||
| 1093 | ;; The test suite is disabled because it requires simplecov, which | ||
| 1094 | ;; requires this, introducing a dependency cycle. | ||
| 1095 | (arguments (list #:tests? #f)) | ||
| 1096 | (synopsis "JSON formatter for SimpleCov") | ||
| 1097 | (description "This package provides a JSON formatter for SimpleCov, the | ||
| 1098 | Ruby code coverage tool.") | ||
| 1099 | (home-page | ||
| 1100 | "https://github.com/codeclimate-community/simplecov_json_formatter") | ||
| 1101 | (license license:expat))) | ||
| 1102 | |||
| 1103 | (define-public ruby-simplecov | ||
| 1104 | (package | ||
| 1105 | (name "ruby-simplecov") | ||
| 1106 | (version "0.22.0") | ||
| 1107 | (source (origin | ||
| 1108 | (method url-fetch) | ||
| 1109 | (uri (rubygems-uri "simplecov" version)) | ||
| 1110 | (sha256 | ||
| 1111 | (base32 | ||
| 1112 | "198kcbrjxhhzca19yrdcd6jjj9sb51aaic3b0sc3pwjghg3j49py")))) | ||
| 1113 | (build-system ruby-build-system) | ||
| 1114 | ;; Simplecov depends on rubocop for code style checking at build time. | ||
| 1115 | ;; Rubocop needs simplecov at build time. | ||
| 1116 | (arguments `(#:tests? #f)) | ||
| 1117 | (propagated-inputs | ||
| 1118 | (list ruby-json | ||
| 1119 | ruby-docile | ||
| 1120 | ruby-simplecov-html | ||
| 1121 | ruby-simplecov-json-formatter)) | ||
| 1122 | (synopsis "Code coverage framework for Ruby") | ||
| 1123 | (description "SimpleCov is a code coverage framework for Ruby with a | ||
| 1124 | powerful configuration library and automatic merging of coverage across test | ||
| 1125 | suites.") | ||
| 1126 | (home-page "https://github.com/simplecov-ruby/simplecov") | ||
| 1127 | (license license:expat))) | ||
| 1128 | |||
| 1129 | (define-public ruby-simplecov-html | ||
| 1130 | (package | ||
| 1131 | (name "ruby-simplecov-html") | ||
| 1132 | (version "0.12.3") | ||
| 1133 | (source (origin | ||
| 1134 | (method url-fetch) | ||
| 1135 | (uri (rubygems-uri "simplecov-html" version)) | ||
| 1136 | (sha256 | ||
| 1137 | (base32 | ||
| 1138 | "0yx01bxa8pbf9ip4hagqkp5m0mqfnwnw2xk8kjraiywz4lrss6jb")))) | ||
| 1139 | (build-system ruby-build-system) | ||
| 1140 | (arguments `(#:tests? #f)) ; there are no tests | ||
| 1141 | (native-inputs | ||
| 1142 | (list bundler)) | ||
| 1143 | (synopsis "Default HTML formatter for SimpleCov code coverage tool") | ||
| 1144 | (description "This package provides the default HTML formatter for | ||
| 1145 | the SimpleCov code coverage tool for Ruby version 1.9 and above.") | ||
| 1146 | (home-page "https://github.com/simplecov-ruby/simplecov-html") | ||
| 1147 | (license license:expat))) | ||
| 1148 | |||
| 1149 | (define-public ruby-sorcerer | ||
| 1150 | (package | ||
| 1151 | (name "ruby-sorcerer") | ||
| 1152 | (version "2.0.1") | ||
| 1153 | (source | ||
| 1154 | (origin | ||
| 1155 | (method url-fetch) | ||
| 1156 | (uri (rubygems-uri "sorcerer" version)) | ||
| 1157 | (sha256 | ||
| 1158 | (base32 | ||
| 1159 | "0d32ha9pp9slpmsm027pkdpbr9vc5jn2m8rl6hwwx6a87m8cr58h")))) | ||
| 1160 | (build-system ruby-build-system) | ||
| 1161 | (synopsis "Ripper-style abstract syntax tree to Ruby source generator") | ||
| 1162 | (description "Sorcerer generates Ruby code from a Ripper-like abstract | ||
| 1163 | syntax tree (i.e. S-Expressions). Sorcerer is targeted mainly at small | ||
| 1164 | snippets of Ruby code, expressible in a single line. Longer examples may be | ||
| 1165 | re-sourced, but they will be rendered in a single-line format.") | ||
| 1166 | (home-page "https://github.com/rspec-given/sorcerer") | ||
| 1167 | (license license:expat))) | ||
| 1168 | |||
| 1169 | (define-public ruby-unindent | ||
| 1170 | (package | ||
| 1171 | (name "ruby-unindent") | ||
| 1172 | (version "1.0") | ||
| 1173 | (source | ||
| 1174 | (origin | ||
| 1175 | (method url-fetch) | ||
| 1176 | (uri (rubygems-uri "unindent" version)) | ||
| 1177 | (sha256 | ||
| 1178 | (base32 | ||
| 1179 | "1wqh3rzv8589yzibigminxx3qpmj2nqj28f90xy1sczk1pijmcrd")))) | ||
| 1180 | (build-system ruby-build-system) | ||
| 1181 | (synopsis "Ruby method to unindent strings") | ||
| 1182 | (description "This module provides a @code{String#unindent} Ruby method to | ||
| 1183 | unindent strings, which can be useful to unindent multiline strings embedded | ||
| 1184 | in already-indented code.") | ||
| 1185 | (home-page "https://github.com/mynyml/unindent") | ||
| 1186 | (license license:expat))) | ||
| 1187 | |||
| 33 | ;;; | 1188 | ;;; |
| 34 | ;;; Avoid adding new packages to the end of this file. To reduce the chances | 1189 | ;;; Avoid adding new packages to the end of this file. To reduce the chances |
| 35 | ;;; of a merge conflict, place them above in alphabetic order. | 1190 | ;;; of a merge conflict, place them above in alphabetic order. |
diff --git a/gnu/packages/ruby-xyz.scm b/gnu/packages/ruby-xyz.scm index 688bf334590..fb073cc40ba 100644 --- a/gnu/packages/ruby-xyz.scm +++ b/gnu/packages/ruby-xyz.scm | |||
| @@ -1,4 +1,41 @@ | |||
| 1 | ;;; GNU Guix --- Functional package management for GNU | 1 | ;;; GNU Guix --- Functional package management for GNU |
| 2 | ;;; Copyright © 2014, 2015 Pjotr Prins <pjotr.guix@thebird.nl> | ||
| 3 | ;;; Copyright © 2014-2017, 2021-2022, 2024 Ludovic Courtès <ludo@gnu.org> | ||
| 4 | ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> | ||
| 5 | ;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org> | ||
| 6 | ;;; Copyright © 2015, 2019 Ricardo Wurmus <rekado@elephly.net> | ||
| 7 | ;;; Copyright © 2015, 2016, 2017 Ben Woodcroft <donttrustben@gmail.com> | ||
| 8 | ;;; Copyright © 2017 Nikita <nikita@n0.is> | ||
| 9 | ;;; Copyright © 2017, 2019-2022 Marius Bakke <marius@gnu.org> | ||
| 10 | ;;; Copyright © 2017-2025 Efraim Flashner <efraim@flashner.co.il> | ||
| 11 | ;;; Copyright © 2017, 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr> | ||
| 12 | ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> | ||
| 13 | ;;; Copyright © 2017, 2018, 2019 Christopher Baines <mail@cbaines.net> | ||
| 14 | ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com> | ||
| 15 | ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com> | ||
| 16 | ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz> | ||
| 17 | ;;; Copyright © 2019 Mikhail Kirillov <w96k.ru@gmail.com> | ||
| 18 | ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org> | ||
| 19 | ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com> | ||
| 20 | ;;; Copyright © 2019 Collin J. Doering <collin@rekahsoft.ca> | ||
| 21 | ;;; Copyright © 2019 Diego N. Barbato <dnbarbato@posteo.de> | ||
| 22 | ;;; Copyright © 2019 Brett Gilio <brettg@posteo.de> | ||
| 23 | ;;; Copyright © 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr> | ||
| 24 | ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> | ||
| 25 | ;;; Copyright © 2020 Holgr Peters <holger.peters@posteo.de> | ||
| 26 | ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org> | ||
| 27 | ;;; Copyright © 2021 EuAndreh <eu@euandre.org> | ||
| 28 | ;;; Copyright © 2020 Tomás Ortín Fernández <tomasortin@mailbox.org> | ||
| 29 | ;;; Copyright © 2021 Giovanni Biscuolo <g@xelera.eu> | ||
| 30 | ;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com> | ||
| 31 | ;;; Copyright © 2022-2025 Remco van 't Veer <remco@remworks.net> | ||
| 32 | ;;; Copyright © 2022 Taiju HIGASHI <higashi@taiju.info> | ||
| 33 | ;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream> | ||
| 34 | ;;; Copyright © 2023, 2024 gemmaro <gemmaro.dev@gmail.com> | ||
| 35 | ;;; Copyright © 2023, 2024 Janneke Nieuwenhuizen <janneke@gnu.org> | ||
| 36 | ;;; Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com> | ||
| 37 | ;;; Copyright © 2023, 2024 Hartmut Goebel <h.goebel@crazy-compilers.com> | ||
| 38 | ;;; Copyright © 2025 Nicolas Graves <ngraves@ngraves.fr> | ||
| 2 | ;;; | 39 | ;;; |
| 3 | ;;; This file is part of GNU Guix. | 40 | ;;; This file is part of GNU Guix. |
| 4 | ;;; | 41 | ;;; |
| @@ -18,19 +55,16730 @@ | |||
| 18 | (define-module (gnu packages ruby-xyz) | 55 | (define-module (gnu packages ruby-xyz) |
| 19 | #:use-module ((guix licenses) #:prefix license:) | 56 | #:use-module ((guix licenses) #:prefix license:) |
| 20 | #:use-module (guix build-system ruby) | 57 | #:use-module (guix build-system ruby) |
| 58 | #:use-module (guix deprecation) | ||
| 59 | #:use-module (guix download) | ||
| 21 | #:use-module (guix gexp) | 60 | #:use-module (guix gexp) |
| 22 | #:use-module (guix git-download) | 61 | #:use-module (guix git-download) |
| 23 | #:use-module (guix packages) | 62 | #:use-module (guix packages) |
| 24 | #:use-module (gnu packages)) | 63 | #:use-module (guix modules) |
| 64 | #:use-module (guix utils) | ||
| 65 | #:use-module (gnu packages) | ||
| 66 | #:use-module (gnu packages) | ||
| 67 | #:use-module (gnu packages base) | ||
| 68 | #:use-module (gnu packages bison) | ||
| 69 | #:use-module (gnu packages c) | ||
| 70 | #:use-module (gnu packages check) | ||
| 71 | #:use-module (gnu packages compression) | ||
| 72 | #:use-module (gnu packages crypto) | ||
| 73 | #:use-module (gnu packages curl) | ||
| 74 | #:use-module (gnu packages databases) | ||
| 75 | #:use-module (gnu packages dbm) | ||
| 76 | #:use-module (gnu packages freedesktop) | ||
| 77 | #:use-module (gnu packages rails) | ||
| 78 | #:use-module (gnu packages readline) | ||
| 79 | #:use-module (gnu packages autotools) | ||
| 80 | #:use-module (gnu packages graphviz) | ||
| 81 | #:use-module (gnu packages haskell-xyz) | ||
| 82 | #:use-module (gnu packages java) | ||
| 83 | #:use-module (gnu packages libffi) | ||
| 84 | #:use-module (gnu packages libidn) | ||
| 85 | #:use-module (gnu packages linux) | ||
| 86 | #:use-module (gnu packages lsof) | ||
| 87 | #:use-module (gnu packages man) | ||
| 88 | #:use-module (gnu packages maths) | ||
| 89 | #:use-module (gnu packages ncurses) | ||
| 90 | #:use-module (gnu packages networking) | ||
| 91 | #:use-module (gnu packages node) | ||
| 92 | #:use-module (gnu packages perl) | ||
| 93 | #:use-module (gnu packages pkg-config) | ||
| 94 | #:use-module (gnu packages protobuf) | ||
| 95 | #:use-module (gnu packages python) | ||
| 96 | #:use-module (gnu packages python-xyz) | ||
| 97 | #:use-module (gnu packages ragel) | ||
| 98 | #:use-module (gnu packages rsync) | ||
| 99 | #:use-module (gnu packages sqlite) | ||
| 100 | #:use-module (gnu packages tls) | ||
| 101 | #:use-module (gnu packages valgrind) | ||
| 102 | #:use-module (gnu packages version-control) | ||
| 103 | #:use-module (gnu packages virtualization) | ||
| 104 | #:use-module (gnu packages web-browsers) | ||
| 105 | #:use-module (gnu packages serialization) | ||
| 106 | #:use-module (gnu packages xml) | ||
| 107 | #:use-module (gnu packages web) | ||
| 108 | #:use-module (gnu packages ruby) | ||
| 109 | #:use-module (gnu packages ruby-check)) | ||
| 25 | 110 | ||
| 26 | ;;; Commentary: | 111 | (define %prawn-project-licenses |
| 27 | ;;; | 112 | ;; This set of licenses applies to most (all?) components of the Prawn |
| 28 | ;;; Please: Try to add new module packages in alphabetic order. | 113 | ;; project (it is triple licensed). |
| 29 | ;;; | 114 | (list license:ruby |
| 30 | ;;; Code: | 115 | license:gpl2+ |
| 31 | 116 | license:gpl3+)) | |
| 117 | |||
| 118 | (define-public ruby-commander | ||
| 119 | (package | ||
| 120 | (name "ruby-commander") | ||
| 121 | (version "4.6.0") | ||
| 122 | (source | ||
| 123 | (origin | ||
| 124 | (method url-fetch) | ||
| 125 | (uri (rubygems-uri "commander" version)) | ||
| 126 | (sha256 | ||
| 127 | (base32 | ||
| 128 | "1n8k547hqq9hvbyqbx2qi08g0bky20bbjca1df8cqq5frhzxq7bx")))) | ||
| 129 | (build-system ruby-build-system) | ||
| 130 | (arguments | ||
| 131 | (list | ||
| 132 | #:test-target "spec" | ||
| 133 | #:phases | ||
| 134 | #~(modify-phases %standard-phases | ||
| 135 | ;; Don't run or require rubocop, the code linting tool, as this is a | ||
| 136 | ;; bit unnecessary. | ||
| 137 | (add-after 'unpack 'dont-run-rubocop | ||
| 138 | (lambda _ | ||
| 139 | (substitute* "Rakefile" | ||
| 140 | ((".*rubocop.*") "") | ||
| 141 | ((".*RuboCop.*") ""))))))) | ||
| 142 | (propagated-inputs | ||
| 143 | (list ruby-highline)) | ||
| 144 | (native-inputs | ||
| 145 | (list bundler ruby-rspec-core ruby-rspec-expectations | ||
| 146 | ruby-rspec-mocks ruby-simplecov)) | ||
| 147 | (home-page "https://github.com/commander-rb/commander") | ||
| 148 | (synopsis "Library for building Ruby command-line executables") | ||
| 149 | (description | ||
| 150 | "Commander aims to be a complete solution for Ruby command-line | ||
| 151 | executables. Commander bridges the gap between other terminal related | ||
| 152 | libraries (OptionParser, HighLine), while providing many new features, and an | ||
| 153 | elegant API.") | ||
| 154 | (license license:expat))) | ||
| 155 | |||
| 156 | (define-public ruby-highline | ||
| 157 | (package | ||
| 158 | (name "ruby-highline") | ||
| 159 | (version "2.0.1") | ||
| 160 | (source | ||
| 161 | (origin | ||
| 162 | (method url-fetch) | ||
| 163 | (uri (rubygems-uri "highline" version)) | ||
| 164 | (sha256 | ||
| 165 | (base32 | ||
| 166 | "0gr6pckj2jayxw1gdgh9193j5jag5zrrqqlrnl4jvcwpyd3sn2zc")))) | ||
| 167 | (build-system ruby-build-system) | ||
| 168 | (arguments | ||
| 169 | `(#:tests? #f)) ;; TODO: NameError: uninitialized constant SPEC | ||
| 170 | (native-inputs | ||
| 171 | (list bundler ruby-code-statistics)) | ||
| 172 | (synopsis | ||
| 173 | "HighLine helps you build command-line interfaces") | ||
| 174 | (description | ||
| 175 | "HighLine provides a high-level IO library that provides validation, | ||
| 176 | type conversion, and more for command-line interfaces. HighLine also includes | ||
| 177 | a menu system for providing multiple options to the user.") | ||
| 178 | (home-page "https://github.com/JEG2/highline") | ||
| 179 | (license (list license:gpl2 license:ruby)))) | ||
| 180 | |||
| 181 | (define-public ruby-hoe | ||
| 182 | (package | ||
| 183 | (name "ruby-hoe") | ||
| 184 | (version "4.2.2") | ||
| 185 | (source (origin | ||
| 186 | (method url-fetch) | ||
| 187 | (uri (rubygems-uri "hoe" version)) | ||
| 188 | (sha256 | ||
| 189 | (base32 | ||
| 190 | "1rhj1zs02mpdw6f4fh3mpfmj0p5pfar7rfxm758pk7l931mm8pyn")))) | ||
| 191 | (build-system ruby-build-system) | ||
| 192 | (arguments | ||
| 193 | (list | ||
| 194 | ;; Circular dependency with minitest | ||
| 195 | #:tests? #f)) | ||
| 196 | (synopsis "Ruby project management helper") | ||
| 197 | (description | ||
| 198 | "Hoe is a rake/rubygems helper for project Rakefiles. It helps manage, | ||
| 199 | maintain, and release projects and includes a dynamic plug-in system allowing | ||
| 200 | for easy extensibility. Hoe ships with plug-ins for all the usual project | ||
| 201 | tasks including rdoc generation, testing, packaging, deployment, and | ||
| 202 | announcement.") | ||
| 203 | (home-page "https://www.zenspider.com/projects/hoe.html") | ||
| 204 | (license license:expat))) | ||
| 205 | |||
| 206 | (define-public ruby-hoe-3 | ||
| 207 | (package | ||
| 208 | (inherit ruby-hoe) | ||
| 209 | (version "3.26.0") | ||
| 210 | (source (origin | ||
| 211 | (method url-fetch) | ||
| 212 | (uri (rubygems-uri "hoe" version)) | ||
| 213 | (sha256 | ||
| 214 | (base32 | ||
| 215 | "02vmphnfzna1dbb1l5nczcvlvvsg4flr26bdhmvdyf447bpswa63")))))) | ||
| 216 | |||
| 217 | (define-public ruby-rsync | ||
| 218 | (package | ||
| 219 | (name "ruby-rsync") | ||
| 220 | (version "1.0.9") | ||
| 221 | (source | ||
| 222 | (origin | ||
| 223 | (method url-fetch) | ||
| 224 | (uri (rubygems-uri "rsync" version)) | ||
| 225 | (sha256 | ||
| 226 | (base32 | ||
| 227 | "0p8b27q1gvxilqfq2528xpwglzcm2myikkjxpqk7mwbwg9r6knxv")))) | ||
| 228 | (build-system ruby-build-system) | ||
| 229 | (arguments | ||
| 230 | '(#:test-target "spec" | ||
| 231 | #:phases | ||
| 232 | (modify-phases %standard-phases | ||
| 233 | (add-after 'unpack 'remove-coveralls-requirement | ||
| 234 | (lambda _ | ||
| 235 | (substitute* "spec/spec_helper.rb" | ||
| 236 | (("require 'coveralls'") "") | ||
| 237 | (("Coveralls.wear!") ""))))))) | ||
| 238 | (native-inputs | ||
| 239 | (list bundler rsync ruby-rspec-core ruby-rspec-expectations | ||
| 240 | ruby-rspec-mocks)) | ||
| 241 | (home-page "https://github.com/jbussdieker/ruby-rsync") | ||
| 242 | (synopsis "Ruby wrapper around rsync") | ||
| 243 | (description | ||
| 244 | "Ruby Rsync is a Ruby library that can synchronize files between remote | ||
| 245 | hosts by wrapping the @file{rsync} binary.") | ||
| 246 | (license license:expat))) | ||
| 247 | |||
| 248 | (define-public ruby-i18n | ||
| 249 | (package | ||
| 250 | (name "ruby-i18n") | ||
| 251 | (version "1.13.0") | ||
| 252 | (source (origin | ||
| 253 | (method url-fetch) | ||
| 254 | (uri (rubygems-uri "i18n" version)) | ||
| 255 | (sha256 | ||
| 256 | (base32 | ||
| 257 | "1yk33slipi3i1kydzrrchbi7cgisaxym6pgwlzx7ir8vjk6wl90x")))) | ||
| 258 | (build-system ruby-build-system) | ||
| 259 | (arguments | ||
| 260 | '(#:tests? #f)) ; no tests | ||
| 261 | (propagated-inputs `(("concurrent-ruby" ,ruby-concurrent))) | ||
| 262 | (synopsis "Internationalization library for Ruby") | ||
| 263 | (description "Ruby i18n is an internationalization and localization | ||
| 264 | solution for Ruby programs. It features translation and localization, | ||
| 265 | interpolation of values to translations, pluralization, customizable | ||
| 266 | transliteration to ASCII, flexible defaults, bulk lookup, lambdas as | ||
| 267 | translation data, custom key/scope separator, custom exception handlers, and | ||
| 268 | an extensible architecture with a swappable backend.") | ||
| 269 | (home-page "https://github.com/ruby-i18n/i18n") | ||
| 270 | (license license:expat))) | ||
| 271 | |||
| 272 | (define-public ruby-ice-nine | ||
| 273 | (package | ||
| 274 | (name "ruby-ice-nine") | ||
| 275 | (version "0.11.2") | ||
| 276 | (source | ||
| 277 | (origin | ||
| 278 | (method url-fetch) | ||
| 279 | (uri (rubygems-uri "ice_nine" version)) | ||
| 280 | (sha256 | ||
| 281 | (base32 "1nv35qg1rps9fsis28hz2cq2fx1i96795f91q4nmkm934xynll2x")))) | ||
| 282 | (build-system ruby-build-system) | ||
| 283 | (arguments | ||
| 284 | (list #:tests? #f)) ;Dependency on convoluted unpackaged ruby-devtools. | ||
| 285 | (synopsis "Deep Freeze Ruby Objects") | ||
| 286 | (description | ||
| 287 | "This package provides a function to deep freeze Ruby objects.") | ||
| 288 | (home-page "https://github.com/dkubb/ice_nine") | ||
| 289 | (license license:expat))) | ||
| 290 | |||
| 291 | (define-public ruby-io-console | ||
| 292 | (package | ||
| 293 | (name "ruby-io-console") | ||
| 294 | (version "0.6.0") | ||
| 295 | (source (origin | ||
| 296 | (method git-fetch) ;for tests | ||
| 297 | (uri (git-reference | ||
| 298 | (url "https://github.com/ruby/io-console/") | ||
| 299 | (commit (string-append "v" version)))) | ||
| 300 | (file-name (git-file-name name version)) | ||
| 301 | (sha256 | ||
| 302 | (base32 | ||
| 303 | "0gwxrp29b6awkid1sf85sbh529mnq6hb86m8c2443cm6nc4vr8qb")))) | ||
| 304 | (build-system ruby-build-system) | ||
| 305 | (arguments | ||
| 306 | (list #:phases #~(modify-phases %standard-phases | ||
| 307 | (add-after 'unpack 'delete-rakelib-files | ||
| 308 | (lambda _ | ||
| 309 | ;; These depend on git and other extraneous | ||
| 310 | ;; dependencies, and are loaded by rake. | ||
| 311 | (delete-file-recursively "rakelib")))))) | ||
| 312 | (native-inputs (list ruby-rake-compiler)) | ||
| 313 | (synopsis "Console capabilities library for IO instances") | ||
| 314 | (description "IO.console adds console capabilities to Ruby IO instances.") | ||
| 315 | (home-page "https://github.com/ruby/io-console") | ||
| 316 | (license license:bsd-2))) | ||
| 317 | |||
| 318 | (define-public ruby-irb | ||
| 319 | (package | ||
| 320 | (name "ruby-irb") | ||
| 321 | (version "1.6.3") | ||
| 322 | (source (origin | ||
| 323 | (method url-fetch) | ||
| 324 | (uri (rubygems-uri "irb" version)) | ||
| 325 | (sha256 | ||
| 326 | (base32 | ||
| 327 | "1h9s07n5v3z029v18924ws9vdkdc80n6llp9ccx77yg1krv2g0f3")))) | ||
| 328 | (build-system ruby-build-system) | ||
| 329 | ;; XXX: Disable the test suite, as it requires debug, which requires this | ||
| 330 | ;; package (dependency cycle). | ||
| 331 | (arguments (list #:tests? #f)) | ||
| 332 | (propagated-inputs (list ruby-reline)) | ||
| 333 | (synopsis "Ruby command-line tool for REPL (Read Eval Print Loop)") | ||
| 334 | (description "IRB is an interactive Ruby command-line tool for REPL (Read | ||
| 335 | Eval Print Loop).") | ||
| 336 | (home-page "https://github.com/ruby/irb") | ||
| 337 | (license license:bsd-2))) | ||
| 338 | |||
| 339 | (define-public ruby-irb-1.1.1 | ||
| 340 | (package | ||
| 341 | (inherit ruby-irb) | ||
| 342 | (version "1.1.1") | ||
| 343 | (source (origin | ||
| 344 | (method url-fetch) | ||
| 345 | (uri (rubygems-uri "irb" version)) | ||
| 346 | (sha256 | ||
| 347 | (base32 | ||
| 348 | "0h605w798s2bg9wg681ynvvzgdz1yy69gh387bl0khw9ll7wkn8v")))))) | ||
| 349 | |||
| 350 | (define-public ruby-iruby | ||
| 351 | (package | ||
| 352 | (name "ruby-iruby") | ||
| 353 | (version "0.3") | ||
| 354 | (source | ||
| 355 | (origin | ||
| 356 | (method url-fetch) | ||
| 357 | (uri (rubygems-uri "iruby" version)) | ||
| 358 | (sha256 | ||
| 359 | (base32 | ||
| 360 | "1wdf2c0x8y6cya0n3y0p3p7b1sxkb2fdavdn2k58rf4rs37s7rzn")))) | ||
| 361 | (build-system ruby-build-system) | ||
| 362 | (arguments | ||
| 363 | ;; TODO: Tests currently fail. | ||
| 364 | ;; | ||
| 365 | ;; Finished in 1.764405s, 1.1335 runs/s, 5.1009 assertions/s. | ||
| 366 | ;; | ||
| 367 | ;; 1) Failure: | ||
| 368 | ;; IntegrationTest#test_interaction [/tmp/guix-build-ruby-iruby-0.3.drv-0/gem/test/integration_test.rb:25]: | ||
| 369 | ;; In [ expected | ||
| 370 | ;; | ||
| 371 | ;; 2 runs, 9 assertions, 1 failures, 0 errors, 0 skips | ||
| 372 | '(#:tests? #f | ||
| 373 | #:phases | ||
| 374 | (modify-phases %standard-phases | ||
| 375 | (add-after 'unpack 'patch-ipython | ||
| 376 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 377 | (substitute* "lib/iruby/command.rb" | ||
| 378 | (("version = `") | ||
| 379 | (string-append | ||
| 380 | "version = `" | ||
| 381 | (assoc-ref inputs "python-ipython") | ||
| 382 | "/bin/")) | ||
| 383 | (("Kernel\\.exec\\('") | ||
| 384 | (string-append | ||
| 385 | "Kernel.exec('" | ||
| 386 | (assoc-ref inputs "python-ipython") | ||
| 387 | "/bin/")))))))) | ||
| 388 | (inputs | ||
| 389 | (list python-ipython)) | ||
| 390 | (propagated-inputs | ||
| 391 | (list ruby-bond | ||
| 392 | ruby-data_uri | ||
| 393 | ruby-mimemagic | ||
| 394 | ruby-multi-json | ||
| 395 | ruby-cztop | ||
| 396 | ;; Optional inputs | ||
| 397 | ruby-pry)) | ||
| 398 | (synopsis "Ruby kernel for Jupyter/IPython") | ||
| 399 | (description | ||
| 400 | "This package provides a Ruby kernel for Jupyter/IPython frontends (e.g. | ||
| 401 | notebook).") | ||
| 402 | (home-page "https://github.com/SciRuby/iruby") | ||
| 403 | (license license:expat))) | ||
| 404 | |||
| 405 | (define-public ruby-date | ||
| 406 | (package | ||
| 407 | (name "ruby-date") | ||
| 408 | (version "3.3.3") | ||
| 409 | (source (origin | ||
| 410 | (method git-fetch) | ||
| 411 | (uri (git-reference | ||
| 412 | (url "https://github.com/ruby/date") | ||
| 413 | (commit (string-append "v" version)))) | ||
| 414 | (file-name (git-file-name name version)) | ||
| 415 | (sha256 | ||
| 416 | (base32 | ||
| 417 | "1jiqjnaap1jk1r8z37iicnzqha1rhc713qmcir17f4vnz8ac8v75")))) | ||
| 418 | (build-system ruby-build-system) | ||
| 419 | (arguments (list #:test-target "default")) | ||
| 420 | (native-inputs (list ruby-rake-compiler)) | ||
| 421 | (synopsis "Ruby @code{Object} subclass with date comparison capability") | ||
| 422 | (description "This package provides a subclass of @code{Object} that | ||
| 423 | includes the @code{Comparable} module for handling dates.") | ||
| 424 | (home-page "https://github.com/ruby/date") | ||
| 425 | (license license:bsd-2))) | ||
| 426 | |||
| 427 | (define-public ruby-time | ||
| 428 | (package | ||
| 429 | (name "ruby-time") | ||
| 430 | (version "0.3.0") | ||
| 431 | (source (origin | ||
| 432 | (method git-fetch) ; for tests | ||
| 433 | (uri (git-reference | ||
| 434 | (url "https://github.com/ruby/time") | ||
| 435 | (commit (string-append "v" version)))) | ||
| 436 | (file-name (git-file-name name version)) | ||
| 437 | (sha256 | ||
| 438 | (base32 | ||
| 439 | "0jd6df2lxd60wcxyaf37j8v3nnfn952d5xhg6aap9zlcdmkk4g2n")))) | ||
| 440 | (build-system ruby-build-system) | ||
| 441 | (propagated-inputs (list ruby-date)) | ||
| 442 | (native-inputs (list ruby-test-unit-ruby-core)) | ||
| 443 | (synopsis | ||
| 444 | "Extends the Time class with methods for parsing and conversion") | ||
| 445 | (description | ||
| 446 | "When this gem is @code{require}d, it extends the Time class with with | ||
| 447 | additional methods for parsing and converting Times.") | ||
| 448 | (home-page "https://github.com/ruby/time") | ||
| 449 | (license license:bsd-2))) | ||
| 450 | |||
| 451 | (define-public ruby-sorted-set | ||
| 452 | (package | ||
| 453 | (name "ruby-sorted-set") | ||
| 454 | (version "1.0.3") | ||
| 455 | (source (origin | ||
| 456 | (method url-fetch) | ||
| 457 | (uri (rubygems-uri "sorted_set" version)) | ||
| 458 | (sha256 | ||
| 459 | (base32 | ||
| 460 | "0brpwv68d7m9qbf5js4bg8bmg4v7h4ghz312jv9cnnccdvp8nasg")))) | ||
| 461 | (build-system ruby-build-system) | ||
| 462 | (propagated-inputs | ||
| 463 | (list ruby-rbtree ruby-set)) | ||
| 464 | (synopsis | ||
| 465 | "Ruby Set variant whose elements are sorted in ascending order") | ||
| 466 | (description | ||
| 467 | "This package implements a variant of Set whose elements are sorted in | ||
| 468 | ascending order") | ||
| 469 | (home-page "https://github.com/knu/sorted_set") | ||
| 470 | (license license:bsd-2))) | ||
| 471 | |||
| 472 | (define-public ruby-rspec-given | ||
| 473 | (package | ||
| 474 | (name "ruby-rspec-given") | ||
| 475 | (version "3.8.2") | ||
| 476 | (source | ||
| 477 | (origin | ||
| 478 | (method url-fetch) | ||
| 479 | (uri (rubygems-uri "rspec-given" version)) | ||
| 480 | (sha256 | ||
| 481 | (base32 | ||
| 482 | "0xzzxjjzwrsp84p12sd6ab3jbm9kh7sbnqpxgc9mlfq3s3ll0fdj")))) | ||
| 483 | (build-system ruby-build-system) | ||
| 484 | (arguments | ||
| 485 | `(#:test-target "rs" | ||
| 486 | #:phases | ||
| 487 | (modify-phases %standard-phases | ||
| 488 | (add-after 'unpack 'fix-rakefile | ||
| 489 | (lambda _ | ||
| 490 | (substitute* '("Rakefile" "rakelib/gemspec.rake") | ||
| 491 | (("require '\\./lib/given/.*") "") | ||
| 492 | (("Given::VERSION") (format #f "~s" ,version)) | ||
| 493 | ;; Fix the error: "cannot load such file -- example_helper" | ||
| 494 | (("sh \"rspec") | ||
| 495 | "sh \"rspec -Ilib:examples")))) | ||
| 496 | (add-after 'extract-gemspec 'delete-failing-tests | ||
| 497 | ;; See: https://github.com/jimweirich/rspec-given/issues/57. | ||
| 498 | (lambda _ | ||
| 499 | (substitute* ".gemspec" | ||
| 500 | (("\"spec/lib/given/natural_assertion_spec.rb\".freeze, ") | ||
| 501 | "") | ||
| 502 | (("\"examples/integration/failing_messages_spec.rb\".freeze, ") | ||
| 503 | "")) | ||
| 504 | (delete-file "spec/lib/given/natural_assertion_spec.rb") | ||
| 505 | (delete-file "examples/integration/failing_messages_spec.rb")))))) | ||
| 506 | (native-inputs | ||
| 507 | (list ruby-rspec ruby-minitest)) | ||
| 508 | (propagated-inputs | ||
| 509 | (list ruby-given-core ruby-rspec)) | ||
| 510 | (synopsis "Given/When/Then for RSpec and Minitest") | ||
| 511 | (description "Given is an RSpec extension that allows the use of | ||
| 512 | Given/When/Then terminology when defining specifications, in a way similar to | ||
| 513 | the Cucumber Gherkin language.") | ||
| 514 | (home-page "https://github.com/rspec-given/rspec-given") | ||
| 515 | (license license:expat))) | ||
| 516 | |||
| 517 | (define-public ruby-rspec-its | ||
| 518 | (package | ||
| 519 | (name "ruby-rspec-its") | ||
| 520 | (version "1.3.0") | ||
| 521 | (source | ||
| 522 | (origin | ||
| 523 | (method git-fetch) | ||
| 524 | (uri (git-reference | ||
| 525 | (url "https://github.com/rspec/rspec-its") | ||
| 526 | (commit (string-append "v" version)))) | ||
| 527 | (file-name (git-file-name name version)) | ||
| 528 | (sha256 | ||
| 529 | (base32 | ||
| 530 | "02mlsc9d4d1cjj5vahi8v3q8hyn9fyiv8nnlidhgfh186qp20g1p")))) | ||
| 531 | (build-system ruby-build-system) | ||
| 532 | (arguments | ||
| 533 | `(#:test-target "spec" | ||
| 534 | #:phases | ||
| 535 | (modify-phases %standard-phases | ||
| 536 | (add-after 'unpack 'dont-install-gems-from-gemfile | ||
| 537 | (lambda _ | ||
| 538 | (substitute* "Gemfile" | ||
| 539 | (("rspec rspec-core rspec-expectations rspec-mocks rspec-support") | ||
| 540 | "")))) | ||
| 541 | (add-before 'build 'loosen-ffi-requirement | ||
| 542 | (lambda _ | ||
| 543 | ;; Accept any version of ruby-ffi. | ||
| 544 | (substitute* "Gemfile" | ||
| 545 | ((" gem 'ffi', '~> 1\\.9\\.25'") | ||
| 546 | " gem 'ffi'")))) | ||
| 547 | (add-before 'build 'remove-unnecessary-dependency-versions-from-gemfile | ||
| 548 | (lambda _ | ||
| 549 | (substitute* "rspec-its.gemspec" | ||
| 550 | (("rake.*") "rake'\n") | ||
| 551 | (("spec.add_development_dependency 'cucumber'.*") | ||
| 552 | "spec.add_development_dependency 'cucumber'\n") | ||
| 553 | (("bundler.*") "bundler'\n") | ||
| 554 | (("\"aruba.*") "'aruba'\n"))))))) | ||
| 555 | (propagated-inputs | ||
| 556 | (list ruby-rspec-core ruby-rspec-expectations)) | ||
| 557 | (native-inputs | ||
| 558 | (list bundler ruby-cucumber ruby-ffi ruby-aruba)) | ||
| 559 | (synopsis "RSpec extension that provides the @code{its} method") | ||
| 560 | (description | ||
| 561 | "RSpec::Its provides the its method as a short-hand to specify the expected | ||
| 562 | value of an attribute. For example, one can use @code{its(:size)\\{should | ||
| 563 | eq(1)\\}}.") | ||
| 564 | (home-page "https://github.com/rspec/rspec-its") | ||
| 565 | (license license:expat))) | ||
| 566 | |||
| 567 | ;;; This variant is used to break a cycle with ruby-protobuf. | ||
| 568 | (define-public ruby-rspec-its-minimal | ||
| 569 | (hidden-package | ||
| 570 | (package | ||
| 571 | (inherit ruby-rspec-its) | ||
| 572 | (arguments | ||
| 573 | (substitute-keyword-arguments (package-arguments ruby-rspec-its) | ||
| 574 | ((#:tests? _ #f) #f))) | ||
| 575 | (native-inputs '())))) | ||
| 576 | |||
| 577 | (define-public ruby-rspec-block-is-expected | ||
| 578 | (package | ||
| 579 | (name "ruby-rspec-block-is-expected") | ||
| 580 | (version "1.0.5") | ||
| 581 | (source (origin | ||
| 582 | (method git-fetch) ;for tests | ||
| 583 | (uri (git-reference | ||
| 584 | (url "https://github.com/pboling/rspec-block_is_expected") | ||
| 585 | (commit (string-append "v" version)))) | ||
| 586 | (file-name (git-file-name name version)) | ||
| 587 | (sha256 | ||
| 588 | (base32 | ||
| 589 | "1zi5z12lkw3fiwgr7g61845wj73asr2vzw4zsjv45klnnfspwass")))) | ||
| 590 | (build-system ruby-build-system) | ||
| 591 | (arguments | ||
| 592 | (list #:phases #~(modify-phases %standard-phases | ||
| 593 | (add-after 'unpack 'relax-requirements | ||
| 594 | (lambda _ | ||
| 595 | (substitute* "Rakefile" | ||
| 596 | (("require 'rubocop/rake_task'") "") | ||
| 597 | (("RuboCop::RakeTask.new") "")) | ||
| 598 | ;; Contains extraneous requirements not actually | ||
| 599 | ;; needed for the test suite. | ||
| 600 | (delete-file "Gemfile"))) | ||
| 601 | (add-before 'build 'drop-signing-key-requirement | ||
| 602 | (lambda _ | ||
| 603 | (substitute* "rspec-block_is_expected.gemspec" | ||
| 604 | (("spec.signing_key =.*") | ||
| 605 | "spec.signing_key = nil"))))))) | ||
| 606 | (native-inputs (list ruby-rspec-pending-for ruby-rspec-expectations)) | ||
| 607 | (propagated-inputs (list ruby-rspec-core)) | ||
| 608 | (synopsis "Simplify testing of blocks in RSpec") | ||
| 609 | (description "This RSpec plugin allows you to use @code{block_is_expected} | ||
| 610 | similarly to how you would use @code{is_expected} if a block was wrapping the | ||
| 611 | subject.") | ||
| 612 | (home-page "https://github.com/pboling/rspec-block_is_expected") | ||
| 613 | (license license:expat))) | ||
| 614 | |||
| 615 | (define-public ruby-rspec-pending-for | ||
| 616 | (package | ||
| 617 | (name "ruby-rspec-pending-for") | ||
| 618 | (version "0.1.16") | ||
| 619 | (source (origin | ||
| 620 | (method git-fetch) ;for tests | ||
| 621 | (uri (git-reference | ||
| 622 | (url "https://github.com/pboling/rspec-pending_for") | ||
| 623 | (commit (string-append "v" version)))) | ||
| 624 | (file-name (git-file-name name version)) | ||
| 625 | (sha256 | ||
| 626 | (base32 | ||
| 627 | "107l560vm0kx25w5iy5rsk9ly8dxzr81b31284j514f4hkd0qv3m")))) | ||
| 628 | (build-system ruby-build-system) | ||
| 629 | (native-inputs (list ruby-rspec ruby-simplecov)) | ||
| 630 | (propagated-inputs (list ruby-rspec-core ruby-ruby-engine | ||
| 631 | ruby-ruby-version)) | ||
| 632 | (synopsis "Skip RSpec tests for specific Ruby engines or versions") | ||
| 633 | (description "This RSpec plugin makes it easy to mark test cases as | ||
| 634 | pending or skipped for a specific Ruby engine (e.g. MRI or JRuby) or version | ||
| 635 | combinations.") | ||
| 636 | (home-page "https://github.com/pboling/rspec-pending_for") | ||
| 637 | (license license:expat))) | ||
| 638 | |||
| 639 | (define-public ruby-rspec-rerun | ||
| 640 | (package | ||
| 641 | (name "ruby-rspec-rerun") | ||
| 642 | (version "1.1.0") | ||
| 643 | (source | ||
| 644 | (origin | ||
| 645 | (method url-fetch) | ||
| 646 | (uri (rubygems-uri "rspec-rerun" version)) | ||
| 647 | (sha256 | ||
| 648 | (base32 | ||
| 649 | "1gy7znkcaqhpccfnk2nvaqbsvgxy3q57cmjwkl9fi1zabaq5lbkj")))) | ||
| 650 | (build-system ruby-build-system) | ||
| 651 | (arguments | ||
| 652 | '(;; No included tests | ||
| 653 | #:tests? #f)) | ||
| 654 | (propagated-inputs (list ruby-rspec)) | ||
| 655 | (synopsis "Track failed RSpec tests to re-run them") | ||
| 656 | (description | ||
| 657 | "This package provides an automated way to track, and then re-run failed | ||
| 658 | RSpec tests.") | ||
| 659 | (home-page "https://github.com/dblock/rspec-rerun") | ||
| 660 | (license license:expat))) | ||
| 661 | |||
| 662 | (define-public ruby-rspec-stubbed-env | ||
| 663 | ;; There is no release nor tag (see: | ||
| 664 | ;; https://github.com/pboling/rspec-stubbed_env/issues/7). | ||
| 665 | (let ((revision "0") | ||
| 666 | (commit "9d767dec77a6d130f6ad83c48a00a5c81b14b9fa")) | ||
| 667 | (package | ||
| 668 | (name "ruby-rspec-stubbed-env") | ||
| 669 | (version (git-version "1.0.0" revision commit)) | ||
| 670 | (source (origin | ||
| 671 | (method git-fetch) | ||
| 672 | (uri (git-reference | ||
| 673 | (url "https://github.com/pboling/rspec-stubbed_env") | ||
| 674 | (commit commit))) | ||
| 675 | (file-name (git-file-name name version)) | ||
| 676 | (sha256 | ||
| 677 | (base32 | ||
| 678 | "1dy4m04h613dp0s59rknjd6h4lqs1h17mffc5kd8kh046mk8nr1p")))) | ||
| 679 | (build-system ruby-build-system) | ||
| 680 | (arguments | ||
| 681 | (list #:test-target "spec" | ||
| 682 | #:phases #~(modify-phases %standard-phases | ||
| 683 | (add-after 'unpack 'streamline-requirements | ||
| 684 | (lambda _ | ||
| 685 | ;; Remove extraneous development dependencies. | ||
| 686 | (substitute* "rspec-stubbed_env.gemspec" | ||
| 687 | ((".*bundler.*") "") | ||
| 688 | ((".*rubocop.*") ""))))))) | ||
| 689 | (native-inputs (list ruby-simplecov)) | ||
| 690 | (propagated-inputs (list ruby-rspec)) | ||
| 691 | (synopsis "RSpec plugin to stub environment variables") | ||
| 692 | (description | ||
| 693 | "This RSpec plugin can be used to stub environment variables in a scoped | ||
| 694 | context for testing.") | ||
| 695 | (home-page "https://github.com/pboling/rspec-stubbed_env") | ||
| 696 | (license license:expat)))) | ||
| 697 | |||
| 698 | (define-public ruby-rspec-wait | ||
| 699 | (package | ||
| 700 | (name "ruby-rspec-wait") | ||
| 701 | (version "0.0.9") | ||
| 702 | (source | ||
| 703 | (origin | ||
| 704 | (method url-fetch) | ||
| 705 | (uri (rubygems-uri "rspec-wait" version)) | ||
| 706 | (sha256 | ||
| 707 | (base32 | ||
| 708 | "0gvj1bp5ccx001dyvcgk2j49s5sl6vs9fdaqqb08z3bd1554hsww")))) | ||
| 709 | (build-system ruby-build-system) | ||
| 710 | (arguments | ||
| 711 | '(#:phases | ||
| 712 | (modify-phases %standard-phases | ||
| 713 | (replace 'check | ||
| 714 | (lambda _ | ||
| 715 | (invoke "rake" "spec")))))) | ||
| 716 | (native-inputs | ||
| 717 | (list bundler)) | ||
| 718 | (propagated-inputs | ||
| 719 | (list ruby-rspec)) | ||
| 720 | (home-page "https://github.com/laserlemon/rspec-wait") | ||
| 721 | (synopsis "Wait for conditions in RSpec") | ||
| 722 | (description | ||
| 723 | "RSpec::Wait strives to make it easier to test asynchronous or slow | ||
| 724 | interactions.") | ||
| 725 | (license license:expat))) | ||
| 726 | |||
| 727 | (define-public ruby-rspec-debug | ||
| 728 | (package | ||
| 729 | (name "ruby-rspec-debug") | ||
| 730 | (version "0.2.0") | ||
| 731 | (source (origin | ||
| 732 | (method git-fetch) ;for tests | ||
| 733 | (uri (git-reference | ||
| 734 | (url "https://github.com/ko1/rspec-debug") | ||
| 735 | (commit (string-append "v" version)))) | ||
| 736 | (file-name (git-file-name name version)) | ||
| 737 | (sha256 | ||
| 738 | (base32 | ||
| 739 | "125p1zxjznkk765nyqvkksw8x1nbm7xk4sjc1wza2fyp5hvyiddn")))) | ||
| 740 | (build-system ruby-build-system) | ||
| 741 | (arguments | ||
| 742 | (list #:test-target "spec" | ||
| 743 | #:phases #~(modify-phases %standard-phases | ||
| 744 | (add-after 'extract-gemspec 'relax-dependencies | ||
| 745 | (lambda _ | ||
| 746 | (substitute* "Gemfile" | ||
| 747 | (("~>") ">="))))))) | ||
| 748 | (native-inputs (list ruby-rspec)) | ||
| 749 | (propagated-inputs (list ruby-debug)) | ||
| 750 | (synopsis "Invoke Ruby debugger when spec fails") | ||
| 751 | (description "This package can be used to have the execution stopped for | ||
| 752 | inspection in the Ruby debugger upon encountering a failure. To use it, set | ||
| 753 | the @env{RSPEC_DEBUG} environment variable to @samp{true} then invoke the | ||
| 754 | @command{rspec} command as usual.") | ||
| 755 | (home-page "https://github.com/ko1/rspec-debug") | ||
| 756 | (license license:expat))) | ||
| 757 | |||
| 758 | (define-public ruby-specinfra | ||
| 759 | (package | ||
| 760 | (name "ruby-specinfra") | ||
| 761 | (version "2.88.1") | ||
| 762 | (source (origin | ||
| 763 | (method url-fetch) | ||
| 764 | (uri (rubygems-uri "specinfra" version)) | ||
| 765 | (sha256 | ||
| 766 | (base32 | ||
| 767 | "07lap3sknncffpq9jw1x1mn9c5xxd058wxs5vnyz1y0lawdjfnsf")))) | ||
| 768 | (build-system ruby-build-system) | ||
| 769 | (propagated-inputs (list ruby-net-scp ruby-net-ssh ruby-net-telnet | ||
| 770 | ruby-sfl)) | ||
| 771 | (arguments | ||
| 772 | (list | ||
| 773 | #:test-target "spec" | ||
| 774 | #:phases | ||
| 775 | #~(modify-phases %standard-phases | ||
| 776 | (add-after 'extract-gemspec 'relax-dependencies | ||
| 777 | (lambda _ | ||
| 778 | (substitute* "specinfra.gemspec" | ||
| 779 | (("%q<net-telnet>.freeze, \\[.*\\]") | ||
| 780 | "%q<net-telnet>.freeze, [\">= 0\"]"))))))) | ||
| 781 | (synopsis "Common layer for serverspec and itamae") | ||
| 782 | (description "This Gem provides a common layer for serverspec and | ||
| 783 | itamae.") | ||
| 784 | (home-page "https://github.com/mizzy/specinfra") | ||
| 785 | (license license:expat))) | ||
| 786 | |||
| 787 | (define-public ruby-serverspec | ||
| 788 | (package | ||
| 789 | (name "ruby-serverspec") | ||
| 790 | (version "2.42.3") | ||
| 791 | (source (origin | ||
| 792 | (method url-fetch) | ||
| 793 | (uri (rubygems-uri "serverspec" version)) | ||
| 794 | (sha256 | ||
| 795 | (base32 | ||
| 796 | "0kfaqrqynly8n3dy5qrbjvx4lx6mk9a5vynwb7xwqj8bixm0mab4")))) | ||
| 797 | (build-system ruby-build-system) | ||
| 798 | (propagated-inputs (list ruby-multi-json ruby-rspec ruby-rspec-its | ||
| 799 | ruby-specinfra)) | ||
| 800 | (arguments | ||
| 801 | (list #:test-target "spec")) | ||
| 802 | (synopsis | ||
| 803 | "RSpec tests for servers configured by Puppet, Chef, Itamae, etc") | ||
| 804 | (description | ||
| 805 | "With Serverspec, you can write RSpec tests for checking your servers are | ||
| 806 | configured correctly. | ||
| 807 | |||
| 808 | Serverspec tests your servers’ actual state by executing command locally, via | ||
| 809 | SSH, via WinRM, via Docker API and so on. So you don’t need to install any | ||
| 810 | agent softwares on your servers and can use any configuration management | ||
| 811 | tools, Puppet, Ansible, CFEngine, Itamae and so on. | ||
| 812 | |||
| 813 | But the true aim of Serverspec is to help refactoring infrastructure code.") | ||
| 814 | (home-page "https://serverspec.org/") | ||
| 815 | (license license:expat))) | ||
| 816 | |||
| 817 | (define-public ruby-base64 | ||
| 818 | (package | ||
| 819 | (name "ruby-base64") | ||
| 820 | (version "0.2.0") | ||
| 821 | (source | ||
| 822 | (origin | ||
| 823 | (method url-fetch) | ||
| 824 | (uri (rubygems-uri "base64" version)) | ||
| 825 | (sha256 | ||
| 826 | (base32 "01qml0yilb9basf7is2614skjp8384h2pycfx86cr8023arfj98g")))) | ||
| 827 | (build-system ruby-build-system) | ||
| 828 | (arguments '(#:tests? #f)) ; No tests bundled. | ||
| 829 | (synopsis "Base64 encoding/decoding in Ruby") | ||
| 830 | (description | ||
| 831 | "This package provides support for encoding and decoding binary data | ||
| 832 | using a Base64 representation.") | ||
| 833 | (home-page "https://github.com/ruby/base64") | ||
| 834 | (license (list license:bsd-2)))) | ||
| 835 | |||
| 836 | (define-public ruby-bump | ||
| 837 | (package | ||
| 838 | (name "ruby-bump") | ||
| 839 | (version "0.7.0") | ||
| 840 | (source | ||
| 841 | (origin | ||
| 842 | (method url-fetch) | ||
| 843 | (uri (rubygems-uri "bump" version)) | ||
| 844 | (sha256 | ||
| 845 | (base32 | ||
| 846 | "1xinbr9rzh6cj75x24niwgqcnbhdxc68a8bc41lk8xv6fd906fym")))) | ||
| 847 | (build-system ruby-build-system) | ||
| 848 | (arguments | ||
| 849 | '(;; No included tests | ||
| 850 | #:tests? #f)) | ||
| 851 | (synopsis "Tool for working with Rubygems") | ||
| 852 | (description | ||
| 853 | "Bump provides commands to manage Rubygem versioning, updating to the | ||
| 854 | next patch version for example.") | ||
| 855 | (home-page "https://github.com/gregorym/bump") | ||
| 856 | (license license:expat))) | ||
| 857 | |||
| 858 | (define-public ruby-rjb | ||
| 859 | (package | ||
| 860 | (name "ruby-rjb") | ||
| 861 | (version "1.6.7") | ||
| 862 | (source (origin | ||
| 863 | (method url-fetch) | ||
| 864 | (uri (rubygems-uri "rjb" version)) | ||
| 865 | (sha256 | ||
| 866 | (base32 | ||
| 867 | "0ck802bm8cklhmqsgzhsa0y8lg80qy52dp3m8rlld3zc5gv1rsb9")))) | ||
| 868 | (build-system ruby-build-system) | ||
| 869 | (arguments | ||
| 870 | (list | ||
| 871 | #:tests? #f ; no rakefile | ||
| 872 | #:phases | ||
| 873 | #~(modify-phases %standard-phases | ||
| 874 | (add-before 'build 'set-java-home | ||
| 875 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 876 | (setenv "JAVA_HOME" (assoc-ref inputs "jdk"))))))) | ||
| 877 | (native-inputs | ||
| 878 | `(("jdk" ,icedtea "jdk"))) | ||
| 879 | (synopsis "Ruby-to-Java bridge using the Java Native Interface") | ||
| 880 | (description "RJB is a bridge program that connects Ruby and Java via the | ||
| 881 | Java Native Interface.") | ||
| 882 | (home-page "https://www.artonx.org/collabo/backyard/?RubyJavaBridge") | ||
| 883 | (license license:lgpl2.1+))) | ||
| 884 | |||
| 885 | (define-public ruby-log4r | ||
| 886 | (package | ||
| 887 | (name "ruby-log4r") | ||
| 888 | (version "1.1.10") | ||
| 889 | (source | ||
| 890 | (origin | ||
| 891 | (method url-fetch) | ||
| 892 | (uri (rubygems-uri "log4r" version)) | ||
| 893 | (sha256 | ||
| 894 | (base32 | ||
| 895 | "0ri90q0frfmigkirqv5ihyrj59xm8pq5zcmf156cbdv4r4l2jicv")))) | ||
| 896 | (build-system ruby-build-system) | ||
| 897 | (arguments | ||
| 898 | '(#:tests? #f)) ; no Rakefile in gem | ||
| 899 | (synopsis "Flexible logging library for Ruby") | ||
| 900 | (description "Comprehensive and flexible logging library written | ||
| 901 | in Ruby for use in Ruby programs. It features a hierarchical logging | ||
| 902 | system of any number of levels, custom level names, logger | ||
| 903 | inheritance, multiple output destinations per log event, execution | ||
| 904 | tracing, custom formatting, thread safteyness, XML and YAML | ||
| 905 | configuration, and more.") | ||
| 906 | (home-page "http://log4r.rubyforge.org/") | ||
| 907 | (license license:bsd-3))) | ||
| 908 | |||
| 909 | (define-public ruby-atoulme-antwrap | ||
| 910 | (package | ||
| 911 | (name "ruby-atoulme-antwrap") | ||
| 912 | (version "0.7.5") | ||
| 913 | (source (origin | ||
| 914 | (method url-fetch) | ||
| 915 | (uri (rubygems-uri "atoulme-Antwrap" version)) | ||
| 916 | (sha256 | ||
| 917 | (base32 | ||
| 918 | "05s3iw44lqa81f8nfy5f0xjj808600h82zb9bsh46b9kcq2w2kmz")))) | ||
| 919 | (build-system ruby-build-system) | ||
| 920 | ;; Test data required for most of the tests are not included. | ||
| 921 | (arguments `(#:tests? #f)) | ||
| 922 | (native-inputs | ||
| 923 | (list ruby-hoe)) | ||
| 924 | (inputs | ||
| 925 | (list ruby-rjb)) | ||
| 926 | (synopsis "Ruby wrapper for the Ant build tool") | ||
| 927 | (description "Antwrap is a Ruby module that wraps the Apache Ant build | ||
| 928 | tool. Antwrap can be used to invoke Ant tasks from a Ruby or a JRuby | ||
| 929 | script.") | ||
| 930 | (home-page "http://rubyforge.org/projects/antwrap/") | ||
| 931 | (license license:expat))) | ||
| 932 | |||
| 933 | (define-public ruby-atoulme-saikuro | ||
| 934 | (package | ||
| 935 | (name "ruby-atoulme-saikuro") | ||
| 936 | (version "1.2.1") | ||
| 937 | (source (origin | ||
| 938 | (method url-fetch) | ||
| 939 | (uri (rubygems-uri "atoulme-Saikuro" version)) | ||
| 940 | (sha256 | ||
| 941 | (base32 | ||
| 942 | "0kvd2nsxffbza61d3q4j94wrbnbv50r1zy3a7q26f6k706fw1f19")))) | ||
| 943 | (build-system ruby-build-system) | ||
| 944 | (arguments | ||
| 945 | (list | ||
| 946 | #:phases | ||
| 947 | #~(modify-phases %standard-phases | ||
| 948 | (add-after 'unpack 'fix-module-resolution | ||
| 949 | (lambda _ | ||
| 950 | (substitute* "lib/saikuro.rb" | ||
| 951 | ;; irb 1.2.0 or later doesn't have RubyToken | ||
| 952 | (("require 'irb/ruby-lex'") | ||
| 953 | "require 'rubygems'\ngem 'irb', '=1.1.1'\nrequire 'irb/ruby-lex'")))) | ||
| 954 | (delete 'check) | ||
| 955 | (add-after 'install 'check | ||
| 956 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 957 | (let* ((out (assoc-ref outputs "out")) | ||
| 958 | (saikuro (string-append out "/bin/saikuro"))) | ||
| 959 | (setenv "GEM_PATH" (string-append | ||
| 960 | (getenv "GEM_PATH") ":" | ||
| 961 | #$output "/lib/ruby/vendor_ruby")) | ||
| 962 | (invoke saikuro "--cyclo" "--token" "--input_directory" "tests"))))))) | ||
| 963 | (propagated-inputs (list ruby-irb-1.1.1 | ||
| 964 | ruby-e2mmap)) ;required by rubygems | ||
| 965 | (synopsis "Cyclomatic complexity analyzer") | ||
| 966 | (description "Saikuro is a Ruby cyclomatic complexity analyzer. When | ||
| 967 | given Ruby source code Saikuro will generate a report listing the cyclomatic | ||
| 968 | complexity of each method found. In addition, Saikuro counts the number of | ||
| 969 | lines per method and can generate a listing of the number of tokens on each | ||
| 970 | line of code.") | ||
| 971 | (home-page "http://www.github.com/atoulme/Saikuro") | ||
| 972 | ;; File headers contain the BSD-3 license and the README.rdoc says that | ||
| 973 | ;; "Saikuro uses the BSD license", but the LICENSE file contains the text | ||
| 974 | ;; of the Expat license. | ||
| 975 | (license license:bsd-3))) | ||
| 976 | |||
| 977 | (define-public ruby-awesome-print | ||
| 978 | (package | ||
| 979 | (name "ruby-awesome-print") | ||
| 980 | (version "1.9.2") | ||
| 981 | (source | ||
| 982 | (origin | ||
| 983 | (method url-fetch) | ||
| 984 | (uri (rubygems-uri "awesome_print" version)) | ||
| 985 | (sha256 | ||
| 986 | (base32 | ||
| 987 | "0vkq6c8y2jvaw03ynds5vjzl1v9wg608cimkd3bidzxc0jvk56z9")))) | ||
| 988 | (build-system ruby-build-system) | ||
| 989 | (arguments | ||
| 990 | (list | ||
| 991 | #:phases | ||
| 992 | #~(modify-phases %standard-phases | ||
| 993 | (replace 'check | ||
| 994 | (lambda _ | ||
| 995 | ;; Remove failing test. | ||
| 996 | (for-each delete-file | ||
| 997 | '("spec/ext/nokogiri_spec.rb" | ||
| 998 | "spec/colors_spec.rb" | ||
| 999 | "spec/formats_spec.rb" | ||
| 1000 | "spec/methods_spec.rb" | ||
| 1001 | "spec/misc_spec.rb" | ||
| 1002 | "spec/objects_spec.rb")) | ||
| 1003 | (invoke "rspec" "-c" "spec")))))) | ||
| 1004 | (native-inputs | ||
| 1005 | (list ruby-nokogiri ruby-rspec ruby-simplecov)) | ||
| 1006 | (synopsis "Pretty print Ruby objects to visualize their structure") | ||
| 1007 | (description | ||
| 1008 | "Ruby dubugging companion: pretty print Ruby objects to visualize their | ||
| 1009 | structure. Supports custom object formatting via plugins.") | ||
| 1010 | (home-page "https://github.com/awesome-print/awesome_print") | ||
| 1011 | (license license:expat))) | ||
| 1012 | |||
| 1013 | (define-public ruby-pandoc-ruby | ||
| 1014 | (package | ||
| 1015 | (name "ruby-pandoc-ruby") | ||
| 1016 | (version "2.1.4") | ||
| 1017 | (source | ||
| 1018 | (origin | ||
| 1019 | (method git-fetch) ;the gem lacks many test files | ||
| 1020 | (uri (git-reference | ||
| 1021 | (url "https://github.com/xwmx/pandoc-ruby") | ||
| 1022 | (commit version))) | ||
| 1023 | (file-name (git-file-name name version)) | ||
| 1024 | (sha256 | ||
| 1025 | (base32 | ||
| 1026 | "03a11clhycyn0jhc7g9davpqd83sn60jqwjy1y145ag9sq6sp935")))) | ||
| 1027 | (build-system ruby-build-system) | ||
| 1028 | (arguments | ||
| 1029 | `(#:tests? #f ; Disable tests since they depend on pandoc behavior | ||
| 1030 | ; and there are no upstream releases. | ||
| 1031 | #:phases | ||
| 1032 | (modify-phases %standard-phases | ||
| 1033 | (add-after 'unpack 'patch-pandoc-path | ||
| 1034 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 1035 | (let ((pandoc (search-input-file inputs "/bin/pandoc"))) | ||
| 1036 | (substitute* "lib/pandoc-ruby.rb" | ||
| 1037 | (("@@pandoc_path = 'pandoc'") | ||
| 1038 | (format #f "@@pandoc_path = '~a'" pandoc))) | ||
| 1039 | (substitute* "test/test_pandoc_ruby.rb" | ||
| 1040 | (("('|\")pandoc" _ quote) | ||
| 1041 | (string-append quote pandoc)) | ||
| 1042 | (("\\^pandoc") | ||
| 1043 | ".*pandoc"))))) | ||
| 1044 | (add-after 'unpack 'adjust-tests | ||
| 1045 | ;; The tests expect filenames with spaces. Because they don't have | ||
| 1046 | ;; spaces the quotes around the output are dropped automatically. | ||
| 1047 | (lambda _ | ||
| 1048 | (substitute* "test/test_pandoc_ruby.rb" | ||
| 1049 | (("\\\\\"#\\{file\\.path\\}\\\\\"") "#{file.path}")))) | ||
| 1050 | (add-after 'extract-gemspec 'remove-Gemfile.lock | ||
| 1051 | (lambda _ | ||
| 1052 | (delete-file "Gemfile.lock") | ||
| 1053 | (substitute* "pandoc-ruby.gemspec" | ||
| 1054 | (("Gemfile\\.lock") ""))))))) | ||
| 1055 | (native-inputs | ||
| 1056 | (list ruby-mocha)) | ||
| 1057 | (inputs | ||
| 1058 | (list pandoc)) | ||
| 1059 | (synopsis "Ruby wrapper for Pandoc") | ||
| 1060 | (description "PandocRuby is a wrapper for Pandoc, a Haskell library with | ||
| 1061 | command line tools for converting one markup format to another. Pandoc can | ||
| 1062 | convert documents from a variety of formats including markdown, | ||
| 1063 | reStructuredText, textile, HTML, DocBook, LaTeX, and MediaWiki markup to a | ||
| 1064 | variety of other formats, including markdown, reStructuredText, HTML, LaTeX, | ||
| 1065 | ConTeXt, PDF, RTF, DocBook XML, OpenDocument XML, ODT, GNU Texinfo, MediaWiki | ||
| 1066 | markup, groff man pages, HTML slide shows, EPUB, Microsoft Word docx, and | ||
| 1067 | more.") | ||
| 1068 | (home-page "https://github.com/xwmx/pandoc-ruby") | ||
| 1069 | (license license:expat))) | ||
| 1070 | |||
| 1071 | (define-public ruby-patron | ||
| 1072 | (package | ||
| 1073 | (name "ruby-patron") | ||
| 1074 | (version "0.13.3") | ||
| 1075 | (source | ||
| 1076 | (origin | ||
| 1077 | (method url-fetch) | ||
| 1078 | (uri (rubygems-uri "patron" version)) | ||
| 1079 | (sha256 | ||
| 1080 | (base32 | ||
| 1081 | "0523gddx88zql2mq6655k60gy2ac8vybpzkcf90lmd9nx7wl3fi9")))) | ||
| 1082 | (build-system ruby-build-system) | ||
| 1083 | (inputs | ||
| 1084 | (list curl)) | ||
| 1085 | (arguments | ||
| 1086 | `(#:tests? #f)) ; no included tests | ||
| 1087 | (synopsis "Ruby HTTP client library based on @code{libcurl}") | ||
| 1088 | (description | ||
| 1089 | "Patron is a Ruby HTTP client library based on @code{libcurl}. It does | ||
| 1090 | not try to expose the full power (read complexity) of @code{libcurl} but | ||
| 1091 | instead tries to provide a sane API while taking advantage of @code{libcurl} | ||
| 1092 | under the hood.") | ||
| 1093 | (home-page "https://github.com/toland/patron") | ||
| 1094 | (license license:expat))) | ||
| 1095 | |||
| 1096 | (define-public ruby-slim | ||
| 1097 | (package | ||
| 1098 | (name "ruby-slim") | ||
| 1099 | (version "5.2.1") | ||
| 1100 | (source | ||
| 1101 | (origin | ||
| 1102 | (method url-fetch) | ||
| 1103 | (uri (rubygems-uri "slim" version)) | ||
| 1104 | (sha256 | ||
| 1105 | (base32 | ||
| 1106 | "1rqk7jn66wgx50b18ndhbppjq55rbcwgqg1rbhnhxwiggvzisdbj")))) | ||
| 1107 | (build-system ruby-build-system) | ||
| 1108 | (arguments | ||
| 1109 | `(#:phases | ||
| 1110 | (modify-phases %standard-phases | ||
| 1111 | ;; See: https://github.com/slim-template/slim/issues/857 and | ||
| 1112 | ;; https://github.com/slim-template/slim/issues/858. | ||
| 1113 | (add-after 'unpack 'skip-broken-tests | ||
| 1114 | (lambda _ | ||
| 1115 | (substitute* "test/core/test_embedded_engines.rb" | ||
| 1116 | (("def test_render_with_markdown") | ||
| 1117 | "def skipped_test_render_with_markdown")) | ||
| 1118 | (substitute* "test/translator/test_translator.rb" | ||
| 1119 | (("raise (\"Missing test for.*)" _ tail) | ||
| 1120 | (string-append "print " tail))))) | ||
| 1121 | ;; See: https://salsa.debian.org/ruby-team/ruby-slim/-/commit/ | ||
| 1122 | ;; 824862bd99d1675bc699d8fc71ba965a785c1f44. | ||
| 1123 | (add-after 'unpack 'prevent-bundler-interference | ||
| 1124 | (lambda _ | ||
| 1125 | (substitute* "Rakefile" | ||
| 1126 | (("require 'bundler/setup'") "nil") | ||
| 1127 | (("Bundler::GemHelper\\.install_tasks") "nil"))))))) | ||
| 1128 | (native-inputs | ||
| 1129 | (list ruby-rack-test ruby-rspec-core ruby-sinatra)) | ||
| 1130 | (propagated-inputs | ||
| 1131 | (list ruby-temple ruby-tilt)) | ||
| 1132 | (synopsis "Minimalist template language for Ruby") | ||
| 1133 | (description "Slim is a template language for Ruby that aims to reduce the | ||
| 1134 | syntax to the minimum while remaining clear.") | ||
| 1135 | (home-page "http://slim-lang.com/") | ||
| 1136 | (license license:expat))) | ||
| 1137 | |||
| 1138 | (define-public ruby-asciidoctor | ||
| 1139 | (package | ||
| 1140 | (name "ruby-asciidoctor") | ||
| 1141 | (version "2.0.20") | ||
| 1142 | (source | ||
| 1143 | (origin | ||
| 1144 | (method git-fetch) ;the gem release lacks a Rakefile | ||
| 1145 | (uri (git-reference | ||
| 1146 | (url "https://github.com/asciidoctor/asciidoctor") | ||
| 1147 | (commit (string-append "v" version)))) | ||
| 1148 | (file-name (git-file-name name version)) | ||
| 1149 | (sha256 | ||
| 1150 | (base32 | ||
| 1151 | "19qvilhwa9plg80ppspn5ys0ybl8qfyaicqbl9w316hk5ldwi1jq")))) | ||
| 1152 | (build-system ruby-build-system) | ||
| 1153 | (arguments | ||
| 1154 | (list | ||
| 1155 | #:test-target "test:all" | ||
| 1156 | #:phases | ||
| 1157 | #~(modify-phases %standard-phases | ||
| 1158 | (add-after 'extract-gemspec 'strip-version-requirements | ||
| 1159 | (lambda _ | ||
| 1160 | (delete-file "Gemfile") | ||
| 1161 | (substitute* "asciidoctor.gemspec" | ||
| 1162 | (("(.*add_.*dependency '[_A-Za-z0-9-]+').*" _ stripped) | ||
| 1163 | (string-append stripped "\n"))))) | ||
| 1164 | (add-after 'install 'install-man-page | ||
| 1165 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 1166 | (install-file (search-input-file | ||
| 1167 | outputs (string-append "lib/ruby/vendor_ruby/" | ||
| 1168 | "gems/asciidoctor-" | ||
| 1169 | #$version | ||
| 1170 | "/man/asciidoctor.1")) | ||
| 1171 | (string-append #$output "/share/man/man1"))))))) | ||
| 1172 | (native-inputs | ||
| 1173 | (list ruby-asciimath | ||
| 1174 | ruby-coderay | ||
| 1175 | ruby-cucumber | ||
| 1176 | ruby-erubis | ||
| 1177 | ruby-haml | ||
| 1178 | ruby-minitest | ||
| 1179 | ruby-nokogiri | ||
| 1180 | ruby-open-uri-cached | ||
| 1181 | ruby-rouge | ||
| 1182 | ruby-rspec-expectations | ||
| 1183 | ruby-simplecov | ||
| 1184 | ruby-slim | ||
| 1185 | ruby-tilt | ||
| 1186 | ruby-erubi)) | ||
| 1187 | (synopsis "Converter from AsciiDoc content to other formats") | ||
| 1188 | (description "Asciidoctor is a text processor and publishing toolchain for | ||
| 1189 | converting AsciiDoc content to HTML5, DocBook 5, PDF, and other formats.") | ||
| 1190 | (home-page "https://asciidoctor.org") | ||
| 1191 | (license license:expat))) | ||
| 1192 | |||
| 1193 | (define-public ruby-asciidoctor-multipage | ||
| 1194 | (package | ||
| 1195 | (name "ruby-asciidoctor-multipage") | ||
| 1196 | (version "0.0.16") | ||
| 1197 | (source (origin | ||
| 1198 | (method git-fetch) | ||
| 1199 | (uri (git-reference | ||
| 1200 | (url "https://github.com/owenh000/asciidoctor-multipage") | ||
| 1201 | (commit (string-append "v" version)))) | ||
| 1202 | (file-name (git-file-name name version)) | ||
| 1203 | (sha256 | ||
| 1204 | (base32 | ||
| 1205 | "0rnz7qxdw5qbi3qjplihhk468kv690njdi06yllgylc75k62ar1p")))) | ||
| 1206 | (propagated-inputs (list ruby-asciidoctor ruby-slim)) | ||
| 1207 | (build-system ruby-build-system) | ||
| 1208 | (arguments | ||
| 1209 | `(#:phases (modify-phases %standard-phases | ||
| 1210 | (add-after 'extract-gemspec 'strip-version-requirements | ||
| 1211 | (lambda _ | ||
| 1212 | (delete-file "Gemfile") | ||
| 1213 | (substitute* "asciidoctor-multipage.gemspec" | ||
| 1214 | (("(.*add_.*dependency '[_A-Za-z0-9-]+').*" _ stripped) | ||
| 1215 | (string-append stripped "\n")))))))) | ||
| 1216 | (synopsis | ||
| 1217 | "Asciidoctor extension for generating HTML output using multiple pages") | ||
| 1218 | (description | ||
| 1219 | "Asciidoctor generates single-page documents. This extension | ||
| 1220 | splits documents up into multiple HTML pages according to their headings, with | ||
| 1221 | configurable levels.") | ||
| 1222 | (license license:expat) | ||
| 1223 | (home-page "https://github.com/owenh000/asciidoctor-multipage"))) | ||
| 1224 | |||
| 1225 | (define-public ruby-prawn-icon | ||
| 1226 | (package | ||
| 1227 | (name "ruby-prawn-icon") | ||
| 1228 | (version "3.1.0") | ||
| 1229 | (source | ||
| 1230 | (origin | ||
| 1231 | (method url-fetch) | ||
| 1232 | (uri (rubygems-uri "prawn-icon" version)) | ||
| 1233 | (sha256 | ||
| 1234 | (base32 | ||
| 1235 | "049k42bqy4iq9hddf7jah83b6qr8ka63w1d63illh1mf4f4dihdk")))) | ||
| 1236 | (build-system ruby-build-system) | ||
| 1237 | (arguments | ||
| 1238 | `(#:test-target "spec" | ||
| 1239 | #:phases (modify-phases %standard-phases | ||
| 1240 | (add-after 'unpack 'remove-unnecessary-dependencies | ||
| 1241 | (lambda _ | ||
| 1242 | (substitute* '("Rakefile" "spec/spec_helper.rb") | ||
| 1243 | ((".*[Bb]undler.*") "") | ||
| 1244 | (("^require 'rubocop.*") "") | ||
| 1245 | (("^RuboCop.*") ""))))))) | ||
| 1246 | (native-inputs | ||
| 1247 | (list ruby-pdf-inspector ruby-pdf-reader ruby-rspec ruby-simplecov)) | ||
| 1248 | (propagated-inputs | ||
| 1249 | (list ruby-prawn)) | ||
| 1250 | (synopsis "Icon fonts for use with the Prawn PDF toolkit") | ||
| 1251 | (description "@code{Prawn::Icon} provides various icon fonts including | ||
| 1252 | FontAwesome, PaymentFont and Foundation Icons for use with the Prawn PDF | ||
| 1253 | toolkit.") | ||
| 1254 | (home-page "https://github.com/jessedoyle/prawn-icon/") | ||
| 1255 | (license %prawn-project-licenses))) | ||
| 1256 | |||
| 1257 | (define-public ruby-css-parser | ||
| 1258 | (package | ||
| 1259 | (name "ruby-css-parser") | ||
| 1260 | (version "1.7.1") | ||
| 1261 | (source | ||
| 1262 | (origin | ||
| 1263 | (method url-fetch) | ||
| 1264 | (uri (rubygems-uri "css_parser" version)) | ||
| 1265 | (sha256 | ||
| 1266 | (base32 | ||
| 1267 | "04c4dl8cm5rjr50k9qa6yl9r05fk9zcb1zxh0y0cdahxlsgcydfw")))) | ||
| 1268 | (build-system ruby-build-system) | ||
| 1269 | (arguments `(#:tests? #f)) ;gem doesn't ship with test suite | ||
| 1270 | (propagated-inputs | ||
| 1271 | (list ruby-addressable)) | ||
| 1272 | (synopsis "Ruby Cascading Style Sheets (CSS) parser") | ||
| 1273 | (description "This package allows loading, parsing and cascading Cascading | ||
| 1274 | Style Sheets (CSS) rule sets in Ruby.") | ||
| 1275 | (home-page "https://github.com/premailer/css_parser") | ||
| 1276 | (license license:expat))) | ||
| 1277 | |||
| 1278 | (define-public ruby-prism | ||
| 1279 | (package | ||
| 1280 | (name "ruby-prism") | ||
| 1281 | (version "1.3.0") | ||
| 1282 | (source (origin | ||
| 1283 | (method git-fetch) | ||
| 1284 | (uri (git-reference | ||
| 1285 | (url "https://github.com/ruby/prism.git") | ||
| 1286 | (commit (string-append "v" version)))) | ||
| 1287 | (file-name (git-file-name name version)) | ||
| 1288 | (sha256 | ||
| 1289 | (base32 | ||
| 1290 | "03bs2gbackc3c3k4p979l2p9v215jb1m5h7b44n6yzh18kaimc85")))) | ||
| 1291 | (build-system ruby-build-system) | ||
| 1292 | (arguments | ||
| 1293 | `(#:phases | ||
| 1294 | (modify-phases %standard-phases | ||
| 1295 | (replace 'build | ||
| 1296 | (lambda _ | ||
| 1297 | (setenv "CC" ,(cc-for-target)) | ||
| 1298 | (invoke "rake" "compile"))) | ||
| 1299 | (replace 'install | ||
| 1300 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 1301 | (setenv "GEM_HOME" (string-append (assoc-ref outputs "out") | ||
| 1302 | "/lib/ruby/vendor_ruby")) | ||
| 1303 | (invoke "rake" "install") | ||
| 1304 | ;; Make build reproducible. | ||
| 1305 | (for-each delete-file | ||
| 1306 | (find-files (string-append (assoc-ref outputs "out") | ||
| 1307 | "/lib/ruby/vendor_ruby") | ||
| 1308 | "gem_make.out$"))))))) | ||
| 1309 | (native-inputs | ||
| 1310 | (list ruby-rake ruby-rake-compiler)) | ||
| 1311 | (synopsis "Parser for Ruby source code") | ||
| 1312 | (description "This package provides a parser for Ruby source code, | ||
| 1313 | written in C.") | ||
| 1314 | (home-page "https://ruby.github.io/prism/") | ||
| 1315 | (license license:expat))) | ||
| 1316 | |||
| 1317 | (define-public ruby-prawn-svg | ||
| 1318 | (package | ||
| 1319 | (name "ruby-prawn-svg") | ||
| 1320 | (version "0.36.0") | ||
| 1321 | (source | ||
| 1322 | (origin | ||
| 1323 | (method url-fetch) | ||
| 1324 | (uri (rubygems-uri "prawn-svg" version)) | ||
| 1325 | (sha256 | ||
| 1326 | (base32 "008p1p334h3019x5w5bqvwgmly3g5n08s63va1261nwyvfb955jv")))) | ||
| 1327 | (build-system ruby-build-system) | ||
| 1328 | (arguments | ||
| 1329 | (list #:test-target "spec" | ||
| 1330 | #:phases | ||
| 1331 | #~(modify-phases %standard-phases | ||
| 1332 | (add-after 'unpack 'do-not-use-bundler | ||
| 1333 | (lambda _ | ||
| 1334 | (substitute* "spec/spec_helper.rb" | ||
| 1335 | ((".*[Bb]undler.*") "")))) | ||
| 1336 | (replace 'check | ||
| 1337 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 1338 | (when tests? | ||
| 1339 | ;; This test fails due to the recent rspec 3.12 used | ||
| 1340 | ;; (see: https://github.com/mogest/prawn-svg/issues/151). | ||
| 1341 | (delete-file "spec/prawn/svg/interface_spec.rb") | ||
| 1342 | (invoke "rspec" "-Ilib" "-rprawn-svg"))))))) | ||
| 1343 | (native-inputs (list ruby-rspec)) | ||
| 1344 | (propagated-inputs (list ruby-css-parser ruby-matrix ruby-prawn ruby-rexml)) | ||
| 1345 | (synopsis "SVG renderer for the Prawn PDF library") | ||
| 1346 | (description "This library allows rendering Scalable Vector Graphics (SVG) | ||
| 1347 | graphics directly into a Portable Document Format (PDF) document using the | ||
| 1348 | Prawn module.") | ||
| 1349 | (home-page "https://github.com/mogest/prawn-svg") | ||
| 1350 | (license license:expat))) | ||
| 1351 | |||
| 1352 | (define-public ruby-prawn-templates | ||
| 1353 | (package | ||
| 1354 | (name "ruby-prawn-templates") | ||
| 1355 | (version "0.1.2") | ||
| 1356 | (source | ||
| 1357 | (origin | ||
| 1358 | (method git-fetch) | ||
| 1359 | (uri (git-reference | ||
| 1360 | (url "https://github.com/prawnpdf/prawn-templates") | ||
| 1361 | (commit version))) | ||
| 1362 | (file-name (git-file-name name version)) | ||
| 1363 | (sha256 | ||
| 1364 | (base32 | ||
| 1365 | "0wll54wxxwixpwazfn4ffbqvqbfrl01cfsv8y11vnlzy7isx5xvl")))) | ||
| 1366 | (build-system ruby-build-system) | ||
| 1367 | (arguments | ||
| 1368 | `(#:phases (modify-phases %standard-phases | ||
| 1369 | (add-after 'unpack 'do-not-use-bundler | ||
| 1370 | (lambda _ | ||
| 1371 | (substitute* "spec/spec_helper.rb" | ||
| 1372 | ((".*[Bb]undler.*") "")))) | ||
| 1373 | (replace 'check | ||
| 1374 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 1375 | (when tests? | ||
| 1376 | (invoke "rspec"))))))) | ||
| 1377 | (native-inputs | ||
| 1378 | (list ruby-pdf-inspector ruby-rspec)) | ||
| 1379 | (propagated-inputs | ||
| 1380 | (list ruby-pdf-reader ruby-prawn)) | ||
| 1381 | (synopsis "Prawn extension to include or combine PDF documents") | ||
| 1382 | (description "This @strong{unmaintained} package provides a Prawn | ||
| 1383 | extension that allows including other Portable Document Format (PDF) documents | ||
| 1384 | as background or combining several PDF documents into one. This functionality | ||
| 1385 | used to be part of Prawn itself, but was extracted from Prawn 0.15.0 because | ||
| 1386 | of its many longstanding issues.") | ||
| 1387 | (home-page "https://github.com/prawnpdf/prawn-templates") | ||
| 1388 | (license %prawn-project-licenses))) | ||
| 1389 | |||
| 1390 | (define-public ruby-polyglot | ||
| 1391 | (package | ||
| 1392 | (name "ruby-polyglot") | ||
| 1393 | (version "0.3.5") | ||
| 1394 | (source | ||
| 1395 | (origin | ||
| 1396 | (method url-fetch) | ||
| 1397 | (uri (rubygems-uri "polyglot" version)) | ||
| 1398 | (sha256 | ||
| 1399 | (base32 | ||
| 1400 | "1bqnxwyip623d8pr29rg6m8r0hdg08fpr2yb74f46rn1wgsnxmjr")))) | ||
| 1401 | (build-system ruby-build-system) | ||
| 1402 | (arguments `(#:tests? #f)) ;no test suite | ||
| 1403 | (synopsis "Augment @code{require} to load non-Ruby file types") | ||
| 1404 | (description "The Polyglot library allows a Ruby module to register a | ||
| 1405 | loader for the file type associated with a filename extension, and it augments | ||
| 1406 | @code{require} to find and load matching files.") | ||
| 1407 | (home-page "https://github.com/cjheath/polyglot") | ||
| 1408 | (license license:expat))) | ||
| 1409 | |||
| 1410 | (define-public ruby-treetop | ||
| 1411 | (package | ||
| 1412 | (name "ruby-treetop") | ||
| 1413 | (version "1.6.12") | ||
| 1414 | (source | ||
| 1415 | (origin | ||
| 1416 | (method git-fetch) ;no test suite in distributed gem | ||
| 1417 | (uri (git-reference | ||
| 1418 | (url "https://github.com/cjheath/treetop") | ||
| 1419 | (commit (string-append "v" version)))) | ||
| 1420 | (file-name (git-file-name name version)) | ||
| 1421 | (sha256 | ||
| 1422 | (base32 | ||
| 1423 | "0cgs6f9z0a9dq5fc03710zsch4gmh1771wq36mq81qsql4x9vksf")))) | ||
| 1424 | (build-system ruby-build-system) | ||
| 1425 | (arguments | ||
| 1426 | `(#:test-target "spec")) | ||
| 1427 | (native-inputs | ||
| 1428 | (list ruby-activesupport ruby-rr ruby-rspec)) | ||
| 1429 | (propagated-inputs | ||
| 1430 | (list ruby-polyglot)) | ||
| 1431 | (synopsis "Ruby-based parsing DSL based on parsing expression grammars") | ||
| 1432 | (description "This package provides a Ruby-based Parsing Expression | ||
| 1433 | Grammar (PEG) parser generator Domain Specific Language (DSL).") | ||
| 1434 | (home-page "https://github.com/cjheath/treetop") | ||
| 1435 | (license license:expat))) | ||
| 1436 | |||
| 1437 | (define-public ruby-typhoeus | ||
| 1438 | (package | ||
| 1439 | (name "ruby-typhoeus") | ||
| 1440 | (version "1.4.0") | ||
| 1441 | (source | ||
| 1442 | (origin | ||
| 1443 | (method url-fetch) | ||
| 1444 | (uri (rubygems-uri "typhoeus" version)) | ||
| 1445 | (sha256 | ||
| 1446 | (base32 | ||
| 1447 | "1m22yrkmbj81rzhlny81j427qdvz57yk5wbcf3km0nf3bl6qiygz")))) | ||
| 1448 | (build-system ruby-build-system) | ||
| 1449 | (arguments | ||
| 1450 | `(#:tests? #f)) ; no included tests | ||
| 1451 | (propagated-inputs | ||
| 1452 | (list ruby-ethon)) | ||
| 1453 | (synopsis "@code{libcurl} wrapper in Ruby") | ||
| 1454 | (description | ||
| 1455 | "Like a modern code version of the mythical beast with 100 serpent heads, | ||
| 1456 | Typhoeus runs HTTP requests in parallel while cleanly encapsulating handling | ||
| 1457 | logic.") | ||
| 1458 | (home-page "https://github.com/typhoeus/typhoeus") | ||
| 1459 | (license license:expat))) | ||
| 1460 | |||
| 1461 | ;;; A minimal variant used to build ruby-rubocop itself. | ||
| 1462 | (define ruby-rubocop-capybara-minimal | ||
| 1463 | (package | ||
| 1464 | (name "ruby-rubocop-capybara") | ||
| 1465 | (version "2.21.0") | ||
| 1466 | (source (origin | ||
| 1467 | (method git-fetch) ;for tests | ||
| 1468 | (uri (git-reference | ||
| 1469 | (url "https://github.com/rubocop/rubocop-capybara") | ||
| 1470 | (commit (string-append "v" version)))) | ||
| 1471 | (file-name (git-file-name name version)) | ||
| 1472 | (sha256 | ||
| 1473 | (base32 | ||
| 1474 | "19r2s782r9ch2g1lxgrvk22d9qqkxi69brza16bfwp2rl2064qnc")))) | ||
| 1475 | (build-system ruby-build-system) | ||
| 1476 | (arguments (list #:tests? #f)) | ||
| 1477 | (synopsis "Capybara plugin for RuboCop") | ||
| 1478 | (description "This package provides a RuboCop plugin that can be used for | ||
| 1479 | code style checking of Capybara test files (RSpec, Cucumber, Minitest).") | ||
| 1480 | (home-page "https://github.com/rubocop/rubocop-capybara") | ||
| 1481 | (license license:expat))) | ||
| 1482 | |||
| 1483 | (define-public ruby-rubocop-capybara | ||
| 1484 | (package | ||
| 1485 | (inherit ruby-rubocop-capybara-minimal) | ||
| 1486 | (arguments | ||
| 1487 | (list #:test-target "spec" | ||
| 1488 | #:phases #~(modify-phases %standard-phases | ||
| 1489 | (add-after 'unpack 'relax-requirements | ||
| 1490 | (lambda _ | ||
| 1491 | (substitute* "Gemfile" | ||
| 1492 | (("gem 'rubocop-rspec', '~> 2.16.0'") | ||
| 1493 | "gem 'rubocop-rspec', '>= 2.16.0'") | ||
| 1494 | (("gem 'danger'.*") ""))))))) | ||
| 1495 | (native-inputs | ||
| 1496 | (list ruby-bump | ||
| 1497 | ruby-rack | ||
| 1498 | ruby-rake | ||
| 1499 | ruby-rspec | ||
| 1500 | ruby-rubocop | ||
| 1501 | ruby-rubocop-performance-minimal | ||
| 1502 | ruby-rubocop-rake-minimal | ||
| 1503 | ruby-rubocop-rspec-minimal | ||
| 1504 | ruby-simplecov | ||
| 1505 | ruby-yard)))) | ||
| 1506 | |||
| 1507 | (define-public ruby-rubocop-factory-bot | ||
| 1508 | (package | ||
| 1509 | (name "ruby-rubocop-factory-bot") | ||
| 1510 | (version "2.26.1") | ||
| 1511 | (source | ||
| 1512 | (origin | ||
| 1513 | (method url-fetch) | ||
| 1514 | (uri (rubygems-uri "rubocop-factory_bot" version)) | ||
| 1515 | (sha256 | ||
| 1516 | (base32 "1aljadsjx7affcarzbhz7pydpy6fgqb8hl951y0cmrffxpa3rqcd")))) | ||
| 1517 | (build-system ruby-build-system) | ||
| 1518 | (arguments '(#:tests? #f)) ; No tests bundled. | ||
| 1519 | (synopsis "Code style checking for factory_bot files") | ||
| 1520 | (description | ||
| 1521 | "This package provides a plugin for the @code{RuboCop} code style | ||
| 1522 | enforcing & linting tool for @code{factory_bot} files.") | ||
| 1523 | (home-page "https://github.com/rubocop/rubocop-factory_bot") | ||
| 1524 | (license license:expat))) | ||
| 1525 | |||
| 1526 | ;;; A minimal variant used to build ruby-rubocop itself. | ||
| 1527 | (define ruby-rubocop-rake-minimal | ||
| 1528 | (package | ||
| 1529 | (name "ruby-rubocop-rake") | ||
| 1530 | (version "0.6.0") | ||
| 1531 | (source (origin | ||
| 1532 | (method git-fetch) ;for tests | ||
| 1533 | (uri (git-reference | ||
| 1534 | (url "https://github.com/rubocop/rubocop-rake") | ||
| 1535 | (commit (string-append "v" version)))) | ||
| 1536 | (file-name (git-file-name name version)) | ||
| 1537 | (sha256 | ||
| 1538 | (base32 | ||
| 1539 | "1r53szwglikbir1fvpz4i51p915khrrkl6rp61zcx3dcrclkr3ld")))) | ||
| 1540 | (build-system ruby-build-system) | ||
| 1541 | (arguments (list #:tests? #f)) ;avoid extra dependencies | ||
| 1542 | (synopsis "RuboCop plugin for Rake") | ||
| 1543 | (description "This package provides a RuboCop plugin for Rake.") | ||
| 1544 | (home-page "https://github.com/rubocop/rubocop-rake") | ||
| 1545 | (license license:expat))) | ||
| 1546 | |||
| 1547 | (define-public ruby-rubocop-rake | ||
| 1548 | (package | ||
| 1549 | (inherit ruby-rubocop-rake-minimal) | ||
| 1550 | (arguments | ||
| 1551 | (list #:test-target "spec")) | ||
| 1552 | (native-inputs | ||
| 1553 | (list ruby-rake | ||
| 1554 | ruby-rspec | ||
| 1555 | ruby-rubocop | ||
| 1556 | ruby-rubocop-rspec)) | ||
| 1557 | (propagated-inputs | ||
| 1558 | (list ruby-rubocop)))) | ||
| 1559 | |||
| 1560 | ;;; A minimal variant used to build ruby-rubocop itself. | ||
| 1561 | (define ruby-rubocop-rspec-minimal | ||
| 1562 | (package | ||
| 1563 | (name "ruby-rubocop-rspec") | ||
| 1564 | (version "2.26.0") | ||
| 1565 | (source | ||
| 1566 | (origin | ||
| 1567 | (method git-fetch) | ||
| 1568 | (uri (git-reference | ||
| 1569 | (url "https://github.com/rubocop/rubocop-rspec") | ||
| 1570 | (commit (string-append "v" version)))) | ||
| 1571 | (file-name (git-file-name name version)) | ||
| 1572 | (sha256 | ||
| 1573 | (base32 | ||
| 1574 | "1w9whadx60kv4vlbnk77b5yyhhfcg717r9cr334zqznqr1bqr8mh")))) | ||
| 1575 | (build-system ruby-build-system) | ||
| 1576 | (arguments | ||
| 1577 | (list #:tests? #f ;avoid extra dependencies | ||
| 1578 | #:phases | ||
| 1579 | #~(modify-phases %standard-phases | ||
| 1580 | (add-after 'unpack 'relax-requirements | ||
| 1581 | (lambda _ | ||
| 1582 | (substitute* "Gemfile" | ||
| 1583 | (("gem 'danger'.*") ""))))))) | ||
| 1584 | (propagated-inputs (list ruby-rubocop-factory-bot)) | ||
| 1585 | (synopsis "Code style checking for RSpec files") | ||
| 1586 | (description "This package provides a plugin for the RuboCop code style | ||
| 1587 | enforcing & linting tool.") | ||
| 1588 | (home-page "https://github.com/rubocop/rubocop-rspec") | ||
| 1589 | (license license:expat))) | ||
| 1590 | |||
| 1591 | (define-public ruby-rubocop-rspec | ||
| 1592 | (package | ||
| 1593 | (inherit ruby-rubocop-rspec-minimal) | ||
| 1594 | (arguments | ||
| 1595 | (substitute-keyword-arguments | ||
| 1596 | (package-arguments ruby-rubocop-rspec-minimal) | ||
| 1597 | ((#:tests? _ #f) #t) | ||
| 1598 | ((#:test-target _ "test") "spec"))) | ||
| 1599 | (native-inputs | ||
| 1600 | (list ruby-bump | ||
| 1601 | ruby-rack | ||
| 1602 | ruby-rspec | ||
| 1603 | ruby-rubocop-performance-minimal | ||
| 1604 | ruby-rubocop-rake-minimal | ||
| 1605 | ruby-simplecov | ||
| 1606 | ruby-yard)) | ||
| 1607 | (propagated-inputs | ||
| 1608 | (list ruby-rubocop | ||
| 1609 | ruby-rubocop-ast | ||
| 1610 | ruby-rubocop-capybara | ||
| 1611 | ruby-rubocop-factory-bot)))) | ||
| 1612 | |||
| 1613 | (define-public ruby-rubocop-packaging | ||
| 1614 | (package | ||
| 1615 | (name "ruby-rubocop-packaging") | ||
| 1616 | (version "0.5.2") | ||
| 1617 | (source | ||
| 1618 | (origin | ||
| 1619 | (method git-fetch) | ||
| 1620 | (uri (git-reference | ||
| 1621 | (url "https://github.com/utkarsh2102/rubocop-packaging") | ||
| 1622 | (commit (string-append "v" version)))) | ||
| 1623 | (file-name (git-file-name name version)) | ||
| 1624 | (sha256 | ||
| 1625 | (base32 | ||
| 1626 | "08jsfp42z0aj32002z2hz8vkmza0jvnrqk9rk2v0xb8qdxkgbx3l")))) | ||
| 1627 | (build-system ruby-build-system) | ||
| 1628 | (arguments | ||
| 1629 | (list #:test-target "spec" | ||
| 1630 | #:phases | ||
| 1631 | #~(modify-phases %standard-phases | ||
| 1632 | (add-after 'unpack 'skip-problematic-tests | ||
| 1633 | (lambda _ | ||
| 1634 | ;; Tests are actually running fine, except for a prefix. | ||
| 1635 | ;; This doesn't impair functionality, ignored for now. | ||
| 1636 | (delete-file | ||
| 1637 | "spec/rubocop/cop/packaging/gemspec_git_spec.rb")))))) | ||
| 1638 | (propagated-inputs | ||
| 1639 | (list ruby-rubocop)) | ||
| 1640 | (native-inputs | ||
| 1641 | (list ruby-rspec | ||
| 1642 | ruby-yard | ||
| 1643 | ruby-bump)) | ||
| 1644 | (synopsis | ||
| 1645 | "Collection of RuboCop checks for downstream compatibility issues") | ||
| 1646 | (description | ||
| 1647 | "This package provides a collection of RuboCop cops to check for | ||
| 1648 | downstream compatibility issues in the Ruby code.") | ||
| 1649 | (home-page "https://github.com/utkarsh2102/rubocop-packaging") | ||
| 1650 | (license license:expat))) | ||
| 1651 | |||
| 1652 | (define-public ruby-rubocop-performance | ||
| 1653 | (package | ||
| 1654 | (name "ruby-rubocop-performance") | ||
| 1655 | (version "1.23.1") | ||
| 1656 | (source | ||
| 1657 | (origin | ||
| 1658 | (method git-fetch) | ||
| 1659 | (uri (git-reference | ||
| 1660 | (url "https://github.com/rubocop/rubocop-performance") | ||
| 1661 | (commit (string-append "v" version)))) | ||
| 1662 | (file-name (git-file-name name version)) | ||
| 1663 | (sha256 | ||
| 1664 | (base32 | ||
| 1665 | "0d1p6pgrcnj58q1g0np5j4vbk7wavj31b4bapi5p4gckqlnc7xjd")))) | ||
| 1666 | (build-system ruby-build-system) | ||
| 1667 | (arguments | ||
| 1668 | `(#:tests? #f ; tests require a git checkout of rubocop's source code. | ||
| 1669 | #:phases | ||
| 1670 | (modify-phases %standard-phases | ||
| 1671 | (replace 'replace-git-ls-files | ||
| 1672 | (lambda _ | ||
| 1673 | (substitute* "rubocop-performance.gemspec" | ||
| 1674 | (("`git ls-files -z config lib LICENSE.txt README.md`") | ||
| 1675 | "`find config lib LICENSE.txt README.md \ | ||
| 1676 | -type f -print0 |sort -z`")))) | ||
| 1677 | (add-before 'check 'set-HOME | ||
| 1678 | (lambda _ | ||
| 1679 | (setenv "HOME" "/tmp")))))) | ||
| 1680 | (propagated-inputs | ||
| 1681 | (list ruby-rubocop ruby-rubocop-ast)) | ||
| 1682 | (native-inputs | ||
| 1683 | (list ruby-bump ruby-yard)) | ||
| 1684 | (synopsis "Performance optimizations checkers for Ruby code") | ||
| 1685 | (description "This package provides a collection of RuboCop cops to check | ||
| 1686 | for performance optimizations in Ruby code.") | ||
| 1687 | (home-page "https://docs.rubocop.org/rubocop-performance/") | ||
| 1688 | (license license:expat))) | ||
| 1689 | |||
| 1690 | (define-public ruby-rubocop-performance-minimal | ||
| 1691 | (hidden-package | ||
| 1692 | (package | ||
| 1693 | (inherit ruby-rubocop-performance) | ||
| 1694 | (arguments | ||
| 1695 | (substitute-keyword-arguments (package-arguments ruby-rubocop-performance) | ||
| 1696 | ((#:tests? _ #f) #f))) | ||
| 1697 | (propagated-inputs '()) | ||
| 1698 | (native-inputs '())))) | ||
| 1699 | |||
| 1700 | (define-public ruby-stud | ||
| 1701 | (package | ||
| 1702 | (name "ruby-stud") | ||
| 1703 | (version "0.0.23") | ||
| 1704 | (source (origin | ||
| 1705 | (method url-fetch) | ||
| 1706 | (uri (rubygems-uri "stud" version)) | ||
| 1707 | (sha256 | ||
| 1708 | (base32 | ||
| 1709 | "0qpb57cbpm9rwgsygqxifca0zma87drnlacv49cqs2n5iyi6z8kb")))) | ||
| 1710 | (build-system ruby-build-system) | ||
| 1711 | (native-inputs (list ruby-rspec)) | ||
| 1712 | (arguments | ||
| 1713 | (list #:phases #~(modify-phases %standard-phases | ||
| 1714 | ;; No Rakefile is included, so run rspec directly. | ||
| 1715 | (replace 'check | ||
| 1716 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 1717 | (when tests? | ||
| 1718 | (invoke "rspec"))))))) | ||
| 1719 | (synopsis "Retries, worker supervision, resource pools and more for Ruby") | ||
| 1720 | (description "The Stud Ruby library adds a few things missing from the | ||
| 1721 | standard Ruby library such as: | ||
| 1722 | @table @code | ||
| 1723 | @item {Stud::Try} | ||
| 1724 | Retry on failure, with back-off, where failure is any exception. | ||
| 1725 | @item {Stud::Pool} | ||
| 1726 | Generic resource pools. | ||
| 1727 | @item {Stud::Task} | ||
| 1728 | Tasks (threads that can return values, exceptions, etc.) | ||
| 1729 | @item {Stud.interval} | ||
| 1730 | Interval execution (do X every N seconds). | ||
| 1731 | @item {Stud::Buffer} | ||
| 1732 | Batch and flush behavior. | ||
| 1733 | @end itemize") | ||
| 1734 | (home-page "https://github.com/jordansissel/ruby-stud") | ||
| 1735 | (license license:asl2.0))) | ||
| 1736 | |||
| 1737 | (define-public ruby-standard-custom | ||
| 1738 | (package | ||
| 1739 | (name "ruby-standard-custom") | ||
| 1740 | (version "1.0.2") | ||
| 1741 | (source | ||
| 1742 | (origin | ||
| 1743 | (method url-fetch) | ||
| 1744 | (uri (rubygems-uri "standard-custom" version)) | ||
| 1745 | (sha256 | ||
| 1746 | (base32 "0av55ai0nv23z5mhrwj1clmxpgyngk7vk6rh58d4y1ws2y2dqjj2")))) | ||
| 1747 | (build-system ruby-build-system) | ||
| 1748 | (arguments '(#:tests? #f)) ;Circular dependency on ruby-standard. | ||
| 1749 | (propagated-inputs (list ruby-lint-roller ruby-rubocop)) | ||
| 1750 | (synopsis "Plugin of custom cops for Standard Ruby") | ||
| 1751 | (description | ||
| 1752 | "This package provides a implementations of custom cops that are bundled | ||
| 1753 | as defaults in Standard Ruby.") | ||
| 1754 | (home-page "https://github.com/standardrb/standard-custom") | ||
| 1755 | (license license:expat))) | ||
| 1756 | |||
| 1757 | (define-public ruby-standard-performance | ||
| 1758 | (package | ||
| 1759 | (name "ruby-standard-performance") | ||
| 1760 | (version "1.6.0") | ||
| 1761 | (source | ||
| 1762 | (origin | ||
| 1763 | (method url-fetch) | ||
| 1764 | (uri (rubygems-uri "standard-performance" version)) | ||
| 1765 | (sha256 | ||
| 1766 | (base32 "1x298w3wmq8cavbsg903wc3arxp3xh2x8263brvy128436m732rd")))) | ||
| 1767 | (build-system ruby-build-system) | ||
| 1768 | (arguments '(#:tests? #f)) ;Circular dependency on ruby-standard. | ||
| 1769 | (propagated-inputs (list ruby-lint-roller ruby-rubocop-performance)) | ||
| 1770 | (synopsis "Standard Ruby Plugin for rubocop-performance") | ||
| 1771 | (description | ||
| 1772 | "This package is a Standard Ruby Plugin providing configuration for | ||
| 1773 | @code{rubocop-performance}.") | ||
| 1774 | (home-page "https://github.com/standardrb/standard-performance") | ||
| 1775 | (license license:expat))) | ||
| 1776 | |||
| 1777 | (define-public ruby-standard | ||
| 1778 | (package | ||
| 1779 | (name "ruby-standard") | ||
| 1780 | (version "1.37.0") | ||
| 1781 | (source | ||
| 1782 | (origin | ||
| 1783 | (method git-fetch) ;no test suite in distributed gem | ||
| 1784 | (uri (git-reference | ||
| 1785 | (url "https://github.com/testdouble/standard") | ||
| 1786 | (commit (string-append "v" version)))) | ||
| 1787 | (file-name (git-file-name name version)) | ||
| 1788 | (sha256 | ||
| 1789 | (base32 "0gm9fn6fz41aya34xz7kzda8xxs7h98n7cjx66qbcy2w0qhs40wc")))) | ||
| 1790 | (build-system ruby-build-system) | ||
| 1791 | (arguments | ||
| 1792 | (list | ||
| 1793 | #:phases | ||
| 1794 | #~(modify-phases %standard-phases | ||
| 1795 | (add-after 'unpack 'set-HOME | ||
| 1796 | (lambda _ | ||
| 1797 | ;; Some tests fail otherwise. | ||
| 1798 | (setenv "HOME" "/tmp"))) | ||
| 1799 | (add-after 'unpack 'relax-requirements | ||
| 1800 | (lambda _ | ||
| 1801 | (substitute* "standard.gemspec" | ||
| 1802 | (("\"rubocop\", \".*\"") | ||
| 1803 | (string-append | ||
| 1804 | "\"rubocop\", \"~> " | ||
| 1805 | #$(package-version | ||
| 1806 | (this-package-input "ruby-rubocop")) | ||
| 1807 | "\"")) | ||
| 1808 | (("\"rubocop-performance\", \".*\"") | ||
| 1809 | (string-append | ||
| 1810 | "\"rubocop-performance\", \"~> " | ||
| 1811 | #$(package-version | ||
| 1812 | (this-package-input "ruby-rubocop-performance")) | ||
| 1813 | "\""))))) | ||
| 1814 | (add-after 'unpack 'delete-problematic-tests | ||
| 1815 | ;; These tests fail for unknown reasons (see: | ||
| 1816 | ;; https://github.com/testdouble/standard/issues/532). | ||
| 1817 | (lambda _ | ||
| 1818 | (delete-file "test/standard_test.rb") | ||
| 1819 | (substitute* "test/standard/base_test.rb" | ||
| 1820 | ((".*test_configures_all_rubocop_cops.*" all) | ||
| 1821 | (string-append all | ||
| 1822 | " skip('fails on guix')\n")))))))) | ||
| 1823 | (native-inputs | ||
| 1824 | (list ruby-simplecov)) | ||
| 1825 | (propagated-inputs | ||
| 1826 | (list ruby-language-server-protocol | ||
| 1827 | ruby-lint-roller | ||
| 1828 | ruby-rubocop | ||
| 1829 | ruby-rubocop-performance | ||
| 1830 | ruby-standard-custom | ||
| 1831 | ruby-standard-performance)) | ||
| 1832 | (synopsis "Ruby Style Guide, with linter & automatic code fixer") | ||
| 1833 | (description "Standard is a port of StandardJS. Like StandardJS, it aims | ||
| 1834 | to save time in the following ways: | ||
| 1835 | @itemize | ||
| 1836 | @item No configuration. | ||
| 1837 | @item Automatically format code. | ||
| 1838 | @item Catch style issues and programmer errors early. | ||
| 1839 | @end itemize") | ||
| 1840 | (home-page "https://github.com/testdouble/standard") | ||
| 1841 | (license license:expat))) | ||
| 1842 | |||
| 1843 | (define-public ruby-chunky-png | ||
| 1844 | (package | ||
| 1845 | (name "ruby-chunky-png") | ||
| 1846 | (version "1.4.0") | ||
| 1847 | (source | ||
| 1848 | (origin | ||
| 1849 | (method git-fetch) | ||
| 1850 | (uri (git-reference | ||
| 1851 | (url "https://github.com/wvanbergen/chunky_png") | ||
| 1852 | (commit (string-append "v" version)))) | ||
| 1853 | (file-name (git-file-name name version)) | ||
| 1854 | (sha256 | ||
| 1855 | (base32 "05qwj72dy2fcy0n2jnf3bfriybfj36m7s6pv9xash6295dbcp901")))) | ||
| 1856 | (build-system ruby-build-system) | ||
| 1857 | (arguments | ||
| 1858 | (list | ||
| 1859 | #:ruby ruby-3.1 | ||
| 1860 | #:test-target "spec" | ||
| 1861 | #:phases | ||
| 1862 | #~(modify-phases %standard-phases | ||
| 1863 | (add-after 'unpack 'disable-bundler | ||
| 1864 | (lambda _ | ||
| 1865 | (substitute* (find-files "." "\\.rb$") | ||
| 1866 | (("require.*bundler/setup.*") ""))))))) | ||
| 1867 | (native-inputs | ||
| 1868 | (list bundler ruby-rspec ruby-standard ruby-yard)) | ||
| 1869 | (synopsis "Ruby library to handle PNG images") | ||
| 1870 | (description "ChunkyPNG is a pure Ruby library that can read and write | ||
| 1871 | Portable Network Graphics (PNG) images without depending on an external image | ||
| 1872 | library. It tries to be memory efficient and reasonably fast. It has | ||
| 1873 | features such as: | ||
| 1874 | @itemize | ||
| 1875 | @item | ||
| 1876 | Decoding support for any image that the PNG standard allows. This includes all | ||
| 1877 | standard color modes, all bit depths, all transparency, and interlacing and | ||
| 1878 | filtering options. | ||
| 1879 | @item | ||
| 1880 | Encoding support for images of all color modes (true color, grayscale, and | ||
| 1881 | indexed) and transparency for all these color modes. The best color mode is | ||
| 1882 | chosen automatically, based on the amount of used colors. | ||
| 1883 | @item Read/write access to the image's pixels. | ||
| 1884 | @item Read/write access to all image metadata that is stored in chunks. | ||
| 1885 | @item | ||
| 1886 | Memory efficiency: @code{fixnum} are used, i.e. 4 or 8 bytes of memory per | ||
| 1887 | pixel, depending on the hardware). | ||
| 1888 | @item | ||
| 1889 | Performance: ChunkyPNG is reasonably fast for Ruby standards, by only using | ||
| 1890 | integer math and a highly optimized saving routine. | ||
| 1891 | @item Interoperability with RMagick. | ||
| 1892 | @end itemize | ||
| 1893 | |||
| 1894 | ChunkyPNG is vulnerable to decompression bombs and can run out of memory when | ||
| 1895 | loading a specifically crafted PNG file. This is hard to fix in pure Ruby. | ||
| 1896 | Deal with untrusted images in a separate process, e.g., by using @code{fork} | ||
| 1897 | or a background processing library.") | ||
| 1898 | (home-page "https://github.com/wvanbergen/chunky_png/wiki") | ||
| 1899 | (license license:expat))) | ||
| 1900 | |||
| 1901 | (define-public ruby-text-hyphen | ||
| 1902 | (package | ||
| 1903 | (name "ruby-text-hyphen") | ||
| 1904 | (version "1.5.0") | ||
| 1905 | (source | ||
| 1906 | (origin | ||
| 1907 | (method url-fetch) | ||
| 1908 | (uri (rubygems-uri "text-hyphen" version)) | ||
| 1909 | (sha256 | ||
| 1910 | (base32 | ||
| 1911 | "01js0wxz84cc5hzxgqbcqnsa0y6crhdi6plmgkzyfm55p0rlajn4")))) | ||
| 1912 | (build-system ruby-build-system) | ||
| 1913 | (native-inputs | ||
| 1914 | (list ruby-hoe)) | ||
| 1915 | (synopsis "Ruby library to hyphenate words in various languages") | ||
| 1916 | (description "Text::Hyphen is a Ruby library to hyphenate words in various | ||
| 1917 | languages using Ruby-fied versions of TeX hyphenation patterns. It will | ||
| 1918 | properly hyphenate various words according to the rules of the language the | ||
| 1919 | word is written in. The algorithm is based on that of the TeX typesetting | ||
| 1920 | system by Donald E. Knuth.") | ||
| 1921 | (home-page "https://github.com/halostatue/text-hyphen") | ||
| 1922 | ;; The whole is licensed under the Expat license, but parts use various | ||
| 1923 | ;; versions of the LaTeX Project Public License. | ||
| 1924 | (license license:expat))) | ||
| 1925 | |||
| 1926 | (define-public ruby-open-uri-cached | ||
| 1927 | (package | ||
| 1928 | (name "ruby-open-uri-cached") | ||
| 1929 | (version "1.0.0") | ||
| 1930 | (source | ||
| 1931 | (origin | ||
| 1932 | (method url-fetch) | ||
| 1933 | (uri (rubygems-uri "open-uri-cached" version)) | ||
| 1934 | (sha256 | ||
| 1935 | (base32 | ||
| 1936 | "03v0if3jlvbclnd6jgjk94fbhf0h2fq1wxr0mbx7018sxzm0biwr")))) | ||
| 1937 | (build-system ruby-build-system) | ||
| 1938 | (arguments | ||
| 1939 | `(#:tests? #f)) ;no test suite | ||
| 1940 | (synopsis "OpenURI with transparent disk caching") | ||
| 1941 | (description "OpenURI with transparent disk caching, which is | ||
| 1942 | useful to avoid making excessive queries, for example when scraping | ||
| 1943 | web pages.") | ||
| 1944 | (home-page "https://github.com/tigris/open-uri-cached") | ||
| 1945 | (license license:expat))) | ||
| 1946 | |||
| 1947 | (define-public ruby-asciidoctor-pdf | ||
| 1948 | (package | ||
| 1949 | (name "ruby-asciidoctor-pdf") | ||
| 1950 | (version "2.3.19") | ||
| 1951 | (source | ||
| 1952 | (origin | ||
| 1953 | (method git-fetch) ;no test suite in the distributed gem | ||
| 1954 | (uri (git-reference | ||
| 1955 | (url "https://github.com/asciidoctor/asciidoctor-pdf") | ||
| 1956 | (commit (string-append "v" version)))) | ||
| 1957 | (file-name (git-file-name name version)) | ||
| 1958 | (sha256 | ||
| 1959 | (base32 | ||
| 1960 | "1l8my8jj4aww2yad80n6f7hs76lq5gicld8dy014pw90pk3x43mp")) | ||
| 1961 | (patches | ||
| 1962 | (search-patches | ||
| 1963 | "ruby-asciidoctor-pdf-support-prawn-svg-0_36.patch")))) | ||
| 1964 | (build-system ruby-build-system) | ||
| 1965 | (arguments | ||
| 1966 | (list | ||
| 1967 | #:test-target "spec" | ||
| 1968 | #:phases | ||
| 1969 | #~(modify-phases %standard-phases | ||
| 1970 | ;; The tests rely on the Gem being installed, so move the check | ||
| 1971 | ;; phase after the install phase. | ||
| 1972 | (delete 'check) | ||
| 1973 | (add-after 'install 'check | ||
| 1974 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 1975 | (setenv "GEM_PATH" (string-append | ||
| 1976 | (getenv "GEM_PATH") ":" | ||
| 1977 | #$output "/lib/ruby/vendor_ruby")) | ||
| 1978 | (when tests? | ||
| 1979 | (invoke "rspec" "-t" "~visual" "-t" "~cli" | ||
| 1980 | "-t" "~network"))))))) | ||
| 1981 | (native-inputs | ||
| 1982 | (list ruby-chunky-png | ||
| 1983 | ruby-coderay | ||
| 1984 | ruby-pdf-inspector | ||
| 1985 | ruby-rouge | ||
| 1986 | ruby-rspec)) | ||
| 1987 | (propagated-inputs | ||
| 1988 | (list ruby-asciidoctor | ||
| 1989 | ruby-concurrent | ||
| 1990 | ruby-prawn | ||
| 1991 | ruby-prawn-icon | ||
| 1992 | ruby-prawn-svg | ||
| 1993 | ruby-prawn-table | ||
| 1994 | ruby-prawn-templates | ||
| 1995 | ruby-text-hyphen | ||
| 1996 | ruby-treetop | ||
| 1997 | ruby-ttfunk)) | ||
| 1998 | (synopsis"AsciiDoc to Portable Document Format (PDF)} converter") | ||
| 1999 | (description "Asciidoctor PDF is an extension for Asciidoctor that | ||
| 2000 | converts AsciiDoc documents to Portable Document Format (PDF) using the Prawn | ||
| 2001 | PDF library. It has features such as: | ||
| 2002 | @itemize | ||
| 2003 | @item Direct AsciiDoc to PDF conversion | ||
| 2004 | @item Configuration-driven theme (style and layout) | ||
| 2005 | @item Scalable Vector Graphics (SVG) support | ||
| 2006 | @item PDF document outline (i.e., bookmarks) | ||
| 2007 | @item Table of contents page(s) | ||
| 2008 | @item Document metadata (title, authors, subject, keywords, etc.) | ||
| 2009 | @item Internal cross reference links | ||
| 2010 | @item Syntax highlighting with Rouge, Pygments, or CodeRay | ||
| 2011 | @item Page numbering | ||
| 2012 | @item Customizable running content (header and footer) | ||
| 2013 | @item | ||
| 2014 | “Keep together” blocks (i.e., page breaks avoided in certain block content) | ||
| 2015 | @item Orphaned section titles avoided | ||
| 2016 | @item Autofit verbatim blocks (as permitted by base_font_size_min setting) | ||
| 2017 | @item Table border settings honored | ||
| 2018 | @item Font-based icons | ||
| 2019 | @item Custom TrueType (TTF) fonts | ||
| 2020 | @item Double-sided printing mode (margins alternate on recto and verso pages) | ||
| 2021 | @end itemize") | ||
| 2022 | (home-page "https://asciidoctor.org/docs/asciidoctor-pdf") | ||
| 2023 | (license license:expat))) | ||
| 2024 | |||
| 2025 | (define-public ruby-ast | ||
| 2026 | (package | ||
| 2027 | (name "ruby-ast") | ||
| 2028 | (version "2.4.2") | ||
| 2029 | (source | ||
| 2030 | (origin | ||
| 2031 | (method git-fetch) ;no test included in gem from v2.4.1 | ||
| 2032 | (uri (git-reference | ||
| 2033 | (url "https://github.com/whitequark/ast") | ||
| 2034 | (commit (string-append "v" version)))) | ||
| 2035 | (file-name (git-file-name name version)) | ||
| 2036 | (sha256 | ||
| 2037 | (base32 | ||
| 2038 | "0vm94yml8rknr7z034vg6s3fpx6lml2prz9fn3hr67cx0143bb4h")))) | ||
| 2039 | (build-system ruby-build-system) | ||
| 2040 | (arguments | ||
| 2041 | '(#:phases | ||
| 2042 | (modify-phases %standard-phases | ||
| 2043 | (add-after 'unpack 'remove-coveralls-requirement | ||
| 2044 | (lambda _ | ||
| 2045 | (substitute* "test/helper.rb" | ||
| 2046 | (("require 'coveralls'") "") | ||
| 2047 | (("Coveralls::SimpleCov::Formatter") "")))) | ||
| 2048 | (add-after 'extract-gemspec 'remove-unnecessary-requirements | ||
| 2049 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 2050 | (substitute* "ast.gemspec" | ||
| 2051 | ((".*coveralls.*") "\n") | ||
| 2052 | (("%q<rest-client>.*") "%q<rest-client>.freeze, [\">= 0\"])\n") | ||
| 2053 | (("%q<mime-types>.*") "%q<mime-types>.freeze, [\">= 0\"])\n") | ||
| 2054 | (("%q<rake>.*") "%q<rake>.freeze, [\">= 0\"])\n") | ||
| 2055 | (("12\\.3") "13.0"))))))) | ||
| 2056 | (native-inputs | ||
| 2057 | (list bundler | ||
| 2058 | ruby-bacon | ||
| 2059 | ruby-bacon-colored-output | ||
| 2060 | ruby-json-pure | ||
| 2061 | ruby-kramdown | ||
| 2062 | ruby-mime-types | ||
| 2063 | ruby-racc | ||
| 2064 | ruby-rest-client | ||
| 2065 | ruby-simplecov | ||
| 2066 | ruby-yard)) | ||
| 2067 | (synopsis "Library for working with Abstract Syntax Trees") | ||
| 2068 | (description | ||
| 2069 | "@code{ast} is a Ruby library for working with Abstract Syntax Trees. | ||
| 2070 | It does this through immutable data structures.") | ||
| 2071 | (home-page "https://whitequark.github.io/ast/") | ||
| 2072 | (license license:expat))) | ||
| 2073 | |||
| 2074 | (define-public ruby-sporkmonger-rack-mount | ||
| 2075 | ;; Testing the addressable gem requires a newer commit than that released, so | ||
| 2076 | ;; use an up to date version. | ||
| 2077 | (let ((revision "1") | ||
| 2078 | (commit "076aa2c47d9a4c081f1e9bcb56a826a9e72bd5c3")) | ||
| 2079 | (package | ||
| 2080 | (name "ruby-sporkmonger-rack-mount") | ||
| 2081 | (version (git-version "0.8.3" revision commit)) | ||
| 2082 | (source (origin | ||
| 2083 | (method git-fetch) | ||
| 2084 | (uri (git-reference | ||
| 2085 | (url "https://github.com/sporkmonger/rack-mount") | ||
| 2086 | (commit commit))) | ||
| 2087 | (file-name (git-file-name name version)) | ||
| 2088 | (sha256 | ||
| 2089 | (base32 | ||
| 2090 | "1scx273g3xd93424x9lxc4zyvcp2niknbw5mkz6wkivpf7xsyxdq")))) | ||
| 2091 | (build-system ruby-build-system) | ||
| 2092 | (arguments | ||
| 2093 | ;; Tests currently fail so disable them. | ||
| 2094 | ;; https://github.com/sporkmonger/rack-mount/pull/1 | ||
| 2095 | `(#:tests? #f)) | ||
| 2096 | (propagated-inputs (list ruby-rack)) | ||
| 2097 | (synopsis "Stackable dynamic tree based Rack router") | ||
| 2098 | (description | ||
| 2099 | "@code{Rack::Mount} supports Rack's @code{X-Cascade} convention to | ||
| 2100 | continue trying routes if the response returns pass. This allows multiple | ||
| 2101 | routes to be nested or stacked on top of each other.") | ||
| 2102 | (home-page "https://github.com/sporkmonger/rack-mount") | ||
| 2103 | (license license:expat)))) | ||
| 2104 | |||
| 2105 | (define-public ruby-ci-reporter | ||
| 2106 | (package | ||
| 2107 | (name "ruby-ci-reporter") | ||
| 2108 | (version "2.1.0") | ||
| 2109 | (source (origin | ||
| 2110 | (method url-fetch) | ||
| 2111 | (uri (rubygems-uri "ci_reporter" version)) | ||
| 2112 | (sha256 | ||
| 2113 | (base32 | ||
| 2114 | "0qcafasmjjr8a5gzr4k92ncm6h2943skwllhjzwz8spawdwc7dla")))) | ||
| 2115 | (build-system ruby-build-system) | ||
| 2116 | (arguments | ||
| 2117 | `(#:test-target "rspec")) | ||
| 2118 | (propagated-inputs | ||
| 2119 | (list ruby-builder ruby-rexml)) | ||
| 2120 | (native-inputs | ||
| 2121 | (list bundler ruby-rspec)) | ||
| 2122 | (synopsis "Generate XML reports of runs test") | ||
| 2123 | (description | ||
| 2124 | "@code{CI::Reporter} is an add-on to Ruby testing frameworks that allows | ||
| 2125 | you to generate XML reports of your test runs. The resulting files can be | ||
| 2126 | read by a continuous integration system that understands Ant's JUnit report | ||
| 2127 | format.") | ||
| 2128 | (home-page "https://github.com/nicksieger/ci_reporter") | ||
| 2129 | (license license:expat))) | ||
| 2130 | |||
| 2131 | (define-public ruby-console | ||
| 2132 | (package | ||
| 2133 | (name "ruby-console") | ||
| 2134 | (version "1.16.2") | ||
| 2135 | (source (origin | ||
| 2136 | (method url-fetch) | ||
| 2137 | (uri (rubygems-uri "console" version)) | ||
| 2138 | (sha256 | ||
| 2139 | (base32 | ||
| 2140 | "0y1bv3kd1l9p0k5n3anvvjxdrcq113pyngz2g29i9mvdgbbx7kq2")))) | ||
| 2141 | (build-system ruby-build-system) | ||
| 2142 | ;; XXX: Disable test suite to avoid dependency cycles with ruby-samovar. | ||
| 2143 | (arguments (list #:tests? #f)) | ||
| 2144 | (propagated-inputs (list ruby-fiber-local)) | ||
| 2145 | (synopsis "Console logging library for Ruby") | ||
| 2146 | (description "This gem provides beautiful console logging for Ruby | ||
| 2147 | applications. It implements fast, buffered log output and has the following | ||
| 2148 | features: | ||
| 2149 | @itemize | ||
| 2150 | @item Thread safe global logger with per-fiber context | ||
| 2151 | @item Carry along context with nested loggers | ||
| 2152 | @item Enable/disable log levels per class | ||
| 2153 | @item Detailed logging of exceptions | ||
| 2154 | @item Beautiful logging to the terminal or structured logging using JSON. | ||
| 2155 | @end itemize") | ||
| 2156 | (home-page "https://github.com/socketry/console") | ||
| 2157 | (license license:expat))) | ||
| 2158 | |||
| 2159 | (define-public ruby-contracts | ||
| 2160 | (package | ||
| 2161 | (name "ruby-contracts") | ||
| 2162 | (version "0.17.2") | ||
| 2163 | (source | ||
| 2164 | (origin | ||
| 2165 | (method url-fetch) | ||
| 2166 | (uri (rubygems-uri "contracts" version)) | ||
| 2167 | (sha256 | ||
| 2168 | (base32 | ||
| 2169 | "1sclvlwnlxfaj1595xd0rn3x3w0ljic3vqgnx6476lr7x8xbpbiv")))) | ||
| 2170 | (build-system ruby-build-system) | ||
| 2171 | (arguments | ||
| 2172 | (list | ||
| 2173 | #:test-target "spec" | ||
| 2174 | #:phases | ||
| 2175 | #~(modify-phases %standard-phases | ||
| 2176 | ;; Don't run or require rubocop, the code linting tool, as this is a | ||
| 2177 | ;; bit unnecessary. | ||
| 2178 | (add-after 'unpack 'dont-run-rubocop | ||
| 2179 | (lambda _ | ||
| 2180 | (substitute* "Rakefile" | ||
| 2181 | ((".*rubocop.*") "") | ||
| 2182 | ((".*RuboCop.*") ""))))))) | ||
| 2183 | (native-inputs | ||
| 2184 | (list ruby-rspec)) | ||
| 2185 | (synopsis "Method contracts for Ruby") | ||
| 2186 | (description | ||
| 2187 | "This library provides contracts for Ruby. A contract describes the | ||
| 2188 | correct inputs and output for a method, and will raise an error if a incorrect | ||
| 2189 | value is found.") | ||
| 2190 | (home-page "https://github.com/egonSchiele/contracts.ruby") | ||
| 2191 | (license license:bsd-2))) | ||
| 2192 | |||
| 2193 | (define-public ruby-crack | ||
| 2194 | (package | ||
| 2195 | (name "ruby-crack") | ||
| 2196 | (version "0.4.5") | ||
| 2197 | (source | ||
| 2198 | (origin | ||
| 2199 | (method url-fetch) | ||
| 2200 | (uri (rubygems-uri "crack" version)) | ||
| 2201 | (sha256 | ||
| 2202 | (base32 | ||
| 2203 | "1cr1kfpw3vkhysvkk3wg7c54m75kd68mbm9rs5azdjdq57xid13r")))) | ||
| 2204 | (build-system ruby-build-system) | ||
| 2205 | (arguments | ||
| 2206 | `(#:phases | ||
| 2207 | (modify-phases %standard-phases | ||
| 2208 | (replace 'check | ||
| 2209 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 2210 | (when tests? | ||
| 2211 | (for-each (lambda (file) | ||
| 2212 | (display file)(display "\n") | ||
| 2213 | (invoke "ruby" "-Ilib" "-Itest" "-rrubygems" file)) | ||
| 2214 | (find-files "test" ".*rb$")))))))) | ||
| 2215 | (synopsis "Simple JSON and XML parsing for Ruby") | ||
| 2216 | (description | ||
| 2217 | "@code{crack} provides really simple JSON and XML parsing, extracted from | ||
| 2218 | code in Merb and Rails.") | ||
| 2219 | (home-page "https://github.com/jnunemaker/crack") | ||
| 2220 | (license license:expat))) | ||
| 2221 | |||
| 2222 | (define-public ruby-clamp | ||
| 2223 | (package | ||
| 2224 | (name "ruby-clamp") | ||
| 2225 | (version "1.3.2") | ||
| 2226 | (source (origin | ||
| 2227 | (method url-fetch) | ||
| 2228 | (uri (rubygems-uri "clamp" version)) | ||
| 2229 | (sha256 | ||
| 2230 | (base32 | ||
| 2231 | "08m0syh06bhx8dqn560ivjg96l5cs5s3l9jh2szsnlcdcyl9jsjg")))) | ||
| 2232 | (build-system ruby-build-system) | ||
| 2233 | (arguments | ||
| 2234 | (list #:test-target "spec" | ||
| 2235 | #:phases #~(modify-phases %standard-phases | ||
| 2236 | (add-after 'unpack 'do-not-require-rubocop | ||
| 2237 | (lambda _ | ||
| 2238 | (substitute* "Rakefile" | ||
| 2239 | (("require \"rubocop/rake_task\"") | ||
| 2240 | "") | ||
| 2241 | (("RuboCop::RakeTask.new") | ||
| 2242 | ""))))))) | ||
| 2243 | (native-inputs (list ruby-rspec)) | ||
| 2244 | (synopsis "Command-line parsing library for Ruby") | ||
| 2245 | (description "Clamp provides an object-model for command-line utilities. | ||
| 2246 | It handles parsing of command-line options, and generation of usage help.") | ||
| 2247 | (home-page "https://github.com/mdub/clamp") | ||
| 2248 | (license license:expat))) | ||
| 2249 | |||
| 2250 | (define-public ruby-cliver | ||
| 2251 | (package | ||
| 2252 | (name "ruby-cliver") | ||
| 2253 | (version "0.3.2") | ||
| 2254 | (source | ||
| 2255 | (origin | ||
| 2256 | (method url-fetch) | ||
| 2257 | (uri (rubygems-uri "cliver" version)) | ||
| 2258 | (sha256 | ||
| 2259 | (base32 | ||
| 2260 | "096f4rj7virwvqxhkavy0v55rax10r4jqf8cymbvn4n631948xc7")))) | ||
| 2261 | (build-system ruby-build-system) | ||
| 2262 | (arguments | ||
| 2263 | '(#:phases | ||
| 2264 | (modify-phases %standard-phases | ||
| 2265 | ;; Avoid a incompatibility between rspec@2 and rake. Using rspec@3 | ||
| 2266 | ;; would be nice, but the tests look to be incompatible: | ||
| 2267 | ;; | ||
| 2268 | ;; NoMethodError: undefined method `last_comment' | ||
| 2269 | (replace 'check | ||
| 2270 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 2271 | (when tests? | ||
| 2272 | (invoke "rspec"))))))) | ||
| 2273 | (native-inputs | ||
| 2274 | (list bundler ruby-rspec-2)) | ||
| 2275 | (synopsis "Assertions for command-line dependencies in Ruby") | ||
| 2276 | (description | ||
| 2277 | "@code{cliver} provides a way to detect missing command-line | ||
| 2278 | dependencies, including versions.") | ||
| 2279 | (home-page "https://github.com/yaauie/cliver") | ||
| 2280 | (license license:expat))) | ||
| 2281 | |||
| 2282 | (define-public ruby-czmq-ffi-gen | ||
| 2283 | (package | ||
| 2284 | (name "ruby-czmq-ffi-gen") | ||
| 2285 | (version "0.13.0") | ||
| 2286 | (source | ||
| 2287 | (origin | ||
| 2288 | (method url-fetch) | ||
| 2289 | (uri (rubygems-uri "czmq-ffi-gen" version)) | ||
| 2290 | (sha256 | ||
| 2291 | (base32 | ||
| 2292 | "1yf719dmf4mwks1hqdsy6i5kzfvlsha69sfnhb2fr2cgk2snbys3")))) | ||
| 2293 | (build-system ruby-build-system) | ||
| 2294 | (arguments | ||
| 2295 | '(#:tests? #f ;; Tests are not included in the release on rubygems.org | ||
| 2296 | #:phases | ||
| 2297 | (modify-phases %standard-phases | ||
| 2298 | (add-after 'unpack 'patch-lib_dirs | ||
| 2299 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 2300 | (substitute* "lib/czmq-ffi-gen/czmq/ffi.rb" | ||
| 2301 | (("lib\\_dirs = \\[.*\\]") | ||
| 2302 | (string-append "lib_dirs = ['" | ||
| 2303 | (assoc-ref inputs "czmq") "/lib" | ||
| 2304 | "']"))) | ||
| 2305 | (substitute* "lib/czmq-ffi-gen/libzmq.rb" | ||
| 2306 | (("lib\\_dirs = \\[.*\\]") | ||
| 2307 | (string-append "lib_dirs = ['" | ||
| 2308 | (assoc-ref inputs "zeromq") "/lib" | ||
| 2309 | "']")))))))) | ||
| 2310 | (inputs | ||
| 2311 | (list zeromq czmq)) | ||
| 2312 | (propagated-inputs (list ruby-ffi)) | ||
| 2313 | (synopsis "Low-level Ruby bindings for CZMQ (generated using zproject)") | ||
| 2314 | (description | ||
| 2315 | "These Ruby bindings are not intended to be directly used, but rather | ||
| 2316 | used by higher level bindings like those provided by CZTop.") | ||
| 2317 | (home-page | ||
| 2318 | "https://github.com/paddor/czmq-ffi-gen") | ||
| 2319 | (license license:isc))) | ||
| 2320 | |||
| 2321 | (define-public ruby-cztop | ||
| 2322 | (package | ||
| 2323 | (name "ruby-cztop") | ||
| 2324 | (version "0.12.2") | ||
| 2325 | (source | ||
| 2326 | (origin | ||
| 2327 | (method url-fetch) | ||
| 2328 | (uri (rubygems-uri "cztop" version)) | ||
| 2329 | (sha256 | ||
| 2330 | (base32 | ||
| 2331 | "0yqbpaiw5d7f271d73lyrsh8xpx6n4zi6xqwfgi00dacxrq3s3fa")))) | ||
| 2332 | (build-system ruby-build-system) | ||
| 2333 | (arguments | ||
| 2334 | '(#:test-target "spec" | ||
| 2335 | #:phases | ||
| 2336 | (modify-phases %standard-phases | ||
| 2337 | (add-after 'unpack 'patch-lib_paths | ||
| 2338 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 2339 | (substitute* "lib/cztop/poller/zmq.rb" | ||
| 2340 | (("lib\\_paths = \\[.*\\]") | ||
| 2341 | (string-append "lib_paths = ['" | ||
| 2342 | (assoc-ref inputs "zeromq") "/lib" | ||
| 2343 | "']")))))))) | ||
| 2344 | (native-inputs | ||
| 2345 | (list bundler ruby-rspec)) | ||
| 2346 | (inputs | ||
| 2347 | (list zeromq)) | ||
| 2348 | (propagated-inputs | ||
| 2349 | (list ruby-czmq-ffi-gen)) | ||
| 2350 | (synopsis "CZMQ Ruby bindings") | ||
| 2351 | (description | ||
| 2352 | "CZMQ Ruby bindings, based on the generated low-level FFI bindings of | ||
| 2353 | CZMQ. The focus of of CZTop is on being easy to use and providing first class | ||
| 2354 | support for security mechanisms.") | ||
| 2355 | (home-page "https://github.com/paddor/cztop") | ||
| 2356 | (license license:isc))) | ||
| 2357 | |||
| 2358 | (define-public ruby-saikuro-treemap | ||
| 2359 | (package | ||
| 2360 | (name "ruby-saikuro-treemap") | ||
| 2361 | (version "0.2.0") | ||
| 2362 | (source (origin | ||
| 2363 | (method url-fetch) | ||
| 2364 | (uri (rubygems-uri "saikuro_treemap" version)) | ||
| 2365 | (sha256 | ||
| 2366 | (base32 | ||
| 2367 | "0w70nmh43mwfbpq20iindl61siqqr8acmf7p3m7n5ipd61c24950")))) | ||
| 2368 | (build-system ruby-build-system) | ||
| 2369 | ;; Some of the tests fail because the generated JSON has keys in a | ||
| 2370 | ;; different order. This is a problem with the test suite rather than any | ||
| 2371 | ;; of the involved libraries. | ||
| 2372 | (arguments `(#:tests? #f)) | ||
| 2373 | (propagated-inputs | ||
| 2374 | (list ruby-json-pure ruby-atoulme-saikuro)) | ||
| 2375 | (synopsis "Generate complexity treemap based on saikuro analysis") | ||
| 2376 | (description | ||
| 2377 | "This gem generates a treemap showing the complexity of Ruby code on | ||
| 2378 | which it is run. It uses Saikuro under the covers to analyze Ruby code | ||
| 2379 | complexity.") | ||
| 2380 | (home-page "https://github.com/ThoughtWorksStudios/saikuro_treemap") | ||
| 2381 | (license license:expat))) | ||
| 2382 | |||
| 2383 | (define-public ruby-oauth2 | ||
| 2384 | (package | ||
| 2385 | (name "ruby-oauth2") | ||
| 2386 | (version "2.0.9") | ||
| 2387 | (source (origin | ||
| 2388 | (method git-fetch) ;for tests | ||
| 2389 | (uri (git-reference | ||
| 2390 | (url "https://gitlab.com/oauth-xx/oauth2") | ||
| 2391 | (commit (string-append "v" version)))) | ||
| 2392 | (file-name (git-file-name name version)) | ||
| 2393 | (sha256 | ||
| 2394 | (base32 | ||
| 2395 | "191j1f4gjw8wij1jy2fvddgi8cv1mm0ki7v0b0795clix1avnj29")))) | ||
| 2396 | (build-system ruby-build-system) | ||
| 2397 | (arguments | ||
| 2398 | (list #:modules '((guix build ruby-build-system) | ||
| 2399 | (guix build utils) | ||
| 2400 | (ice-9 regex) | ||
| 2401 | (ice-9 textual-ports)) | ||
| 2402 | #:phases | ||
| 2403 | #~(modify-phases %standard-phases | ||
| 2404 | (add-after 'unpack 'relax-requirements | ||
| 2405 | (lambda _ | ||
| 2406 | (substitute* "Gemfile" | ||
| 2407 | (("^linting = .*") | ||
| 2408 | "linting = false\n") | ||
| 2409 | (("^coverage = .*") | ||
| 2410 | "coverage = false\n") | ||
| 2411 | (("^debug = .*") | ||
| 2412 | "debug = false\n")) | ||
| 2413 | (substitute* "spec/spec_helper.rb" | ||
| 2414 | (("^RUN_COVERAGE = .*") | ||
| 2415 | "RUN_COVERAGE = false\n") | ||
| 2416 | (("^ALL_FORMATTERS = .*") | ||
| 2417 | "ALL_FORMATTERS = false\n")))) | ||
| 2418 | (add-after 'unpack 'skip-problematic-test | ||
| 2419 | (lambda _ | ||
| 2420 | ;; XXX: substitute* can't match 2 lines. | ||
| 2421 | (with-atomic-file-replacement | ||
| 2422 | "spec/oauth2/client_spec.rb" | ||
| 2423 | (lambda (in out) | ||
| 2424 | (let* ((pattern "\ | ||
| 2425 | context 'when parse: :xml but response is JSON' do\n\ | ||
| 2426 | it 'returns a configured AccessToken' do\n") | ||
| 2427 | (content (get-string-all in)) | ||
| 2428 | (matched (string-match pattern content))) | ||
| 2429 | (if matched | ||
| 2430 | (format out "~a skip('fails on guix')~%~a" | ||
| 2431 | (string-take content (match:end matched)) | ||
| 2432 | (string-drop content (match:end matched))) | ||
| 2433 | (display content out)))))))))) | ||
| 2434 | (native-inputs | ||
| 2435 | (list bundler | ||
| 2436 | ruby-addressable | ||
| 2437 | ruby-backports | ||
| 2438 | ruby-rexml | ||
| 2439 | ruby-rspec-block-is-expected | ||
| 2440 | ruby-rspec-pending-for | ||
| 2441 | ruby-rspec-stubbed-env | ||
| 2442 | ruby-silent-stream)) | ||
| 2443 | (propagated-inputs | ||
| 2444 | (list ruby-faraday | ||
| 2445 | ruby-jwt | ||
| 2446 | ruby-multi-xml | ||
| 2447 | ruby-rack | ||
| 2448 | ruby-snaky-hash | ||
| 2449 | ruby-version-gem)) | ||
| 2450 | (synopsis "Ruby wrapper for the OAuth 2.0") | ||
| 2451 | (description | ||
| 2452 | "This package provides a Ruby wrapper for the OAuth 2.0 protocol built | ||
| 2453 | with a similar style to the original OAuth spec.") | ||
| 2454 | (home-page "https://github.com/oauth-xx/oauth2") | ||
| 2455 | (license license:expat))) | ||
| 2456 | |||
| 2457 | (define-public ruby-omniauth | ||
| 2458 | (package | ||
| 2459 | (name "ruby-omniauth") | ||
| 2460 | (version "2.1.1") | ||
| 2461 | (source (origin | ||
| 2462 | (method git-fetch) ;for tests | ||
| 2463 | (uri (git-reference | ||
| 2464 | (url "https://github.com/omniauth/omniauth") | ||
| 2465 | (commit (string-append "v" version)))) | ||
| 2466 | (file-name (git-file-name name version)) | ||
| 2467 | (sha256 | ||
| 2468 | (base32 | ||
| 2469 | "1mm7a4ll7ymamrbsl63yi6i34qpwmh2nh5a9kj961gja1iz2gyd1")))) | ||
| 2470 | (build-system ruby-build-system) | ||
| 2471 | (arguments | ||
| 2472 | (list #:phases | ||
| 2473 | #~(modify-phases %standard-phases | ||
| 2474 | (add-after 'unpack 'relax-requirements | ||
| 2475 | (lambda _ | ||
| 2476 | (substitute* "spec/helper.rb" | ||
| 2477 | ;; This condition is used to require coveralls and | ||
| 2478 | ;; simplecov; override it to avoid these extraneous | ||
| 2479 | ;; requirements. | ||
| 2480 | (("RUBY_VERSION >= '1.9'") | ||
| 2481 | "false") | ||
| 2482 | (("require 'rack/freeze'") ""))))))) | ||
| 2483 | (native-inputs (list ruby-rspec)) | ||
| 2484 | (propagated-inputs (list ruby-hashie ruby-rack ruby-rack-test | ||
| 2485 | ruby-rack-protection)) | ||
| 2486 | (synopsis "Generalized Rack framework for multiple-provider authentication") | ||
| 2487 | (description | ||
| 2488 | "This package provides a generalized Rack framework for multiple-provider | ||
| 2489 | authentication.") | ||
| 2490 | (home-page "https://github.com/omniauth/omniauth") | ||
| 2491 | (license license:expat))) | ||
| 2492 | |||
| 2493 | (define-public ruby-omniauth-oauth2 | ||
| 2494 | (package | ||
| 2495 | (name "ruby-omniauth-oauth2") | ||
| 2496 | (version "1.8.0") | ||
| 2497 | (source | ||
| 2498 | (origin | ||
| 2499 | (method url-fetch) | ||
| 2500 | (uri (rubygems-uri "omniauth-oauth2" version)) | ||
| 2501 | (sha256 | ||
| 2502 | (base32 | ||
| 2503 | "0y4y122xm8zgrxn5nnzwg6w39dnjss8pcq2ppbpx9qn7kiayky5j")))) | ||
| 2504 | (build-system ruby-build-system) | ||
| 2505 | (arguments | ||
| 2506 | (list #:phases | ||
| 2507 | #~(modify-phases %standard-phases | ||
| 2508 | (add-after 'unpack 'relax-requirements | ||
| 2509 | (lambda _ | ||
| 2510 | (substitute* "spec/helper.rb" | ||
| 2511 | ;; This condition is used to require coveralls and | ||
| 2512 | ;; simplecov; override it to avoid these extraneous | ||
| 2513 | ;; requirements. | ||
| 2514 | (("RUBY_VERSION >= \"1.9\"") | ||
| 2515 | "false"))))))) | ||
| 2516 | (propagated-inputs (list ruby-oauth2 ruby-omniauth)) | ||
| 2517 | (native-inputs (list ruby-rspec ruby-rack-test ruby-webmock)) | ||
| 2518 | (synopsis "Abstract OAuth2 strategy for OmniAuth") | ||
| 2519 | (description | ||
| 2520 | "This library provides a generic OAuth2 strategy for OmniAuth. It | ||
| 2521 | doesn't provide a way to gather user information, so should be used as a | ||
| 2522 | building block for authentication strategies.") | ||
| 2523 | (home-page "https://github.com/omniauth/omniauth-oauth2") | ||
| 2524 | (license license:expat))) | ||
| 2525 | |||
| 2526 | (define-public ruby-open4 | ||
| 2527 | (package | ||
| 2528 | (name "ruby-open4") | ||
| 2529 | (version "1.3.4") | ||
| 2530 | (source | ||
| 2531 | (origin | ||
| 2532 | (method url-fetch) | ||
| 2533 | (uri (rubygems-uri "open4" version)) | ||
| 2534 | (sha256 | ||
| 2535 | (base32 | ||
| 2536 | "1cgls3f9dlrpil846q0w7h66vsc33jqn84nql4gcqkk221rh7px1")))) | ||
| 2537 | (build-system ruby-build-system) | ||
| 2538 | (arguments | ||
| 2539 | '(#:phases | ||
| 2540 | (modify-phases %standard-phases | ||
| 2541 | (add-after 'unpack 'patch | ||
| 2542 | (lambda _ | ||
| 2543 | (substitute* "rakefile" | ||
| 2544 | ;; Update the Rakefile so it works | ||
| 2545 | (("-rubygems") "-rrubygems") | ||
| 2546 | (("Config") "RbConfig")))) | ||
| 2547 | (add-before 'check 'set-LIB | ||
| 2548 | (lambda _ | ||
| 2549 | ;; This is used in the rakefile when running the tests | ||
| 2550 | (setenv "LIB" "open4")))))) | ||
| 2551 | (synopsis "Open child processes from Ruby and manage them easily") | ||
| 2552 | (description | ||
| 2553 | "@code{Open4} is a Ruby library to run child processes and manage their | ||
| 2554 | input and output.") | ||
| 2555 | (home-page "https://github.com/ahoward/open4") | ||
| 2556 | (license license:ruby))) | ||
| 2557 | |||
| 2558 | (define-public ruby-options | ||
| 2559 | (package | ||
| 2560 | (name "ruby-options") | ||
| 2561 | (version "2.3.2") | ||
| 2562 | (source | ||
| 2563 | (origin | ||
| 2564 | (method url-fetch) | ||
| 2565 | (uri (rubygems-uri "options" version)) | ||
| 2566 | (sha256 | ||
| 2567 | (base32 | ||
| 2568 | "1s650nwnabx66w584m1cyw82icyym6hv5kzfsbp38cinkr5klh9j")))) | ||
| 2569 | (build-system ruby-build-system) | ||
| 2570 | (arguments | ||
| 2571 | '(#:tests? #f ;; TODO: NameError: uninitialized constant Config | ||
| 2572 | #:phases | ||
| 2573 | (modify-phases %standard-phases | ||
| 2574 | (add-before 'check 'set-LIB | ||
| 2575 | (lambda _ | ||
| 2576 | ;; This is used in the Rakefile, and setting it avoids an issue | ||
| 2577 | ;; with running the tests. | ||
| 2578 | (setenv "LIB" "options")))))) | ||
| 2579 | (synopsis "Ruby library to parse options from *args cleanly") | ||
| 2580 | (description | ||
| 2581 | "The @code{options} library helps with parsing keyword options in Ruby | ||
| 2582 | functions.") | ||
| 2583 | (home-page "https://github.com/ahoward/options") | ||
| 2584 | (license license:ruby))) | ||
| 2585 | |||
| 2586 | (define-public ruby-erubi | ||
| 2587 | (package | ||
| 2588 | (name "ruby-erubi") | ||
| 2589 | (version "1.11.0") | ||
| 2590 | (source | ||
| 2591 | (origin | ||
| 2592 | (method git-fetch) | ||
| 2593 | (uri (git-reference | ||
| 2594 | (url "https://github.com/jeremyevans/erubi") | ||
| 2595 | (commit version))) | ||
| 2596 | (file-name (git-file-name name version)) | ||
| 2597 | (sha256 | ||
| 2598 | (base32 "0y4qskz260fjwbnjps5z5yygjwgh6ds0f97lfa9gsmh6zqa1lvvx")))) | ||
| 2599 | (build-system ruby-build-system) | ||
| 2600 | (arguments | ||
| 2601 | (list #:test-target "spec")) | ||
| 2602 | (native-inputs (list ruby-minitest | ||
| 2603 | ruby-minitest-global-expectations)) | ||
| 2604 | (synopsis "ERB template engine for Ruby") | ||
| 2605 | (description | ||
| 2606 | "Erubi is a ERB template engine for Ruby. It is a simplified fork of | ||
| 2607 | Erubis") | ||
| 2608 | (home-page "https://github.com/jeremyevans/erubi") | ||
| 2609 | (license license:expat))) | ||
| 2610 | |||
| 2611 | (define-public ruby-erubis | ||
| 2612 | (package | ||
| 2613 | (name "ruby-erubis") | ||
| 2614 | (version "2.7.0") | ||
| 2615 | (source | ||
| 2616 | (origin | ||
| 2617 | (method url-fetch) | ||
| 2618 | (uri (rubygems-uri "erubis" version)) | ||
| 2619 | (sha256 | ||
| 2620 | (base32 | ||
| 2621 | "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3")))) | ||
| 2622 | (build-system ruby-build-system) | ||
| 2623 | (arguments | ||
| 2624 | '(#:tests? #f)) ; tests do not run properly with Ruby 2.0 | ||
| 2625 | (synopsis "Implementation of embedded Ruby (eRuby)") | ||
| 2626 | (description | ||
| 2627 | "Erubis is a fast implementation of embedded Ruby (eRuby) with several | ||
| 2628 | features such as multi-language support, auto escaping, auto trimming spaces | ||
| 2629 | around @code{<% %>}, a changeable embedded pattern, and Ruby on Rails | ||
| 2630 | support.") | ||
| 2631 | (home-page "http://www.kuwata-lab.com/erubis/") | ||
| 2632 | (license license:expat))) | ||
| 2633 | |||
| 2634 | (define-public ruby-ethon | ||
| 2635 | (package | ||
| 2636 | (name "ruby-ethon") | ||
| 2637 | (version "0.12.0") | ||
| 2638 | (source | ||
| 2639 | (origin | ||
| 2640 | (method url-fetch) | ||
| 2641 | (uri (rubygems-uri "ethon" version)) | ||
| 2642 | (sha256 | ||
| 2643 | (base32 | ||
| 2644 | "0gggrgkcq839mamx7a8jbnp2h7x2ykfn34ixwskwb0lzx2ak17g9")))) | ||
| 2645 | (build-system ruby-build-system) | ||
| 2646 | (arguments | ||
| 2647 | (list | ||
| 2648 | #:tests? #f ; no included tests | ||
| 2649 | #:phases | ||
| 2650 | #~(modify-phases %standard-phases | ||
| 2651 | (add-after 'unpack 'libcurl-use-absolute-reference | ||
| 2652 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 2653 | (substitute* "lib/ethon/curls/settings.rb" | ||
| 2654 | (("libcurl', 'libcurl\\.so\\.4") | ||
| 2655 | (search-input-file inputs "/lib/libcurl.so")))))))) | ||
| 2656 | (inputs | ||
| 2657 | (list curl)) | ||
| 2658 | (propagated-inputs | ||
| 2659 | (list ruby-ffi)) | ||
| 2660 | (synopsis "Very lightweight @code{libcurl} wrapper") | ||
| 2661 | (description | ||
| 2662 | "Ethon is a very basic @code{libcurl} wrapper using ffi.") | ||
| 2663 | (home-page "https://github.com/typhoeus/ethon") | ||
| 2664 | (license license:expat))) | ||
| 2665 | |||
| 2666 | (define-public ruby-execjs | ||
| 2667 | (package | ||
| 2668 | (name "ruby-execjs") | ||
| 2669 | (version "2.7.0") | ||
| 2670 | (source | ||
| 2671 | (origin | ||
| 2672 | ;; fetch from github as the gem does not contain testing code | ||
| 2673 | (method git-fetch) | ||
| 2674 | (uri (git-reference | ||
| 2675 | (url "https://github.com/rails/execjs") | ||
| 2676 | (commit (string-append "v" version)))) | ||
| 2677 | (file-name (git-file-name name version)) | ||
| 2678 | (sha256 | ||
| 2679 | (base32 | ||
| 2680 | "0c0vd2mmqq3ar4plbwi2wsbr31vn4h45i19r5km66skydnnbp1y6")))) | ||
| 2681 | (build-system ruby-build-system) | ||
| 2682 | (native-inputs | ||
| 2683 | (list bundler | ||
| 2684 | ;; The test suite tests all the available backends. Currently, this just | ||
| 2685 | ;; means the node backend. | ||
| 2686 | ;; | ||
| 2687 | ;; PASSED: test:node | ||
| 2688 | ;; SKIPPED: test:duktape, ;; test:javascriptcore, test:jscript, | ||
| 2689 | ;; test:miniracer, test:rubyracer, ;; test:rubyrhino, test:v8 | ||
| 2690 | node-lts)) | ||
| 2691 | (synopsis "Run JavaScript code from Ruby") | ||
| 2692 | (description | ||
| 2693 | "ExecJS lets you run JavaScript code from Ruby. It automatically picks a | ||
| 2694 | runtime to evaluate your JavaScript program, then returns the result to you as | ||
| 2695 | a Ruby object.") | ||
| 2696 | (home-page "https://github.com/rails/execjs") | ||
| 2697 | (license license:expat))) | ||
| 2698 | |||
| 2699 | (define-public ruby-fakefs | ||
| 2700 | (package | ||
| 2701 | (name "ruby-fakefs") | ||
| 2702 | (version "2.8.0") | ||
| 2703 | (home-page "https://github.com/fakefs/fakefs") | ||
| 2704 | (source (origin | ||
| 2705 | ;; The Rubygems release does not contain tests. | ||
| 2706 | (method git-fetch) | ||
| 2707 | (uri (git-reference | ||
| 2708 | (url home-page) | ||
| 2709 | (commit (string-append "v" version)))) | ||
| 2710 | (file-name (git-file-name name version)) | ||
| 2711 | (sha256 | ||
| 2712 | (base32 | ||
| 2713 | "0a3vq6cllml279j77hxipmbln31pjw6di3zdgpzqvhqgazv55v10")))) | ||
| 2714 | (build-system ruby-build-system) | ||
| 2715 | (arguments | ||
| 2716 | '(#:phases (modify-phases %standard-phases | ||
| 2717 | (replace 'replace-git-ls-files | ||
| 2718 | (lambda _ | ||
| 2719 | (substitute* "fakefs.gemspec" | ||
| 2720 | (("`git ls-files lib README.md LICENSE`") | ||
| 2721 | "`find lib README.md LICENSE -type f | sort`")))) | ||
| 2722 | (add-before 'check 'remove-version-constraints | ||
| 2723 | (lambda _ | ||
| 2724 | ;; Drop hard version requirements for test dependencies. | ||
| 2725 | (substitute* "fakefs.gemspec" | ||
| 2726 | (("(.*add_development_dependency .*), .*" _ dep) | ||
| 2727 | (string-append dep "\n")))))))) | ||
| 2728 | (native-inputs | ||
| 2729 | (list ruby-bump ruby-maxitest ruby-pry ruby-rubocop ruby-rspec)) | ||
| 2730 | (synopsis "Fake file system for Ruby") | ||
| 2731 | (description | ||
| 2732 | "This package provides a fake file system for use in test suites. It | ||
| 2733 | avoids the need for manually creating temporary directories, or dealing | ||
| 2734 | with platform intricacies in @code{File} and @code{FileUtils}.") | ||
| 2735 | (license license:expat))) | ||
| 2736 | |||
| 2737 | (define-public ruby-orderedhash | ||
| 2738 | (package | ||
| 2739 | (name "ruby-orderedhash") | ||
| 2740 | (version "0.0.6") | ||
| 2741 | (source (origin | ||
| 2742 | (method url-fetch) | ||
| 2743 | (uri (rubygems-uri "orderedhash" version)) | ||
| 2744 | (sha256 | ||
| 2745 | (base32 | ||
| 2746 | "0fryy7f9jbpx33jq5m402yqj01zcg563k9fsxlqbhmq638p4bzd7")))) | ||
| 2747 | (build-system ruby-build-system) | ||
| 2748 | (arguments | ||
| 2749 | '(#:tests? #f)) ; no test suite | ||
| 2750 | (synopsis "Ruby library providing an order-preserving hash") | ||
| 2751 | (description "Orderedhash is a Ruby library providing a hash | ||
| 2752 | implementation that preserves the order of items and features some array-like | ||
| 2753 | extensions.") | ||
| 2754 | (home-page "http://codeforpeople.com/lib/ruby/orderedhash/") | ||
| 2755 | (license license:public-domain))) | ||
| 2756 | |||
| 2757 | (define-public ruby-libxml | ||
| 2758 | (package | ||
| 2759 | (name "ruby-libxml") | ||
| 2760 | (version "3.0.0") | ||
| 2761 | (source | ||
| 2762 | (origin | ||
| 2763 | (method url-fetch) | ||
| 2764 | (uri (rubygems-uri "libxml-ruby" version)) | ||
| 2765 | (sha256 | ||
| 2766 | (base32 | ||
| 2767 | "0xy8wmjwjcnv36zi042678ncjzpxvy351ccbv7mzkns2n3kxfp54")))) | ||
| 2768 | (build-system ruby-build-system) | ||
| 2769 | (inputs | ||
| 2770 | (list zlib libxml2)) | ||
| 2771 | (arguments | ||
| 2772 | '(#:tests? #f ; test suite hangs for unknown reason | ||
| 2773 | #:gem-flags | ||
| 2774 | (list "--no-document" ; TODO: Re-enable when documentation | ||
| 2775 | ; generation works | ||
| 2776 | "--" | ||
| 2777 | (string-append "--with-xml2-include=" | ||
| 2778 | (assoc-ref %build-inputs "libxml2") | ||
| 2779 | "/include/libxml2" )))) | ||
| 2780 | (synopsis "Ruby bindings for GNOME Libxml2") | ||
| 2781 | (description "The Libxml-Ruby project provides Ruby language bindings for | ||
| 2782 | the GNOME Libxml2 XML toolkit.") | ||
| 2783 | (home-page "https://xml4r.github.com/libxml-ruby") | ||
| 2784 | (license license:expat))) | ||
| 2785 | |||
| 2786 | (define-public ruby-lino | ||
| 2787 | (package | ||
| 2788 | (name "ruby-lino") | ||
| 2789 | (version "3.1.0") | ||
| 2790 | (source | ||
| 2791 | (origin | ||
| 2792 | (method url-fetch) | ||
| 2793 | (uri (rubygems-uri "lino" version)) | ||
| 2794 | (sha256 | ||
| 2795 | (base32 | ||
| 2796 | "1zq9dza040fgjvr9imh7z2lgxrcyc5ac100rqimsnsf9bpfz3fsm")))) | ||
| 2797 | (build-system ruby-build-system) | ||
| 2798 | (arguments | ||
| 2799 | '(#:tests? #f)) ; No included tests | ||
| 2800 | (propagated-inputs | ||
| 2801 | (list ruby-hamster ruby-open4)) | ||
| 2802 | (synopsis "Build and execute commands in Ruby") | ||
| 2803 | (description | ||
| 2804 | "@code{Lino} provides an interface to run external commands. It provides | ||
| 2805 | an interface to add options as well as managing the standard input, output and | ||
| 2806 | error streams.") | ||
| 2807 | (home-page "https://github.com/tobyclemson/lino") | ||
| 2808 | (license license:expat))) | ||
| 2809 | |||
| 2810 | (define-public ruby-x25519 | ||
| 2811 | (package | ||
| 2812 | (name "ruby-x25519") | ||
| 2813 | (version "1.0.10") | ||
| 2814 | (source (origin | ||
| 2815 | (method git-fetch) | ||
| 2816 | (uri (git-reference | ||
| 2817 | (url "https://github.com/RubyCrypto/x25519") | ||
| 2818 | (commit (string-append "v" version)))) | ||
| 2819 | (file-name (git-file-name name version)) | ||
| 2820 | (sha256 | ||
| 2821 | (base32 | ||
| 2822 | "1g0311ly32f6hfn4q5fvkbjbl2bhv1l9fx6s0kglxfsrwq51926y")) | ||
| 2823 | (patches | ||
| 2824 | (search-patches | ||
| 2825 | "ruby-x25519-automatic-fallback-non-x86_64.patch")))) | ||
| 2826 | (build-system ruby-build-system) | ||
| 2827 | (arguments | ||
| 2828 | (list #:test-target "spec" | ||
| 2829 | #:phases #~(modify-phases %standard-phases | ||
| 2830 | (add-after 'unpack 'remove-unnecessary-dependencies | ||
| 2831 | (lambda _ | ||
| 2832 | (substitute* "Gemfile" | ||
| 2833 | ((".*rubocop.*") | ||
| 2834 | "")) | ||
| 2835 | (substitute* "Rakefile" | ||
| 2836 | (("require \"rubocop/rake_task\"") | ||
| 2837 | "") | ||
| 2838 | (("RuboCop::RakeTask.new") | ||
| 2839 | "")))) | ||
| 2840 | (add-before 'build 'compile | ||
| 2841 | (lambda _ | ||
| 2842 | (invoke "rake" "compile")))))) | ||
| 2843 | (native-inputs (list ruby-rake-compiler ruby-rspec)) | ||
| 2844 | (synopsis "Cryptography library for Ruby providing the X25519 | ||
| 2845 | Diffie-Hellman function") | ||
| 2846 | (description | ||
| 2847 | "The x25519 gem is an efficient public key cryptography library for | ||
| 2848 | Ruby providing key exchange/agreement via the X25519 (as known as | ||
| 2849 | Curve25519) Elliptic Curve Diffie-Hellman function as described in | ||
| 2850 | @url{https://www.ietf.org/rfc/rfc7748.txt, RFC 7748}.") | ||
| 2851 | (home-page "https://github.com/RubyCrypto/x25519") | ||
| 2852 | (license license:bsd-3))) | ||
| 2853 | |||
| 2854 | (define-public ruby-xml-simple | ||
| 2855 | (package | ||
| 2856 | (name "ruby-xml-simple") | ||
| 2857 | (version "1.1.5") | ||
| 2858 | (source (origin | ||
| 2859 | (method url-fetch) | ||
| 2860 | (uri (rubygems-uri "xml-simple" version)) | ||
| 2861 | (sha256 | ||
| 2862 | (base32 | ||
| 2863 | "0xlqplda3fix5pcykzsyzwgnbamb3qrqkgbrhhfz2a2fxhrkvhw8")))) | ||
| 2864 | (build-system ruby-build-system) | ||
| 2865 | (arguments | ||
| 2866 | '(#:tests? #f)) ; no test suite | ||
| 2867 | (synopsis "Simple Ruby library for XML processing") | ||
| 2868 | (description "This library provides a simple API for XML processing in | ||
| 2869 | Ruby.") | ||
| 2870 | (home-page "https://github.com/maik/xml-simple") | ||
| 2871 | (license license:ruby))) | ||
| 2872 | |||
| 2873 | (define-public ruby-xpath | ||
| 2874 | (package | ||
| 2875 | (name "ruby-xpath") | ||
| 2876 | (version "3.2.0") | ||
| 2877 | (source (origin | ||
| 2878 | (method url-fetch) | ||
| 2879 | (uri (rubygems-uri "xpath" version)) | ||
| 2880 | (sha256 | ||
| 2881 | (base32 | ||
| 2882 | "0bh8lk9hvlpn7vmi6h4hkcwjzvs2y0cmkk3yjjdr8fxvj6fsgzbd")))) | ||
| 2883 | (build-system ruby-build-system) | ||
| 2884 | (arguments (list #:phases #~(modify-phases %standard-phases | ||
| 2885 | (replace 'check | ||
| 2886 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 2887 | (when tests? | ||
| 2888 | (invoke "rspec" "spec" ))))))) | ||
| 2889 | (native-inputs (list ruby-pry ruby-rspec)) | ||
| 2890 | (propagated-inputs (list ruby-nokogiri)) | ||
| 2891 | (synopsis "Ruby DSL for generating XPath expressions") | ||
| 2892 | (description "XPath is a Ruby domain-specific language (DSL) for | ||
| 2893 | generating XPath expressions.") | ||
| 2894 | (home-page "https://github.com/teamcapybara/xpath") | ||
| 2895 | (license license:expat))) | ||
| 2896 | |||
| 2897 | (define-public ruby-thor | ||
| 2898 | (package | ||
| 2899 | (name "ruby-thor") | ||
| 2900 | (version "1.2.2") | ||
| 2901 | (source (origin | ||
| 2902 | ;; Pull from git because the gem has no tests. | ||
| 2903 | (method git-fetch) | ||
| 2904 | (uri (git-reference | ||
| 2905 | (url "https://github.com/rails/thor") | ||
| 2906 | (commit (string-append "v" version)))) | ||
| 2907 | (file-name (git-file-name name version)) | ||
| 2908 | (sha256 | ||
| 2909 | (base32 | ||
| 2910 | "1k3z2mlhaig5ycapjxwybb19z7ca0q1876i6csfmv2j0hf1hnc0z")))) | ||
| 2911 | (build-system ruby-build-system) | ||
| 2912 | (arguments | ||
| 2913 | (list | ||
| 2914 | #:phases | ||
| 2915 | #~(modify-phases %standard-phases | ||
| 2916 | (add-after 'unpack 'remove-coveralls-dependency | ||
| 2917 | (lambda _ | ||
| 2918 | ;; Do not hook the test suite into the online coveralls service. | ||
| 2919 | (substitute* "Gemfile" | ||
| 2920 | ((".*coveralls.*") "")) | ||
| 2921 | (substitute* "spec/helper.rb" | ||
| 2922 | (("require \"coveralls\"") "") | ||
| 2923 | (("Coveralls::SimpleCov::Formatter") "")))) | ||
| 2924 | (add-after 'unpack 'disable-problematic-tests | ||
| 2925 | (lambda _ | ||
| 2926 | ;; These tests attempt to check the git repository for | ||
| 2927 | ;; tabs vs spaces, double vs single quotes, etc, and | ||
| 2928 | ;; depend on the git checkout. | ||
| 2929 | (delete-file "spec/quality_spec.rb") | ||
| 2930 | (substitute* "spec/parser/options_spec.rb" | ||
| 2931 | ;; This test fails for unknown reasons (see: | ||
| 2932 | ;; https://github.com/rails/thor/issues/814). | ||
| 2933 | (("it \"raises an error for unknown switches" all) | ||
| 2934 | (string-append "x" all))))) | ||
| 2935 | (replace 'check | ||
| 2936 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 2937 | (when tests? | ||
| 2938 | (invoke "rspec" "spec" ))))))) | ||
| 2939 | (native-inputs (list ruby-rspec ruby-simplecov ruby-webmock)) | ||
| 2940 | (synopsis "Ruby toolkit for building command-line interfaces") | ||
| 2941 | (description "Thor is a toolkit for building powerful command-line | ||
| 2942 | interfaces.") | ||
| 2943 | (home-page "http://whatisthor.com/") | ||
| 2944 | (license license:expat))) | ||
| 2945 | |||
| 2946 | (define-public ruby-lumberjack | ||
| 2947 | (package | ||
| 2948 | (name "ruby-lumberjack") | ||
| 2949 | (version "1.0.13") | ||
| 2950 | (source (origin | ||
| 2951 | (method url-fetch) | ||
| 2952 | (uri (rubygems-uri "lumberjack" version)) | ||
| 2953 | (sha256 | ||
| 2954 | (base32 | ||
| 2955 | "06im7gcg42x77yhz2w5da2ly9xz0n0c36y5ks7xs53v0l9g0vf5n")))) | ||
| 2956 | (build-system ruby-build-system) | ||
| 2957 | (native-inputs | ||
| 2958 | (list ruby-rspec ruby-timecop)) | ||
| 2959 | (synopsis "Logging utility library for Ruby") | ||
| 2960 | (description "Lumberjack is a simple logging utility that can be a drop in | ||
| 2961 | replacement for Logger or ActiveSupport::BufferedLogger. It provides support | ||
| 2962 | for automatically rolling log files even with multiple processes writing the | ||
| 2963 | same log file.") | ||
| 2964 | (home-page "https://github.com/bdurand/lumberjack") | ||
| 2965 | (license license:expat))) | ||
| 2966 | |||
| 2967 | (define-public ruby-rbnacl | ||
| 2968 | (package | ||
| 2969 | (name "ruby-rbnacl") | ||
| 2970 | (version "7.1.1") | ||
| 2971 | (source (origin | ||
| 2972 | (method url-fetch) | ||
| 2973 | (uri (rubygems-uri "rbnacl" version)) | ||
| 2974 | (sha256 | ||
| 2975 | (base32 | ||
| 2976 | "0y8yzianlkc9w6sbqy8iy8l0yym0y6x7p5rjflkfixq76fqmhvzk")))) | ||
| 2977 | (build-system ruby-build-system) | ||
| 2978 | (arguments | ||
| 2979 | (list | ||
| 2980 | #:phases | ||
| 2981 | #~(modify-phases %standard-phases | ||
| 2982 | (add-after 'unpack 'remove-unnecessary-dependencies | ||
| 2983 | (lambda _ | ||
| 2984 | ;; Coveralls relates to a network service, and Rubocop to code | ||
| 2985 | ;; linting and both are unnecessary to run the tests | ||
| 2986 | (substitute* "Gemfile" | ||
| 2987 | ((".*rubocop.*") | ||
| 2988 | "\n") | ||
| 2989 | ((".*guard-rspec.*") | ||
| 2990 | "\n") | ||
| 2991 | ((".*coveralls.*") | ||
| 2992 | "\n")) | ||
| 2993 | (substitute* "spec/spec_helper.rb" | ||
| 2994 | (("require \"coveralls\"") | ||
| 2995 | "") | ||
| 2996 | (("Coveralls.wear!") | ||
| 2997 | "")))) | ||
| 2998 | (add-after 'unpack 'use-libsodium-from-store | ||
| 2999 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 3000 | (substitute* '("lib/rbnacl/init.rb" | ||
| 3001 | "lib/rbnacl/sodium.rb") | ||
| 3002 | (("ffi_lib \\[.+\\]") | ||
| 3003 | (string-append "ffi_lib [\"" | ||
| 3004 | (assoc-ref inputs "libsodium") | ||
| 3005 | "/lib/libsodium.so" "\"]"))))) | ||
| 3006 | ;; Run Rspec directly to avoid the Rubocop dependency in the | ||
| 3007 | ;; Rakefile | ||
| 3008 | (replace 'check | ||
| 3009 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 3010 | (when tests? | ||
| 3011 | (invoke "rspec"))))))) | ||
| 3012 | (propagated-inputs (list ruby-ffi)) | ||
| 3013 | (inputs (list libsodium)) | ||
| 3014 | (native-inputs (list bundler ruby-rspec)) | ||
| 3015 | (synopsis "Ruby FFI binding to libsodium") | ||
| 3016 | (description | ||
| 3017 | "This package provides Ruby FFI bindings to the Networking and | ||
| 3018 | Cryptography (NaCl) library, also known as libsodium. This provides a | ||
| 3019 | high-level toolkit for building cryptographic systems and protocols.") | ||
| 3020 | (home-page "https://github.com/RubyCrypto/rbnacl") | ||
| 3021 | (license license:expat))) | ||
| 3022 | |||
| 3023 | (define-public ruby-rbtree | ||
| 3024 | (package | ||
| 3025 | (name "ruby-rbtree") | ||
| 3026 | (version "0.4.6") | ||
| 3027 | (source (origin | ||
| 3028 | (method url-fetch) | ||
| 3029 | (uri (rubygems-uri "rbtree" version)) | ||
| 3030 | (sha256 | ||
| 3031 | (base32 | ||
| 3032 | "1z0h1x7fpkzxamnvbw1nry64qd6n0nqkwprfair29z94kd3a9vhl")))) | ||
| 3033 | (build-system ruby-build-system) | ||
| 3034 | (arguments | ||
| 3035 | (list | ||
| 3036 | #:phases | ||
| 3037 | #~(modify-phases %standard-phases | ||
| 3038 | (add-before 'build 'extconf | ||
| 3039 | (lambda _ | ||
| 3040 | (invoke "ruby" "extconf.rb") | ||
| 3041 | (invoke "make" "install" (string-append "prefix=" #$output)))) | ||
| 3042 | (replace 'check | ||
| 3043 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 3044 | (when tests? | ||
| 3045 | (invoke "ruby" "-I." "test.rb"))))))) | ||
| 3046 | (synopsis "Ruby implementation of a sorted associative collection") | ||
| 3047 | (description | ||
| 3048 | "This package provides a RBTree is a sorted associative collection that | ||
| 3049 | is implemented with a Red-Black Tree. It maps keys to values like a Hash, but | ||
| 3050 | maintains its elements in ascending key order. The interface is the almost | ||
| 3051 | identical to that of Hash.") | ||
| 3052 | (home-page "http://rbtree.rubyforge.org/") | ||
| 3053 | (license license:expat))) | ||
| 3054 | |||
| 3055 | (define-public ruby-rgl | ||
| 3056 | (package | ||
| 3057 | (name "ruby-rgl") | ||
| 3058 | (version "0.6.6") | ||
| 3059 | (source (origin | ||
| 3060 | (method url-fetch) | ||
| 3061 | (uri (rubygems-uri "rgl" version)) | ||
| 3062 | (sha256 | ||
| 3063 | (base32 | ||
| 3064 | "0dji1k9knrf8cxm5psd3pgd9i8f7cfq182jwjpi1pwxw15axf496")))) | ||
| 3065 | (build-system ruby-build-system) | ||
| 3066 | (arguments | ||
| 3067 | (list | ||
| 3068 | #:phases | ||
| 3069 | #~(modify-phases %standard-phases | ||
| 3070 | (add-after 'unpack 'remove-unnecessary-dependencies | ||
| 3071 | (lambda _ | ||
| 3072 | (substitute* "Gemfile" | ||
| 3073 | ;; Caring about coverage is a not a packager's task but a | ||
| 3074 | ;; developer's | ||
| 3075 | ;;(("gem \"simplecov\"") "") | ||
| 3076 | ;; CodeClimate is an online service, and is unnecessary for | ||
| 3077 | ;; running the tests | ||
| 3078 | (("gem \"codeclimate-test-reporter\", .*") "\n"))))))) | ||
| 3079 | (native-inputs (list ruby-test-unit ruby-simplecov ruby-yard graphviz-minimal)) | ||
| 3080 | (propagated-inputs (list ruby-pairing-heap ruby-rexml ruby-stream)) | ||
| 3081 | (synopsis "Framework for graph data structures and algorithms") | ||
| 3082 | (description "RGL is a framework for graph data structures and algorithms. | ||
| 3083 | The design of the library is much influenced by the Boost Graph Library (BGL) | ||
| 3084 | which is written in C++.") | ||
| 3085 | (home-page "https://github.com/monora/rgl") | ||
| 3086 | (license license:bsd-2))) | ||
| 3087 | |||
| 3088 | (define-public ruby-hkdf | ||
| 3089 | (package | ||
| 3090 | (name "ruby-hkdf") | ||
| 3091 | (version "1.0.0") | ||
| 3092 | (source | ||
| 3093 | (origin | ||
| 3094 | (method git-fetch) | ||
| 3095 | (uri (git-reference | ||
| 3096 | (url "https://github.com/jtdowney/hkdf") | ||
| 3097 | (commit (string-append "v" version)))) | ||
| 3098 | (file-name (git-file-name name version)) | ||
| 3099 | (sha256 | ||
| 3100 | (base32 | ||
| 3101 | "1xqwdmxfnhagivwgb5v9ilwpb4jxlsqwj7pnj43d65zzg5m8p9r5")))) | ||
| 3102 | (build-system ruby-build-system) | ||
| 3103 | (arguments | ||
| 3104 | `(#:test-target "default")) | ||
| 3105 | (native-inputs | ||
| 3106 | (list ruby-rspec)) | ||
| 3107 | (synopsis "HMAC-based Key Derivation Function") | ||
| 3108 | (description | ||
| 3109 | "This package provides a Ruby implementation of RFC5869: @acronym{HKDF, | ||
| 3110 | HMAC-based Extract-and-Expand Key Derivation Function}. The goal of HKDF is to | ||
| 3111 | take some source key material and generate suitable cryptographic keys from it.") | ||
| 3112 | (home-page "https://github.com/jtdowney/hkdf") | ||
| 3113 | (license license:expat))) | ||
| 3114 | |||
| 3115 | (define-public ruby-nenv | ||
| 3116 | (package | ||
| 3117 | (name "ruby-nenv") | ||
| 3118 | (version "0.3.0") | ||
| 3119 | (source (origin | ||
| 3120 | (method url-fetch) | ||
| 3121 | (uri (rubygems-uri "nenv" version)) | ||
| 3122 | (sha256 | ||
| 3123 | (base32 | ||
| 3124 | "0r97jzknll9bhd8yyg2bngnnkj8rjhal667n7d32h8h7ny7nvpnr")))) | ||
| 3125 | (build-system ruby-build-system) | ||
| 3126 | (arguments | ||
| 3127 | `(#:tests? #f)) ; no tests included | ||
| 3128 | (native-inputs | ||
| 3129 | (list ruby-rspec bundler)) | ||
| 3130 | (synopsis "Ruby interface for modifying the environment") | ||
| 3131 | (description "Nenv provides a convenient wrapper for Ruby's ENV to modify | ||
| 3132 | and inspect the environment.") | ||
| 3133 | (home-page "https://github.com/e2/nenv") | ||
| 3134 | (license license:expat))) | ||
| 3135 | |||
| 3136 | (define-public ruby-ptools | ||
| 3137 | (package | ||
| 3138 | (name "ruby-ptools") | ||
| 3139 | (version "1.5.0") | ||
| 3140 | (source (origin | ||
| 3141 | (method url-fetch) | ||
| 3142 | (uri (rubygems-uri "ptools" version)) | ||
| 3143 | (sha256 | ||
| 3144 | (base32 | ||
| 3145 | "0damllbshkxycrwjv80sz78h76dw7r9z54d17mb5cbha1daq9q2d")))) | ||
| 3146 | (build-system ruby-build-system) | ||
| 3147 | (arguments | ||
| 3148 | (list | ||
| 3149 | #:test-target "spec:all" | ||
| 3150 | #:phases | ||
| 3151 | #~(modify-phases %standard-phases | ||
| 3152 | (add-after 'unpack 'patch | ||
| 3153 | (lambda _ | ||
| 3154 | (substitute* "Rakefile" | ||
| 3155 | ;; Don't require rubocop | ||
| 3156 | (("require 'rubocop/rake_task'") "") | ||
| 3157 | (("RuboCop::RakeTask.new") "") | ||
| 3158 | ;; Do not attempt to sign the gem. | ||
| 3159 | (("spec\\.signing_key = .*") "")) | ||
| 3160 | |||
| 3161 | (substitute* "spec/binary_spec.rb" | ||
| 3162 | (("/bin/ls") (which "ls")) | ||
| 3163 | (("/bin/cat") (which "cat")) | ||
| 3164 | (("/bin/chmod") (which "chmod")) | ||
| 3165 | (("/bin/df") (which "df")))))))) | ||
| 3166 | (native-inputs | ||
| 3167 | (list ruby-rspec)) | ||
| 3168 | (synopsis "Extra methods for Ruby's @code{File} class") | ||
| 3169 | (description | ||
| 3170 | "The @dfn{ptools} (power tools) library extends Ruby's core @code{File} | ||
| 3171 | class with many additional methods modelled after common POSIX tools, such as | ||
| 3172 | @code{File.which} for finding executables, @code{File.tail} to print the last | ||
| 3173 | lines of a file, @code{File.wc} to count words, and so on.") | ||
| 3174 | (home-page "https://github.com/djberg96/ptools") | ||
| 3175 | (license license:artistic2.0))) | ||
| 3176 | |||
| 3177 | (define-public ruby-permutation | ||
| 3178 | (package | ||
| 3179 | (name "ruby-permutation") | ||
| 3180 | (version "0.1.8") | ||
| 3181 | (source (origin | ||
| 3182 | (method url-fetch) | ||
| 3183 | (uri (rubygems-uri "permutation" version)) | ||
| 3184 | (sha256 | ||
| 3185 | (base32 | ||
| 3186 | "13crwk2vfbzv99czva7881027dbcnidihmvx2jc58z2vm3bp9sl8")))) | ||
| 3187 | (build-system ruby-build-system) | ||
| 3188 | (arguments | ||
| 3189 | `(#:phases | ||
| 3190 | (modify-phases %standard-phases | ||
| 3191 | (add-after 'unpack 'fix-rakefile | ||
| 3192 | (lambda _ | ||
| 3193 | (substitute* "Rakefile" | ||
| 3194 | (("require 'rake/gempackagetask'") | ||
| 3195 | "require 'rubygems/package_task'") | ||
| 3196 | (("include Config") "")))) | ||
| 3197 | (replace 'check | ||
| 3198 | (lambda _ | ||
| 3199 | (invoke "ruby" "-Ilib" "test/test.rb")))))) | ||
| 3200 | (synopsis "Library to perform operations with sequence permutations") | ||
| 3201 | (description "This package provides a Ruby library to perform different | ||
| 3202 | operations with permutations of sequences, such as strings and arrays.") | ||
| 3203 | (home-page "https://flori.github.io/permutation") | ||
| 3204 | (license license:gpl2))) ; GPL 2 only | ||
| 3205 | |||
| 3206 | (define-public ruby-shellany | ||
| 3207 | (package | ||
| 3208 | (name "ruby-shellany") | ||
| 3209 | (version "0.0.1") | ||
| 3210 | (source (origin | ||
| 3211 | (method url-fetch) | ||
| 3212 | (uri (rubygems-uri "shellany" version)) | ||
| 3213 | (sha256 | ||
| 3214 | (base32 | ||
| 3215 | "1ryyzrj1kxmnpdzhlv4ys3dnl2r5r3d2rs2jwzbnd1v96a8pl4hf")))) | ||
| 3216 | (build-system ruby-build-system) | ||
| 3217 | (arguments | ||
| 3218 | `(#:test-target "default" | ||
| 3219 | #:phases | ||
| 3220 | (modify-phases %standard-phases | ||
| 3221 | (add-after 'unpack 'fix-version-test | ||
| 3222 | (lambda _ | ||
| 3223 | (substitute* "spec/shellany_spec.rb" | ||
| 3224 | (("^RSpec") "require \"shellany\"\nRSpec"))))))) | ||
| 3225 | (native-inputs | ||
| 3226 | (list ruby-rspec ruby-nenv bundler)) | ||
| 3227 | (synopsis "Capture command output") | ||
| 3228 | (description "Shellany is a Ruby library providing functions to capture | ||
| 3229 | the output produced by running shell commands.") | ||
| 3230 | (home-page "https://rubygems.org/gems/shellany") | ||
| 3231 | (license license:expat))) | ||
| 3232 | |||
| 3233 | (define-public ruby-notiffany | ||
| 3234 | (package | ||
| 3235 | (name "ruby-notiffany") | ||
| 3236 | (version "0.1.3") | ||
| 3237 | (source (origin | ||
| 3238 | (method url-fetch) | ||
| 3239 | (uri (rubygems-uri "notiffany" version)) | ||
| 3240 | (sha256 | ||
| 3241 | (base32 | ||
| 3242 | "0f47h3bmg1apr4x51szqfv3rh2vq58z3grh4w02cp3bzbdh6jxnk")))) | ||
| 3243 | (build-system ruby-build-system) | ||
| 3244 | ;; Tests are not included in the gem. | ||
| 3245 | (arguments `(#:tests? #f)) | ||
| 3246 | (propagated-inputs | ||
| 3247 | (list ruby-shellany ruby-nenv)) | ||
| 3248 | (native-inputs | ||
| 3249 | (list bundler)) | ||
| 3250 | (synopsis "Wrapper library for notification libraries") | ||
| 3251 | (description "Notiffany is a Ruby wrapper library for notification | ||
| 3252 | libraries such as Libnotify.") | ||
| 3253 | (home-page "https://github.com/guard/notiffany") | ||
| 3254 | (license license:expat))) | ||
| 3255 | |||
| 3256 | (define-public ruby-forking-test-runner | ||
| 3257 | (package | ||
| 3258 | (name "ruby-forking-test-runner") | ||
| 3259 | (version "1.6.0") | ||
| 3260 | (home-page "https://github.com/grosser/forking_test_runner") | ||
| 3261 | (source (origin | ||
| 3262 | (method git-fetch) | ||
| 3263 | (uri (git-reference (url home-page) | ||
| 3264 | (commit (string-append "v" version)))) | ||
| 3265 | (file-name (git-file-name name version)) | ||
| 3266 | (sha256 | ||
| 3267 | (base32 | ||
| 3268 | "1mrglzkj2nrgisccf2f30zbfmcs0awv1g3lw994b2az90fl39x8m")))) | ||
| 3269 | (build-system ruby-build-system) | ||
| 3270 | (arguments | ||
| 3271 | '(#:test-target "spec" | ||
| 3272 | ;; FIXME: ActiveRecord depends on sqlite3 1.3.6, but Guix has | ||
| 3273 | ;; 1.4.1, which in turn breaks the tests that use ActiveRecord. | ||
| 3274 | #:tests? #f | ||
| 3275 | #:phases (modify-phases %standard-phases | ||
| 3276 | (replace 'replace-git-ls-files | ||
| 3277 | (lambda _ | ||
| 3278 | (substitute* "forking_test_runner.gemspec" | ||
| 3279 | (("`git ls-files lib/ bin/ MIT-LICENSE`") | ||
| 3280 | "`find lib/ bin/ MIT-LICENSE -type f | sort`")))) | ||
| 3281 | (add-before 'check 'remove-version-constraints | ||
| 3282 | (lambda _ | ||
| 3283 | ;; Ignore hard coded version constraints for the tests. | ||
| 3284 | (delete-file "Gemfile.lock"))) | ||
| 3285 | (add-before 'check 'set-HOME | ||
| 3286 | (lambda _ | ||
| 3287 | ;; Many tests invoke Bundler, and fails when Bundler | ||
| 3288 | ;; warns that /homeless-shelter does not exist. | ||
| 3289 | (setenv "HOME" "/tmp")))))) | ||
| 3290 | (native-inputs | ||
| 3291 | (list ruby-activerecord ruby-bump ruby-rspec ruby-sqlite3 ruby-wwtd)) | ||
| 3292 | (propagated-inputs | ||
| 3293 | (list ruby-parallel-tests)) | ||
| 3294 | (synopsis "Run every test in a fork") | ||
| 3295 | (description | ||
| 3296 | "This package is a wrapper around @code{parallel_tests} that runs every | ||
| 3297 | test in a fork to avoid pollution and get clean output per test.") | ||
| 3298 | (license license:expat))) | ||
| 3299 | |||
| 3300 | (define-public ruby-formatador | ||
| 3301 | (package | ||
| 3302 | (name "ruby-formatador") | ||
| 3303 | (version "0.2.5") | ||
| 3304 | (source (origin | ||
| 3305 | (method url-fetch) | ||
| 3306 | (uri (rubygems-uri "formatador" version)) | ||
| 3307 | (sha256 | ||
| 3308 | (base32 | ||
| 3309 | "1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0")))) | ||
| 3310 | (build-system ruby-build-system) | ||
| 3311 | ;; Circular dependency: Tests require ruby-shindo, which requires | ||
| 3312 | ;; ruby-formatador at runtime. | ||
| 3313 | (arguments `(#:tests? #f)) | ||
| 3314 | (synopsis "Ruby library to format text on stdout") | ||
| 3315 | (description "Formatador is a Ruby library to format text printed to the | ||
| 3316 | standard output stream.") | ||
| 3317 | (home-page "https://github.com/geemus/formatador") | ||
| 3318 | (license license:expat))) | ||
| 3319 | |||
| 3320 | (define-public ruby-fuubar | ||
| 3321 | (package | ||
| 3322 | (name "ruby-fuubar") | ||
| 3323 | (version "2.3.2") | ||
| 3324 | (source | ||
| 3325 | (origin | ||
| 3326 | ;; Fetch from the git repository, as the gem package doesn't include | ||
| 3327 | ;; the tests. | ||
| 3328 | (method git-fetch) | ||
| 3329 | (uri (git-reference | ||
| 3330 | (url "https://github.com/thekompanee/fuubar") | ||
| 3331 | (commit (string-append "releases/v" version)))) | ||
| 3332 | (file-name (git-file-name name version)) | ||
| 3333 | (sha256 | ||
| 3334 | (base32 | ||
| 3335 | "0jm1x2xp13csbnadixaikj7mlkp5yk4byx51npm56zi13izp7259")))) | ||
| 3336 | (build-system ruby-build-system) | ||
| 3337 | (arguments | ||
| 3338 | '(;; TODO: Some tests fail, unsure why. | ||
| 3339 | ;; 21 examples, 7 failures | ||
| 3340 | #:tests? #f | ||
| 3341 | #:phases | ||
| 3342 | (modify-phases %standard-phases | ||
| 3343 | (add-before 'build 'delete-certificate | ||
| 3344 | (lambda _ | ||
| 3345 | ;; Remove 's.cert_chain' as we do not build with a private key | ||
| 3346 | (substitute* "fuubar.gemspec" | ||
| 3347 | ((".*cert_chain.*") "") | ||
| 3348 | ((".*signing_key.*") "")))) | ||
| 3349 | (replace 'check | ||
| 3350 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 3351 | (when tests? | ||
| 3352 | (invoke "rspec"))))))) | ||
| 3353 | (native-inputs | ||
| 3354 | (list bundler)) | ||
| 3355 | (propagated-inputs | ||
| 3356 | (list ruby-rspec-core ruby-progressbar)) | ||
| 3357 | (synopsis "Fuubar is an RSpec formatter that uses a progress bar") | ||
| 3358 | (description | ||
| 3359 | "Fuubar is an RSpec formatter that uses a progress bar instead of a | ||
| 3360 | string of letters and dots as feedback. It also stops on the first test | ||
| 3361 | failure.") | ||
| 3362 | (home-page "https://github.com/thekompanee/fuubar") | ||
| 3363 | (license license:expat))) | ||
| 3364 | |||
| 3365 | (define-public ruby-haml | ||
| 3366 | (package | ||
| 3367 | (name "ruby-haml") | ||
| 3368 | (version "5.0.4") | ||
| 3369 | (source | ||
| 3370 | (origin | ||
| 3371 | (method url-fetch) | ||
| 3372 | (uri (rubygems-uri "haml" version)) | ||
| 3373 | (sha256 | ||
| 3374 | (base32 | ||
| 3375 | "1q0a9fvqh8kn6wm97fcks6qzbjd400bv8bx748w8v87m7p4klhac")))) | ||
| 3376 | (build-system ruby-build-system) | ||
| 3377 | (arguments | ||
| 3378 | '(#:tests? #f)) ; No included tests | ||
| 3379 | (propagated-inputs | ||
| 3380 | (list ruby-tilt ruby-temple)) | ||
| 3381 | (synopsis "Haml is a Ruby library to generate HTML documents") | ||
| 3382 | (description | ||
| 3383 | "@acronym{Haml, HTML Abstraction Markup Language} is a layer on top of | ||
| 3384 | HTML or XML that is designed to express the structure of documents using | ||
| 3385 | indentation rather than closing tags. It was originally envisioned as a | ||
| 3386 | plugin for Ruby on Rails, but it can function as a stand-alone templating | ||
| 3387 | engine.") | ||
| 3388 | (home-page "https://haml.info/") | ||
| 3389 | (license license:expat))) | ||
| 3390 | |||
| 3391 | (define-public ruby-hamster | ||
| 3392 | (package | ||
| 3393 | (name "ruby-hamster") | ||
| 3394 | (version "3.0.0") | ||
| 3395 | (source | ||
| 3396 | (origin | ||
| 3397 | (method url-fetch) | ||
| 3398 | (uri (rubygems-uri "hamster" version)) | ||
| 3399 | (sha256 | ||
| 3400 | (base32 | ||
| 3401 | "1n1lsh96vnyc1pnzyd30f9prcsclmvmkdb3nm5aahnyizyiy6lar")))) | ||
| 3402 | (build-system ruby-build-system) | ||
| 3403 | (arguments | ||
| 3404 | (list | ||
| 3405 | ;; Only supports Ruby 2 currently | ||
| 3406 | #:ruby ruby-2.7 | ||
| 3407 | #:phases | ||
| 3408 | #~(modify-phases %standard-phases | ||
| 3409 | (add-after 'unpack 'remove-unnecessary-dependencies | ||
| 3410 | (lambda _ | ||
| 3411 | ;; pry is a debugging tool, and is unnecessary when running the | ||
| 3412 | ;; tests | ||
| 3413 | (substitute* "spec/lib/hamster/vector/insert_spec.rb" | ||
| 3414 | (("require 'pry'") "")) | ||
| 3415 | (substitute* "spec/spec_helper.rb" | ||
| 3416 | (("require \"pry\"") "") | ||
| 3417 | ;; CodeClimate is an online service, and is unnecessary for | ||
| 3418 | ;; running the tests | ||
| 3419 | (("require \"codeclimate-test-reporter\"") "") | ||
| 3420 | (("CodeClimate.*\n") "")))) | ||
| 3421 | ;; No Rakefile is included, so run rspec directly. | ||
| 3422 | (replace 'check | ||
| 3423 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 3424 | (when tests? | ||
| 3425 | (invoke "ruby" (which "rspec")))))))) | ||
| 3426 | (propagated-inputs | ||
| 3427 | (list ruby-concurrent)) | ||
| 3428 | (native-inputs | ||
| 3429 | (list ruby-rspec)) | ||
| 3430 | (synopsis "Efficient, immutable, thread-safe collection classes for Ruby") | ||
| 3431 | (description | ||
| 3432 | "Hamster provides 6 persistent data structures: @code{Hash}, @code{Vector}, | ||
| 3433 | @code{Set}, @code{SortedSet}, @code{List}, and @code{Deque} (which works as an | ||
| 3434 | immutable queue or stack).") | ||
| 3435 | (home-page "https://github.com/hamstergem/hamster") | ||
| 3436 | (license license:expat))) | ||
| 3437 | |||
| 3438 | (define-public ruby-hashdiff | ||
| 3439 | (package | ||
| 3440 | (name "ruby-hashdiff") | ||
| 3441 | (version "1.0.1") | ||
| 3442 | (source | ||
| 3443 | (origin | ||
| 3444 | (method url-fetch) | ||
| 3445 | (uri (rubygems-uri "hashdiff" version)) | ||
| 3446 | (sha256 | ||
| 3447 | (base32 | ||
| 3448 | "1nynpl0xbj0nphqx1qlmyggq58ms1phf5i03hk64wcc0a17x1m1c")))) | ||
| 3449 | (build-system ruby-build-system) | ||
| 3450 | (arguments | ||
| 3451 | '(#:phases | ||
| 3452 | (modify-phases %standard-phases | ||
| 3453 | ;; Run tests directly via rspec to avoid depending on rubocop. | ||
| 3454 | (replace 'check | ||
| 3455 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 3456 | (when tests? | ||
| 3457 | (invoke "rspec"))))))) | ||
| 3458 | (native-inputs | ||
| 3459 | (list bundler ruby-rspec-2)) | ||
| 3460 | (synopsis "HashDiff computes the smallest difference between two hashes") | ||
| 3461 | (description | ||
| 3462 | "HashDiff is a Ruby library to compute the smallest difference between | ||
| 3463 | two hashes.") | ||
| 3464 | (home-page "https://github.com/liufengyun/hashdiff") | ||
| 3465 | (license license:expat))) | ||
| 3466 | |||
| 3467 | (define-public ruby-hydra-minimal | ||
| 3468 | ;; No releases yet. | ||
| 3469 | (let ((commit "a4cab705a8a281e4356cb6a05a1946443ad9d53b") | ||
| 3470 | (revision "1")) | ||
| 3471 | (package | ||
| 3472 | (name "ruby-hydra-minimal") | ||
| 3473 | (version (git-version "0.0.0" revision commit)) | ||
| 3474 | (home-page "https://github.com/hyphenation/hydra") | ||
| 3475 | (source (origin | ||
| 3476 | (method git-fetch) | ||
| 3477 | (uri (git-reference (url home-page) (commit commit))) | ||
| 3478 | (file-name (git-file-name name version)) | ||
| 3479 | ;; byebug is a non-essential debugging utility that brings in | ||
| 3480 | ;; many dependencies. | ||
| 3481 | (patches (search-patches "ruby-hydra-minimal-no-byebug.patch")) | ||
| 3482 | (sha256 | ||
| 3483 | (base32 | ||
| 3484 | "1swzab7i4cqk1bck7p5m3bh526jh0v6m9qq720r3270zbjc8x8z3")))) | ||
| 3485 | (build-system ruby-build-system) | ||
| 3486 | (arguments | ||
| 3487 | ;; Avoid rspec dependency. | ||
| 3488 | '(#:tests? #f)) | ||
| 3489 | (synopsis "Ruby hyphenation patterns") | ||
| 3490 | (description | ||
| 3491 | "ruby-hydra-minimal is a Ruby library for working with hyphenation patterns. | ||
| 3492 | It is a low-dependency variant of ruby-hydra.") | ||
| 3493 | (license license:expat)))) | ||
| 3494 | |||
| 3495 | ;; Pinned variant for use by texlive | ||
| 3496 | (define-public ruby-hydra-minimal/pinned | ||
| 3497 | (let ((commit "5abfa378743756ae4d9306cc134bcc482f5c9525") | ||
| 3498 | (revision "0")) | ||
| 3499 | (hidden-package | ||
| 3500 | (package | ||
| 3501 | (inherit ruby-hydra-minimal) | ||
| 3502 | (version (git-version "0.0" revision commit)) | ||
| 3503 | (source (origin | ||
| 3504 | (method git-fetch) | ||
| 3505 | (uri (git-reference | ||
| 3506 | (url "https://github.com/hyphenation/hydra") | ||
| 3507 | (commit commit))) | ||
| 3508 | (file-name (git-file-name "ruby-hydra-minimal" version)) | ||
| 3509 | ;; byebug is a non-essential debugging utility that brings in | ||
| 3510 | ;; many dependencies. | ||
| 3511 | (patches (search-patches "ruby-hydra-minimal-no-byebug.patch")) | ||
| 3512 | (sha256 | ||
| 3513 | (base32 | ||
| 3514 | "1cik398l2765y3d9sdhjzki3303hkry58ac6jlkiy7iy62nm529f")))) | ||
| 3515 | (arguments | ||
| 3516 | (list | ||
| 3517 | #:tests? #f | ||
| 3518 | #:ruby ruby-2.7)))))) | ||
| 3519 | |||
| 3520 | (define-public ruby-hydra | ||
| 3521 | (package | ||
| 3522 | (inherit ruby-hydra-minimal) | ||
| 3523 | (name "ruby-hydra") | ||
| 3524 | (arguments | ||
| 3525 | (list | ||
| 3526 | #:phases | ||
| 3527 | #~(modify-phases %standard-phases | ||
| 3528 | (add-after 'unpack 'make-files-writable | ||
| 3529 | (lambda _ | ||
| 3530 | (for-each make-file-writable (find-files ".")))) | ||
| 3531 | (replace 'check | ||
| 3532 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 3533 | (when tests? | ||
| 3534 | (invoke "rspec"))))))) | ||
| 3535 | (native-inputs | ||
| 3536 | (list ruby-rspec)) | ||
| 3537 | (description | ||
| 3538 | "ruby-hydra is a Ruby library for working with hyphenation patterns."))) | ||
| 3539 | |||
| 3540 | (define-public ruby-shindo | ||
| 3541 | (package | ||
| 3542 | (name "ruby-shindo") | ||
| 3543 | (version "0.3.11") | ||
| 3544 | (source (origin | ||
| 3545 | (method url-fetch) | ||
| 3546 | (uri (rubygems-uri "shindo" version)) | ||
| 3547 | (sha256 | ||
| 3548 | (base32 | ||
| 3549 | "1wccg3a4g3agfyszipkdnbcgsazcfwdbz1gv51q8m17m9plvpzdp")))) | ||
| 3550 | (build-system ruby-build-system) | ||
| 3551 | (arguments | ||
| 3552 | (list | ||
| 3553 | #:test-target "tests" | ||
| 3554 | #:phases | ||
| 3555 | #~(modify-phases %standard-phases | ||
| 3556 | (add-after 'unpack 'fix-tests | ||
| 3557 | (lambda _ | ||
| 3558 | (substitute* "tests/tests_helper.rb" | ||
| 3559 | (("-rrubygems") "")))) | ||
| 3560 | ;; Move the 'check phase to after 'install, to use installed shindo. | ||
| 3561 | (delete 'check) | ||
| 3562 | (add-after 'install 'configure-tests | ||
| 3563 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 3564 | (when tests? | ||
| 3565 | (setenv "GEM_PATH" | ||
| 3566 | (string-append | ||
| 3567 | (getenv "GEM_PATH") ":" | ||
| 3568 | #$output "/lib/ruby/vendor_ruby")) | ||
| 3569 | (setenv "PATH" | ||
| 3570 | (string-append | ||
| 3571 | (getenv "PATH") ":" #$output "/bin"))))) | ||
| 3572 | (add-after 'configure-tests 'check | ||
| 3573 | (assoc-ref %standard-phases 'check))))) | ||
| 3574 | (propagated-inputs | ||
| 3575 | (list ruby-formatador)) | ||
| 3576 | (synopsis "Simple depth first Ruby testing") | ||
| 3577 | (description "Shindo is a simple depth first testing library for Ruby.") | ||
| 3578 | (home-page "https://github.com/geemus/shindo") | ||
| 3579 | (license license:expat))) | ||
| 3580 | |||
| 3581 | (define-public ruby-rubygems-tasks | ||
| 3582 | (package | ||
| 3583 | (name "ruby-rubygems-tasks") | ||
| 3584 | (version "0.2.5") | ||
| 3585 | (source (origin | ||
| 3586 | (method url-fetch) | ||
| 3587 | (uri (rubygems-uri "rubygems-tasks" version)) | ||
| 3588 | (sha256 | ||
| 3589 | (base32 | ||
| 3590 | "1x3sz3n2dlknd3v7w1mrq6f0ag6pwzhjvg7z29p75w3p42ma1gbx")))) | ||
| 3591 | (build-system ruby-build-system) | ||
| 3592 | ;; Tests need Internet access. | ||
| 3593 | (arguments `(#:tests? #f)) | ||
| 3594 | (synopsis "Rake tasks for managing and releasing Ruby Gems") | ||
| 3595 | (description "Rubygems-task provides Rake tasks for managing and releasing | ||
| 3596 | Ruby Gems.") | ||
| 3597 | (home-page "https://github.com/postmodern/rubygems-tasks") | ||
| 3598 | (license license:expat))) | ||
| 3599 | |||
| 3600 | (define-public ruby-rubyzip | ||
| 3601 | (package | ||
| 3602 | (name "ruby-rubyzip") | ||
| 3603 | (version "2.3.2") | ||
| 3604 | (source (origin | ||
| 3605 | (method git-fetch) | ||
| 3606 | (uri (git-reference | ||
| 3607 | (url "https://github.com/rubyzip/rubyzip") | ||
| 3608 | (commit (string-append "v" version)))) | ||
| 3609 | (file-name (git-file-name name version)) | ||
| 3610 | (sha256 | ||
| 3611 | (base32 | ||
| 3612 | "03p8c990n6c1r4g64w0vv7z2iaswisl07l2f1lbh1s78cvmlmfxx")))) | ||
| 3613 | (build-system ruby-build-system) | ||
| 3614 | (arguments | ||
| 3615 | '(#:phases | ||
| 3616 | (modify-phases %standard-phases | ||
| 3617 | (add-after 'unpack 'disable-rubocop | ||
| 3618 | (lambda _ | ||
| 3619 | (substitute* "Rakefile" | ||
| 3620 | (("require 'rubocop/rake_task'") "") | ||
| 3621 | (("RuboCop::RakeTask.new") "")))) | ||
| 3622 | (add-before 'check 'patch-tests | ||
| 3623 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 3624 | (substitute* "test/gentestfiles.rb" | ||
| 3625 | (("/usr/bin/zip") (which "zip"))))) | ||
| 3626 | (add-after 'patch-source-shebangs 'unpatch-some-source-shebangs | ||
| 3627 | (lambda _ | ||
| 3628 | ;; The tests compare zipped files with data test files; since the | ||
| 3629 | ;; zip files do not have their shebangs patched, the data files | ||
| 3630 | ;; compared with their extracted version must also be left | ||
| 3631 | ;; un-patched. | ||
| 3632 | (substitute* (find-files "test/data" "\\.(txt|rb)$") | ||
| 3633 | (((which "ruby")) | ||
| 3634 | "/usr/bin/env ruby"))))))) | ||
| 3635 | (native-inputs | ||
| 3636 | (list bundler ruby-simplecov zip unzip)) | ||
| 3637 | (synopsis "Ruby module is for reading and writing zip files") | ||
| 3638 | (description | ||
| 3639 | "The rubyzip module provides ways to read from and create zip files.") | ||
| 3640 | (home-page "https://github.com/rubyzip/rubyzip") | ||
| 3641 | (license license:bsd-2))) | ||
| 3642 | |||
| 3643 | (define-public ruby-silent-stream | ||
| 3644 | (package | ||
| 3645 | (name "ruby-silent-stream") | ||
| 3646 | (version "1.0.6") | ||
| 3647 | (source (origin | ||
| 3648 | (method url-fetch) | ||
| 3649 | (uri (rubygems-uri "silent_stream" version)) | ||
| 3650 | (sha256 | ||
| 3651 | (base32 | ||
| 3652 | "10381fpvjzfjvhgfyv700607fpa29firgf52w5w5536m4fh6x63m")))) | ||
| 3653 | (build-system ruby-build-system) | ||
| 3654 | (synopsis "ActiveSupport stream silencing without ActiveSupport") | ||
| 3655 | (description "SilentStream is an extraction of some parts of | ||
| 3656 | ActiveSupport's Kernel Reporting Core Extensions around silencing IO | ||
| 3657 | streams.") | ||
| 3658 | (home-page "https://github.com/pboling/silent_stream") | ||
| 3659 | (license license:expat))) | ||
| 3660 | |||
| 3661 | (define-public ruby-simplecov-lcov | ||
| 3662 | (package | ||
| 3663 | (name "ruby-simplecov-lcov") | ||
| 3664 | (version "0.8.0") | ||
| 3665 | (source (origin | ||
| 3666 | (method url-fetch) | ||
| 3667 | (uri (rubygems-uri "simplecov-lcov" version)) | ||
| 3668 | (sha256 | ||
| 3669 | (base32 | ||
| 3670 | "1h8kswnshgb9zidvc88f4zjy4gflgz3854sx9wrw8ppgnwfg6581")))) | ||
| 3671 | (build-system ruby-build-system) | ||
| 3672 | ;; The test suite fails half of its tests; it seems to rely on older | ||
| 3673 | ;; versions of simplecov, rspec, possibly others (see: | ||
| 3674 | ;; https://github.com/fortissimo1997/simplecov-lcov/issues/29). | ||
| 3675 | (arguments (list #:tests? #f | ||
| 3676 | #:test-target "spec")) | ||
| 3677 | (native-inputs | ||
| 3678 | (list ruby-activesupport | ||
| 3679 | ruby-coveralls | ||
| 3680 | ruby-rspec | ||
| 3681 | ruby-simplecov)) | ||
| 3682 | (synopsis "SimpleCov formatter to generate a lcov style coverage") | ||
| 3683 | (description "This package provides a SimpleCov formatter to generate a | ||
| 3684 | lcov-style coverage report.") | ||
| 3685 | (home-page "https://github.com/fortissimo1997/simplecov-lcov") | ||
| 3686 | (license license:expat))) | ||
| 3687 | |||
| 3688 | (define-public ruby-snaky-hash | ||
| 3689 | (package | ||
| 3690 | (name "ruby-snaky-hash") | ||
| 3691 | (version "2.0.1") | ||
| 3692 | (source (origin | ||
| 3693 | (method git-fetch) | ||
| 3694 | (uri (git-reference ;for tests | ||
| 3695 | (url "https://gitlab.com/oauth-xx/snaky_hash") | ||
| 3696 | (commit (string-append "v" version)))) | ||
| 3697 | (file-name (git-file-name name version)) | ||
| 3698 | (sha256 | ||
| 3699 | (base32 | ||
| 3700 | "0zmixxzi2g2d75zii65bq037j4g67p25l6aqddbmmwizspsp5az6")))) | ||
| 3701 | (build-system ruby-build-system) | ||
| 3702 | (arguments | ||
| 3703 | (list #:phases #~(modify-phases %standard-phases | ||
| 3704 | (add-after 'unpack 'relax-requirements | ||
| 3705 | (lambda _ | ||
| 3706 | (substitute* "Gemfile" | ||
| 3707 | (("^linting = .*") | ||
| 3708 | "linting = false\n") | ||
| 3709 | (("^coverage = .*") | ||
| 3710 | "coverage = false\n") | ||
| 3711 | (("^debug = .*") | ||
| 3712 | "debug = false\n")) | ||
| 3713 | (substitute* "spec/spec_helper.rb" | ||
| 3714 | (("^RUN_COVERAGE = .*") | ||
| 3715 | "RUN_COVERAGE = false\n") | ||
| 3716 | (("^ALL_FORMATTERS = .*") | ||
| 3717 | "ALL_FORMATTERS = false\n")))) | ||
| 3718 | (add-before 'build 'drop-signing-key-requirement | ||
| 3719 | (lambda _ | ||
| 3720 | (substitute* "snaky_hash.gemspec" | ||
| 3721 | (("spec.signing_key =.*") | ||
| 3722 | "spec.signing_key = nil"))))))) | ||
| 3723 | (native-inputs (list ruby-rspec ruby-rspec-block-is-expected)) | ||
| 3724 | (propagated-inputs (list ruby-hashie ruby-version-gem)) | ||
| 3725 | (synopsis "Hash keys and look-ups normalization Ruby library") | ||
| 3726 | (description "The SnakyHash Ruby library provides classes for normalizing | ||
| 3727 | hash keys and look-ups, and a pseudo-object interface.") | ||
| 3728 | (home-page "https://gitlab.com/oauth-xx/snaky_hash") | ||
| 3729 | (license license:expat))) | ||
| 3730 | |||
| 3731 | (define-public ruby-useragent | ||
| 3732 | (package | ||
| 3733 | (name "ruby-useragent") | ||
| 3734 | (version "0.16.10") | ||
| 3735 | (source (origin | ||
| 3736 | (method url-fetch) | ||
| 3737 | (uri (rubygems-uri "useragent" version)) | ||
| 3738 | (sha256 | ||
| 3739 | (base32 | ||
| 3740 | "1fv5kvq494swy0p17h9qya9r50w15xsi9zmvhzb8gh55kq6ki50p")))) | ||
| 3741 | (build-system ruby-build-system) | ||
| 3742 | (arguments | ||
| 3743 | '(#:tests? #f)) ; no test suite | ||
| 3744 | (synopsis "HTTP user agent parser for Ruby") | ||
| 3745 | (description "UserAgent is a Ruby library that parses and compares HTTP | ||
| 3746 | User Agents.") | ||
| 3747 | (home-page "https://github.com/gshutler/useragent") | ||
| 3748 | (license license:expat))) | ||
| 3749 | |||
| 3750 | (define-public ruby-backports | ||
| 3751 | (package | ||
| 3752 | (name "ruby-backports") | ||
| 3753 | (version "3.11.4") | ||
| 3754 | (source | ||
| 3755 | (origin | ||
| 3756 | (method url-fetch) | ||
| 3757 | (uri (rubygems-uri "backports" version)) | ||
| 3758 | (sha256 | ||
| 3759 | (base32 | ||
| 3760 | "1hshjxww2h7s0dk57njrygq4zpp0nlqrjfya7zwm27iq3rhc3y8g")))) | ||
| 3761 | (build-system ruby-build-system) | ||
| 3762 | (arguments | ||
| 3763 | '(;; TODO: This should be default, but there is one test failure | ||
| 3764 | #:test-target "all_spec")) | ||
| 3765 | (native-inputs | ||
| 3766 | (list ruby-mspec ruby-activesupport)) | ||
| 3767 | (synopsis "Backports of the features in newer Ruby versions") | ||
| 3768 | (description | ||
| 3769 | "Backports enables more compatibility across Ruby versions by providing | ||
| 3770 | backports of some features.") | ||
| 3771 | (home-page "https://github.com/marcandre/backports") | ||
| 3772 | (license license:expat))) | ||
| 3773 | |||
| 3774 | (define-public ruby-bacon | ||
| 3775 | (package | ||
| 3776 | (name "ruby-bacon") | ||
| 3777 | (version "1.2.0") | ||
| 3778 | (source (origin | ||
| 3779 | (method url-fetch) | ||
| 3780 | (uri (rubygems-uri "bacon" version)) | ||
| 3781 | (sha256 | ||
| 3782 | (base32 | ||
| 3783 | "1f06gdj77bmwzc1k5iragl1595hbn67yc7sqvs56ca8plrr2vmai")))) | ||
| 3784 | (build-system ruby-build-system) | ||
| 3785 | (synopsis "Small RSpec clone") | ||
| 3786 | (description "Bacon is a small RSpec clone providing all essential | ||
| 3787 | features.") | ||
| 3788 | (home-page "https://github.com/chneukirchen/bacon") | ||
| 3789 | (license license:expat))) | ||
| 3790 | |||
| 3791 | (define-public ruby-bacon-bits | ||
| 3792 | (package | ||
| 3793 | (name "ruby-bacon-bits") | ||
| 3794 | (version "0.1.0") | ||
| 3795 | (source | ||
| 3796 | (origin | ||
| 3797 | (method url-fetch) | ||
| 3798 | (uri (rubygems-uri "bacon-bits" version)) | ||
| 3799 | (sha256 | ||
| 3800 | (base32 | ||
| 3801 | "1ghpj8ja94lhi8rgi872hqk4fd2amz2k7g9znd64z5dj7v6l0dmx")))) | ||
| 3802 | (build-system ruby-build-system) | ||
| 3803 | (arguments | ||
| 3804 | ;; No tests | ||
| 3805 | '(#:tests? #f)) | ||
| 3806 | (propagated-inputs (list ruby-bacon)) | ||
| 3807 | (synopsis "Extensions to Bacon, for disabling tests, before and after | ||
| 3808 | blocks and more") | ||
| 3809 | (description | ||
| 3810 | "This extends the bacon testing framework with useful extensions to | ||
| 3811 | disable tests, have before and after blocks that run once and more.") | ||
| 3812 | (home-page "https://github.com/cldwalker/bacon-bits") | ||
| 3813 | (license license:expat))) | ||
| 3814 | |||
| 3815 | (define-public ruby-bacon-colored-output | ||
| 3816 | (package | ||
| 3817 | (name "ruby-bacon-colored-output") | ||
| 3818 | (version "1.1.1") | ||
| 3819 | (source | ||
| 3820 | (origin | ||
| 3821 | (method url-fetch) | ||
| 3822 | (uri (rubygems-uri "bacon-colored_output" version)) | ||
| 3823 | (sha256 | ||
| 3824 | (base32 | ||
| 3825 | "1znyh3vkfdlmf19p3k4zip88ibym41dn5g4p4n5hmks2iznb7qpx")))) | ||
| 3826 | (build-system ruby-build-system) | ||
| 3827 | (arguments | ||
| 3828 | '(;; No included tests | ||
| 3829 | #:tests? #f)) | ||
| 3830 | (propagated-inputs | ||
| 3831 | (list ruby-bacon)) | ||
| 3832 | (synopsis "Colored output for Bacon test framework") | ||
| 3833 | (description | ||
| 3834 | "This package adds color through ANSI escape codes to Bacon test | ||
| 3835 | output.") | ||
| 3836 | (home-page "https://github.com/whitequark/bacon-colored_output") | ||
| 3837 | (license license:expat))) | ||
| 3838 | |||
| 3839 | (define-public ruby-bake | ||
| 3840 | (package | ||
| 3841 | (name "ruby-bake") | ||
| 3842 | (version "0.18.2") | ||
| 3843 | (source (origin | ||
| 3844 | (method git-fetch) ;for tests | ||
| 3845 | (uri (git-reference | ||
| 3846 | (url "https://github.com/ioquatix/bake") | ||
| 3847 | (commit (string-append "v" version)))) | ||
| 3848 | (file-name (git-file-name name version)) | ||
| 3849 | (sha256 | ||
| 3850 | (base32 | ||
| 3851 | "19yi1fxzz9n580gig3p3j6nxbgcfcassa6b0q07jkqrzxdqn7xhn")))) | ||
| 3852 | (build-system ruby-build-system) | ||
| 3853 | (arguments | ||
| 3854 | (list #:phases | ||
| 3855 | #~(modify-phases %standard-phases | ||
| 3856 | (add-after 'unpack 'sanitize-dependencies | ||
| 3857 | (lambda _ | ||
| 3858 | ;; These dependencies are not needed to build and run tests | ||
| 3859 | ;; and contain circular dependencies. | ||
| 3860 | (substitute* "gems.rb" | ||
| 3861 | ((".*'bake-modernize'.*") "") | ||
| 3862 | ((".*'bake-gem'.*") "") | ||
| 3863 | ((".*'bake-github-pages'.*") "") | ||
| 3864 | ((".*'utopia-project'.*") "")))) | ||
| 3865 | (add-before 'build 'drop-signing-key-requirement | ||
| 3866 | (lambda _ | ||
| 3867 | (substitute* "bake.gemspec" | ||
| 3868 | (("spec.signing_key =.*") | ||
| 3869 | "spec.signing_key = nil")))) | ||
| 3870 | (replace 'check | ||
| 3871 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 3872 | (when tests? | ||
| 3873 | (invoke "rspec"))))))) | ||
| 3874 | (native-inputs (list ruby-covered ruby-rspec)) | ||
| 3875 | (propagated-inputs (list ruby-samovar)) | ||
| 3876 | (synopsis "Replacement for rake with a simpler syntax") | ||
| 3877 | (description "Bake is a task execution tool, inspired by Rake, but | ||
| 3878 | codifying many of the use cases which are typically implemented in an ad-hoc | ||
| 3879 | manner.") | ||
| 3880 | (home-page "https://github.com/ioquatix/bake") | ||
| 3881 | (license license:expat))) | ||
| 3882 | |||
| 3883 | (define-public ruby-bake-test | ||
| 3884 | (package | ||
| 3885 | (name "ruby-bake-test") | ||
| 3886 | (version "0.2.0") | ||
| 3887 | (source (origin | ||
| 3888 | (method url-fetch) | ||
| 3889 | (uri (rubygems-uri "bake-test" version)) | ||
| 3890 | (sha256 | ||
| 3891 | (base32 | ||
| 3892 | "1p6kfpncj0s4zyynrrq6c735jvh0dnwyv7kfqym4rpyka4f85qdp")))) | ||
| 3893 | (build-system ruby-build-system) | ||
| 3894 | ;; XXX: Disable the test suite to avoid a circular dependency with | ||
| 3895 | ;; ruby-sus. | ||
| 3896 | (arguments (list #:tests? #f)) | ||
| 3897 | (propagated-inputs (list ruby-bake)) | ||
| 3898 | (synopsis "Test suite automatic runner for Ruby") | ||
| 3899 | (description "@command{bake-test} automatically discovers how to run local | ||
| 3900 | test suites for Ruby projects. It supports @command{rspec}, @command{sus}, as | ||
| 3901 | well as @samp{rake}.") | ||
| 3902 | (home-page "https://github.com/ioquatix/bake-test") | ||
| 3903 | (license license:expat))) | ||
| 3904 | |||
| 3905 | (define-public ruby-bake-test-external | ||
| 3906 | (package | ||
| 3907 | (name "ruby-bake-test-external") | ||
| 3908 | (version "0.3.2") | ||
| 3909 | (source (origin | ||
| 3910 | (method url-fetch) | ||
| 3911 | (uri (rubygems-uri "bake-test-external" version)) | ||
| 3912 | (sha256 | ||
| 3913 | (base32 | ||
| 3914 | "0749xc7jkz1c5gsq1giwhrqy6s6xqm48bdvs414372881wki2jmh")))) | ||
| 3915 | (build-system ruby-build-system) | ||
| 3916 | ;; The test suite relies on git and network access to clone external | ||
| 3917 | ;; repositories. | ||
| 3918 | (arguments (list #:tests? #f)) | ||
| 3919 | (propagated-inputs (list ruby-bake)) | ||
| 3920 | (synopsis "Continuous integration extension for Bake") | ||
| 3921 | (description "Bake Test External adds a @samp{test:external} action to the | ||
| 3922 | @command{bake} command to run the test suites of dependent projects to check | ||
| 3923 | for breakage.") | ||
| 3924 | (home-page "https://github.com/ioquatix/bake-test-external") | ||
| 3925 | (license license:expat))) | ||
| 3926 | |||
| 3927 | (define-public ruby-connection-pool | ||
| 3928 | (package | ||
| 3929 | (name "ruby-connection-pool") | ||
| 3930 | (version "2.4.1") | ||
| 3931 | (source (origin | ||
| 3932 | (method git-fetch) | ||
| 3933 | (uri (git-reference | ||
| 3934 | (url "https://github.com/mperham/connection_pool") | ||
| 3935 | (commit (string-append "v" version)))) | ||
| 3936 | (file-name (git-file-name name version)) | ||
| 3937 | (sha256 | ||
| 3938 | (base32 | ||
| 3939 | "1iijshb1n9xl5knvpzzx0vqlw7v7mskiw1cpfj1cmdmssavyhsx5")))) | ||
| 3940 | (build-system ruby-build-system) | ||
| 3941 | (arguments | ||
| 3942 | (list | ||
| 3943 | #:phases | ||
| 3944 | #~(modify-phases %standard-phases | ||
| 3945 | (add-after 'unpack 'patch | ||
| 3946 | (lambda _ | ||
| 3947 | (substitute* "Rakefile" | ||
| 3948 | (("require \"standard/rake\"") "") | ||
| 3949 | ((":\"standard:fix\",") ""))))))) | ||
| 3950 | (native-inputs | ||
| 3951 | (list bundler)) | ||
| 3952 | (synopsis "Generic connection pool for Ruby") | ||
| 3953 | (description "Connection_pool provides a generic connection pooling | ||
| 3954 | interface for Ruby programs.") | ||
| 3955 | (home-page "https://github.com/mperham/connection_pool") | ||
| 3956 | (license license:expat))) | ||
| 3957 | |||
| 3958 | (define-public ruby-fast-gettext | ||
| 3959 | (package | ||
| 3960 | (name "ruby-fast-gettext") | ||
| 3961 | (version "4.1.0") | ||
| 3962 | (home-page "https://github.com/grosser/fast_gettext") | ||
| 3963 | (source (origin | ||
| 3964 | (method git-fetch) | ||
| 3965 | (uri (git-reference (url home-page) | ||
| 3966 | (commit (string-append "v" version)))) | ||
| 3967 | (file-name (git-file-name name version)) | ||
| 3968 | (sha256 | ||
| 3969 | (base32 | ||
| 3970 | "04p9s0r67xgvckab9ydb3fbnrc7g20p5c05z2zsacynlkp9x5jp9")))) | ||
| 3971 | (build-system ruby-build-system) | ||
| 3972 | (arguments | ||
| 3973 | (list | ||
| 3974 | #:test-target "spec" | ||
| 3975 | #:phases | ||
| 3976 | #~(modify-phases %standard-phases | ||
| 3977 | (add-before 'check 'remove-version-constraints | ||
| 3978 | (lambda _ | ||
| 3979 | (delete-file "Gemfile.lock")))))) | ||
| 3980 | (native-inputs | ||
| 3981 | (list ;; For tests. | ||
| 3982 | ruby-activerecord | ||
| 3983 | ruby-activesupport | ||
| 3984 | ruby-bump | ||
| 3985 | ruby-forking-test-runner | ||
| 3986 | ruby-i18n | ||
| 3987 | ruby-rubocop | ||
| 3988 | ruby-rubocop-packaging | ||
| 3989 | ruby-rspec | ||
| 3990 | ruby-single-cov | ||
| 3991 | ruby-sqlite3 | ||
| 3992 | ruby-wwtd)) | ||
| 3993 | (synopsis "Fast implementation of @code{GetText}") | ||
| 3994 | (description | ||
| 3995 | "This package provides an alternative implementation of the Ruby | ||
| 3996 | @code{GetText} library that is approximately 12x faster yet thread safe.") | ||
| 3997 | ;; Some parts are covered by the Ruby license, see file headers. | ||
| 3998 | (license (list license:expat license:ruby)))) | ||
| 3999 | |||
| 4000 | (define-public ruby-fiber-local | ||
| 4001 | (package | ||
| 4002 | (name "ruby-fiber-local") | ||
| 4003 | (version "1.0.0") | ||
| 4004 | (source (origin | ||
| 4005 | (method git-fetch) | ||
| 4006 | (uri (git-reference | ||
| 4007 | (url "https://github.com/socketry/fiber-local") | ||
| 4008 | (commit (string-append "v" version)))) | ||
| 4009 | (file-name (git-file-name name version)) | ||
| 4010 | (sha256 | ||
| 4011 | (base32 | ||
| 4012 | "0pp5b81h0lysdnphgprkixh1az0fkrgir5sbcp0mm8arxf3f8m90")))) | ||
| 4013 | (build-system ruby-build-system) | ||
| 4014 | (arguments | ||
| 4015 | (list #:phases | ||
| 4016 | #~(modify-phases %standard-phases | ||
| 4017 | (add-after 'extract-gemspec 'sanitize-dependencies | ||
| 4018 | (lambda _ | ||
| 4019 | ;; This pulls in extraneous maintenance dependencies. | ||
| 4020 | (delete-file "gems.rb") | ||
| 4021 | ;; Depending on ruby-covered would introduce a dependency | ||
| 4022 | ;; cycle with it. | ||
| 4023 | (substitute* '("fiber-local.gemspec" "spec/spec_helper.rb") | ||
| 4024 | ((".*covered.*") "")))) | ||
| 4025 | (replace 'check | ||
| 4026 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 4027 | (when tests? | ||
| 4028 | (invoke "rspec"))))))) | ||
| 4029 | (native-inputs (list ruby-rspec)) | ||
| 4030 | (synopsis "Ruby module to simplify fiber-local state management") | ||
| 4031 | (description "This package provides a class-level mixin to make managing | ||
| 4032 | fiber-local state easy. It provides easy access to a fiber-local state from a | ||
| 4033 | fiber, and defaults to a shared thread-local state.") | ||
| 4034 | (home-page "https://github.com/socketry/fiber-local") | ||
| 4035 | (license license:expat))) | ||
| 4036 | |||
| 4037 | (define-public ruby-flores | ||
| 4038 | (let ((commit "92fded00b04b1e3d308edb7440d7b7ab2c89ab5e") | ||
| 4039 | (revision "0")) | ||
| 4040 | (package | ||
| 4041 | (name "ruby-flores") | ||
| 4042 | (version (git-version "0.0.8" revision commit)) | ||
| 4043 | (source | ||
| 4044 | (origin | ||
| 4045 | (method git-fetch) | ||
| 4046 | (uri (git-reference | ||
| 4047 | (url "https://github.com/jordansissel/ruby-flores") | ||
| 4048 | (commit commit))) | ||
| 4049 | (sha256 | ||
| 4050 | (base32 "0jvnw0jli2zzxklfk751vfbi4acf9lijppk67346j3b2qxqi8xms")) | ||
| 4051 | (patches | ||
| 4052 | (search-patches "ruby-flores-fix-deprecations.patch")))) | ||
| 4053 | (build-system ruby-build-system) | ||
| 4054 | (arguments | ||
| 4055 | (list #:phases | ||
| 4056 | #~(modify-phases %standard-phases | ||
| 4057 | (add-after 'unpack 'fix-gemspec | ||
| 4058 | (lambda _ | ||
| 4059 | (substitute* "flores.gemspec" | ||
| 4060 | ;; Since this is not a git repository, do not call 'git'. | ||
| 4061 | (("git ls-files") "find . -type f |sort")))) | ||
| 4062 | (replace 'check | ||
| 4063 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 4064 | (when tests? | ||
| 4065 | (invoke "ruby" (which "rspec")))))))) | ||
| 4066 | (native-inputs (list ruby-rspec ruby-simplecov)) | ||
| 4067 | (synopsis "Fuzzing, randomization, and stress testing library") | ||
| 4068 | (description "Flores is a fuzzing, randomization, and stress library to | ||
| 4069 | help tests uncover more bugs.") | ||
| 4070 | (home-page "https://github.com/jordansissel/ruby-flores") | ||
| 4071 | (license license:asl2.0)))) | ||
| 4072 | |||
| 4073 | (define-public ruby-ipaddr | ||
| 4074 | (package | ||
| 4075 | (name "ruby-ipaddr") | ||
| 4076 | (version "1.2.6") | ||
| 4077 | (source (origin | ||
| 4078 | (method git-fetch) ;for tests | ||
| 4079 | (uri (git-reference | ||
| 4080 | (url "https://github.com/ruby/ipaddr") | ||
| 4081 | (commit (string-append "v" version)))) | ||
| 4082 | (file-name (git-file-name name version)) | ||
| 4083 | (sha256 | ||
| 4084 | (base32 | ||
| 4085 | "0h3z8i1fa8s4gx48322fflhpkzghd4bmd9109hglsgdkic7b0dyp")))) | ||
| 4086 | (build-system ruby-build-system) | ||
| 4087 | (native-inputs (list ruby-test-unit-ruby-core)) | ||
| 4088 | (synopsis "Manipulate IP addresses") | ||
| 4089 | (description "This package provides a set of methods to manipulate an IP | ||
| 4090 | address. Both IPv4 and IPv6 are supported.") | ||
| 4091 | (home-page "https://github.com/ruby/ipaddr") | ||
| 4092 | (license license:bsd-2))) | ||
| 4093 | |||
| 4094 | (define-public ruby-fake-ftp | ||
| 4095 | (package | ||
| 4096 | (name "ruby-fake-ftp") | ||
| 4097 | (version "0.3.0") | ||
| 4098 | (source (origin | ||
| 4099 | (method url-fetch) | ||
| 4100 | (uri (rubygems-uri "fake_ftp" version)) | ||
| 4101 | (sha256 | ||
| 4102 | (base32 | ||
| 4103 | "1zl9q9m4x7lz9890g0h1qqj7hcxnwzpjfnfbxadjblps7b5054q4")))) | ||
| 4104 | (build-system ruby-build-system) | ||
| 4105 | (native-inputs (list ruby-rspec ruby-rubocop ruby-simplecov)) | ||
| 4106 | (arguments | ||
| 4107 | '(#:test-target "spec")) | ||
| 4108 | (synopsis "Fake FTP server for use with ruby tests") | ||
| 4109 | (description "This package allows you to test FTP implementations in ruby. | ||
| 4110 | It is a minimal single-client FTP server that can be bound to any arbitrary | ||
| 4111 | port on localhost.") | ||
| 4112 | (home-page "https://rubygems.org/gems/fake_ftp") | ||
| 4113 | (license license:expat))) | ||
| 4114 | |||
| 4115 | (define-public ruby-net-telnet | ||
| 4116 | (package | ||
| 4117 | (name "ruby-net-telnet") | ||
| 4118 | (version "0.2.0") | ||
| 4119 | (source (origin | ||
| 4120 | (method url-fetch) | ||
| 4121 | (uri (rubygems-uri "net-telnet" version)) | ||
| 4122 | (sha256 | ||
| 4123 | (base32 | ||
| 4124 | "16nkxc79nqm7fd6w1fba4kb98vpgwnyfnlwxarpdcgywz300fc15")))) | ||
| 4125 | (build-system ruby-build-system) | ||
| 4126 | (synopsis "Telnet client functionality") | ||
| 4127 | (description "This package provides telnet client functionality.") | ||
| 4128 | (home-page "https://github.com/ruby/net-telnet") | ||
| 4129 | (license license:bsd-2))) | ||
| 4130 | |||
| 4131 | (define-public ruby-net-ftp | ||
| 4132 | (package | ||
| 4133 | (name "ruby-net-ftp") | ||
| 4134 | (version "0.3.4") | ||
| 4135 | (source (origin | ||
| 4136 | (method git-fetch) ;for tests | ||
| 4137 | (uri (git-reference | ||
| 4138 | (url "https://github.com/ruby/net-ftp") | ||
| 4139 | (commit (string-append "v" version)))) | ||
| 4140 | (file-name (git-file-name name version)) | ||
| 4141 | (sha256 | ||
| 4142 | (base32 | ||
| 4143 | "11b1sw7c4c7xrhn5li5m0wylw42hp52jp6pqacyb43hkw1m5zr36")))) | ||
| 4144 | (build-system ruby-build-system) | ||
| 4145 | (propagated-inputs (list ruby-net-protocol ruby-time)) | ||
| 4146 | (synopsis "File Transfer Protocol client library") | ||
| 4147 | (description "This class implements the File Transfer Protocol. If you | ||
| 4148 | have used a command-line FTP program, and are familiar with the commands, you | ||
| 4149 | will be able to use this class easily. Some extra features are included to | ||
| 4150 | take advantage of Ruby's style and strengths.") | ||
| 4151 | (home-page "https://github.com/ruby/net-ftp") | ||
| 4152 | (license license:bsd-2))) | ||
| 4153 | |||
| 4154 | (define-public ruby-net-http-persistent | ||
| 4155 | (package | ||
| 4156 | (name "ruby-net-http-persistent") | ||
| 4157 | (version "4.0.2") | ||
| 4158 | (source (origin | ||
| 4159 | (method url-fetch) | ||
| 4160 | (uri (rubygems-uri "net-http-persistent" version)) | ||
| 4161 | (sha256 | ||
| 4162 | (base32 | ||
| 4163 | "0i1as2lgnw7b4jid0gw5glv5hnxz36nmfsbr9rmxbcap72ijgy03")))) | ||
| 4164 | (build-system ruby-build-system) | ||
| 4165 | (native-inputs | ||
| 4166 | (list ruby-connection-pool | ||
| 4167 | ruby-hoe | ||
| 4168 | ruby-rake-manifest)) | ||
| 4169 | (synopsis "Persistent HTTP connection manager") | ||
| 4170 | (description "Net::HTTP::Persistent manages persistent HTTP connections | ||
| 4171 | using Net::HTTP, supporting reconnection and retry according to RFC 2616.") | ||
| 4172 | (home-page "https://github.com/drbrain/net-http-persistent") | ||
| 4173 | (license license:expat))) | ||
| 4174 | |||
| 4175 | (define-public ruby-net-imap | ||
| 4176 | (package | ||
| 4177 | (name "ruby-net-imap") | ||
| 4178 | (version "0.3.4") | ||
| 4179 | (source (origin | ||
| 4180 | (method git-fetch) ;for tests | ||
| 4181 | (uri (git-reference | ||
| 4182 | (url "https://github.com/ruby/net-imap") | ||
| 4183 | (commit (string-append "v" version)))) | ||
| 4184 | (file-name (git-file-name name version)) | ||
| 4185 | (sha256 | ||
| 4186 | (base32 | ||
| 4187 | "0nx49i1n9q1wpancqaac2srrpb8mb43mc8wryyqyhpgki2grwyxw")))) | ||
| 4188 | (build-system ruby-build-system) | ||
| 4189 | (arguments | ||
| 4190 | ;; The test suite appears to rely on RFCs it tries fetching from the | ||
| 4191 | ;; network (see: https://github.com/ruby/net-imap/issues/136). | ||
| 4192 | (list #:tests? #f | ||
| 4193 | #:phases | ||
| 4194 | #~(modify-phases %standard-phases | ||
| 4195 | (add-before 'replace-git-ls-files 'adjust-for-git-ls-files | ||
| 4196 | (lambda _ | ||
| 4197 | ;; Adjust the git ls-files invocation so that it matches | ||
| 4198 | ;; the expected pattern. | ||
| 4199 | (substitute* "net-imap.gemspec" | ||
| 4200 | (("`git ls-files -z 2>/dev/null`") | ||
| 4201 | "`git ls-files -z`"))))))) | ||
| 4202 | (propagated-inputs (list ruby-date ruby-net-protocol)) | ||
| 4203 | (synopsis "Ruby client api for Internet Message Access Protocol") | ||
| 4204 | (description "@code{Net::IMAP} implements Internet Message Access | ||
| 4205 | Protocol (IMAP) client functionality. The protocol is described in | ||
| 4206 | @url{https://tools.ietf.org/html/rfc3501, IMAP}.") | ||
| 4207 | (home-page "https://github.com/ruby/net-imap") | ||
| 4208 | (license license:bsd-2))) | ||
| 4209 | |||
| 4210 | (define-public ruby-net-pop | ||
| 4211 | (package | ||
| 4212 | (name "ruby-net-pop") | ||
| 4213 | (version "0.1.2") | ||
| 4214 | (source (origin | ||
| 4215 | (method git-fetch) | ||
| 4216 | (uri (git-reference | ||
| 4217 | (url "https://github.com/ruby/net-pop") | ||
| 4218 | (commit (string-append "v" version)))) | ||
| 4219 | (file-name (git-file-name name version)) | ||
| 4220 | (sha256 | ||
| 4221 | (base32 | ||
| 4222 | "05vz6a56va2rbr7ld78gdzwy1j5mzs98cz82ax5aqa83pzzk6jld")))) | ||
| 4223 | (build-system ruby-build-system) | ||
| 4224 | (propagated-inputs (list ruby-net-protocol)) | ||
| 4225 | (synopsis "Ruby client library for POP3") | ||
| 4226 | (description "This library provides functionality for retrieving email via | ||
| 4227 | POP3, the Post Office Protocol version 3, as specified by | ||
| 4228 | @url{http://www.ietf.org/rfc/rfc1939.txt, RFC1939}.") | ||
| 4229 | (home-page "https://github.com/ruby/net-pop") | ||
| 4230 | (license license:bsd-2))) | ||
| 4231 | |||
| 4232 | (define-public ruby-net-smtp | ||
| 4233 | (package | ||
| 4234 | (name "ruby-net-smtp") | ||
| 4235 | (version "0.3.3") | ||
| 4236 | (source (origin | ||
| 4237 | (method git-fetch) ;for tests | ||
| 4238 | (uri (git-reference | ||
| 4239 | (url "https://github.com/ruby/net-smtp") | ||
| 4240 | (commit (string-append "v" version)))) | ||
| 4241 | (file-name (git-file-name name version)) | ||
| 4242 | (sha256 | ||
| 4243 | (base32 | ||
| 4244 | "0ca2wh45xvc09rv6v6sz3vbnkzrjzk5c4l6dk50zk4dwxvghma8r")))) | ||
| 4245 | (build-system ruby-build-system) | ||
| 4246 | (arguments | ||
| 4247 | (list | ||
| 4248 | #:phases | ||
| 4249 | #~(modify-phases %standard-phases | ||
| 4250 | (add-before 'check 'regenerate-certificate | ||
| 4251 | ;; On version 0.5.0 a Makefile was introduced to regenerated | ||
| 4252 | ;; the certificates, and instead of calling openssl directory | ||
| 4253 | ;; we could do (with-directory-excursion "test/net/fixtures" | ||
| 4254 | ;; (invoke "make" "regen_certs"). However the certificate is | ||
| 4255 | ;; expired versions before 0.5.0 as well. | ||
| 4256 | (lambda _ | ||
| 4257 | (with-directory-excursion "test/net/fixtures" | ||
| 4258 | (invoke | ||
| 4259 | "openssl" "req" "-new" "-key" "server.key" "-out" | ||
| 4260 | "server.csr" "-subj" | ||
| 4261 | "/C=JP/ST=Shimane/O=Ruby Core Team/OU=Ruby Test/CN=localhost") | ||
| 4262 | (invoke "openssl" "req" "-new" "-x509" "-days" "3650" | ||
| 4263 | "-key" "server.key" "-out" "cacert.pem" "-subj" | ||
| 4264 | (string-append | ||
| 4265 | "/C=JP/ST=Shimane/L=Matz-e city/O=Ruby " | ||
| 4266 | "Core Team/CN=Ruby Test " | ||
| 4267 | "CA/emailAddress=security@ruby-lang.org")) | ||
| 4268 | (invoke "openssl" "x509" "-days" "3650" "-CA" "cacert.pem" | ||
| 4269 | "-CAkey" "server.key" "-set_serial" "00" "-in" | ||
| 4270 | "server.csr" "-req" "-out" "server.crt"))))))) | ||
| 4271 | (native-inputs (list openssl)) | ||
| 4272 | (propagated-inputs (list ruby-net-protocol)) | ||
| 4273 | (synopsis "Simple Mail Transfer Protocol client library for Ruby") | ||
| 4274 | (description "This library provides functionality to send Internet mail | ||
| 4275 | via SMTP, the Simple Mail Transfer Protocol. The SMTP protocol specification | ||
| 4276 | is known as @url{http://www.ietf.org/rfc/rfc2821.txt, RFC2821}.") | ||
| 4277 | (home-page "https://github.com/ruby/net-smtp") | ||
| 4278 | (license license:bsd-2))) | ||
| 4279 | |||
| 4280 | (define-public ruby-pleaserun | ||
| 4281 | (package | ||
| 4282 | (name "ruby-pleaserun") | ||
| 4283 | (version "0.0.32") | ||
| 4284 | (source (origin | ||
| 4285 | (method url-fetch) | ||
| 4286 | (uri (rubygems-uri "pleaserun" version)) | ||
| 4287 | (sha256 | ||
| 4288 | (base32 | ||
| 4289 | "1aykf0l8327bqkkf5xd9jcglsib973zpy37cfnlf4j0vp0cdpn2d")))) | ||
| 4290 | (build-system ruby-build-system) | ||
| 4291 | (arguments | ||
| 4292 | (list #:phases | ||
| 4293 | #~(modify-phases %standard-phases | ||
| 4294 | (add-after 'extract-gemspec 'relax-requirements | ||
| 4295 | (lambda _ | ||
| 4296 | (substitute* "pleaserun.gemspec" | ||
| 4297 | ;; Mustache is pinned at 0.99.8, for portability with | ||
| 4298 | ;; older Rubies. | ||
| 4299 | (("dependency\\(%q<mustache>.freeze.*") | ||
| 4300 | "dependency(%q<mustache>.freeze)\n")))) | ||
| 4301 | (replace 'check | ||
| 4302 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 4303 | (when tests? | ||
| 4304 | ;; The cli_spec.rb test fails non-deterministically with | ||
| 4305 | ;; a Errno::EISDIR error (see: | ||
| 4306 | ;; https://github.com/jordansissel/pleaserun/issues/155) | ||
| 4307 | (invoke "rspec" "--exclude-pattern" | ||
| 4308 | "spec/pleaserun/cli_spec.rb"))))))) | ||
| 4309 | (native-inputs (list ruby-flores ruby-rspec)) | ||
| 4310 | (propagated-inputs (list ruby-cabin | ||
| 4311 | ruby-clamp | ||
| 4312 | ruby-dotenv | ||
| 4313 | ruby-insist | ||
| 4314 | ruby-mustache | ||
| 4315 | ruby-stud)) | ||
| 4316 | (synopsis "Init scripts and service definitions generation tool") | ||
| 4317 | (description "Pleaserun is a tool to generate startup scripts and service | ||
| 4318 | definitions. It targets service managers such as systemd, Upstart, launchd, | ||
| 4319 | sysv init, and runit.") | ||
| 4320 | (home-page "https://github.com/jordansissel/pleaserun") | ||
| 4321 | (license license:asl2.0))) | ||
| 4322 | |||
| 4323 | (define-public ruby-power-assert | ||
| 4324 | (package | ||
| 4325 | (name "ruby-power-assert") | ||
| 4326 | (version "1.1.5") | ||
| 4327 | (source (origin | ||
| 4328 | (method url-fetch) | ||
| 4329 | (uri (rubygems-uri "power_assert" version)) | ||
| 4330 | (sha256 | ||
| 4331 | (base32 | ||
| 4332 | "1dii0wkfa0jm8sk9b20zl1z4980dmrjh0zqnii058485pp3ws10s")))) | ||
| 4333 | (build-system ruby-build-system) | ||
| 4334 | (arguments | ||
| 4335 | '(#:tests? #f)) ; No included tests | ||
| 4336 | (native-inputs | ||
| 4337 | (list bundler)) | ||
| 4338 | (synopsis "Assert library with descriptive assertion messages") | ||
| 4339 | (description "Power-assert is an assertion library providing descriptive | ||
| 4340 | assertion messages for tests.") | ||
| 4341 | (home-page "https://github.com/k-tsj/power_assert") | ||
| 4342 | (license (list license:bsd-2 license:ruby)))) | ||
| 4343 | |||
| 4344 | (define-public ruby-powerpack | ||
| 4345 | (package | ||
| 4346 | (name "ruby-powerpack") | ||
| 4347 | (version "0.1.3") | ||
| 4348 | (source | ||
| 4349 | (origin | ||
| 4350 | (method url-fetch) | ||
| 4351 | (uri (rubygems-uri "powerpack" version)) | ||
| 4352 | (sha256 | ||
| 4353 | (base32 | ||
| 4354 | "1f71axvlhnxja0k17qqxdi4qh5ck807hqg4i3j6cgy8fgzmyg7rg")))) | ||
| 4355 | (build-system ruby-build-system) | ||
| 4356 | (arguments | ||
| 4357 | (list #:test-target "spec")) | ||
| 4358 | (native-inputs | ||
| 4359 | (list bundler ruby-rspec ruby-yard)) | ||
| 4360 | (synopsis "Useful extensions to core Ruby classes") | ||
| 4361 | (description | ||
| 4362 | "This package provides a few useful extensions to core Ruby classes, | ||
| 4363 | including @code{Array}, @code{Enumerable}, @code{Hash}, @code{Numeric}, and | ||
| 4364 | @code{String}.") | ||
| 4365 | (home-page "https://github.com/bbatsov/powerpack") | ||
| 4366 | (license license:expat))) | ||
| 4367 | |||
| 4368 | (define-public ruby-locale | ||
| 4369 | (package | ||
| 4370 | (name "ruby-locale") | ||
| 4371 | (version "2.1.2") | ||
| 4372 | (source (origin | ||
| 4373 | (method url-fetch) | ||
| 4374 | (uri (rubygems-uri "locale" version)) | ||
| 4375 | (sha256 | ||
| 4376 | (base32 | ||
| 4377 | "1sls9bq4krx0fmnzmlbn64dw23c4d6pz46ynjzrn9k8zyassdd0x")))) | ||
| 4378 | (build-system ruby-build-system) | ||
| 4379 | ;; ruby-test-unit is required to run tests, but that needs ruby-packnga, | ||
| 4380 | ;; which needs ruby-gettext, which needs ruby-locale. To break the | ||
| 4381 | ;; dependency cycle we disable tests. | ||
| 4382 | (arguments `(#:tests? #f)) | ||
| 4383 | (native-inputs | ||
| 4384 | (list bundler ruby-yard/minimal)) | ||
| 4385 | (synopsis "Ruby library providing basic localization APIs") | ||
| 4386 | (description | ||
| 4387 | "Ruby-Locale is the pure ruby library which provides basic APIs for | ||
| 4388 | localization.") | ||
| 4389 | (home-page "https://github.com/ruby-gettext/locale") | ||
| 4390 | (license (list license:lgpl3+ license:ruby)))) | ||
| 4391 | |||
| 4392 | (define-public ruby-temple | ||
| 4393 | (package | ||
| 4394 | (name "ruby-temple") | ||
| 4395 | (version "0.10.0") | ||
| 4396 | (source (origin | ||
| 4397 | (method git-fetch) ;for tests | ||
| 4398 | (uri (git-reference | ||
| 4399 | (url "https://github.com/judofyr/temple") | ||
| 4400 | (commit (string-append "v" version)))) | ||
| 4401 | (file-name (git-file-name name version)) | ||
| 4402 | (sha256 | ||
| 4403 | (base32 | ||
| 4404 | "0rr9fnlcgj9nm3b6hzzjsvcw8x3y7z48j7slk7xxff2mh8s7y3y0")))) | ||
| 4405 | (build-system ruby-build-system) | ||
| 4406 | (arguments | ||
| 4407 | (list #:phases | ||
| 4408 | #~(modify-phases %standard-phases | ||
| 4409 | (add-after 'replace-git-ls-files 'replace-more-git-ls-files | ||
| 4410 | (lambda _ | ||
| 4411 | (substitute* "temple.gemspec" | ||
| 4412 | ;; There no longer are test, spec or features | ||
| 4413 | ;; directories. | ||
| 4414 | ((".*`git ls-files -- \\{test,spec,features}/\\*`.*") | ||
| 4415 | "") | ||
| 4416 | ;; There isn't any bin directory either. | ||
| 4417 | ((".*`git ls-files -- bin/\\*`.*") | ||
| 4418 | "")))) | ||
| 4419 | (replace 'check | ||
| 4420 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 4421 | (when tests? | ||
| 4422 | (invoke "rspec"))))))) | ||
| 4423 | (native-inputs (list ruby-bacon ruby-erubi ruby-rspec ruby-tilt)) | ||
| 4424 | (synopsis "Template compilation framework in Ruby") | ||
| 4425 | (description "Temple is an abstraction and framework for compiling | ||
| 4426 | templates to pure Ruby.") | ||
| 4427 | (home-page "https://github.com/judofyr/temple") | ||
| 4428 | (license license:expat))) | ||
| 4429 | |||
| 4430 | (define-public ruby-text | ||
| 4431 | (package | ||
| 4432 | (name "ruby-text") | ||
| 4433 | (version "1.3.1") | ||
| 4434 | (source (origin | ||
| 4435 | (method url-fetch) | ||
| 4436 | (uri (rubygems-uri "text" version)) | ||
| 4437 | (sha256 | ||
| 4438 | (base32 | ||
| 4439 | "1x6kkmsr49y3rnrin91rv8mpc3dhrf3ql08kbccw8yffq61brfrg")))) | ||
| 4440 | (build-system ruby-build-system) | ||
| 4441 | (synopsis "Collection of text algorithms for Ruby") | ||
| 4442 | (description | ||
| 4443 | "This package provides a collection of text algorithms: Levenshtein, | ||
| 4444 | Soundex, Metaphone, Double Metaphone, Porter Stemming.") | ||
| 4445 | (home-page "https://github.com/threedaymonk/text") | ||
| 4446 | (license license:expat))) | ||
| 4447 | |||
| 4448 | (define-public ruby-gdbm | ||
| 4449 | (package | ||
| 4450 | (name "ruby-gdbm") | ||
| 4451 | (version "2.1.0") | ||
| 4452 | (source | ||
| 4453 | (origin | ||
| 4454 | (method url-fetch) | ||
| 4455 | (uri (rubygems-uri "gdbm" version)) | ||
| 4456 | (sha256 | ||
| 4457 | (base32 "0xxygf50b2fvy8lcn2vip27vq32p607d3lwd1diplvkajijq8q8b")))) | ||
| 4458 | (build-system ruby-build-system) | ||
| 4459 | (arguments '(#:tests? #f)) ; No bundled tests. | ||
| 4460 | (inputs (list gdbm)) | ||
| 4461 | (synopsis "Ruby extension for GNU dbm") | ||
| 4462 | (description "This package provides a Ruby extension for GNU dbm.") | ||
| 4463 | (home-page "https://github.com/ruby/gdbm") | ||
| 4464 | (license license:bsd-2))) | ||
| 4465 | |||
| 4466 | (define-public ruby-gettext | ||
| 4467 | (package | ||
| 4468 | (name "ruby-gettext") | ||
| 4469 | (version "3.4.4") | ||
| 4470 | (source (origin | ||
| 4471 | (method url-fetch) | ||
| 4472 | (uri (rubygems-uri "gettext" version)) | ||
| 4473 | (sha256 | ||
| 4474 | (base32 | ||
| 4475 | "11hlxkk2yr9wjwd3nf8kgmsjcd8wf35yqlxi9wpvrgmvrk9n9a2k")))) | ||
| 4476 | (build-system ruby-build-system) | ||
| 4477 | ;; ruby-test-unit is required to run tests, but that needs ruby-packnga, | ||
| 4478 | ;; which needs ruby-gettext. To break the dependency cycle we disable | ||
| 4479 | ;; tests. | ||
| 4480 | (arguments `(#:tests? #f)) | ||
| 4481 | (propagated-inputs | ||
| 4482 | (list ruby-locale ruby-text ruby-erubi)) | ||
| 4483 | (native-inputs | ||
| 4484 | (list bundler ruby-yard/minimal)) | ||
| 4485 | (synopsis "GNU gettext-like program for Ruby") | ||
| 4486 | (description | ||
| 4487 | "Gettext is a GNU gettext-like program for Ruby. The catalog | ||
| 4488 | file (po-file) used is the same as that used by GNU gettext, allowing you to | ||
| 4489 | use GNU gettext tools for maintenance.") | ||
| 4490 | (home-page "https://ruby-gettext.github.com/") | ||
| 4491 | (license (list license:lgpl3+ license:ruby)))) | ||
| 4492 | |||
| 4493 | (define-public ruby-packnga | ||
| 4494 | (package | ||
| 4495 | (name "ruby-packnga") | ||
| 4496 | (version "1.0.4") | ||
| 4497 | (source (origin | ||
| 4498 | (method url-fetch) | ||
| 4499 | (uri (rubygems-uri "packnga" version)) | ||
| 4500 | (sha256 | ||
| 4501 | (base32 | ||
| 4502 | "1vv2j0i43s4xid2km5hgrrxqlqpwgq8nlm8kaxfg2531c1vwfsd4")))) | ||
| 4503 | (build-system ruby-build-system) | ||
| 4504 | ;; ruby-test-unit is required to run tests, but that needs ruby-packnga. | ||
| 4505 | ;; To break the dependency cycle we disable tests. | ||
| 4506 | (arguments `(#:tests? #f)) | ||
| 4507 | (propagated-inputs | ||
| 4508 | (list ruby-gettext ruby-yard)) | ||
| 4509 | (native-inputs | ||
| 4510 | (list bundler)) | ||
| 4511 | (synopsis "Utility library to package internationalized libraries") | ||
| 4512 | (description | ||
| 4513 | "Packnga is a library to translate to many languages using YARD.") | ||
| 4514 | (home-page "https://ranguba.org/packnga/") | ||
| 4515 | (license license:lgpl2.0+))) | ||
| 4516 | |||
| 4517 | (define-public ruby-test-construct | ||
| 4518 | (package | ||
| 4519 | (name "ruby-test-construct") | ||
| 4520 | (version "2.0.2") | ||
| 4521 | (source | ||
| 4522 | (origin | ||
| 4523 | (method url-fetch) | ||
| 4524 | (uri (rubygems-uri "test_construct" version)) | ||
| 4525 | (sha256 | ||
| 4526 | (base32 | ||
| 4527 | "17q7rw92l7r4zh6rkvzrn4dyl8p8p77217vaa1wf7nsv8k5541vy")))) | ||
| 4528 | (build-system ruby-build-system) | ||
| 4529 | (native-inputs | ||
| 4530 | (list bundler ruby-mocha-1 ruby-rspec)) | ||
| 4531 | (synopsis "Creates temporary files and directories for testing") | ||
| 4532 | (description | ||
| 4533 | "TestConstruct is a @acronym{DSL, Domain Specific Language} for creating | ||
| 4534 | temporary files and directories during tests.") | ||
| 4535 | (home-page "https://github.com/bhb/test_construct") | ||
| 4536 | (license license:expat))) | ||
| 4537 | |||
| 4538 | (define-public ruby-test-unit | ||
| 4539 | (package | ||
| 4540 | (name "ruby-test-unit") | ||
| 4541 | (version "3.6.0") | ||
| 4542 | (source (origin | ||
| 4543 | (method git-fetch) ;for tests | ||
| 4544 | (uri (git-reference | ||
| 4545 | (url "https://github.com/test-unit/test-unit") | ||
| 4546 | (commit version))) | ||
| 4547 | (file-name (git-file-name name version)) | ||
| 4548 | (sha256 | ||
| 4549 | (base32 | ||
| 4550 | "0w1m432q3y5v9lkak8yyxadak3z17bsp6afni97i4zjdgfz7niz2")))) | ||
| 4551 | (build-system ruby-build-system) | ||
| 4552 | (propagated-inputs | ||
| 4553 | (list ruby-power-assert)) | ||
| 4554 | (native-inputs | ||
| 4555 | (list bundler ruby-packnga ruby-yard)) | ||
| 4556 | (synopsis "Unit testing framework for Ruby") | ||
| 4557 | (description "@code{Test::Unit} is unit testing framework for Ruby, based | ||
| 4558 | on xUnit principles. These were originally designed by Kent Beck, creator of | ||
| 4559 | extreme programming software development methodology, for Smalltalk's SUnit. | ||
| 4560 | It allows writing tests, checking results and automated testing in Ruby.") | ||
| 4561 | (home-page "https://test-unit.github.io/") | ||
| 4562 | (license (list license:psfl license:ruby)))) | ||
| 4563 | |||
| 4564 | (define-public ruby-test-unit/minimal | ||
| 4565 | (hidden-package | ||
| 4566 | (package | ||
| 4567 | (inherit ruby-test-unit) | ||
| 4568 | (arguments | ||
| 4569 | (ensure-keyword-arguments | ||
| 4570 | (package-arguments ruby-test-unit) | ||
| 4571 | (list #:tests? #f))) | ||
| 4572 | (native-inputs '())))) | ||
| 4573 | |||
| 4574 | (define-public ruby-test-unit-ruby-core | ||
| 4575 | (package | ||
| 4576 | (name "ruby-test-unit-ruby-core") | ||
| 4577 | (version "1.0.5") | ||
| 4578 | (source | ||
| 4579 | (origin | ||
| 4580 | (method url-fetch) | ||
| 4581 | (uri (rubygems-uri "test-unit-ruby-core" version)) | ||
| 4582 | (sha256 | ||
| 4583 | (base32 "1i7fa4hlj6xiqvjaikagwrmiyc21jzyswvd4grjbfqysziwsxygc")))) | ||
| 4584 | (build-system ruby-build-system) | ||
| 4585 | (arguments | ||
| 4586 | (list #:tests? #f)) ; contains no tests | ||
| 4587 | (synopsis "Additional test assertions for Ruby standard libraries") | ||
| 4588 | (description "This package provides additional test assertions for Ruby | ||
| 4589 | standard libraries.") | ||
| 4590 | (home-page "https://github.com/ruby/test-unit-ruby-core") | ||
| 4591 | (license license:ruby))) | ||
| 4592 | |||
| 4593 | (define-public ruby-mapping | ||
| 4594 | (package | ||
| 4595 | (name "ruby-mapping") | ||
| 4596 | (version "1.1.1") | ||
| 4597 | (source (origin | ||
| 4598 | (method git-fetch) ;for tests | ||
| 4599 | (uri (git-reference | ||
| 4600 | (url "https://github.com/ioquatix/mapping") | ||
| 4601 | (commit (string-append "v" version)))) | ||
| 4602 | (file-name (git-file-name name version)) | ||
| 4603 | (sha256 | ||
| 4604 | (base32 | ||
| 4605 | "0yhmqp8mprjqf9m7wzc4hhi50qbfax86r89w852csns0ijaffjjs")))) | ||
| 4606 | (build-system ruby-build-system) | ||
| 4607 | (arguments | ||
| 4608 | (list | ||
| 4609 | #:test-target "spec" | ||
| 4610 | #:phases | ||
| 4611 | #~(modify-phases %standard-phases | ||
| 4612 | (add-after 'unpack 'patch | ||
| 4613 | (lambda _ | ||
| 4614 | (substitute* "spec/mapping/model_spec.rb" | ||
| 4615 | ;; From https://github.com/ioquatix/mapping/pull/2 | ||
| 4616 | (("offset:") "offset ="))))))) | ||
| 4617 | (native-inputs (list ruby-rspec)) | ||
| 4618 | (synopsis "Map model objects based on their class to a given output model") | ||
| 4619 | (description "The @code{mapping} gem maps model objects based on their | ||
| 4620 | class to a given output model. It is useful for versioning external | ||
| 4621 | interfaces (e.g. JSON APIs) or processing structured data from one format to | ||
| 4622 | another.") | ||
| 4623 | (home-page "https://github.com/ioquatix/mapping") | ||
| 4624 | (license license:expat))) | ||
| 4625 | |||
| 4626 | (define-public ruby-markaby | ||
| 4627 | (package | ||
| 4628 | (name "ruby-markaby") | ||
| 4629 | (version "0.9.0") | ||
| 4630 | (source | ||
| 4631 | (origin | ||
| 4632 | (method url-fetch) | ||
| 4633 | (uri (rubygems-uri "markaby" version)) | ||
| 4634 | (sha256 | ||
| 4635 | (base32 | ||
| 4636 | "1j4jc31ycydbkh5h3q6zwidzpavg3g5mbb5lqyaczd3jrq78rd7i")))) | ||
| 4637 | (build-system ruby-build-system) | ||
| 4638 | (arguments | ||
| 4639 | (list | ||
| 4640 | #:phases | ||
| 4641 | #~(modify-phases %standard-phases | ||
| 4642 | ;; Run rspec manually without using the Rakefile, as the versions of | ||
| 4643 | ;; Rake and RSpec 2 are incompatible: | ||
| 4644 | ;; | ||
| 4645 | ;; NoMethodError: undefined method `last_comment' | ||
| 4646 | (replace 'check | ||
| 4647 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 4648 | ;; Skip some broken tests, this should be redundant with the | ||
| 4649 | ;; next release | ||
| 4650 | (delete-file "spec/markaby/markaby_test_unit_spec.rb") | ||
| 4651 | (substitute* "spec/markaby/markaby_spec.rb" | ||
| 4652 | (("generated.should == str") | ||
| 4653 | "# Test broken: generated.should == str")) | ||
| 4654 | |||
| 4655 | (when tests? | ||
| 4656 | (invoke "rspec"))))))) | ||
| 4657 | (propagated-inputs | ||
| 4658 | (list ruby-builder)) | ||
| 4659 | (native-inputs | ||
| 4660 | (list bundler ruby-rspec-2)) | ||
| 4661 | (synopsis "Write HTML pages in pure Ruby") | ||
| 4662 | (description | ||
| 4663 | "Markaby allows writing HTML packages in pure Ruby. This is similar to | ||
| 4664 | the functionality provided by @acronym{ERB, Embedded Ruby}, but without the | ||
| 4665 | mixture of HTML and additional ERB syntax.") | ||
| 4666 | (home-page "https://markaby.github.io/") | ||
| 4667 | (license license:expat))) | ||
| 4668 | |||
| 4669 | (define-public ruby-maruku | ||
| 4670 | (package | ||
| 4671 | (name "ruby-maruku") | ||
| 4672 | (version "0.7.3") | ||
| 4673 | (source | ||
| 4674 | (origin | ||
| 4675 | (method url-fetch) | ||
| 4676 | (uri (rubygems-uri "maruku" version)) | ||
| 4677 | (sha256 | ||
| 4678 | (base32 | ||
| 4679 | "1r7bxpgnx2hp3g12bjrmdrpv663dfqxsdp0af69kjhxmaxpia56x")))) | ||
| 4680 | (build-system ruby-build-system) | ||
| 4681 | (arguments | ||
| 4682 | '(;; TODO: 3 tests seem to fail due to HTML encoding issues | ||
| 4683 | #:tests? #f | ||
| 4684 | #:phases | ||
| 4685 | (modify-phases %standard-phases | ||
| 4686 | (replace 'check | ||
| 4687 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 4688 | (when tests? | ||
| 4689 | (invoke "rspec"))))))) | ||
| 4690 | (native-inputs | ||
| 4691 | (list ruby-rspec ruby-simplecov ruby-nokogiri-diff)) | ||
| 4692 | (synopsis "Markdown interpreter in Ruby") | ||
| 4693 | (description | ||
| 4694 | "Maruku is a Markdown interpreter in Ruby. It can export Markdown to | ||
| 4695 | HTML, and PDF through LaTeX.") | ||
| 4696 | (home-page "https://github.com/bhollis/maruku") | ||
| 4697 | (license license:expat))) | ||
| 4698 | |||
| 4699 | (define-public ruby-metaclass | ||
| 4700 | (package | ||
| 4701 | (name "ruby-metaclass") | ||
| 4702 | (version "0.0.4") | ||
| 4703 | (source (origin | ||
| 4704 | (method url-fetch) | ||
| 4705 | (uri (rubygems-uri "metaclass" version)) | ||
| 4706 | (sha256 | ||
| 4707 | (base32 | ||
| 4708 | "0hp99y2b1nh0nr8pc398n3f8lakgci6pkrg4bf2b2211j1f6hsc5")))) | ||
| 4709 | (build-system ruby-build-system) | ||
| 4710 | (arguments | ||
| 4711 | `(#:phases | ||
| 4712 | (modify-phases %standard-phases | ||
| 4713 | (add-after 'unpack 'add-test-unit-to-search-path | ||
| 4714 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 4715 | (let* ((test-unit (assoc-ref inputs "ruby-test-unit"))) | ||
| 4716 | (substitute* "Rakefile" | ||
| 4717 | (("t\\.libs << \"test\"" line) | ||
| 4718 | (string-append line "; t.libs << \"" | ||
| 4719 | test-unit "/lib/ruby/vendor_ruby" | ||
| 4720 | "/gems/test-unit-" | ||
| 4721 | ,(package-version ruby-test-unit) | ||
| 4722 | "/lib\""))))))))) | ||
| 4723 | (native-inputs | ||
| 4724 | (list bundler ruby-test-unit/minimal)) | ||
| 4725 | (synopsis "Ruby library adding metaclass method to all objects") | ||
| 4726 | (description | ||
| 4727 | "Metaclass is a Ruby library adding a @code{metaclass} method to all Ruby | ||
| 4728 | objects.") | ||
| 4729 | (home-page "https://github.com/floehopper/metaclass") | ||
| 4730 | (license license:expat))) | ||
| 4731 | |||
| 4732 | (define-public ruby-mkmf-lite | ||
| 4733 | (package | ||
| 4734 | (name "ruby-mkmf-lite") | ||
| 4735 | (version "0.5.2") | ||
| 4736 | (source (origin | ||
| 4737 | (method url-fetch) | ||
| 4738 | (uri (rubygems-uri "mkmf-lite" version)) | ||
| 4739 | (sha256 | ||
| 4740 | (base32 | ||
| 4741 | "0rqa5kzswhqkj7r9mqrqz4mjd2vdxsblgybb52gj3mwr1gwvl4c5")))) | ||
| 4742 | (build-system ruby-build-system) | ||
| 4743 | (arguments | ||
| 4744 | (list | ||
| 4745 | #:phases | ||
| 4746 | #~(modify-phases %standard-phases | ||
| 4747 | ;; Avoid rubocop dependency | ||
| 4748 | (replace 'check | ||
| 4749 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 4750 | (when tests? | ||
| 4751 | (invoke "rspec"))))))) | ||
| 4752 | (propagated-inputs | ||
| 4753 | (list ruby-ptools)) | ||
| 4754 | (native-inputs | ||
| 4755 | (list ruby-rspec)) | ||
| 4756 | (synopsis "Lightweight alternative to @code{mkmf}") | ||
| 4757 | (description | ||
| 4758 | "@code{mkmf-lite} is a light version of Ruby's @code{mkmf.rb} designed | ||
| 4759 | for use as a library. It does not create packages, builds, or log files of | ||
| 4760 | any kind. Instead, it provides mixin methods that you can use in FFI or tests | ||
| 4761 | to check for the presence of header files, constants, and so on.") | ||
| 4762 | (home-page "https://github.com/djberg96/mkmf-lite") | ||
| 4763 | (license license:asl2.0))) | ||
| 4764 | |||
| 4765 | (define-public ruby-msgpack | ||
| 4766 | (package | ||
| 4767 | (name "ruby-msgpack") | ||
| 4768 | (version "1.7.5") | ||
| 4769 | (source (origin | ||
| 4770 | (method git-fetch) ;for tests | ||
| 4771 | (uri (git-reference | ||
| 4772 | (url "https://github.com/msgpack/msgpack-ruby") | ||
| 4773 | (commit (string-append "v" version)))) | ||
| 4774 | (file-name (git-file-name name version)) | ||
| 4775 | (sha256 | ||
| 4776 | (base32 | ||
| 4777 | "0d759pjgxgrxw18kmk81yv9brc141b4d8gszlp4vdnpvwvb96nln")))) | ||
| 4778 | (build-system ruby-build-system) | ||
| 4779 | (arguments (list #:test-target "spec")) | ||
| 4780 | (native-inputs | ||
| 4781 | (list ruby-rake-compiler | ||
| 4782 | ruby-ruby-memcheck | ||
| 4783 | ruby-rspec | ||
| 4784 | ruby-yard)) | ||
| 4785 | (synopsis "Efficient object serialization library for Ruby") | ||
| 4786 | (description "MessagePack is a binary-based efficient object serialization | ||
| 4787 | library. It enables to exchange structured objects between many languages | ||
| 4788 | like JSON. Unlike JSON, it is very fast and small.") | ||
| 4789 | (home-page "https://msgpack.org/") | ||
| 4790 | (license license:asl2.0))) | ||
| 4791 | |||
| 4792 | (define-public ruby-mspec | ||
| 4793 | (package | ||
| 4794 | (name "ruby-mspec") | ||
| 4795 | (version "1.9.1") | ||
| 4796 | (source | ||
| 4797 | (origin | ||
| 4798 | (method url-fetch) | ||
| 4799 | (uri (rubygems-uri "mspec" version)) | ||
| 4800 | (sha256 | ||
| 4801 | (base32 | ||
| 4802 | "0wmyh2n40m4srwdx9z6h6g6p46k02pzyhcsja3hqcw5h5b0hfmhd")))) | ||
| 4803 | (build-system ruby-build-system) | ||
| 4804 | (arguments | ||
| 4805 | '(;; TODO: 3 test failures | ||
| 4806 | ;; ./spec/mocks/mock_spec.rb:82 | ||
| 4807 | ;; ./spec/utils/name_map_spec.rb:151 | ||
| 4808 | ;; ./spec/utils/name_map_spec.rb:155 | ||
| 4809 | #:tests? #f | ||
| 4810 | #:phases | ||
| 4811 | (modify-phases %standard-phases | ||
| 4812 | (add-after 'extract-gemspec 'change-dependency-constraints | ||
| 4813 | (lambda _ | ||
| 4814 | (substitute* "mspec.gemspec" | ||
| 4815 | (("rake.*") "rake>)\n") | ||
| 4816 | (("rspec.*") "rspec>)\n")))) | ||
| 4817 | (replace 'check | ||
| 4818 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 4819 | (when tests? | ||
| 4820 | (invoke "rspec" "spec"))))))) | ||
| 4821 | (native-inputs | ||
| 4822 | (list bundler ruby-rake ruby-rspec)) | ||
| 4823 | (synopsis "MSpec is a specialized framework for RubySpec") | ||
| 4824 | (description | ||
| 4825 | "MSpec is a specialized framework that is syntax-compatible with RSpec 2 | ||
| 4826 | for basic features. MSpec contains additional features that assist in writing | ||
| 4827 | specs for Ruby implementations in ruby/spec.") | ||
| 4828 | (home-page "http://rubyspec.org") | ||
| 4829 | (license license:expat))) | ||
| 4830 | |||
| 4831 | (define-public ruby-mysql2 | ||
| 4832 | (package | ||
| 4833 | (name "ruby-mysql2") | ||
| 4834 | (version "0.5.2") | ||
| 4835 | (source | ||
| 4836 | (origin | ||
| 4837 | (method git-fetch) | ||
| 4838 | (uri (git-reference | ||
| 4839 | (url "https://github.com/brianmario/mysql2") | ||
| 4840 | (commit version))) | ||
| 4841 | (file-name (git-file-name name version)) | ||
| 4842 | (sha256 | ||
| 4843 | (base32 | ||
| 4844 | "11lvfgc2rmvkm52jp0nbi6pvhk06klznghr7llldfw8basl9n5wv")))) | ||
| 4845 | (build-system ruby-build-system) | ||
| 4846 | (arguments | ||
| 4847 | '(;; TODO: Tests require a running MySQL/MariaDB service | ||
| 4848 | #:tests? #f | ||
| 4849 | #:phases | ||
| 4850 | (modify-phases %standard-phases | ||
| 4851 | (replace 'replace-git-ls-files | ||
| 4852 | (lambda _ | ||
| 4853 | (substitute* "mysql2.gemspec" | ||
| 4854 | (("git ls-files .*`") "find . -type f |sort`")))) | ||
| 4855 | (add-before 'install 'set-MAKEFLAGS | ||
| 4856 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 4857 | (setenv "MAKEFLAGS" | ||
| 4858 | (string-append | ||
| 4859 | "V=1 " | ||
| 4860 | "prefix=" (assoc-ref outputs "out"))))) | ||
| 4861 | ;; Move the 'check phase to after 'install, as then you can test | ||
| 4862 | ;; using the installed mysql2 gem in the store. | ||
| 4863 | (delete 'check) | ||
| 4864 | (add-after 'install 'check | ||
| 4865 | (lambda* (#:key outputs tests? #:allow-other-keys) | ||
| 4866 | (setenv "GEM_PATH" | ||
| 4867 | (string-append | ||
| 4868 | (getenv "GEM_PATH") | ||
| 4869 | ":" | ||
| 4870 | (assoc-ref outputs "out") "/lib/ruby/vendor_ruby")) | ||
| 4871 | (when tests? | ||
| 4872 | (invoke "rspec"))))))) | ||
| 4873 | (inputs | ||
| 4874 | `(("mariadb-dev" ,mariadb "dev") | ||
| 4875 | ("zlib" ,zlib))) | ||
| 4876 | (native-inputs | ||
| 4877 | (list ruby-rspec ruby-rake-compiler)) | ||
| 4878 | (synopsis "MySQL library for Ruby, binding to libmysql") | ||
| 4879 | (description | ||
| 4880 | "This package provides a simple, fast MySQL library for Ruby, binding to | ||
| 4881 | libmysql.") | ||
| 4882 | (home-page "https://github.com/brianmario/mysql2") | ||
| 4883 | (license license:expat))) | ||
| 4884 | |||
| 4885 | (define-public ruby-blankslate | ||
| 4886 | (package | ||
| 4887 | (name "ruby-blankslate") | ||
| 4888 | (version "3.1.3") | ||
| 4889 | (source (origin | ||
| 4890 | (method url-fetch) | ||
| 4891 | (uri (rubygems-uri "blankslate" version)) | ||
| 4892 | (sha256 | ||
| 4893 | (base32 | ||
| 4894 | "0fwkb4d1j9gc7vdwn2nxvwgy2g5wlag4c4bp7bl85jvq0kgp6cyx")))) | ||
| 4895 | (build-system ruby-build-system) | ||
| 4896 | (arguments | ||
| 4897 | `(#:phases | ||
| 4898 | (modify-phases %standard-phases | ||
| 4899 | (replace 'check | ||
| 4900 | (lambda _ (invoke "rspec" "spec/")))))) | ||
| 4901 | (native-inputs | ||
| 4902 | (list bundler ruby-rspec)) | ||
| 4903 | (synopsis "Abstract base class with no predefined methods") | ||
| 4904 | (description | ||
| 4905 | "BlankSlate provides an abstract base class with no predefined | ||
| 4906 | methods (except for @code{__send__} and @code{__id__}). BlankSlate is useful | ||
| 4907 | as a base class when writing classes that depend upon | ||
| 4908 | @code{method_missing} (e.g. dynamic proxies).") | ||
| 4909 | (home-page "https://github.com/masover/blankslate") | ||
| 4910 | (license license:expat))) | ||
| 4911 | |||
| 4912 | (define-public ruby-bond | ||
| 4913 | (package | ||
| 4914 | (name "ruby-bond") | ||
| 4915 | (version "0.5.1") | ||
| 4916 | (source | ||
| 4917 | (origin | ||
| 4918 | (method url-fetch) | ||
| 4919 | (uri (rubygems-uri "bond" version)) | ||
| 4920 | (sha256 | ||
| 4921 | (base32 | ||
| 4922 | "1r19ifc4skyl2gxnifrxa5jvbbay9fb2in79ppgv02b6n4bhsw90")))) | ||
| 4923 | (build-system ruby-build-system) | ||
| 4924 | (arguments | ||
| 4925 | ;; The test suite fails (see: | ||
| 4926 | ;; https://github.com/cldwalker/bond/issues/46). | ||
| 4927 | `(#:tests? #f)) | ||
| 4928 | (native-inputs | ||
| 4929 | (list ruby-bacon ruby-bacon-bits ruby-mocha-on-bacon)) | ||
| 4930 | (synopsis "Bond can provide custom autocompletion for arguments, methods | ||
| 4931 | and more") | ||
| 4932 | (description | ||
| 4933 | "Bond can autocomplete argument(s) to methods, uniquely completing per | ||
| 4934 | module, per method and per argument. Bond provides a configuration system and | ||
| 4935 | a DSL for creating custom completions and completion rules. Bond can also | ||
| 4936 | load completions that ship with gems. Bond is able to offer more than irb's | ||
| 4937 | completion since it uses the full line of input when completing as opposed to | ||
| 4938 | irb's last-word approach.") | ||
| 4939 | (home-page "http://tagaholic.me/bond/") | ||
| 4940 | (license license:expat))) | ||
| 4941 | |||
| 4942 | (define-public ruby-idn-ruby | ||
| 4943 | (package | ||
| 4944 | (name "ruby-idn-ruby") | ||
| 4945 | (version "0.1.0") | ||
| 4946 | (source | ||
| 4947 | (origin | ||
| 4948 | (method url-fetch) | ||
| 4949 | (uri (rubygems-uri "idn-ruby" version)) | ||
| 4950 | (sha256 | ||
| 4951 | (base32 | ||
| 4952 | "07vblcyk3g72sbq12xz7xj28snpxnh3sbcnxy8bglqbfqqhvmawr")))) | ||
| 4953 | (build-system ruby-build-system) | ||
| 4954 | (arguments | ||
| 4955 | '(#:phases | ||
| 4956 | (modify-phases %standard-phases | ||
| 4957 | (delete 'check) | ||
| 4958 | (add-after 'install 'check | ||
| 4959 | (lambda* (#:key tests? outputs #:allow-other-keys) | ||
| 4960 | (when tests? | ||
| 4961 | (let* ((gem-file (cadr (find-files "." "\\.gem"))) | ||
| 4962 | (name-and-version (basename gem-file ".gem"))) | ||
| 4963 | (apply invoke | ||
| 4964 | "ruby" "--verbose" | ||
| 4965 | (string-append "-I" | ||
| 4966 | (assoc-ref outputs "out") | ||
| 4967 | "/lib/ruby/vendor_ruby/gems/" | ||
| 4968 | name-and-version | ||
| 4969 | "/lib") | ||
| 4970 | (find-files "./test" ".*\\.rb"))))))))) | ||
| 4971 | (inputs | ||
| 4972 | (list libidn)) | ||
| 4973 | (synopsis "Ruby Bindings for the GNU LibIDN library") | ||
| 4974 | (description | ||
| 4975 | "Ruby Bindings for the GNU LibIDN library, an implementation of the | ||
| 4976 | Stringprep, Punycode and IDNA specifications. These are used to encode and | ||
| 4977 | decode internationalized domain + names according to the IDNA2003 | ||
| 4978 | specifications. | ||
| 4979 | |||
| 4980 | Included are the most important parts of the Stringprep, Punycode and IDNA | ||
| 4981 | APIs like performing Stringprep processings, encoding to and decoding from | ||
| 4982 | Punycode strings and converting entire domain names to and from the ACE | ||
| 4983 | encoded form.") | ||
| 4984 | (home-page "https://github.com/deepfryed/idn-ruby") | ||
| 4985 | (license license:asl2.0))) | ||
| 4986 | |||
| 4987 | (define-public ruby-insist | ||
| 4988 | (package | ||
| 4989 | (name "ruby-insist") | ||
| 4990 | (version "1.0.0") | ||
| 4991 | (source (origin | ||
| 4992 | (method url-fetch) | ||
| 4993 | (uri (rubygems-uri "insist" version)) | ||
| 4994 | (sha256 | ||
| 4995 | (base32 | ||
| 4996 | "0bw3bdwns14mapbgb8cbjmr0amvwz8y72gyclq04xp43wpp5jrvg")))) | ||
| 4997 | (build-system ruby-build-system) | ||
| 4998 | (arguments (list #:phases #~(modify-phases %standard-phases | ||
| 4999 | (replace 'check | ||
| 5000 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 5001 | (when tests? | ||
| 5002 | (invoke "ruby" "test/testing.rb"))))))) | ||
| 5003 | (synopsis "Testing tool for Ruby") | ||
| 5004 | (description "This package provides a simple block-driven assertion | ||
| 5005 | library for both testing and for production code that attempts to make test | ||
| 5006 | definitions more readable.") | ||
| 5007 | (home-page "https://github.com/jordansissel/ruby-insist/") | ||
| 5008 | (license license:asl2.0))) | ||
| 5009 | |||
| 5010 | (define-public ruby-introspection | ||
| 5011 | (package | ||
| 5012 | (name "ruby-introspection") | ||
| 5013 | (version "0.0.4") | ||
| 5014 | (source (origin | ||
| 5015 | (method url-fetch) | ||
| 5016 | (uri (rubygems-uri "introspection" version)) | ||
| 5017 | (sha256 | ||
| 5018 | (base32 | ||
| 5019 | "1y2nbijkc0zlfmn9ss6588ilarq2kbn2i7w7pwwsli66dj84zgca")))) | ||
| 5020 | (build-system ruby-build-system) | ||
| 5021 | (propagated-inputs | ||
| 5022 | (list ruby-metaclass)) | ||
| 5023 | (native-inputs | ||
| 5024 | (list bundler | ||
| 5025 | ruby-blankslate)) | ||
| 5026 | (synopsis "Dynamic inspection of the method hierarchy on a Ruby object") | ||
| 5027 | (description | ||
| 5028 | "Introspection provides tools to inspect the hierarchy of method | ||
| 5029 | definitions on a Ruby object.") | ||
| 5030 | (home-page "https://github.com/floehopper/introspection") | ||
| 5031 | (license license:expat))) | ||
| 5032 | |||
| 5033 | (define-public ruby-redcarpet | ||
| 5034 | (package | ||
| 5035 | (name "ruby-redcarpet") | ||
| 5036 | (version "3.5.0") | ||
| 5037 | (source (origin | ||
| 5038 | (method url-fetch) | ||
| 5039 | (uri (rubygems-uri "redcarpet" version)) | ||
| 5040 | (sha256 | ||
| 5041 | (base32 | ||
| 5042 | "0skcyx1h8b5ms0rp2zm3ql6g322b8c1adnkwkqyv7z3kypb4bm7k")))) | ||
| 5043 | (build-system ruby-build-system) | ||
| 5044 | (arguments | ||
| 5045 | `(#:phases | ||
| 5046 | (modify-phases %standard-phases | ||
| 5047 | ;; The gem archive does not include the conformance tests. | ||
| 5048 | (add-after 'unpack 'disable-conformance-tests | ||
| 5049 | (lambda _ | ||
| 5050 | (substitute* "Rakefile" | ||
| 5051 | (("task :test => %w\\[test:unit test:conformance\\]") | ||
| 5052 | "task :test => %w[test:unit]"))))))) | ||
| 5053 | (native-inputs | ||
| 5054 | (list bundler ruby-test-unit ruby-rake-compiler)) | ||
| 5055 | (synopsis "Extensible Markdown to (X)HTML converter") | ||
| 5056 | (description | ||
| 5057 | "Redcarpet is an extensible Ruby library for Markdown processing and | ||
| 5058 | conversion to (X)HTML.") | ||
| 5059 | (home-page "https://github.com/vmg/redcarpet") | ||
| 5060 | (license license:expat))) | ||
| 5061 | |||
| 5062 | (define-public ruby-reline | ||
| 5063 | (package | ||
| 5064 | (name "ruby-reline") | ||
| 5065 | (version "0.3.3") | ||
| 5066 | (source (origin | ||
| 5067 | (method git-fetch) ;for tests | ||
| 5068 | (uri (git-reference | ||
| 5069 | (url "https://github.com/ruby/reline") | ||
| 5070 | (commit (string-append "v" version)))) | ||
| 5071 | (file-name (git-file-name name version)) | ||
| 5072 | (sha256 | ||
| 5073 | (base32 | ||
| 5074 | "1papa4f4prjml9qk6yydi4k5a4zgbzmxmbhd8fz9kfg1i34s35cw")))) | ||
| 5075 | (build-system ruby-build-system) | ||
| 5076 | (propagated-inputs (list ruby-io-console)) | ||
| 5077 | (synopsis "GNU Readline or Editline implementation in Ruby") | ||
| 5078 | (description "Reline is a pure Ruby alternative GNU Readline or Editline | ||
| 5079 | implementation.") | ||
| 5080 | (home-page "https://github.com/ruby/reline") | ||
| 5081 | (license (list license:bsd-2 license:ruby)))) ;dual license | ||
| 5082 | |||
| 5083 | (define-public ruby-rerun | ||
| 5084 | (package | ||
| 5085 | (name "ruby-rerun") | ||
| 5086 | (version "0.13.0") | ||
| 5087 | (source | ||
| 5088 | (origin | ||
| 5089 | (method url-fetch) | ||
| 5090 | (uri (rubygems-uri "rerun" version)) | ||
| 5091 | (sha256 | ||
| 5092 | (base32 | ||
| 5093 | "1cskvxk8z8vmfail8na7hj91hs0qnvds9nydj04zi3dbddgnbmvz")))) | ||
| 5094 | (build-system ruby-build-system) | ||
| 5095 | (arguments | ||
| 5096 | '(#:tests? #f)) ; No included tests | ||
| 5097 | (propagated-inputs | ||
| 5098 | (list ruby-listen)) | ||
| 5099 | (synopsis "Run a process, and restart when some monitored files change") | ||
| 5100 | (description | ||
| 5101 | "Rerun is a tool to launch programs, then monitor the file system, and | ||
| 5102 | restart the program when any of the monitored files change. It's written in | ||
| 5103 | Ruby, but can be used for all programs.") | ||
| 5104 | (home-page "https://github.com/alexch/rerun/") | ||
| 5105 | (license license:expat))) | ||
| 5106 | |||
| 5107 | (define-public ruby-maxitest | ||
| 5108 | (package | ||
| 5109 | (name "ruby-maxitest") | ||
| 5110 | (version "5.1.0") | ||
| 5111 | (home-page "https://github.com/grosser/maxitest") | ||
| 5112 | (source (origin | ||
| 5113 | ;; Pull from git because the gem does not contain tests. | ||
| 5114 | (method git-fetch) | ||
| 5115 | (uri (git-reference | ||
| 5116 | (url home-page) | ||
| 5117 | (commit (string-append "v" version)))) | ||
| 5118 | (file-name (git-file-name name version)) | ||
| 5119 | (sha256 | ||
| 5120 | (base32 | ||
| 5121 | "0qj410krfm497ggmf71xpnabbb6814y0585by4nlzyjvg9hpgg3m")))) | ||
| 5122 | (build-system ruby-build-system) | ||
| 5123 | (arguments | ||
| 5124 | (list | ||
| 5125 | #:test-target "default" | ||
| 5126 | #:phases | ||
| 5127 | #~(modify-phases %standard-phases | ||
| 5128 | (replace 'replace-git-ls-files | ||
| 5129 | (lambda _ | ||
| 5130 | (substitute* "maxitest.gemspec" | ||
| 5131 | (("`git ls-files lib/ bin/ MIT-LICENSE Readme.md`") | ||
| 5132 | "`find lib/ bin/ MIT-LICENSE Readme.md -type f | sort`")))) | ||
| 5133 | (add-before 'check 'remove-version-constraints | ||
| 5134 | (lambda _ | ||
| 5135 | ;; Don't use specific versions of dependencies, instead | ||
| 5136 | ;; take whatever is available in Guix. | ||
| 5137 | (delete-file "Gemfile.lock"))) | ||
| 5138 | (add-before 'check 'add-mtest-on-PATH | ||
| 5139 | (lambda _ | ||
| 5140 | ;; Tests use 'mtest' which is not automatically added on | ||
| 5141 | ;; PATH. | ||
| 5142 | (setenv "PATH" (string-append (getcwd) "/bin:" | ||
| 5143 | (getenv "PATH")))))))) | ||
| 5144 | (native-inputs | ||
| 5145 | (list procps | ||
| 5146 | ruby-bump | ||
| 5147 | ruby-rspec | ||
| 5148 | ruby-wwtd)) | ||
| 5149 | (propagated-inputs | ||
| 5150 | (list ruby-minitest)) | ||
| 5151 | (synopsis "Minitest with extra features") | ||
| 5152 | (description | ||
| 5153 | "Maxitest is a wrapper around Minitest with extra functionality such | ||
| 5154 | as timeouts, an @command{mtest} executable that can run tests by line | ||
| 5155 | number, support for interrupted tests, better backtraces, and more.") | ||
| 5156 | (license license:expat))) | ||
| 5157 | |||
| 5158 | (define-public ruby-mocha | ||
| 5159 | (package | ||
| 5160 | (name "ruby-mocha") | ||
| 5161 | (version "2.0.4") | ||
| 5162 | (source (origin | ||
| 5163 | (method url-fetch) | ||
| 5164 | (uri (rubygems-uri "mocha" version)) | ||
| 5165 | (sha256 | ||
| 5166 | (base32 | ||
| 5167 | "18xn9gm9yypavy9yck71fplan19hy5697mwd1rwzz7vizh3ip7bd")))) | ||
| 5168 | (build-system ruby-build-system) | ||
| 5169 | (arguments | ||
| 5170 | (list | ||
| 5171 | #:phases | ||
| 5172 | #~(modify-phases %standard-phases | ||
| 5173 | (add-before 'check 'remove-rubocop-dependency | ||
| 5174 | (lambda _ | ||
| 5175 | ;; Disable dependency on Rubocop, which is just a linter, | ||
| 5176 | ;; and would introduce a circular dependency. | ||
| 5177 | (substitute* "Gemfile" | ||
| 5178 | ((".*rubocop.*") ""))))))) | ||
| 5179 | (propagated-inputs | ||
| 5180 | (list ruby-ruby2-keywords)) | ||
| 5181 | (native-inputs | ||
| 5182 | (list ruby-psych-3 | ||
| 5183 | ruby-introspection)) | ||
| 5184 | (synopsis "Mocking and stubbing library for Ruby") | ||
| 5185 | (description | ||
| 5186 | "Mocha is a mocking and stubbing library with JMock/SchMock syntax, which | ||
| 5187 | allows mocking and stubbing of methods on real (non-mock) classes.") | ||
| 5188 | (home-page "https://mocha.jamesmead.org/") | ||
| 5189 | ;; Mocha can be used with either license at the users choice. | ||
| 5190 | (license (list license:expat license:ruby)))) | ||
| 5191 | |||
| 5192 | (define-public ruby-mocha-1 | ||
| 5193 | (package | ||
| 5194 | (inherit ruby-mocha) | ||
| 5195 | (version "1.13.0") | ||
| 5196 | (source (origin | ||
| 5197 | (method url-fetch) | ||
| 5198 | (uri (rubygems-uri "mocha" version)) | ||
| 5199 | (sha256 | ||
| 5200 | (base32 | ||
| 5201 | "15s53ggsykk69kxqvs4416s8yxdhz6caggva55n8sjgy4ixzwp10")))) | ||
| 5202 | (arguments | ||
| 5203 | '(#:tests? #f)))) | ||
| 5204 | |||
| 5205 | (define-public ruby-mocha-on-bacon | ||
| 5206 | (package | ||
| 5207 | (name "ruby-mocha-on-bacon") | ||
| 5208 | (version "0.2.3") | ||
| 5209 | (source | ||
| 5210 | (origin | ||
| 5211 | (method url-fetch) | ||
| 5212 | (uri (rubygems-uri "mocha-on-bacon" version)) | ||
| 5213 | (sha256 | ||
| 5214 | (base32 | ||
| 5215 | "1h49b33rq889hn8x3wp9byczl91va16jh1w4d2wyy4yj23icdrcp")))) | ||
| 5216 | (build-system ruby-build-system) | ||
| 5217 | (arguments | ||
| 5218 | ;; rubygems.org release missing tests | ||
| 5219 | '(#:tests? #f)) | ||
| 5220 | (propagated-inputs (list ruby-mocha)) | ||
| 5221 | (synopsis "Mocha adapter for Bacon") | ||
| 5222 | (description | ||
| 5223 | "This package provides a Mocha adapter for Bacon, allowing you to use the | ||
| 5224 | Mocha stubbing and mocking library with Bacon, a small RSpec clone.") | ||
| 5225 | (home-page | ||
| 5226 | "https://github.com/alloy/mocha-on-bacon") | ||
| 5227 | (license license:expat))) | ||
| 5228 | |||
| 5229 | (define-public ruby-net-ssh | ||
| 5230 | (package | ||
| 5231 | (name "ruby-net-ssh") | ||
| 5232 | (version "7.1.0") | ||
| 5233 | (source (origin | ||
| 5234 | (method git-fetch) ;for tests | ||
| 5235 | (uri (git-reference | ||
| 5236 | (url "https://github.com/net-ssh/net-ssh") | ||
| 5237 | (commit (string-append "v" version)))) | ||
| 5238 | (file-name (git-file-name name version)) | ||
| 5239 | (sha256 | ||
| 5240 | (base32 | ||
| 5241 | "1dkbyzpl31jygnnva5sa754vk42q1fih4qz5ipqw5gqiafrrlb91")))) | ||
| 5242 | (build-system ruby-build-system) | ||
| 5243 | (native-inputs | ||
| 5244 | (list bundler | ||
| 5245 | ruby-bcrypt-pbkdf | ||
| 5246 | ruby-ed25519 | ||
| 5247 | ruby-mocha | ||
| 5248 | ruby-rbnacl | ||
| 5249 | ruby-test-unit | ||
| 5250 | ruby-x25519)) | ||
| 5251 | (synopsis "Ruby implementation of the SSH2 client protocol") | ||
| 5252 | (description "@code{Net::SSH} is a pure-Ruby implementation of the SSH2 | ||
| 5253 | client protocol. It allows you to write programs that invoke and interact | ||
| 5254 | with processes on remote servers, via SSH2.") | ||
| 5255 | (home-page "https://github.com/net-ssh/net-ssh") | ||
| 5256 | (license license:expat))) | ||
| 5257 | |||
| 5258 | (define-public ruby-net-scp | ||
| 5259 | (package | ||
| 5260 | (name "ruby-net-scp") | ||
| 5261 | (version "4.0.1.rc3") | ||
| 5262 | (source | ||
| 5263 | (origin | ||
| 5264 | (method git-fetch) | ||
| 5265 | (uri (git-reference | ||
| 5266 | (url "https://github.com/net-ssh/net-scp") | ||
| 5267 | (commit (string-append "v" version)))) | ||
| 5268 | (file-name (git-file-name name version)) | ||
| 5269 | (sha256 | ||
| 5270 | (base32 "136mb8idxdkxkadx827027nyxcsvvv2wivz5dnjqy8g6ic0h9dzn")))) | ||
| 5271 | (build-system ruby-build-system) | ||
| 5272 | (native-inputs | ||
| 5273 | (list bundler ruby-test-unit ruby-mocha-1)) | ||
| 5274 | (propagated-inputs | ||
| 5275 | (list ruby-net-ssh)) | ||
| 5276 | (synopsis "Pure-Ruby SCP client library") | ||
| 5277 | (description "@code{Net::SCP} is a pure-Ruby implementation of the SCP | ||
| 5278 | client protocol.") | ||
| 5279 | (home-page "https://github.com/net-ssh/net-scp") | ||
| 5280 | (license license:expat))) | ||
| 5281 | |||
| 5282 | (define-public ruby-net-sftp | ||
| 5283 | (package | ||
| 5284 | (name "ruby-net-sftp") | ||
| 5285 | (version "4.0.0") | ||
| 5286 | (source (origin | ||
| 5287 | (method url-fetch) | ||
| 5288 | (uri (rubygems-uri "net-sftp" version)) | ||
| 5289 | (sha256 | ||
| 5290 | (base32 | ||
| 5291 | "0r33aa2d61hv1psm0l0mm6ik3ycsnq8symv7h84kpyf2b7493fv5")))) | ||
| 5292 | (build-system ruby-build-system) | ||
| 5293 | (propagated-inputs (list ruby-net-ssh)) | ||
| 5294 | (synopsis "Pure Ruby implementation of the SFTP client protocol") | ||
| 5295 | (description | ||
| 5296 | "@code{Net::SFTP} is a pure Ruby implementation of the SFTP | ||
| 5297 | protocol (specifically, versions 1 through 6 of the SFTP protocol). Note that | ||
| 5298 | this is the “Secure File Transfer Protocol”, typically run over an SSH | ||
| 5299 | connection, and has nothing to do with the FTP protocol.") | ||
| 5300 | (home-page "https://github.com/net-ssh/net-sftp") | ||
| 5301 | (license license:expat))) | ||
| 5302 | |||
| 5303 | (define-public ruby-minima | ||
| 5304 | (package | ||
| 5305 | (name "ruby-minima") | ||
| 5306 | (version "2.5.1") | ||
| 5307 | (source (origin | ||
| 5308 | (method url-fetch) | ||
| 5309 | (uri (rubygems-uri "minima" version)) | ||
| 5310 | (sha256 | ||
| 5311 | (base32 | ||
| 5312 | "1gk7jmriiswda1ykjzpsw9cpiya4m9n0yrh0h6xnrc8zcfy543jj")))) | ||
| 5313 | (arguments | ||
| 5314 | (list #:phases #~(modify-phases %standard-phases | ||
| 5315 | (replace 'check | ||
| 5316 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 5317 | (when tests? | ||
| 5318 | (invoke "jekyll" "build")) | ||
| 5319 | ;; Without the following, an attempt to remove | ||
| 5320 | ;; minima-<version>.gem is made during installation, | ||
| 5321 | ;; which will fail. | ||
| 5322 | (delete-file #$(string-append "_site/minima-" | ||
| 5323 | version ".gem"))))))) | ||
| 5324 | (build-system ruby-build-system) | ||
| 5325 | (propagated-inputs (list jekyll ruby-jekyll-feed ruby-jekyll-seo-tag)) | ||
| 5326 | (synopsis "Beautiful, minimal theme for Jekyll") | ||
| 5327 | (description | ||
| 5328 | "Minima is a one-size-fits-all Jekyll theme for writers. It's Jekyll's | ||
| 5329 | default (and first) theme. It's what you get when you run @code{jekyll new}.") | ||
| 5330 | (home-page "https://github.com/jekyll/minima") | ||
| 5331 | (license license:expat))) | ||
| 5332 | |||
| 5333 | (define-public ruby-minitest-around | ||
| 5334 | (package | ||
| 5335 | (name "ruby-minitest-around") | ||
| 5336 | (version "0.5.0") | ||
| 5337 | (source | ||
| 5338 | (origin | ||
| 5339 | (method url-fetch) | ||
| 5340 | (uri (rubygems-uri "minitest-around" version)) | ||
| 5341 | (sha256 | ||
| 5342 | (base32 | ||
| 5343 | "15ywnqx0719jl9c25yqfshmwcir57i5f4hr1ra9v9vay9ylcwndr")))) | ||
| 5344 | (build-system ruby-build-system) | ||
| 5345 | (arguments | ||
| 5346 | '(#:phases | ||
| 5347 | (modify-phases %standard-phases | ||
| 5348 | (add-after 'extract-gemspec 'remove-unnecessary-dependency-versions | ||
| 5349 | (lambda _ | ||
| 5350 | (substitute* "minitest-around.gemspec" | ||
| 5351 | (("%q<cucumber>.*") "%q<cucumber>, [\">= 0\"])\n"))))))) | ||
| 5352 | (propagated-inputs | ||
| 5353 | (list ruby-minitest)) | ||
| 5354 | (native-inputs | ||
| 5355 | (list bundler ruby-cucumber ruby-bump ruby-test-construct)) | ||
| 5356 | (synopsis "Run code around tests in Minitest") | ||
| 5357 | (description | ||
| 5358 | "This library provides a way to run code around tests in Minitest, | ||
| 5359 | written using either the unit test or spec style.") | ||
| 5360 | (home-page "https://github.com/splattael/minitest-around") | ||
| 5361 | (license license:expat))) | ||
| 5362 | |||
| 5363 | (define-public ruby-minitest-retry | ||
| 5364 | (package | ||
| 5365 | (name "ruby-minitest-retry") | ||
| 5366 | (version "0.2.2") | ||
| 5367 | (source (origin | ||
| 5368 | (method url-fetch) | ||
| 5369 | (uri (rubygems-uri "minitest-retry" version)) | ||
| 5370 | (sha256 | ||
| 5371 | (base32 | ||
| 5372 | "1c1zq0b1a9y0hbqphq4ybijnjldlis1g6kyhx92q2ynnqfmzhfga")))) | ||
| 5373 | (build-system ruby-build-system) | ||
| 5374 | (propagated-inputs (list ruby-minitest)) | ||
| 5375 | (synopsis "Minitest extension to re-run failing tests") | ||
| 5376 | (description "This package provides the @code{Minitest::Retry} class, | ||
| 5377 | which extends Minitest to allow retrying tests when they fail.") | ||
| 5378 | (home-page "https://github.com/y-yagi/minitest-retry") | ||
| 5379 | (license license:expat))) | ||
| 5380 | |||
| 5381 | (define-public ruby-minitest-sprint | ||
| 5382 | (package | ||
| 5383 | (name "ruby-minitest-sprint") | ||
| 5384 | (version "1.1.0") | ||
| 5385 | (source (origin | ||
| 5386 | (method url-fetch) | ||
| 5387 | (uri (rubygems-uri "minitest-sprint" version)) | ||
| 5388 | (sha256 | ||
| 5389 | (base32 | ||
| 5390 | "179d6pj56l9xzm46fqsqj10mzjkr1f9fv4cxa8wvchs97hqz33w1")))) | ||
| 5391 | (build-system ruby-build-system) | ||
| 5392 | (native-inputs | ||
| 5393 | (list ruby-hoe ruby-minitest)) | ||
| 5394 | (synopsis "Fast test suite runner for minitest") | ||
| 5395 | (description "Minitest-sprint is a test runner for minitest that makes it | ||
| 5396 | easier to re-run individual failing tests.") | ||
| 5397 | (home-page "https://github.com/seattlerb/minitest-sprint") | ||
| 5398 | (license license:expat))) | ||
| 5399 | |||
| 5400 | (define-public ruby-minitest-stub-const | ||
| 5401 | (package | ||
| 5402 | (name "ruby-minitest-stub-const") | ||
| 5403 | (version "0.6") ;for Rakefile | ||
| 5404 | (source (origin | ||
| 5405 | (method git-fetch) | ||
| 5406 | (uri (git-reference | ||
| 5407 | (url "https://github.com/adammck/minitest-stub-const") | ||
| 5408 | (commit (string-append "v" version)))) | ||
| 5409 | (file-name (git-file-name name version)) | ||
| 5410 | (sha256 | ||
| 5411 | (base32 | ||
| 5412 | "0cz4r9fxplx94c7wakx0998n2gv7l21prn8pfpw6z2c33k3g2xar")))) | ||
| 5413 | (build-system ruby-build-system) | ||
| 5414 | (synopsis "Stub constants for the duration of a block in MiniTest") | ||
| 5415 | (description "This package provides a MiniTest extension to stub constants | ||
| 5416 | for the duration of a block in MiniTest.") | ||
| 5417 | (home-page "https://github.com/adammck/minitest-stub-const") | ||
| 5418 | (license license:expat))) | ||
| 5419 | |||
| 5420 | (define-public ruby-minitest-bacon | ||
| 5421 | (package | ||
| 5422 | (name "ruby-minitest-bacon") | ||
| 5423 | (version "1.0.3") | ||
| 5424 | (source (origin | ||
| 5425 | (method url-fetch) | ||
| 5426 | (uri (rubygems-uri "minitest-bacon" version)) | ||
| 5427 | (sha256 | ||
| 5428 | (base32 | ||
| 5429 | "0zhdwcl6bgha61qiyfvr7zs7ywaxc33wmj9xhxl8jdmpdvifvfaj")))) | ||
| 5430 | (build-system ruby-build-system) | ||
| 5431 | (native-inputs | ||
| 5432 | (list ruby-hoe)) | ||
| 5433 | (inputs | ||
| 5434 | (list ruby-minitest)) | ||
| 5435 | (synopsis "Bacon compatibility library for minitest") | ||
| 5436 | (description "Minitest-bacon extends minitest with bacon-like | ||
| 5437 | functionality, making it easier to migrate test suites from bacon to minitest.") | ||
| 5438 | (home-page "https://github.com/seattlerb/minitest-bacon") | ||
| 5439 | (license license:expat))) | ||
| 5440 | |||
| 5441 | (define-public ruby-minitest-power-assert | ||
| 5442 | (package | ||
| 5443 | (name "ruby-minitest-power-assert") | ||
| 5444 | (version "0.3.1") | ||
| 5445 | (source (origin | ||
| 5446 | (method url-fetch) | ||
| 5447 | (uri (rubygems-uri "minitest-power_assert" version)) | ||
| 5448 | (sha256 | ||
| 5449 | (base32 | ||
| 5450 | "1dazl6nbxjvvmi5jamrsygkz396s29b7cd841ni6qy4izk8jd9b7")))) | ||
| 5451 | (build-system ruby-build-system) | ||
| 5452 | (propagated-inputs (list ruby-minitest ruby-power-assert)) | ||
| 5453 | (synopsis "Power Assert implementation for Minitest") | ||
| 5454 | (description "This gem provides a Power Assert implementation for | ||
| 5455 | Minitest. It is inspired by the @code{test-unit-power_assert} gem.") | ||
| 5456 | (home-page "https://github.com/hsbt/minitest-power_assert") | ||
| 5457 | (license license:bsd-2))) | ||
| 5458 | |||
| 5459 | (define-public ruby-minitest-profile | ||
| 5460 | (package | ||
| 5461 | (name "ruby-minitest-profile") | ||
| 5462 | (version "0.0.2") | ||
| 5463 | (source (origin | ||
| 5464 | (method url-fetch) | ||
| 5465 | (uri (rubygems-uri "minitest-profile" version)) | ||
| 5466 | (sha256 | ||
| 5467 | (base32 | ||
| 5468 | "13h4nwbq6yv7hsaa7dpj90lry4rc5qqnpzvm9n2s57mm2xi31xfa")))) | ||
| 5469 | (build-system ruby-build-system) | ||
| 5470 | (synopsis "Display the slowest tests in a MiniTest suite") | ||
| 5471 | (description "This package provides a MiniTest plugin for displaying the | ||
| 5472 | slowest tests in a minitest suite.") | ||
| 5473 | (home-page "https://github.com/nmeans/minitest-profile") | ||
| 5474 | (license license:expat))) | ||
| 5475 | |||
| 5476 | (define-public ruby-minitest-proveit | ||
| 5477 | (package | ||
| 5478 | (name "ruby-minitest-proveit") | ||
| 5479 | (version "1.0.0") | ||
| 5480 | (source (origin | ||
| 5481 | (method url-fetch) | ||
| 5482 | (uri (rubygems-uri "minitest-proveit" version)) | ||
| 5483 | (sha256 | ||
| 5484 | (base32 | ||
| 5485 | "0k1hpr8lgkgygfivgcsnnib7xjlf9ribgpn7yidvb4q0l0q2yfmr")))) | ||
| 5486 | (build-system ruby-build-system) | ||
| 5487 | (native-inputs (list ruby-hoe)) | ||
| 5488 | (propagated-inputs (list ruby-minitest)) | ||
| 5489 | (synopsis "Assertion-based tests extension for MiniTest") | ||
| 5490 | (description "The @code{minitest-proveit} MiniTest extension ensures all | ||
| 5491 | tests to prove success (via at least one assertion) rather than rely on the | ||
| 5492 | absence of failure.") | ||
| 5493 | (home-page "https://github.com/seattlerb/minitest-proveit") | ||
| 5494 | (license license:expat))) | ||
| 5495 | |||
| 5496 | (define-public ruby-minitest-reporters | ||
| 5497 | (package | ||
| 5498 | (name "ruby-minitest-reporters") | ||
| 5499 | (version "1.3.6") | ||
| 5500 | (source | ||
| 5501 | (origin | ||
| 5502 | (method url-fetch) | ||
| 5503 | (uri (rubygems-uri "minitest-reporters" version)) | ||
| 5504 | (sha256 | ||
| 5505 | (base32 | ||
| 5506 | "1a3das80rwgys5rj48i5ly144nvszyqyi748bk9bss74jblcf5ay")))) | ||
| 5507 | (build-system ruby-build-system) | ||
| 5508 | (arguments | ||
| 5509 | '(#:phases | ||
| 5510 | (modify-phases %standard-phases | ||
| 5511 | ;; Remove the requirement on Rubocop, as it isn't useful to run, and | ||
| 5512 | ;; including it as an input can lead to circular dependencies. | ||
| 5513 | (add-after 'unpack 'remove-rubocop-from-Rakefile | ||
| 5514 | (lambda _ | ||
| 5515 | (substitute* "Rakefile" | ||
| 5516 | (("require 'rubocop/rake\\_task'") "") | ||
| 5517 | (("RuboCop::RakeTask\\.new\\(:rubocop\\)") "[].each")))) | ||
| 5518 | (add-after 'extract-gemspec 'remove-rubocop-from-gemspec | ||
| 5519 | (lambda _ | ||
| 5520 | (substitute* "minitest-reporters.gemspec" | ||
| 5521 | ((".*%q<rubocop>.*") "\n"))))))) | ||
| 5522 | (propagated-inputs | ||
| 5523 | (list ruby-ansi ruby-builder ruby-minitest ruby-progressbar)) | ||
| 5524 | (native-inputs | ||
| 5525 | (list bundler ruby-maruku)) | ||
| 5526 | (synopsis "Enhanced reporting for Minitest tests") | ||
| 5527 | (description | ||
| 5528 | "@code{minitest/reporters} provides a custom Minitest runner to improve | ||
| 5529 | how the test state is reported. A number of different reporters are | ||
| 5530 | available, including a spec reporter, progress bar reporter, a HTML | ||
| 5531 | reporter.") | ||
| 5532 | (home-page "https://github.com/kern/minitest-reporters") | ||
| 5533 | (license license:expat))) | ||
| 5534 | |||
| 5535 | (define-public ruby-minitest-rg | ||
| 5536 | (package | ||
| 5537 | (name "ruby-minitest-rg") | ||
| 5538 | (version "5.2.0") | ||
| 5539 | (source | ||
| 5540 | (origin | ||
| 5541 | (method url-fetch) | ||
| 5542 | (uri (rubygems-uri "minitest-rg" version)) | ||
| 5543 | (sha256 | ||
| 5544 | (base32 | ||
| 5545 | "0sq509ax1x62rd0w10b0hcydcxyk5bxxr3fwrgxv02r8drq2r354")))) | ||
| 5546 | (build-system ruby-build-system) | ||
| 5547 | (arguments | ||
| 5548 | ;; Some tests fail even outside Guix, so disable tests. | ||
| 5549 | ;; https://github.com/blowmage/minitest-rg/issues/12 | ||
| 5550 | ;; https://github.com/blowmage/minitest-rg/pull/13 | ||
| 5551 | `(#:tests? #f)) | ||
| 5552 | (propagated-inputs | ||
| 5553 | (list ruby-minitest)) | ||
| 5554 | (synopsis "Coloured output for Minitest") | ||
| 5555 | (description | ||
| 5556 | "@code{minitest-rg} changes the colour of the output from Minitest.") | ||
| 5557 | (home-page "https://blowmage.com/minitest-rg/") | ||
| 5558 | (license license:expat))) | ||
| 5559 | |||
| 5560 | (define-public ruby-minitest-global-expectations | ||
| 5561 | (package | ||
| 5562 | (name "ruby-minitest-global-expectations") | ||
| 5563 | (version "1.0.1") | ||
| 5564 | (source | ||
| 5565 | (origin | ||
| 5566 | (method url-fetch) | ||
| 5567 | (uri (rubygems-uri "minitest-global_expectations" | ||
| 5568 | version)) | ||
| 5569 | (sha256 | ||
| 5570 | (base32 | ||
| 5571 | "1pp3k2608spj4kvqy2y16hs18an917g6vwgvphrfhjviac83090x")))) | ||
| 5572 | (build-system ruby-build-system) | ||
| 5573 | (propagated-inputs | ||
| 5574 | (list ruby-minitest)) | ||
| 5575 | (synopsis "Adjust minitest behaviour for calling expectation methods") | ||
| 5576 | (description | ||
| 5577 | "Minitest-global_expectations allows continued use of expectation methods | ||
| 5578 | on all objects. Calling expectation methods on all objects was deprecated in | ||
| 5579 | minitest 5.12, and is planned to be removed from minitest 6.") | ||
| 5580 | (home-page "https://github.com/jeremyevans/minitest-global_expectations") | ||
| 5581 | (license license:expat))) | ||
| 5582 | |||
| 5583 | (define-public ruby-daemons | ||
| 5584 | (package | ||
| 5585 | (name "ruby-daemons") | ||
| 5586 | (version "1.2.5") | ||
| 5587 | (source (origin | ||
| 5588 | (method url-fetch) | ||
| 5589 | (uri (rubygems-uri "daemons" version)) | ||
| 5590 | (sha256 | ||
| 5591 | (base32 | ||
| 5592 | "15smbsg0gxb7nf0nrlnplc68y0cdy13dm6fviavpmw7c630sring")))) | ||
| 5593 | (build-system ruby-build-system) | ||
| 5594 | (arguments | ||
| 5595 | `(#:tests? #f)) ; no test suite | ||
| 5596 | (synopsis "Daemonize Ruby programs") | ||
| 5597 | (description "Daemons provides a way to wrap existing Ruby scripts to be | ||
| 5598 | run as a daemon and to be controlled by simple start/stop/restart commands.") | ||
| 5599 | (home-page "https://github.com/thuehlinger/daemons") | ||
| 5600 | (license license:expat))) | ||
| 5601 | |||
| 5602 | (define-public ruby-dalli | ||
| 5603 | (package | ||
| 5604 | (name "ruby-dalli") | ||
| 5605 | (version "3.2.4") | ||
| 5606 | (source (origin | ||
| 5607 | (method git-fetch) ;for tests | ||
| 5608 | (uri (git-reference | ||
| 5609 | (url "https://github.com/petergoldstein/dalli") | ||
| 5610 | (commit (string-append "v" version)))) | ||
| 5611 | (file-name (git-file-name name version)) | ||
| 5612 | (sha256 | ||
| 5613 | (base32 | ||
| 5614 | "1hhqqv1j3zd2y0vr6maaabsflrvkf1x0i6z8n725mhqydp3f9gwp")))) | ||
| 5615 | (build-system ruby-build-system) | ||
| 5616 | ;; Disable tests to avoid a dependency cycle with ruby-activesupport, | ||
| 5617 | ;; through ruby-ruby-prof. | ||
| 5618 | (arguments (list #:tests? #f)) | ||
| 5619 | (synopsis "High performance memcached client for Ruby") | ||
| 5620 | (description "Dalli is a high performance pure Ruby client for accessing | ||
| 5621 | memcached servers. Dalli supports: | ||
| 5622 | |||
| 5623 | @itemize | ||
| 5624 | @item Simple and complex memcached configurations | ||
| 5625 | @item Fail-over between memcached instances | ||
| 5626 | @item Fine-grained control of data serialization and compression | ||
| 5627 | @item Thread-safe operation | ||
| 5628 | @item SSL/TLS connections to memcached | ||
| 5629 | @item SASL authentication. | ||
| 5630 | @end itemize | ||
| 5631 | |||
| 5632 | The name is a variant of Salvador Dali for his famous painting The Persistence | ||
| 5633 | of Memory.") | ||
| 5634 | (home-page "https://github.com/petergoldstein/dalli") | ||
| 5635 | (license license:expat))) | ||
| 5636 | |||
| 5637 | (define-public ruby-data_uri | ||
| 5638 | (package | ||
| 5639 | (name "ruby-data_uri") | ||
| 5640 | (version "0.1.0") | ||
| 5641 | (source | ||
| 5642 | (origin | ||
| 5643 | (method url-fetch) | ||
| 5644 | (uri (rubygems-uri "data_uri" version)) | ||
| 5645 | (sha256 | ||
| 5646 | (base32 | ||
| 5647 | "0fzkxgdxrlbfl4537y3n9mjxbm28kir639gcw3x47ffchwsgdcky")))) | ||
| 5648 | (build-system ruby-build-system) | ||
| 5649 | (synopsis "URI class for parsing data URIs") | ||
| 5650 | (description | ||
| 5651 | "Data @acronym{URI, universal resource identifier}s allow resources to be | ||
| 5652 | embedded inside a URI. The URI::Data class provides support for parsing these | ||
| 5653 | URIs using the normal URI.parse method.") | ||
| 5654 | (home-page "https://github.com/dball/data_uri") | ||
| 5655 | (license license:expat))) | ||
| 5656 | |||
| 5657 | (define-public ruby-debug | ||
| 5658 | (package | ||
| 5659 | (name "ruby-debug") | ||
| 5660 | (version "1.7.2") | ||
| 5661 | (source (origin | ||
| 5662 | (method url-fetch) | ||
| 5663 | (uri (rubygems-uri "debug" version)) | ||
| 5664 | (sha256 | ||
| 5665 | (base32 | ||
| 5666 | "0x59508j69w9p275gabysv521n210pd3n060gqfgsiqjms1h0ldf")))) | ||
| 5667 | (build-system ruby-build-system) | ||
| 5668 | (arguments (list #:test-target "test_all")) | ||
| 5669 | (propagated-inputs (list ruby-irb ruby-reline)) | ||
| 5670 | (synopsis "Debugging functionality for Ruby") | ||
| 5671 | (description "Debugging functionality for Ruby. This is completely | ||
| 5672 | rewritten debug.rb which was contained by the ancient Ruby versions. It is | ||
| 5673 | included with Ruby itself, but this package is made available so that the | ||
| 5674 | latest version can be made available independently from Ruby.") | ||
| 5675 | (home-page "https://github.com/ruby/debug") | ||
| 5676 | (license license:bsd-2))) | ||
| 5677 | |||
| 5678 | (define-public ruby-deep-merge | ||
| 5679 | (package | ||
| 5680 | (name "ruby-deep-merge") | ||
| 5681 | (version "1.2.1") | ||
| 5682 | (home-page "https://github.com/danielsdeleo/deep_merge") | ||
| 5683 | ;; The Rubygem source does not contain the gemspec required for tests. | ||
| 5684 | (source (origin | ||
| 5685 | (method git-fetch) | ||
| 5686 | (uri (git-reference (url home-page) (commit version))) | ||
| 5687 | (file-name (git-file-name name version)) | ||
| 5688 | (sha256 | ||
| 5689 | (base32 | ||
| 5690 | "0c9rk23ilhc0n4489y6lda2wzphpzh6ish6fahlbpjhxn82wb931")))) | ||
| 5691 | (build-system ruby-build-system) | ||
| 5692 | (native-inputs | ||
| 5693 | (list ruby-minitest)) | ||
| 5694 | (synopsis "Recursively merge hashes") | ||
| 5695 | (description | ||
| 5696 | "Deep Merge is a set of utility functions for @code{Hash}. It permits | ||
| 5697 | you to merge elements inside a hash together recursively.") | ||
| 5698 | (license license:expat))) | ||
| 5699 | |||
| 5700 | (define-public ruby-delayed-job | ||
| 5701 | (package | ||
| 5702 | (name "ruby-delayed-job") | ||
| 5703 | (version "4.1.11") | ||
| 5704 | (source (origin | ||
| 5705 | (method url-fetch) | ||
| 5706 | (uri (rubygems-uri "delayed_job" version)) | ||
| 5707 | (sha256 | ||
| 5708 | (base32 | ||
| 5709 | "0s2xg72ljg4cwmr05zi67vcyz8zib46gvvf7rmrdhsyq387m2qcq")))) | ||
| 5710 | (build-system ruby-build-system) | ||
| 5711 | (arguments | ||
| 5712 | (list #:phases | ||
| 5713 | #~(modify-phases %standard-phases | ||
| 5714 | (add-after 'unpack 'disable-bundler | ||
| 5715 | (lambda _ | ||
| 5716 | (substitute* "Rakefile" | ||
| 5717 | (("require 'bundler/setup'") "") | ||
| 5718 | (("Bundler::GemHelper\\.install_tasks") "")))) | ||
| 5719 | (add-after 'unpack 'disable-rubocop | ||
| 5720 | (lambda _ | ||
| 5721 | (substitute* "Rakefile" | ||
| 5722 | (("require 'rubocop/rake_task'") "") | ||
| 5723 | (("RuboCop::RakeTask.new") "")))) | ||
| 5724 | (add-after 'extract-gemspec 'remove-dependency-on-actionmailer | ||
| 5725 | (lambda _ | ||
| 5726 | (substitute* "spec/helper.rb" | ||
| 5727 | (("require 'action_mailer'") "")) | ||
| 5728 | (substitute* "delayed_job.gemspec" | ||
| 5729 | (("\"spec/performable_mailer_spec.rb\".freeze, ") "")) | ||
| 5730 | (delete-file "spec/performable_mailer_spec.rb")))))) | ||
| 5731 | (native-inputs | ||
| 5732 | (list ruby-activerecord | ||
| 5733 | ruby-rspec | ||
| 5734 | ruby-simplecov | ||
| 5735 | ruby-simplecov-lcov | ||
| 5736 | ruby-zeitwerk | ||
| 5737 | ruby-mini-portile-2)) | ||
| 5738 | (propagated-inputs | ||
| 5739 | (list ruby-activesupport)) | ||
| 5740 | (synopsis "Asynchronous background tasks execution library") | ||
| 5741 | (description "Delayed_job (or DJ) encapsulates the common pattern of | ||
| 5742 | asynchronously executing longer tasks in the background. It is a direct | ||
| 5743 | extraction from Shopify where the job table is responsible for a multitude of | ||
| 5744 | core tasks.") | ||
| 5745 | (home-page "https://github.com/collectiveidea/delayed_job") | ||
| 5746 | (license license:expat))) | ||
| 5747 | |||
| 5748 | (define-public ruby-git | ||
| 5749 | (package | ||
| 5750 | (name "ruby-git") | ||
| 5751 | (version "1.3.0") | ||
| 5752 | (source (origin | ||
| 5753 | (method url-fetch) | ||
| 5754 | (uri (rubygems-uri "git" version)) | ||
| 5755 | (sha256 | ||
| 5756 | (base32 | ||
| 5757 | "1waikaggw7a1d24nw0sh8fd419gbf7awh000qhsf411valycj6q3")))) | ||
| 5758 | (build-system ruby-build-system) | ||
| 5759 | (arguments | ||
| 5760 | `(#:tests? #f ; no tests | ||
| 5761 | #:phases (modify-phases %standard-phases | ||
| 5762 | (add-after 'install 'patch-git-binary | ||
| 5763 | (lambda* (#:key inputs outputs #:allow-other-keys) | ||
| 5764 | ;; Make the default git binary an absolute path to the | ||
| 5765 | ;; store. | ||
| 5766 | (let ((git (search-input-file inputs "/bin/git")) | ||
| 5767 | (config (string-append | ||
| 5768 | (assoc-ref outputs "out") | ||
| 5769 | "/lib/ruby/vendor_ruby/gems/git-" | ||
| 5770 | ,version "/lib/git/config.rb"))) | ||
| 5771 | (substitute* (list config) | ||
| 5772 | (("'git'") | ||
| 5773 | (string-append "'" git "'"))))))))) | ||
| 5774 | (inputs | ||
| 5775 | (list git)) | ||
| 5776 | (synopsis "Ruby wrappers for Git") | ||
| 5777 | (description "Ruby/Git is a Ruby library that can be used to create, read | ||
| 5778 | and manipulate Git repositories by wrapping system calls to the git binary.") | ||
| 5779 | (home-page "https://github.com/schacon/ruby-git") | ||
| 5780 | (license license:expat))) | ||
| 5781 | |||
| 5782 | (define-public ruby-hocon | ||
| 5783 | (package | ||
| 5784 | (name "ruby-hocon") | ||
| 5785 | (version "1.4.0") | ||
| 5786 | (home-page "https://github.com/puppetlabs/ruby-hocon") | ||
| 5787 | (source (origin | ||
| 5788 | (method git-fetch) | ||
| 5789 | (uri (git-reference (url home-page) (commit version))) | ||
| 5790 | (file-name (git-file-name name version)) | ||
| 5791 | (sha256 | ||
| 5792 | (base32 | ||
| 5793 | "04wgv0pwrghawnl6qp346z59fvp9v37jymq8p0lsrzxa6nvrykmk")))) | ||
| 5794 | (build-system ruby-build-system) | ||
| 5795 | (arguments | ||
| 5796 | (list | ||
| 5797 | #:phases | ||
| 5798 | #~(modify-phases %standard-phases | ||
| 5799 | (replace 'check | ||
| 5800 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 5801 | (if tests? | ||
| 5802 | (invoke "rspec") | ||
| 5803 | (format #t "test suite not run~%"))))))) | ||
| 5804 | (native-inputs | ||
| 5805 | (list bundler ruby-rspec)) | ||
| 5806 | (synopsis "HOCON config library") | ||
| 5807 | (description | ||
| 5808 | "This package provides Ruby support for the @acronym{HOCON, | ||
| 5809 | Human-Optimized Config Object Notation} configuration file format. It | ||
| 5810 | supports parsing and modifying HOCON and JSON files, and rendering parsed | ||
| 5811 | objects back to a @code{String}.") | ||
| 5812 | (license license:asl2.0))) | ||
| 5813 | |||
| 5814 | (define-public ruby-slop | ||
| 5815 | (package | ||
| 5816 | (name "ruby-slop") | ||
| 5817 | (version "4.10.1") | ||
| 5818 | (source (origin | ||
| 5819 | (method url-fetch) | ||
| 5820 | (uri (rubygems-uri "slop" version)) | ||
| 5821 | (sha256 | ||
| 5822 | (base32 | ||
| 5823 | "1iyrjskgxyn8i1679qwkzns85p909aq77cgx2m4fs5ygzysj4hw4")))) | ||
| 5824 | (build-system ruby-build-system) | ||
| 5825 | (synopsis "Ruby command line option parser") | ||
| 5826 | (description "Slop provides a Ruby domain specific language for gathering | ||
| 5827 | options and parsing command line flags.") | ||
| 5828 | (home-page "https://github.com/leejarvis/slop") | ||
| 5829 | (license license:expat))) | ||
| 5830 | |||
| 5831 | (define-public ruby-slop-3 | ||
| 5832 | (package (inherit ruby-slop) | ||
| 5833 | (version "3.6.0") | ||
| 5834 | (source (origin | ||
| 5835 | (method url-fetch) | ||
| 5836 | (uri (rubygems-uri "slop" version)) | ||
| 5837 | (sha256 | ||
| 5838 | (base32 | ||
| 5839 | "00w8g3j7k7kl8ri2cf1m58ckxk8rn350gp4chfscmgv6pq1spk3n")))))) | ||
| 5840 | |||
| 5841 | (define-public ruby-multi-xml | ||
| 5842 | (package | ||
| 5843 | (name "ruby-multi-xml") | ||
| 5844 | (version "0.6.0") | ||
| 5845 | (source | ||
| 5846 | (origin | ||
| 5847 | (method url-fetch) | ||
| 5848 | (uri (rubygems-uri "multi_xml" version)) | ||
| 5849 | (sha256 | ||
| 5850 | (base32 | ||
| 5851 | "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj")))) | ||
| 5852 | (build-system ruby-build-system) | ||
| 5853 | (arguments | ||
| 5854 | '(#:tests? #f)) ; No included tests | ||
| 5855 | (synopsis "Swappable XML backends for Ruby") | ||
| 5856 | (description | ||
| 5857 | "@code{MultiXml} provides swappable XML backends utilizing either LibXML, | ||
| 5858 | Nokogiri, Ox, or REXML.") | ||
| 5859 | (home-page "https://github.com/sferik/multi_xml") | ||
| 5860 | (license license:expat))) | ||
| 5861 | |||
| 5862 | (define-public ruby-multipart-parser | ||
| 5863 | (package | ||
| 5864 | (name "ruby-multipart-parser") | ||
| 5865 | (version "0.1.1") | ||
| 5866 | (source (origin | ||
| 5867 | (method url-fetch) | ||
| 5868 | (uri (rubygems-uri "multipart-parser" version)) | ||
| 5869 | (sha256 | ||
| 5870 | (base32 | ||
| 5871 | "0xb4p475yrfm883h9kn80a021myn17dvs50wpa1djzcmlq7p0882")))) | ||
| 5872 | (build-system ruby-build-system) | ||
| 5873 | (arguments | ||
| 5874 | (list | ||
| 5875 | #:phases #~(modify-phases %standard-phases | ||
| 5876 | (add-after 'unpack 'skip-failing-test | ||
| 5877 | ;; One test fails for unknown reasons (see: | ||
| 5878 | ;; https://github.com/danabr/multipart-parser/issues/7). | ||
| 5879 | (lambda _ | ||
| 5880 | (substitute* "test/multipart_parser/reader_test.rb" | ||
| 5881 | (("def test_long" all) | ||
| 5882 | (string-append all "\n return true")))))))) | ||
| 5883 | (synopsis "Parser for multipart MIME messages") | ||
| 5884 | (description "@code{multipart-parser} is a simple parser for multipart | ||
| 5885 | MIME messages, written in Ruby, based on felixge/node-formidable's parser. It | ||
| 5886 | has the following characteristics: | ||
| 5887 | @itemize | ||
| 5888 | @item Pure Ruby | ||
| 5889 | @item Event-driven API | ||
| 5890 | @item Only supports one level of multipart parsing | ||
| 5891 | @item Does not perform I/O | ||
| 5892 | @item Does not depend on any other library. | ||
| 5893 | @end itemize") | ||
| 5894 | (home-page "https://github.com/danabr/multipart-parser") | ||
| 5895 | (license license:expat))) | ||
| 5896 | |||
| 5897 | (define-public ruby-multipart-post | ||
| 5898 | (package | ||
| 5899 | (name "ruby-multipart-post") | ||
| 5900 | (version "2.0.0") | ||
| 5901 | (source (origin | ||
| 5902 | (method url-fetch) | ||
| 5903 | (uri (rubygems-uri "multipart-post" version)) | ||
| 5904 | (sha256 | ||
| 5905 | (base32 | ||
| 5906 | "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x")))) | ||
| 5907 | (build-system ruby-build-system) | ||
| 5908 | (native-inputs | ||
| 5909 | (list bundler)) | ||
| 5910 | (synopsis "Multipart POST library for Ruby") | ||
| 5911 | (description "Multipart-Post Adds multipart POST capability to Ruby's | ||
| 5912 | net/http library.") | ||
| 5913 | (home-page "https://github.com/nicksieger/multipart-post") | ||
| 5914 | (license license:expat))) | ||
| 5915 | |||
| 5916 | (define-public ruby-multi-json | ||
| 5917 | (package | ||
| 5918 | (name "ruby-multi-json") | ||
| 5919 | (version "1.15.0") | ||
| 5920 | (source | ||
| 5921 | (origin | ||
| 5922 | (method git-fetch) | ||
| 5923 | ;; Tests are not distributed at rubygems.org so download from GitHub | ||
| 5924 | ;; instead. | ||
| 5925 | (uri (git-reference | ||
| 5926 | (url "https://github.com/intridea/multi_json") | ||
| 5927 | (commit (string-append "v" version)))) | ||
| 5928 | (file-name (git-file-name name version)) | ||
| 5929 | (sha256 | ||
| 5930 | (base32 | ||
| 5931 | "0mkdvy6i00yyksjvnv6znh7wf89j9506qzzjq6bsbmbkyqrszp4d")))) | ||
| 5932 | (build-system ruby-build-system) | ||
| 5933 | (arguments | ||
| 5934 | (list | ||
| 5935 | ;; TODO Tests don't currently work with Ruby 3 | ||
| 5936 | #:tests? #f | ||
| 5937 | #:phases | ||
| 5938 | #~(modify-phases %standard-phases | ||
| 5939 | (add-before 'check 'pre-check | ||
| 5940 | (lambda _ | ||
| 5941 | ;; As seen in the .travis.yml file. | ||
| 5942 | (setenv "SKIP_ADAPTERS" "gson,jr_jackson,nsjsonserialization")))))) | ||
| 5943 | (native-inputs | ||
| 5944 | (list ruby-rspec ruby-json-pure ruby-oj ruby-yajl-ruby)) | ||
| 5945 | (synopsis "Common interface to multiple JSON libraries for Ruby") | ||
| 5946 | (description | ||
| 5947 | "This package provides a common interface to multiple JSON libraries, | ||
| 5948 | including Oj, Yajl, the JSON gem (with C-extensions), the pure-Ruby JSON gem, | ||
| 5949 | NSJSONSerialization, gson.rb, JrJackson, and OkJson.") | ||
| 5950 | (home-page "https://github.com/intridea/multi_json") | ||
| 5951 | (license license:expat))) | ||
| 5952 | |||
| 5953 | (define-public ruby-arr-pm | ||
| 5954 | (package | ||
| 5955 | (name "ruby-arr-pm") | ||
| 5956 | (version "0.0.12") | ||
| 5957 | (source (origin | ||
| 5958 | (method url-fetch) | ||
| 5959 | (uri (rubygems-uri "arr-pm" version)) | ||
| 5960 | (sha256 | ||
| 5961 | (base32 | ||
| 5962 | "0fddw0vwdrr7v3a0lfqbmnd664j48a9psrjd3wh3k4i3flplizzx")))) | ||
| 5963 | (build-system ruby-build-system) | ||
| 5964 | (arguments | ||
| 5965 | (list #:phases | ||
| 5966 | #~(modify-phases %standard-phases | ||
| 5967 | (replace 'check | ||
| 5968 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 5969 | (when tests? | ||
| 5970 | (invoke "rspec"))))))) | ||
| 5971 | (native-inputs (list ruby-flores ruby-insist ruby-rspec ruby-stud)) | ||
| 5972 | (synopsis "RPM reader/writer library written in Ruby") | ||
| 5973 | (description "This library allows reading and writing RPM packages. It is | ||
| 5974 | used by the @command{fpm} tool. It is written in pure Ruby because | ||
| 5975 | @code{librpm} is not available on all systems and requires many | ||
| 5976 | dependencies.") | ||
| 5977 | (home-page "https://github.com/jordansissel/ruby-arr-pm") | ||
| 5978 | (license license:asl2.0))) | ||
| 5979 | |||
| 5980 | (define-public ruby-arel | ||
| 5981 | (package | ||
| 5982 | (name "ruby-arel") | ||
| 5983 | (version "9.0.0") | ||
| 5984 | (source (origin | ||
| 5985 | (method url-fetch) | ||
| 5986 | (uri (rubygems-uri "arel" version)) | ||
| 5987 | (sha256 | ||
| 5988 | (base32 | ||
| 5989 | "1jk7wlmkr61f6g36w9s2sn46nmdg6wn2jfssrhbhirv5x9n95nk0")))) | ||
| 5990 | (build-system ruby-build-system) | ||
| 5991 | (arguments '(#:tests? #f)) ; no tests | ||
| 5992 | (home-page "https://github.com/rails/arel") | ||
| 5993 | (synopsis "SQL AST manager for Ruby") | ||
| 5994 | (description "Arel is an SQL @dfn{Abstract Syntax Tree} (AST) manager for | ||
| 5995 | Ruby. It simplifies the generation of complex SQL queries and adapts to | ||
| 5996 | various relational database implementations.") | ||
| 5997 | (license license:expat))) | ||
| 5998 | |||
| 5999 | (define-public ruby-minitar | ||
| 6000 | ;; We package from the GitHub source to fix the security issue reported at | ||
| 6001 | ;; https://github.com/halostatue/minitar/issues/16. | ||
| 6002 | (let ((commit "e25205ecbb6277ae8a3df1e6a306d7ed4458b6e4")) | ||
| 6003 | (package | ||
| 6004 | (name "ruby-minitar") | ||
| 6005 | (version (string-append "0.5.4-1." (string-take commit 8))) | ||
| 6006 | (source | ||
| 6007 | (origin | ||
| 6008 | (method git-fetch) | ||
| 6009 | (uri (git-reference | ||
| 6010 | (url "https://github.com/halostatue/minitar") | ||
| 6011 | (commit commit))) | ||
| 6012 | (file-name (string-append name "-" version "-checkout")) | ||
| 6013 | (sha256 | ||
| 6014 | (base32 | ||
| 6015 | "1iywfx07jgjqcmixzkxk9zdwfmij1fyg1z2jlwzj15cj7s99qlfv")))) | ||
| 6016 | (build-system ruby-build-system) | ||
| 6017 | (arguments | ||
| 6018 | '(#:tests? #f)) ; missing a gemspec | ||
| 6019 | (synopsis "Ruby library and utility for handling tar archives") | ||
| 6020 | (description | ||
| 6021 | "Archive::Tar::Minitar is a pure-Ruby library and command-line utility | ||
| 6022 | that provides the ability to deal with POSIX tar archive files.") | ||
| 6023 | (home-page "http://www.github.com/atoulme/minitar") | ||
| 6024 | (license (list license:gpl2+ license:ruby))))) | ||
| 6025 | |||
| 6026 | (define-public ruby-nokogiri | ||
| 6027 | (package | ||
| 6028 | (name "ruby-nokogiri") | ||
| 6029 | (version "1.15.2") | ||
| 6030 | (source (origin | ||
| 6031 | (method git-fetch) | ||
| 6032 | (uri (git-reference | ||
| 6033 | (url "https://github.com/sparklemotion/nokogiri") | ||
| 6034 | (commit "a6ad20b3edc8f020043ccfe5d9ec6ae9af103720"))) | ||
| 6035 | (file-name (git-file-name name version)) | ||
| 6036 | (sha256 | ||
| 6037 | (base32 | ||
| 6038 | "1n0vlg6v58jw3qzgyihz1dh5fvp4js1qgdh75j0kn47nvyiw3jxj")) | ||
| 6039 | (patches (search-patches "ruby-nokogiri.patch")))) | ||
| 6040 | (build-system ruby-build-system) | ||
| 6041 | (arguments | ||
| 6042 | (list #:gem-flags #~(list "--" "--use-system-libraries" | ||
| 6043 | (string-append "--with-xml2-include=" | ||
| 6044 | #$(this-package-input "libxml2") | ||
| 6045 | "/include/libxml2")) | ||
| 6046 | #:phases #~(modify-phases %standard-phases | ||
| 6047 | (add-after 'install 'delete-mkmf.log | ||
| 6048 | (lambda _ | ||
| 6049 | ;; Rubygems installs build log files that embed volatile file | ||
| 6050 | ;; names (see: | ||
| 6051 | ;; https://github.com/rubygems/rubygems/issues/6259). | ||
| 6052 | (for-each delete-file | ||
| 6053 | (find-files #$output "^mkmf\\.log$")))) | ||
| 6054 | (delete 'check) | ||
| 6055 | (add-after 'install 'check | ||
| 6056 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 6057 | (setenv "GEM_PATH" (string-append | ||
| 6058 | (getenv "GEM_PATH") ":" | ||
| 6059 | #$output "/lib/ruby/vendor_ruby")) | ||
| 6060 | (when tests? | ||
| 6061 | (for-each (lambda (file) | ||
| 6062 | (invoke "ruby" "-Itest" file)) | ||
| 6063 | (find-files "test" "^test_.*\\.rb")))))))) | ||
| 6064 | (native-inputs (list ruby-hoe ruby-rubyzip)) | ||
| 6065 | (inputs (list zlib libxml2 libxslt)) | ||
| 6066 | (propagated-inputs (list ruby-mini-portile-2 ruby-pkg-config)) | ||
| 6067 | (synopsis "HTML, XML, SAX, and Reader parser for Ruby") | ||
| 6068 | (description "Nokogiri (鋸) parses and searches XML/HTML, and features | ||
| 6069 | both CSS3 selector and XPath 1.0 support.") | ||
| 6070 | (home-page "https://nokogiri.org/") | ||
| 6071 | (license license:expat))) | ||
| 6072 | |||
| 6073 | (define-public ruby-method-source | ||
| 6074 | (package | ||
| 6075 | (name "ruby-method-source") | ||
| 6076 | (version "1.0.0") | ||
| 6077 | (source | ||
| 6078 | (origin | ||
| 6079 | (method url-fetch) | ||
| 6080 | (uri (rubygems-uri "method_source" version)) | ||
| 6081 | (sha256 | ||
| 6082 | (base32 | ||
| 6083 | "1pnyh44qycnf9mzi1j6fywd5fkskv3x7nmsqrrws0rjn5dd4ayfp")))) | ||
| 6084 | (build-system ruby-build-system) | ||
| 6085 | (arguments | ||
| 6086 | `(#:test-target "spec" | ||
| 6087 | #:phases | ||
| 6088 | (modify-phases %standard-phases | ||
| 6089 | (add-after 'unpack 'remove-git-ls-files | ||
| 6090 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 6091 | (substitute* "Rakefile" | ||
| 6092 | (("git ls-files") "find . -type f"))))))) | ||
| 6093 | (native-inputs | ||
| 6094 | (list ruby-rspec)) | ||
| 6095 | (synopsis "Retrieve the source code for Ruby methods") | ||
| 6096 | (description "Method_source retrieves the source code for Ruby methods. | ||
| 6097 | Additionally, it can extract source code from Proc and Lambda objects or just | ||
| 6098 | extract comments.") | ||
| 6099 | (home-page "https://github.com/banister/method_source") | ||
| 6100 | (license license:expat))) | ||
| 6101 | |||
| 6102 | (define-public ruby-coderay | ||
| 6103 | (package | ||
| 6104 | (name "ruby-coderay") | ||
| 6105 | (version "1.1.2") | ||
| 6106 | (source | ||
| 6107 | (origin | ||
| 6108 | (method url-fetch) | ||
| 6109 | (uri (rubygems-uri "coderay" version)) | ||
| 6110 | (sha256 | ||
| 6111 | (base32 | ||
| 6112 | "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y")))) | ||
| 6113 | (build-system ruby-build-system) | ||
| 6114 | (arguments | ||
| 6115 | '(#:tests? #f)) ; missing test files | ||
| 6116 | (synopsis "Ruby syntax highlighting library") | ||
| 6117 | (description "Coderay is a Ruby library that provides syntax highlighting | ||
| 6118 | for select languages.") | ||
| 6119 | (home-page "http://coderay.rubychan.de") | ||
| 6120 | (license license:expat))) | ||
| 6121 | |||
| 6122 | (define-public ruby-cuke-modeler | ||
| 6123 | (package | ||
| 6124 | (name "ruby-cuke-modeler") | ||
| 6125 | (version "3.20.1") | ||
| 6126 | (source (origin | ||
| 6127 | (method git-fetch) | ||
| 6128 | (uri (git-reference | ||
| 6129 | (url "https://github.com/enkessler/cuke_modeler") | ||
| 6130 | (commit (string-append "v" version)))) | ||
| 6131 | (file-name (git-file-name name version)) | ||
| 6132 | (sha256 | ||
| 6133 | (base32 | ||
| 6134 | "0xbnx1blxm4kfhfwfh58n2ja40p2kfw8hbbz60dlzvghz25vcwy6")))) | ||
| 6135 | (build-system ruby-build-system) | ||
| 6136 | (arguments | ||
| 6137 | (list #:test-target "default" | ||
| 6138 | #:phases | ||
| 6139 | #~(modify-phases %standard-phases | ||
| 6140 | (add-after 'unpack 'improve-reproducibility | ||
| 6141 | (lambda _ | ||
| 6142 | (substitute* | ||
| 6143 | "testing/rspec/spec/unit/cuke_modeler_unit_spec.rb" | ||
| 6144 | (("#\\{Time.now.year\\}") "")))) | ||
| 6145 | (add-after 'unpack 'relax-requirements | ||
| 6146 | (lambda _ | ||
| 6147 | (substitute* "Gemfile" | ||
| 6148 | ;; Cucumber appears pinned to an older version for no | ||
| 6149 | ;; particular reason (see: | ||
| 6150 | ;; https://github.com/enkessler/cuke_modeler/issues/14). | ||
| 6151 | (("'cucumber', '2.2.0'") | ||
| 6152 | "'cucumber', '>= 2.2.0'") | ||
| 6153 | (("^gherkin_major_version_used = .*") | ||
| 6154 | (string-append | ||
| 6155 | "gherkin_major_version_used = " | ||
| 6156 | #$(car | ||
| 6157 | (string-split | ||
| 6158 | (package-version | ||
| 6159 | (this-package-input "ruby-cucumber-gherkin")) #\.)) | ||
| 6160 | "\n"))) | ||
| 6161 | ;; Disable Bundler. | ||
| 6162 | (substitute* "bin/console" | ||
| 6163 | (("require 'bundler/setup'") "")) | ||
| 6164 | (substitute* "rakefiles/testing_tasks.rb" | ||
| 6165 | (("'bundle', 'exec', ") "")) | ||
| 6166 | ;; Remove extraneous dependencies. | ||
| 6167 | (substitute* "cuke_modeler.gemspec" | ||
| 6168 | ((".*bundler.*") "") | ||
| 6169 | ((".*rubocop.*") "") | ||
| 6170 | ((".*yard.*") "")) | ||
| 6171 | (substitute* "Rakefile" | ||
| 6172 | (("Rainbow.enabled = true") "") | ||
| 6173 | (("require_relative 'rakefiles/documentation_tasks'") "") | ||
| 6174 | (("require_relative 'rakefiles/other_tasks'") "") | ||
| 6175 | (("require_relative 'rakefiles/release_tasks'") ""))))))) | ||
| 6176 | (native-inputs | ||
| 6177 | (list ruby-childprocess | ||
| 6178 | ruby-cucumber | ||
| 6179 | ruby-rainbow | ||
| 6180 | ruby-rspec | ||
| 6181 | ruby-simplecov | ||
| 6182 | ruby-simplecov-lcov)) | ||
| 6183 | (propagated-inputs (list ruby-cucumber-gherkin)) | ||
| 6184 | (synopsis "Gherkin test suite analysis tool") | ||
| 6185 | (description "CukeModeler facilitates modeling a test suite that is | ||
| 6186 | written in Gherkin (e.g. Cucumber, SpecFlow, Lettuce, etc.). It does this by | ||
| 6187 | providing an abstraction layer on top of the Abstract Syntax Tree (AST) that | ||
| 6188 | the @code{cucumber-gherkin} generates when parsing features, as well as | ||
| 6189 | providing models for feature files and directories in order to be able to have | ||
| 6190 | a fully traversable model tree of a test suite's structure. These models can | ||
| 6191 | then be analyzed or manipulated more easily than the underlying AST layer.") | ||
| 6192 | (home-page "https://github.com/enkessler/cuke_modeler") | ||
| 6193 | (license license:expat))) | ||
| 6194 | |||
| 6195 | (define-public ruby-parallel-tests | ||
| 6196 | (package | ||
| 6197 | (name "ruby-parallel-tests") | ||
| 6198 | (version "4.9.0") | ||
| 6199 | (home-page "https://github.com/grosser/parallel_tests") | ||
| 6200 | (source (origin | ||
| 6201 | (method git-fetch) | ||
| 6202 | (uri (git-reference | ||
| 6203 | (url home-page) | ||
| 6204 | (commit (string-append "v" version)))) | ||
| 6205 | (file-name (string-append name version)) | ||
| 6206 | (sha256 | ||
| 6207 | (base32 | ||
| 6208 | "0ljb17i1bvlr0y1avwishcrg60h48bj6iwgkp8yrck08wcs7b338")))) | ||
| 6209 | (build-system ruby-build-system) | ||
| 6210 | (arguments | ||
| 6211 | '(#:test-target "spec" ;avoid rubocop dependency | ||
| 6212 | #:phases (modify-phases %standard-phases | ||
| 6213 | (add-after 'patch-source-shebangs 'patch-shell-invocations | ||
| 6214 | (lambda _ | ||
| 6215 | (substitute* '("lib/parallel_tests/tasks.rb" | ||
| 6216 | "spec/parallel_tests/tasks_spec.rb") | ||
| 6217 | (("/bin/sh") (which "sh")) | ||
| 6218 | (("/bin/bash") (which "bash"))))) | ||
| 6219 | (add-before 'check 'relax-requirements | ||
| 6220 | (lambda _ | ||
| 6221 | ;; Remove hard coded version constraints, instead just | ||
| 6222 | ;; use whatever versions are available in Guix. | ||
| 6223 | (delete-file "Gemfile.lock") | ||
| 6224 | (substitute* "Gemfile" | ||
| 6225 | (("'minitest',.*") | ||
| 6226 | "'minitest'\n") | ||
| 6227 | (("'cucumber',.*") | ||
| 6228 | "'cucumber'\n") | ||
| 6229 | ;; Do not depend on a git-fetched spinach version. | ||
| 6230 | (("gem 'spinach',.*") | ||
| 6231 | "gem 'spinach'\n") | ||
| 6232 | ((".*rubocop.*") "")))) | ||
| 6233 | (add-before 'check 'disable-rails-test | ||
| 6234 | (lambda _ | ||
| 6235 | ;; XXX: This test attempts to download and run the test | ||
| 6236 | ;; suites of multiple Rails versions(!) directly. | ||
| 6237 | (delete-file "spec/rails_spec.rb"))) | ||
| 6238 | (add-before 'check 'disable-problematic-tests | ||
| 6239 | (lambda _ | ||
| 6240 | ;; This test fails, probably because of the newer | ||
| 6241 | ;; Cucumber version used here. | ||
| 6242 | (delete-file "spec/parallel_tests/cucumber/\ | ||
| 6243 | failure_logger_spec.rb") )) | ||
| 6244 | (add-before 'check 'set-HOME | ||
| 6245 | (lambda _ | ||
| 6246 | ;; Some tests check the output of Bundler, and fail when | ||
| 6247 | ;; Bundler warns that /homeless-shelter does not exist. | ||
| 6248 | (setenv "HOME" "/tmp")))))) | ||
| 6249 | (native-inputs | ||
| 6250 | (list ruby-bump | ||
| 6251 | ruby-cucumber | ||
| 6252 | ruby-cuke-modeler | ||
| 6253 | ruby-minitest | ||
| 6254 | ruby-rake | ||
| 6255 | ruby-rspec | ||
| 6256 | ruby-spinach)) | ||
| 6257 | (propagated-inputs | ||
| 6258 | (list ruby-parallel)) | ||
| 6259 | (synopsis "Run tests in parallel") | ||
| 6260 | (description | ||
| 6261 | "This package can speed up @code{Test::Unit}, @code{RSpec}, | ||
| 6262 | @code{Cucumber}, and @code{Spinach} tests by running them concurrently | ||
| 6263 | across multiple CPU cores.") | ||
| 6264 | (license license:expat))) | ||
| 6265 | |||
| 6266 | (define-public ruby-parser | ||
| 6267 | (package | ||
| 6268 | (name "ruby-parser") | ||
| 6269 | (version "3.3.7.0") | ||
| 6270 | (source | ||
| 6271 | (origin | ||
| 6272 | (method url-fetch) | ||
| 6273 | (uri (rubygems-uri "parser" version)) | ||
| 6274 | (sha256 | ||
| 6275 | (base32 | ||
| 6276 | "16qi2qhpszm842awxghmsp64yvvawafq96w5jw98irz3f4bh2jbl")))) | ||
| 6277 | (build-system ruby-build-system) | ||
| 6278 | (arguments '(#:tests? #f)) ; tests not included in gem | ||
| 6279 | (native-inputs (list bundler ruby-cliver ruby-simplecov)) | ||
| 6280 | (inputs (list ragel)) | ||
| 6281 | (propagated-inputs (list ruby-ast ruby-racc)) | ||
| 6282 | (synopsis "Ruby parser written in pure Ruby") | ||
| 6283 | (description | ||
| 6284 | "This package provides a Ruby parser written in pure Ruby.") | ||
| 6285 | (home-page "https://github.com/whitequark/parser") | ||
| 6286 | (license license:expat))) | ||
| 6287 | |||
| 6288 | (define-public ruby-set | ||
| 6289 | (package | ||
| 6290 | (name "ruby-set") | ||
| 6291 | (version "1.0.3") | ||
| 6292 | (source (origin | ||
| 6293 | (method url-fetch) | ||
| 6294 | (uri (rubygems-uri "set" version)) | ||
| 6295 | (sha256 | ||
| 6296 | (base32 | ||
| 6297 | "07kc057nrkddrybqmlbmgf9x7nsmbc3ni6gy1z6xjx5b838vlj33")))) | ||
| 6298 | (build-system ruby-build-system) | ||
| 6299 | (synopsis | ||
| 6300 | "Ruby class to deal with collections of unordered, unique values") | ||
| 6301 | (description | ||
| 6302 | "This package provides a class to deal with collections of unordered, | ||
| 6303 | unique values") | ||
| 6304 | (home-page "https://github.com/ruby/set") | ||
| 6305 | (license license:bsd-2))) | ||
| 6306 | |||
| 6307 | (define-public ruby-sexp-processor | ||
| 6308 | (package | ||
| 6309 | (name "ruby-sexp-processor") | ||
| 6310 | (version "4.17.0") | ||
| 6311 | (source | ||
| 6312 | (origin | ||
| 6313 | (method url-fetch) | ||
| 6314 | (uri (rubygems-uri "sexp_processor" version)) | ||
| 6315 | (sha256 | ||
| 6316 | (base32 | ||
| 6317 | "0vzz9mhg4kkdqf179pm30i204h7iskanxrk53j0csf0qrrs4iajd")))) | ||
| 6318 | (build-system ruby-build-system) | ||
| 6319 | (native-inputs | ||
| 6320 | (list ruby-hoe | ||
| 6321 | ruby-minitest | ||
| 6322 | ruby-minitest-proveit)) | ||
| 6323 | (synopsis "ParseTree fork which includes generic S-exp processing tools") | ||
| 6324 | (description "The sexp_processor package is derived from ParseTree, but | ||
| 6325 | contrary to ParseTree, it includes all the generic S-exp processing tools. | ||
| 6326 | Amongst the included tools are @code{Sexp}, @code{SexpProcessor} and | ||
| 6327 | @code{Environment}") | ||
| 6328 | (home-page "https://github.com/seattlerb/sexp_processor") | ||
| 6329 | (license license:expat))) | ||
| 6330 | |||
| 6331 | (define-public ruby-ruby-parser | ||
| 6332 | (package | ||
| 6333 | (name "ruby-ruby-parser") | ||
| 6334 | (version "3.20.2") | ||
| 6335 | (source | ||
| 6336 | (origin | ||
| 6337 | (method url-fetch) | ||
| 6338 | (uri (rubygems-uri "ruby_parser" version)) | ||
| 6339 | (sha256 | ||
| 6340 | (base32 | ||
| 6341 | "0q851n8654wkjrq8jawq8vi5yhr1y9vpyr2vj7cnn3sa4ikg6d3z")))) | ||
| 6342 | (build-system ruby-build-system) | ||
| 6343 | (arguments | ||
| 6344 | (list | ||
| 6345 | #:phases | ||
| 6346 | #~(modify-phases %standard-phases | ||
| 6347 | (add-after 'unpack 'patch | ||
| 6348 | (lambda _ | ||
| 6349 | (substitute* "Rakefile" | ||
| 6350 | (("`which bison`") | ||
| 6351 | (string-append "\"" (which "bison") "\"")) | ||
| 6352 | (("which unifdef") | ||
| 6353 | (which "unifdef")))))))) | ||
| 6354 | (native-inputs | ||
| 6355 | (list ruby-hoe | ||
| 6356 | ruby-racc | ||
| 6357 | unifdef | ||
| 6358 | bison | ||
| 6359 | ruby-minitest)) | ||
| 6360 | (propagated-inputs | ||
| 6361 | (list ruby-sexp-processor)) | ||
| 6362 | (home-page "https://github.com/seattlerb/ruby_parser/") | ||
| 6363 | (synopsis "Ruby parser written in pure Ruby") | ||
| 6364 | (description "The ruby_parser (RP) package provides a Ruby parser written | ||
| 6365 | in pure Ruby. It outputs S-expressions which can be manipulated and converted | ||
| 6366 | back to Ruby via the @code{ruby2ruby} library.") | ||
| 6367 | (license license:expat))) | ||
| 6368 | |||
| 6369 | (define-public ruby-ruby-version | ||
| 6370 | (package | ||
| 6371 | (name "ruby-ruby-version") | ||
| 6372 | (version "1.0.2") | ||
| 6373 | (source (origin | ||
| 6374 | (method url-fetch) | ||
| 6375 | (uri (rubygems-uri "ruby_version" version)) | ||
| 6376 | (sha256 | ||
| 6377 | (base32 | ||
| 6378 | "0lvc7bd5ps3w2vq2wb02i0pi3vfcx2rnckx2ix4rjym1qf52kb2j")))) | ||
| 6379 | (build-system ruby-build-system) | ||
| 6380 | (arguments | ||
| 6381 | (list #:phases | ||
| 6382 | #~(modify-phases %standard-phases | ||
| 6383 | (add-after 'extract-gemspec 'delete-gem-files | ||
| 6384 | ;; There are some pre-built files in the source, and | ||
| 6385 | ;; registered in the .gemspec (see: | ||
| 6386 | ;; https://github.com/janlelis/ruby_version/issues/1). | ||
| 6387 | (lambda _ | ||
| 6388 | (delete-file-recursively "pkg") | ||
| 6389 | (substitute* "ruby_version.gemspec" | ||
| 6390 | (("\"pkg/ruby_version-1.0.0.gem\".freeze, ") | ||
| 6391 | "") | ||
| 6392 | (("\"pkg/ruby_version-1.0.1.gem\".freeze, ") | ||
| 6393 | "")))) | ||
| 6394 | (add-after 'extract-gemspec 'relax-requirements | ||
| 6395 | (lambda _ | ||
| 6396 | (delete-file "Gemfile.lock") | ||
| 6397 | (substitute* "ruby_version.gemspec" | ||
| 6398 | (("\"Gemfile.lock\".freeze, ") "") | ||
| 6399 | ;; Allow a newers versions of development dependencies. | ||
| 6400 | (("~>") ">="))))))) | ||
| 6401 | (native-inputs (list ruby-rdoc ruby-rubygems-tasks ruby-rspec)) | ||
| 6402 | (synopsis "Ruby class for checking the Ruby version") | ||
| 6403 | (description "This package provides a @code{RubyVersion} class which | ||
| 6404 | offers a convenient Domain Specific Language (DSL) for checking for the right | ||
| 6405 | Ruby version.") | ||
| 6406 | (home-page "https://github.com/janlelis/ruby_version") | ||
| 6407 | (license license:expat))) | ||
| 6408 | |||
| 6409 | (define-public ruby-prawn-manual-builder | ||
| 6410 | (package | ||
| 6411 | (name "ruby-prawn-manual-builder") | ||
| 6412 | (version "0.3.1") | ||
| 6413 | (source | ||
| 6414 | (origin | ||
| 6415 | (method url-fetch) | ||
| 6416 | (uri (rubygems-uri "prawn-manual_builder" version)) | ||
| 6417 | (sha256 | ||
| 6418 | (base32 "1vlg5w7wq43g2hgpgra2nrcxj1kb4ayqliz4gmja2rhs037j2vzs")))) | ||
| 6419 | (build-system ruby-build-system) | ||
| 6420 | (arguments | ||
| 6421 | '(#:tests? #f ; no included tests | ||
| 6422 | #:phases | ||
| 6423 | (modify-phases %standard-phases | ||
| 6424 | (add-after 'extract-gemspec 'patch-gemspec | ||
| 6425 | (lambda _ | ||
| 6426 | (substitute* ".gemspec" | ||
| 6427 | ;; Loosen the requirement for pdf-inspector | ||
| 6428 | (("~> 1\\.0\\.7") ">= 0"))))))) | ||
| 6429 | (propagated-inputs | ||
| 6430 | (list ruby-coderay)) | ||
| 6431 | (synopsis "Tool for writing manuals for Prawn and Prawn accessories") | ||
| 6432 | (description | ||
| 6433 | "This package provides a tool for writing manuals for Prawn and Prawn | ||
| 6434 | accessories") | ||
| 6435 | (home-page "https://github.com/prawnpdf/prawn-manual_builder") | ||
| 6436 | (license %prawn-project-licenses))) | ||
| 6437 | |||
| 6438 | (define-public ruby-progress_bar | ||
| 6439 | (package | ||
| 6440 | (name "ruby-progress_bar") | ||
| 6441 | (version "1.1.0") | ||
| 6442 | (source | ||
| 6443 | (origin | ||
| 6444 | (method url-fetch) | ||
| 6445 | (uri (rubygems-uri "progress_bar" version)) | ||
| 6446 | (sha256 | ||
| 6447 | (base32 | ||
| 6448 | "1qc40mr6p1z9a3vlpnsg1zfgk1qswviql2a31y63wpv3vr6b5f48")))) | ||
| 6449 | (build-system ruby-build-system) | ||
| 6450 | (arguments | ||
| 6451 | '(#:test-target "spec")) | ||
| 6452 | (propagated-inputs | ||
| 6453 | (list ruby-highline ruby-options)) | ||
| 6454 | (native-inputs | ||
| 6455 | (list bundler ruby-rspec ruby-timecop)) | ||
| 6456 | (synopsis | ||
| 6457 | "Ruby library for displaying progress bars") | ||
| 6458 | (description | ||
| 6459 | "ProgressBar is a simple library for displaying progress bars. The | ||
| 6460 | maximum value is configurable, and additional information can be displayed | ||
| 6461 | like the percentage completion, estimated time remaining, elapsed time and | ||
| 6462 | rate.") | ||
| 6463 | (home-page "https://github.com/paul/progress_bar") | ||
| 6464 | (license license:wtfpl2))) | ||
| 6465 | |||
| 6466 | (define-public ruby-progressbar | ||
| 6467 | (package | ||
| 6468 | (name "ruby-progressbar") | ||
| 6469 | (version "1.10.1") | ||
| 6470 | (source | ||
| 6471 | (origin | ||
| 6472 | (method url-fetch) | ||
| 6473 | (uri (rubygems-uri "ruby-progressbar" version)) | ||
| 6474 | (sha256 | ||
| 6475 | (base32 "1k77i0d4wsn23ggdd2msrcwfy0i376cglfqypkk2q77r2l3408zf")))) | ||
| 6476 | (build-system ruby-build-system) | ||
| 6477 | (arguments | ||
| 6478 | '(;; TODO: There looks to be a circular dependency with ruby-fuubar. | ||
| 6479 | #:tests? #f)) | ||
| 6480 | (synopsis "Text progress bar library for Ruby") | ||
| 6481 | (description | ||
| 6482 | "Ruby/ProgressBar is an flexible text progress bar library for Ruby. | ||
| 6483 | The output can be customized with a formatting system.") | ||
| 6484 | (home-page "https://github.com/jfelchner/ruby-progressbar") | ||
| 6485 | (license license:expat))) | ||
| 6486 | |||
| 6487 | (define-public ruby-latest-ruby | ||
| 6488 | (package | ||
| 6489 | (name "ruby-latest-ruby") | ||
| 6490 | (version "3.1.0") | ||
| 6491 | (source (origin | ||
| 6492 | (method url-fetch) | ||
| 6493 | (uri (rubygems-uri "latest_ruby" version)) | ||
| 6494 | (sha256 | ||
| 6495 | (base32 | ||
| 6496 | "15rqwgxzpnkzdiz8m02jra0zq5sx0fiz61vkfrj1ls6slqfhnzqg")))) | ||
| 6497 | (build-system ruby-build-system) | ||
| 6498 | (arguments | ||
| 6499 | '(#:tests? #f)) ; No Rakefile | ||
| 6500 | (synopsis "Answers the question of what the latest Ruby version is") | ||
| 6501 | (description "Knows about MRI, Rubinius, JRuby, MagLev and MacRuby.") | ||
| 6502 | (home-page "https://github.com/kyrylo/latest_ruby") | ||
| 6503 | (license license:zlib))) | ||
| 6504 | |||
| 6505 | (define-public ruby-pry | ||
| 6506 | (package | ||
| 6507 | (name "ruby-pry") | ||
| 6508 | (version "0.14.2") | ||
| 6509 | (source | ||
| 6510 | (origin | ||
| 6511 | (method url-fetch) | ||
| 6512 | (uri (rubygems-uri "pry" version)) | ||
| 6513 | (sha256 | ||
| 6514 | (base32 | ||
| 6515 | "0k9kqkd9nps1w1r1rb7wjr31hqzkka2bhi8b518x78dcxppm9zn4")))) | ||
| 6516 | (build-system ruby-build-system) | ||
| 6517 | (arguments | ||
| 6518 | '(#:tests? #f)) ; no tests | ||
| 6519 | (propagated-inputs | ||
| 6520 | (list ruby-coderay ruby-method-source)) | ||
| 6521 | (synopsis "Ruby REPL") | ||
| 6522 | (description "Pry is an IRB alternative and runtime developer console for | ||
| 6523 | Ruby. It features syntax highlighting, a plugin architecture, runtime | ||
| 6524 | invocation, and source and documentation browsing.") | ||
| 6525 | (home-page "https://cobaltbluemedia.com/pryrepl/") | ||
| 6526 | (license license:expat))) | ||
| 6527 | |||
| 6528 | (define-public ruby-pry-doc | ||
| 6529 | (package | ||
| 6530 | (name "ruby-pry-doc") | ||
| 6531 | (version "1.4.0") | ||
| 6532 | (source (origin | ||
| 6533 | (method url-fetch) | ||
| 6534 | (uri (rubygems-uri "pry-doc" version)) | ||
| 6535 | (sha256 | ||
| 6536 | (base32 | ||
| 6537 | "1pp43n69p6bjvc640wgcz295w1q2v9awcqgbwcqn082dbvq5xvnx")))) | ||
| 6538 | (build-system ruby-build-system) | ||
| 6539 | (propagated-inputs (list ruby-pry ruby-yard)) | ||
| 6540 | (native-inputs (list ruby-latest-ruby ruby-rspec ruby-rake)) ;for tests | ||
| 6541 | (synopsis "Provides YARD and extended documentation support for Pry") | ||
| 6542 | (description | ||
| 6543 | "Pry Doc is a Pry REPL plugin. It provides extended documentation | ||
| 6544 | support for the REPL by means of improving the @code{show-doc} and | ||
| 6545 | @code{show-source} commands. With help of the plugin the commands are | ||
| 6546 | be able to display the source code and the docs of Ruby methods and | ||
| 6547 | classes implemented in C.") | ||
| 6548 | (home-page "https://github.com/pry/pry-doc") | ||
| 6549 | (license license:expat))) | ||
| 6550 | |||
| 6551 | (define-public ruby-single-cov | ||
| 6552 | (package | ||
| 6553 | (name "ruby-single-cov") | ||
| 6554 | (version "1.9.1") | ||
| 6555 | (home-page "https://github.com/grosser/single_cov") | ||
| 6556 | (source (origin | ||
| 6557 | (method git-fetch) | ||
| 6558 | (uri (git-reference (url home-page) | ||
| 6559 | (commit (string-append "v" version)))) | ||
| 6560 | (file-name (git-file-name name version)) | ||
| 6561 | (sha256 | ||
| 6562 | (base32 | ||
| 6563 | "1w4k81f2mdg620m6pwkrqayddnz9mr8qx0myqn33mw8k6imfip05")))) | ||
| 6564 | (build-system ruby-build-system) | ||
| 6565 | (arguments | ||
| 6566 | '(#:test-target "spec" ;to avoid rubocop requirement | ||
| 6567 | #:phases (modify-phases %standard-phases | ||
| 6568 | (replace 'replace-git-ls-files | ||
| 6569 | (lambda _ | ||
| 6570 | (substitute* "single_cov.gemspec" | ||
| 6571 | (("`git ls-files lib/ bin/ MIT-LICENSE`") | ||
| 6572 | ;; There no longer appear to be a 'bin' | ||
| 6573 | ;; sub-directory. | ||
| 6574 | "`find lib/ MIT-LICENSE -type f | sort`")))) | ||
| 6575 | (add-before 'check 'remove-version-constraints | ||
| 6576 | (lambda _ | ||
| 6577 | (delete-file "Gemfile.lock"))) | ||
| 6578 | (add-before 'check 'relax-requirements | ||
| 6579 | (lambda _ | ||
| 6580 | ;; Remove extraneous requirements. | ||
| 6581 | (substitute* "Rakefile" | ||
| 6582 | ((".*require.*bump.*") "")) | ||
| 6583 | (substitute* "Gemfile" | ||
| 6584 | ((".*gem \"bump\".*") "") | ||
| 6585 | ((".*gem \"rubocop\".*") "")))) | ||
| 6586 | (add-before 'check 'disable-failing-test | ||
| 6587 | (lambda _ | ||
| 6588 | ;; XXX: This test copies assets from minitest, but can | ||
| 6589 | ;; not cope with the files being read-only. Just skip | ||
| 6590 | ;; it for now. | ||
| 6591 | (substitute* "specs/single_cov_spec.rb" | ||
| 6592 | (("it \"complains when coverage is bad\"") | ||
| 6593 | "xit \"complains when coverage is bad\""))))))) | ||
| 6594 | (native-inputs (list ruby-minitest ruby-rspec ruby-simplecov)) | ||
| 6595 | (synopsis "Code coverage reporting tool") | ||
| 6596 | (description | ||
| 6597 | "This package provides actionable code coverage reports for Ruby | ||
| 6598 | projects. It has very little overhead and can be easily integrated with | ||
| 6599 | development tools to catch coverage problems early.") | ||
| 6600 | (license license:expat))) | ||
| 6601 | |||
| 6602 | (define-public ruby-oedipus-lex | ||
| 6603 | (package | ||
| 6604 | (name "ruby-oedipus-lex") | ||
| 6605 | (version "2.6.1") | ||
| 6606 | (source | ||
| 6607 | (origin | ||
| 6608 | (method url-fetch) | ||
| 6609 | (uri (rubygems-uri "oedipus_lex" version)) | ||
| 6610 | (sha256 | ||
| 6611 | (base32 | ||
| 6612 | "06l4d3l75vhdcmnavnkzr7bd39rb0njxhkbmwrw6ni64z2hlj7w7")))) | ||
| 6613 | (build-system ruby-build-system) | ||
| 6614 | (native-inputs | ||
| 6615 | (list ruby-hoe | ||
| 6616 | ruby-minitest)) | ||
| 6617 | (synopsis "Ruby lexer") | ||
| 6618 | (description | ||
| 6619 | "Oedipus Lex is a lexer generator in the same family as Rexical and Rex. | ||
| 6620 | It is based primarily on generating code much like you would a hand-written | ||
| 6621 | lexer. It uses StrScanner within a multi-level case statement. As such, | ||
| 6622 | Oedipus matches on the first match, not the longest.") | ||
| 6623 | (home-page "https://github.com/seattlerb/oedipus_lex") | ||
| 6624 | (license license:expat))) | ||
| 6625 | |||
| 6626 | (define-public ruby-guard | ||
| 6627 | (package | ||
| 6628 | (name "ruby-guard") | ||
| 6629 | (version "2.13.0") | ||
| 6630 | (source (origin | ||
| 6631 | (method git-fetch) | ||
| 6632 | ;; The gem does not include a Rakefile, nor does it contain a | ||
| 6633 | ;; gemspec file, nor does it come with the tests. This is why | ||
| 6634 | ;; we fetch the tarball from Github. | ||
| 6635 | (uri (git-reference | ||
| 6636 | (url "https://github.com/guard/guard") | ||
| 6637 | (commit (string-append "v" version)))) | ||
| 6638 | (file-name (git-file-name name version)) | ||
| 6639 | (sha256 | ||
| 6640 | (base32 | ||
| 6641 | "16pxcszr0g2jnl3090didxh1d8z5m2mly14m3w4rspb8fmclsnjs")))) | ||
| 6642 | (build-system ruby-build-system) | ||
| 6643 | (arguments | ||
| 6644 | `(#:tests? #f ; tests require cucumber | ||
| 6645 | #:phases | ||
| 6646 | (modify-phases %standard-phases | ||
| 6647 | (add-after 'unpack 'remove-git-ls-files | ||
| 6648 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 6649 | (substitute* "guard.gemspec" | ||
| 6650 | (("git ls-files -z") "find . -type f -print0")))) | ||
| 6651 | (replace 'build | ||
| 6652 | (lambda _ | ||
| 6653 | (invoke "gem" "build" "guard.gemspec")))))) | ||
| 6654 | (propagated-inputs | ||
| 6655 | (list ruby-formatador | ||
| 6656 | ruby-listen | ||
| 6657 | ruby-lumberjack | ||
| 6658 | ruby-nenv | ||
| 6659 | ruby-notiffany | ||
| 6660 | ruby-pry | ||
| 6661 | ruby-shellany | ||
| 6662 | ruby-thor)) | ||
| 6663 | (native-inputs | ||
| 6664 | (list bundler ruby-rspec)) | ||
| 6665 | (synopsis "Tool to handle events on file system modifications") | ||
| 6666 | (description | ||
| 6667 | "Guard is a command line tool to easily handle events on file system | ||
| 6668 | modifications. Guard automates various tasks by running custom rules whenever | ||
| 6669 | file or directories are modified.") | ||
| 6670 | (home-page "https://guardgem.org/") | ||
| 6671 | (license license:expat))) | ||
| 6672 | |||
| 6673 | (define-public ruby-spinach | ||
| 6674 | (package | ||
| 6675 | (name "ruby-spinach") | ||
| 6676 | (version "0.12.0") | ||
| 6677 | (home-page "https://github.com/codegram/spinach") | ||
| 6678 | (source (origin | ||
| 6679 | (method url-fetch) | ||
| 6680 | (uri (rubygems-uri "spinach" version)) | ||
| 6681 | (sha256 | ||
| 6682 | (base32 | ||
| 6683 | "1v9nvpvlgjx698dc4q2p1l45sxm5fjjzfxayrkyzb9nv0q0xfjsp")))) | ||
| 6684 | (build-system ruby-build-system) | ||
| 6685 | (arguments | ||
| 6686 | ;; FIXME: Disable tests altogether because they depend on 'capybara' | ||
| 6687 | ;; which in turn depends on many other unpackaged gems. Enable once | ||
| 6688 | ;; capybara is available. | ||
| 6689 | '(#:tests? #f)) | ||
| 6690 | (propagated-inputs | ||
| 6691 | (list ruby-colorize ruby-gherkin-ruby)) | ||
| 6692 | (synopsis "Gherkin-based BDD framework") | ||
| 6693 | (description | ||
| 6694 | "Spinach is a high-level @acronym{BDD, Behavior-driven development} | ||
| 6695 | framework that leverages the expressive @code{Gherkin} language to help you | ||
| 6696 | define executable specifications of your code.") | ||
| 6697 | (license license:expat))) | ||
| 6698 | |||
| 6699 | (define-public ruby-timers | ||
| 6700 | (package | ||
| 6701 | (name "ruby-timers") | ||
| 6702 | (version "4.3.5") | ||
| 6703 | (source (origin | ||
| 6704 | (method git-fetch) | ||
| 6705 | (uri (git-reference | ||
| 6706 | (url "https://github.com/socketry/timers") | ||
| 6707 | (commit (string-append "v" version)))) | ||
| 6708 | (file-name (git-file-name name version)) | ||
| 6709 | (sha256 | ||
| 6710 | (base32 | ||
| 6711 | "1vvahlhk6i1xks1bsha6s64pjjxhagmzvvf1q9h6z3lpcba43rpx")))) | ||
| 6712 | (build-system ruby-build-system) | ||
| 6713 | (arguments | ||
| 6714 | (list #:phases | ||
| 6715 | #~(modify-phases %standard-phases | ||
| 6716 | (add-before 'build 'prune-gems.rb | ||
| 6717 | (lambda _ | ||
| 6718 | (substitute* "gems.rb" | ||
| 6719 | ;; These are only required for maintenance. | ||
| 6720 | ((".*gem \"bake-modernize\".*") "") | ||
| 6721 | ((".*gem \"bake-gem\".*") "") | ||
| 6722 | ;; Not actually required by the tests. | ||
| 6723 | ((".*gem 'benchmark-ips'.*") "") | ||
| 6724 | ((".*gem \"ruby-prof\".*") "")))) | ||
| 6725 | (add-before 'build 'remove-missing-signing-key | ||
| 6726 | (lambda _ | ||
| 6727 | ;; Otherwise, the build fails with ENOENT. | ||
| 6728 | (substitute* "timers.gemspec" | ||
| 6729 | ((".*spec.signing_key.*") "")))) | ||
| 6730 | (replace 'check | ||
| 6731 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 6732 | (when tests? | ||
| 6733 | (invoke "bake" "test"))))))) | ||
| 6734 | (native-inputs | ||
| 6735 | (list ruby-covered | ||
| 6736 | ruby-bake-test | ||
| 6737 | ruby-bake-test-external | ||
| 6738 | ruby-sus)) | ||
| 6739 | (synopsis "Collection of Ruby timer classes") | ||
| 6740 | (description "Timers offers a collections of one-shot and periodic timers, | ||
| 6741 | intended for use with event loops such as async.") | ||
| 6742 | (home-page "https://github.com/socketry/timers") | ||
| 6743 | (license license:expat))) | ||
| 6744 | |||
| 6745 | (define-public ruby-tilt | ||
| 6746 | (package | ||
| 6747 | (name "ruby-tilt") | ||
| 6748 | (version "2.2.0") | ||
| 6749 | (source | ||
| 6750 | (origin | ||
| 6751 | (method git-fetch) ;the distributed gem lacks tests | ||
| 6752 | (uri (git-reference | ||
| 6753 | (url "https://github.com/jeremyevans/tilt") | ||
| 6754 | (commit (string-append "v" version)))) | ||
| 6755 | (file-name (git-file-name name version)) | ||
| 6756 | (sha256 | ||
| 6757 | (base32 "056zm4vzx9xjwl7zgmb17hzb91qx5cvzk60wvsxchfybvl03gn5d")))) | ||
| 6758 | (build-system ruby-build-system) | ||
| 6759 | (arguments | ||
| 6760 | (list | ||
| 6761 | #:phases | ||
| 6762 | #~(modify-phases %standard-phases | ||
| 6763 | (add-before 'check 'set-SASS_IMPLEMENTATION | ||
| 6764 | (lambda _ | ||
| 6765 | (setenv "SASS_IMPLEMENTATION" "sassc")))))) | ||
| 6766 | (propagated-inputs | ||
| 6767 | (list ruby-pandoc-ruby ruby-sassc)) | ||
| 6768 | (native-inputs | ||
| 6769 | (list bundler ruby-yard ruby-builder ruby-erubis ruby-markaby)) | ||
| 6770 | (synopsis "Generic interface to multiple Ruby template engines") | ||
| 6771 | (description | ||
| 6772 | "Tilt is a thin interface over a number of different Ruby template | ||
| 6773 | engines in an attempt to make their usage as generic as possible.") | ||
| 6774 | (home-page "https://github.com/rtomayko/tilt/") | ||
| 6775 | (license license:expat))) | ||
| 6776 | |||
| 6777 | (define-public ruby-thread-safe | ||
| 6778 | (package | ||
| 6779 | (name "ruby-thread-safe") | ||
| 6780 | (version "0.3.6") | ||
| 6781 | (source | ||
| 6782 | (origin | ||
| 6783 | (method url-fetch) | ||
| 6784 | (uri (rubygems-uri "thread_safe" version)) | ||
| 6785 | (sha256 | ||
| 6786 | (base32 | ||
| 6787 | "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy")))) | ||
| 6788 | (build-system ruby-build-system) | ||
| 6789 | (arguments | ||
| 6790 | '(#:tests? #f)) ; needs simplecov, among others | ||
| 6791 | (synopsis "Thread-safe utilities for Ruby") | ||
| 6792 | (description "The thread_safe library provides thread-safe collections and | ||
| 6793 | utilities for Ruby.") | ||
| 6794 | (home-page "https://github.com/ruby-concurrency/thread_safe") | ||
| 6795 | (license license:asl2.0))) | ||
| 6796 | |||
| 6797 | (define-public ruby-tzinfo | ||
| 6798 | (package | ||
| 6799 | (name "ruby-tzinfo") | ||
| 6800 | (version "2.0.6") | ||
| 6801 | (source | ||
| 6802 | (origin | ||
| 6803 | (method git-fetch) | ||
| 6804 | (uri (git-reference | ||
| 6805 | ;; Pull from git because the gem has no tests. | ||
| 6806 | (url "https://github.com/tzinfo/tzinfo") | ||
| 6807 | (commit (string-append "v" version)))) | ||
| 6808 | (file-name (git-file-name name version)) | ||
| 6809 | (sha256 | ||
| 6810 | (base32 | ||
| 6811 | "1n1gzjqwwnx209h8d054miva0y7x17db2ahy7jav5r25ibhh7rgm")))) | ||
| 6812 | (build-system ruby-build-system) | ||
| 6813 | (arguments | ||
| 6814 | (list | ||
| 6815 | #:phases | ||
| 6816 | #~(modify-phases %standard-phases | ||
| 6817 | (add-after 'unpack 'skip-safe-tests | ||
| 6818 | (lambda _ | ||
| 6819 | (substitute* "test/test_utils.rb" | ||
| 6820 | (("def safe_test\\(options = \\{\\}\\)") | ||
| 6821 | "def safe_test(options = {}) | ||
| 6822 | skip('The Guix build environment has an unsafe load path')")))) | ||
| 6823 | (add-before 'check 'pre-check | ||
| 6824 | (lambda _ | ||
| 6825 | (setenv "HOME" (getcwd)) | ||
| 6826 | (substitute* "Gemfile" | ||
| 6827 | (("simplecov.*") "simplecov'\n")))) | ||
| 6828 | (replace 'check | ||
| 6829 | (lambda* (#:key tests? test-target #:allow-other-keys) | ||
| 6830 | (when tests? | ||
| 6831 | (invoke "bundler" "exec" "rake" test-target))))))) | ||
| 6832 | (propagated-inputs | ||
| 6833 | (list ruby-concurrent)) | ||
| 6834 | (native-inputs | ||
| 6835 | (list ruby-simplecov)) | ||
| 6836 | (synopsis "Time zone library for Ruby") | ||
| 6837 | (description "TZInfo is a Ruby library that provides daylight savings | ||
| 6838 | aware transformations between times in different time zones.") | ||
| 6839 | (home-page "https://tzinfo.github.io") | ||
| 6840 | (license license:expat))) | ||
| 6841 | |||
| 6842 | (define-public ruby-tzinfo-data | ||
| 6843 | (package | ||
| 6844 | (name "ruby-tzinfo-data") | ||
| 6845 | (version "1.2023.3") | ||
| 6846 | (source | ||
| 6847 | (origin | ||
| 6848 | (method git-fetch) | ||
| 6849 | ;; Download from GitHub because the rubygems version does not contain | ||
| 6850 | ;; Rakefile or tests. | ||
| 6851 | (uri (git-reference | ||
| 6852 | (url "https://github.com/tzinfo/tzinfo-data") | ||
| 6853 | (commit (string-append "v" version)))) | ||
| 6854 | (file-name (git-file-name name version)) | ||
| 6855 | (sha256 | ||
| 6856 | (base32 | ||
| 6857 | "1v3fpfmw485lsc9bfqfcasb9j25g9ywfpmmk648l2vdsh7nipilf")))) | ||
| 6858 | (build-system ruby-build-system) | ||
| 6859 | (arguments | ||
| 6860 | (list | ||
| 6861 | #:phases | ||
| 6862 | #~(modify-phases %standard-phases | ||
| 6863 | (add-after 'unpack 'patch-source | ||
| 6864 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 6865 | (substitute* "Rakefile" | ||
| 6866 | (("URI\\.parse\\(url\\)\\.open") | ||
| 6867 | "URI.open(url)") | ||
| 6868 | (("https://data.iana.org/time-zones/releases") | ||
| 6869 | (assoc-ref inputs "tzdata"))))) | ||
| 6870 | (add-before 'check 'pre-check | ||
| 6871 | (lambda _ | ||
| 6872 | (setenv "HOME" (getcwd)) | ||
| 6873 | (substitute* "Rakefile" | ||
| 6874 | ;; Don't need gpg, and it may break after a time. | ||
| 6875 | (("gpg ") "echo ") | ||
| 6876 | ((" sh\\(\\\"make -C" text) | ||
| 6877 | (string-append " sh(\"sed -i 's@/bin/sh@sh@' #{tzdb_combined_path}/Makefile \")\n" | ||
| 6878 | " sh(\"sed -i 's@cc=@cc?=@' #{tzdb_combined_path}/Makefile \")\n" text))) | ||
| 6879 | (setenv "cc" #$(cc-for-target))))))) | ||
| 6880 | (propagated-inputs | ||
| 6881 | (list ruby-tzinfo)) | ||
| 6882 | (native-inputs | ||
| 6883 | `(("tzdata" | ||
| 6884 | ,(file-union "tzdata-for-ruby-tzdata-info" | ||
| 6885 | `(("tzdata2023c.tar.gz" | ||
| 6886 | ,(origin | ||
| 6887 | (method url-fetch) | ||
| 6888 | (uri "https://data.iana.org/time-zones/releases/tzdata2023c.tar.gz") | ||
| 6889 | (sha256 | ||
| 6890 | (base32 | ||
| 6891 | "0p4nvp5bdxxdqh269nvvcfrpycbbfwm31al5whwbpsaa3dfhnl9z")))) | ||
| 6892 | ("tzdata2023c.tar.gz.asc" | ||
| 6893 | ,(origin | ||
| 6894 | (method url-fetch) | ||
| 6895 | (uri "https://data.iana.org/time-zones/releases/tzdata2023c.tar.gz.asc") | ||
| 6896 | (sha256 | ||
| 6897 | (base32 | ||
| 6898 | "0mrmhczs5qnj1zp6gh4pg6fm0iblr2jmzy0fgh9slinwxmn7pv6m")))) | ||
| 6899 | ("tzcode2023c.tar.gz" | ||
| 6900 | ,(origin | ||
| 6901 | (method url-fetch) | ||
| 6902 | (uri "https://data.iana.org/time-zones/releases/tzcode2023c.tar.gz") | ||
| 6903 | (sha256 | ||
| 6904 | (base32 | ||
| 6905 | "1rqln88ki0jagi372nqyn7bs03rf2l33081sy2835mwsn4mpzla6")))) | ||
| 6906 | ("tzcode2023c.tar.gz.asc" | ||
| 6907 | ,(origin | ||
| 6908 | (method url-fetch) | ||
| 6909 | (uri "https://data.iana.org/time-zones/releases/tzcode2023c.tar.gz.asc") | ||
| 6910 | (sha256 | ||
| 6911 | (base32 | ||
| 6912 | "0jbx8xjv75qfh7bxa2xmrf97r37057y89rhmrq1gz8s6b8qlzb2i"))))))))) | ||
| 6913 | (synopsis "Data from the IANA Time Zone database") | ||
| 6914 | (description | ||
| 6915 | "This library provides @code{TZInfo::Data}, which contains data from the | ||
| 6916 | IANA Time Zone database packaged as Ruby modules for use with @code{TZInfo}.") | ||
| 6917 | (home-page "https://tzinfo.github.io") | ||
| 6918 | (license license:expat))) | ||
| 6919 | |||
| 6920 | (define-public ruby-rb-inotify | ||
| 6921 | (package | ||
| 6922 | (name "ruby-rb-inotify") | ||
| 6923 | (version "0.10.1") | ||
| 6924 | (source | ||
| 6925 | (origin | ||
| 6926 | (method url-fetch) | ||
| 6927 | (uri (rubygems-uri "rb-inotify" version)) | ||
| 6928 | (sha256 | ||
| 6929 | (base32 | ||
| 6930 | "1jm76h8f8hji38z3ggf4bzi8vps6p7sagxn3ab57qc0xyga64005")))) | ||
| 6931 | (build-system ruby-build-system) | ||
| 6932 | (arguments | ||
| 6933 | (list | ||
| 6934 | #:tests? #f ; there are no tests | ||
| 6935 | #:phases | ||
| 6936 | #~(modify-phases %standard-phases | ||
| 6937 | ;; Building the gemspec with rake is not working here since it is | ||
| 6938 | ;; generated with Jeweler. It is also unnecessary because the | ||
| 6939 | ;; existing gemspec does not use any development tools to generate a | ||
| 6940 | ;; list of files. | ||
| 6941 | (replace 'build | ||
| 6942 | (lambda _ | ||
| 6943 | (invoke "gem" "build" "rb-inotify.gemspec")))))) | ||
| 6944 | (propagated-inputs | ||
| 6945 | (list ruby-ffi)) | ||
| 6946 | (native-inputs | ||
| 6947 | (list ruby-yard)) | ||
| 6948 | (synopsis "Ruby wrapper for Linux's inotify") | ||
| 6949 | (description "rb-inotify is a simple wrapper over the @code{inotify} Linux | ||
| 6950 | kernel subsystem for monitoring changes to files and directories.") | ||
| 6951 | (home-page "https://github.com/nex3/rb-inotify") | ||
| 6952 | (license license:expat))) | ||
| 6953 | |||
| 6954 | (define-public ruby-pry-editline | ||
| 6955 | (package | ||
| 6956 | (name "ruby-pry-editline") | ||
| 6957 | (version "1.1.2") | ||
| 6958 | (source (origin | ||
| 6959 | (method url-fetch) | ||
| 6960 | (uri (rubygems-uri "pry-editline" version)) | ||
| 6961 | (sha256 | ||
| 6962 | (base32 | ||
| 6963 | "1pjxyvdxvw41xw3yyl18pwzix8hbvn6lgics7qcfhjfsf1zs8x1z")))) | ||
| 6964 | (build-system ruby-build-system) | ||
| 6965 | (arguments `(#:tests? #f)) ; no tests included | ||
| 6966 | (native-inputs | ||
| 6967 | (list bundler)) | ||
| 6968 | (synopsis "Open the current REPL line in an editor") | ||
| 6969 | (description | ||
| 6970 | "This gem provides a plugin for the Ruby REPL to enable opening the | ||
| 6971 | current line in an external editor.") | ||
| 6972 | (home-page "https://github.com/tpope/pry-editline") | ||
| 6973 | (license license:expat))) | ||
| 6974 | |||
| 6975 | (define-public ruby-sdoc | ||
| 6976 | (package | ||
| 6977 | (name "ruby-sdoc") | ||
| 6978 | (version "1.1.0") | ||
| 6979 | (source (origin | ||
| 6980 | (method url-fetch) | ||
| 6981 | (uri (rubygems-uri "sdoc" version)) | ||
| 6982 | (sha256 | ||
| 6983 | (base32 | ||
| 6984 | "1am73dldx1fqlw2xny5vyk00pgkisg6bvs0pa8jjd7c19drjczrd")))) | ||
| 6985 | (build-system ruby-build-system) | ||
| 6986 | (arguments | ||
| 6987 | `(#:phases | ||
| 6988 | (modify-phases %standard-phases | ||
| 6989 | (add-before 'check 'set-rubylib-and-patch-gemfile | ||
| 6990 | (lambda _ | ||
| 6991 | (setenv "RUBYLIB" "lib") | ||
| 6992 | (substitute* "sdoc.gemspec" | ||
| 6993 | (("s.add_runtime_dependency.*") "\n") | ||
| 6994 | (("s.add_dependency.*") "\n")) | ||
| 6995 | (substitute* "Gemfile" | ||
| 6996 | (("gem \"rake\".*") | ||
| 6997 | "gem 'rake'\ngem 'rdoc'\ngem 'json'\n"))))))) | ||
| 6998 | (propagated-inputs | ||
| 6999 | (list ruby-json)) | ||
| 7000 | (native-inputs | ||
| 7001 | (list bundler ruby-minitest ruby-hoe)) | ||
| 7002 | (synopsis "Generate searchable RDoc documentation") | ||
| 7003 | (description | ||
| 7004 | "SDoc is an RDoc documentation generator to build searchable HTML | ||
| 7005 | documentation for Ruby code.") | ||
| 7006 | (home-page "https://github.com/voloko/sdoc") | ||
| 7007 | (license license:expat))) | ||
| 7008 | |||
| 7009 | (define-public ruby-tins | ||
| 7010 | (package | ||
| 7011 | (name "ruby-tins") | ||
| 7012 | (version "1.29.1") | ||
| 7013 | (source (origin | ||
| 7014 | (method url-fetch) | ||
| 7015 | (uri (rubygems-uri "tins" version)) | ||
| 7016 | (sha256 | ||
| 7017 | (base32 | ||
| 7018 | "0nzp88y19rqlcizp1nw8m44fvfxs9g3bhjpscz44dwfawfrmr0cb")))) | ||
| 7019 | (build-system ruby-build-system) | ||
| 7020 | ;; This gem needs gem-hadar at development time, but gem-hadar needs tins | ||
| 7021 | ;; at runtime. To avoid the dependency on gem-hadar we disable rebuilding | ||
| 7022 | ;; the gemspec. | ||
| 7023 | (arguments | ||
| 7024 | `(#:tests? #f ; there are no tests | ||
| 7025 | #:phases | ||
| 7026 | (modify-phases %standard-phases | ||
| 7027 | (replace 'build | ||
| 7028 | (lambda _ | ||
| 7029 | ;; "lib/spruz" is a symlink. Leaving it in the gemspec file | ||
| 7030 | ;; causes an error. | ||
| 7031 | (substitute* "tins.gemspec" | ||
| 7032 | (("\"lib/spruz\", ") "")) | ||
| 7033 | (invoke "gem" "build" "tins.gemspec")))))) | ||
| 7034 | (propagated-inputs | ||
| 7035 | (list ruby-sync)) | ||
| 7036 | (synopsis "Assorted tools for Ruby") | ||
| 7037 | (description "Tins is a Ruby library providing assorted tools.") | ||
| 7038 | (home-page "https://github.com/flori/tins") | ||
| 7039 | (license license:expat))) | ||
| 7040 | |||
| 7041 | (define-public ruby-gemtext | ||
| 7042 | (package | ||
| 7043 | (name "ruby-gemtext") | ||
| 7044 | (version "1.0.3") | ||
| 7045 | (source | ||
| 7046 | (origin | ||
| 7047 | (method url-fetch) | ||
| 7048 | (uri (rubygems-uri "gemtext" version)) | ||
| 7049 | (sha256 | ||
| 7050 | (base32 "1z559f5z0zvwnqgnny0zf4mppiary020ljxwpw3bdxi2hr9aj3gp")))) | ||
| 7051 | (build-system ruby-build-system) | ||
| 7052 | (synopsis "Gemtext parser for Ruby") | ||
| 7053 | (description | ||
| 7054 | "This package is a Ruby parser library for Gemtext (hypertext format | ||
| 7055 | which is intended to serve as the native response format of the Gemini | ||
| 7056 | file transfer protocol) and produces a document object of various | ||
| 7057 | nodes.") | ||
| 7058 | (home-page "https://github.com/exastencil/gemtext") | ||
| 7059 | (license license:expat))) | ||
| 7060 | |||
| 7061 | (define-public ruby-gem-hadar | ||
| 7062 | (package | ||
| 7063 | (name "ruby-gem-hadar") | ||
| 7064 | (version "1.11.0") | ||
| 7065 | (source (origin | ||
| 7066 | (method url-fetch) | ||
| 7067 | (uri (rubygems-uri "gem_hadar" version)) | ||
| 7068 | (sha256 | ||
| 7069 | (base32 | ||
| 7070 | "160abb3l4n3gkhd86f22n981bhqxkbf5ym6fhsk796pix6696pd5")))) | ||
| 7071 | (build-system ruby-build-system) | ||
| 7072 | ;; This gem needs itself at development time. We disable rebuilding of the | ||
| 7073 | ;; gemspec to avoid this loop. | ||
| 7074 | (arguments | ||
| 7075 | `(#:tests? #f ; there are no tests | ||
| 7076 | #:phases | ||
| 7077 | (modify-phases %standard-phases | ||
| 7078 | (replace 'build | ||
| 7079 | (lambda _ | ||
| 7080 | (invoke "gem" "build" "gem_hadar.gemspec")))))) | ||
| 7081 | (propagated-inputs | ||
| 7082 | (list git-minimal/pinned ruby-tins ruby-yard)) | ||
| 7083 | (synopsis "Library for the development of Ruby gems") | ||
| 7084 | (description | ||
| 7085 | "This library contains some useful functionality to support the | ||
| 7086 | development of Ruby gems.") | ||
| 7087 | (home-page "https://github.com/flori/gem_hadar") | ||
| 7088 | (license license:expat))) | ||
| 7089 | |||
| 7090 | (define-public ruby-term-ansicolor | ||
| 7091 | (package | ||
| 7092 | (name "ruby-term-ansicolor") | ||
| 7093 | (version "1.7.1") | ||
| 7094 | (source (origin | ||
| 7095 | (method url-fetch) | ||
| 7096 | (uri (rubygems-uri "term-ansicolor" version)) | ||
| 7097 | (sha256 | ||
| 7098 | (base32 | ||
| 7099 | "1xq5kci9215skdh27npyd3y55p812v4qb4x2hv3xsjvwqzz9ycwj")))) | ||
| 7100 | (build-system ruby-build-system) | ||
| 7101 | ;; Rebuilding the gemspec seems to require git, even though this is not a | ||
| 7102 | ;; git repository, so we just build the gem from the existing gemspec. | ||
| 7103 | (arguments | ||
| 7104 | (list | ||
| 7105 | #:phases | ||
| 7106 | #~(modify-phases %standard-phases | ||
| 7107 | (add-after 'unpack 'fix-test | ||
| 7108 | (lambda - | ||
| 7109 | (substitute* "tests/hsl_triple_test.rb" | ||
| 7110 | (("0\\\\\\.0%") | ||
| 7111 | "0\\.?0?%")))) | ||
| 7112 | (replace 'build | ||
| 7113 | (lambda _ | ||
| 7114 | (invoke "gem" "build" "term-ansicolor.gemspec")))))) | ||
| 7115 | (propagated-inputs | ||
| 7116 | (list ruby-tins)) | ||
| 7117 | (native-inputs | ||
| 7118 | (list ruby-gem-hadar)) | ||
| 7119 | (synopsis "Ruby library to control the attributes of terminal output") | ||
| 7120 | (description | ||
| 7121 | "This Ruby library uses ANSI escape sequences to control the attributes | ||
| 7122 | of terminal output.") | ||
| 7123 | (home-page "https://flori.github.io/term-ansicolor/") | ||
| 7124 | ;; There is no mention of the "or later" clause. | ||
| 7125 | (license license:gpl2))) | ||
| 7126 | |||
| 7127 | (define-public ruby-immutable-struct | ||
| 7128 | (let ((commit "bb67ad8fa2117e8031c3f4333b4c25c8bcd3afff") | ||
| 7129 | (revision "0")) | ||
| 7130 | (package | ||
| 7131 | (name "ruby-immutable-struct") | ||
| 7132 | (version (git-version "2.4.1" revision commit)) | ||
| 7133 | (source | ||
| 7134 | (origin | ||
| 7135 | (method git-fetch) | ||
| 7136 | (uri (git-reference | ||
| 7137 | (url "https://github.com/stitchfix/immutable-struct") | ||
| 7138 | (commit commit))) | ||
| 7139 | (file-name (git-file-name name version)) | ||
| 7140 | (sha256 | ||
| 7141 | (base32 | ||
| 7142 | "0vsr2spypjf0i7ppg2a0gj3mjj5k3dyqsx224cbsxw51p6cc11c1")))) | ||
| 7143 | (build-system ruby-build-system) | ||
| 7144 | (arguments | ||
| 7145 | (list | ||
| 7146 | #:phases | ||
| 7147 | #~(modify-phases %standard-phases | ||
| 7148 | (replace 'check | ||
| 7149 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 7150 | (when tests? | ||
| 7151 | (invoke "ruby" (which "rspec")))))))) | ||
| 7152 | (native-inputs | ||
| 7153 | (list ruby-rspec)) | ||
| 7154 | (synopsis "Ruby library for creating immutable struct classes") | ||
| 7155 | (description | ||
| 7156 | "This package provides a library to help create value objects without | ||
| 7157 | the pain of Ruby's Struct (or its setters).") | ||
| 7158 | (home-page "https://stitchfix.github.io/immutable-struct/") | ||
| 7159 | (license license:expat)))) | ||
| 7160 | |||
| 7161 | (define-public ruby-faker | ||
| 7162 | (package | ||
| 7163 | (name "ruby-faker") | ||
| 7164 | (version "3.2.0") | ||
| 7165 | (source | ||
| 7166 | (origin | ||
| 7167 | (method git-fetch) | ||
| 7168 | (uri (git-reference | ||
| 7169 | (url "https://github.com/faker-ruby/faker") | ||
| 7170 | (commit (string-append "v" version)))) | ||
| 7171 | (file-name (git-file-name name version)) | ||
| 7172 | (sha256 | ||
| 7173 | (base32 | ||
| 7174 | "1wwdwh5qwaxnd9dl6732mj6b953l5r32r4936pj5680963iagq59")))) | ||
| 7175 | (build-system ruby-build-system) | ||
| 7176 | (arguments | ||
| 7177 | (list | ||
| 7178 | #:phases | ||
| 7179 | #~(modify-phases %standard-phases | ||
| 7180 | (add-after 'unpack 'remove-rubocop-from-rakefile | ||
| 7181 | (lambda _ | ||
| 7182 | (substitute* "Rakefile" | ||
| 7183 | (("require 'rubocop/rake_task'") "") | ||
| 7184 | (("RuboCop::RakeTask\\.new") ""))))))) | ||
| 7185 | (native-inputs (list ruby-yard ruby-simplecov ruby-timecop)) | ||
| 7186 | (propagated-inputs (list ruby-i18n)) | ||
| 7187 | (synopsis "Library for generating fake data") | ||
| 7188 | (description "Faker is a port of Data::Faker from Perl. It is used to | ||
| 7189 | easily generate fake data: names, addresses, phone numbers, etc.") | ||
| 7190 | (home-page "https://github.com/faker-ruby/faker") | ||
| 7191 | (license license:expat))) | ||
| 7192 | |||
| 7193 | (define-public ruby-terraform | ||
| 7194 | (package | ||
| 7195 | (name "ruby-terraform") | ||
| 7196 | (version "1.7.0") | ||
| 7197 | (source | ||
| 7198 | (origin | ||
| 7199 | (method git-fetch) | ||
| 7200 | (uri (git-reference | ||
| 7201 | (url "https://github.com/infrablocks/ruby_terraform") | ||
| 7202 | (commit (string-append "v" version)))) | ||
| 7203 | (file-name (git-file-name name version)) | ||
| 7204 | (sha256 | ||
| 7205 | (base32 | ||
| 7206 | "18d1qkf2rbbvc2f0dxni85i2l2g8zn5kzh0v8zr1b86r1wjy6rvd")))) | ||
| 7207 | (build-system ruby-build-system) | ||
| 7208 | (arguments | ||
| 7209 | (list | ||
| 7210 | #:test-target "spec" | ||
| 7211 | #:phases | ||
| 7212 | #~(modify-phases %standard-phases | ||
| 7213 | (add-after 'unpack 'disable-bundler | ||
| 7214 | (lambda _ | ||
| 7215 | (substitute* "spec/spec_helper.rb" | ||
| 7216 | (("require 'bundler/setup'") "")))) | ||
| 7217 | (add-before 'check 'disable-falinig-tests | ||
| 7218 | (lambda _ | ||
| 7219 | (substitute* "spec/ruby_terraform/commands/plan_spec.rb" | ||
| 7220 | (("it 'logs an error raised when running the command'") | ||
| 7221 | "xit 'logs an error raised when running the command'") | ||
| 7222 | (("it 'raises execution error when an error occurs running the command'") | ||
| 7223 | "xit 'raises execution error when an error occurs running the command'")))) | ||
| 7224 | (replace 'check | ||
| 7225 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 7226 | (when tests? | ||
| 7227 | (invoke "rspec"))))))) | ||
| 7228 | (native-inputs | ||
| 7229 | (list ruby-rspec | ||
| 7230 | ruby-faker | ||
| 7231 | ruby-simplecov)) | ||
| 7232 | (propagated-inputs | ||
| 7233 | (list ruby-lino ruby-immutable-struct)) | ||
| 7234 | (synopsis "Ruby wrapper around the Terraform command line interface") | ||
| 7235 | (description | ||
| 7236 | "This package provides a Ruby wrapper around the Terraform command line | ||
| 7237 | interface so that Terraform can be more easily invoked from Ruby code.") | ||
| 7238 | (home-page "https://github.com/infrablocks/ruby_terraform") | ||
| 7239 | (license license:expat))) | ||
| 7240 | |||
| 7241 | (define-public ruby-pstree | ||
| 7242 | (package | ||
| 7243 | (name "ruby-pstree") | ||
| 7244 | (version "0.3.0") | ||
| 7245 | (source (origin | ||
| 7246 | (method url-fetch) | ||
| 7247 | (uri (rubygems-uri "pstree" version)) | ||
| 7248 | (sha256 | ||
| 7249 | (base32 | ||
| 7250 | "0ld3ng37y92kv9vqnachw1l3n07hsc8hrnjs9d840liw0mysf1vp")))) | ||
| 7251 | (build-system ruby-build-system) | ||
| 7252 | (native-inputs | ||
| 7253 | (list ruby-gem-hadar bundler)) | ||
| 7254 | (synopsis "Create a process tree data structure") | ||
| 7255 | (description | ||
| 7256 | "This library uses the output of the @code{ps} command to create a | ||
| 7257 | process tree data structure for the current host.") | ||
| 7258 | (home-page "https://github.com/flori/pstree") | ||
| 7259 | ;; There is no mention of the "or later" clause. | ||
| 7260 | (license license:gpl2))) | ||
| 7261 | |||
| 7262 | (define-public ruby-psych | ||
| 7263 | (package | ||
| 7264 | (name "ruby-psych") | ||
| 7265 | (version "5.1.0") | ||
| 7266 | (source (origin | ||
| 7267 | (method git-fetch) ;for tests | ||
| 7268 | (uri (git-reference | ||
| 7269 | (url "https://github.com/ruby/psych") | ||
| 7270 | (commit (string-append "v" version)))) | ||
| 7271 | (file-name (git-file-name name version)) | ||
| 7272 | (sha256 | ||
| 7273 | (base32 | ||
| 7274 | "0m3668y79jcv2h9p7w74awwdyz13rpfr24w4nzh3iz96kxwssz83")))) | ||
| 7275 | (build-system ruby-build-system) | ||
| 7276 | (inputs | ||
| 7277 | (list libyaml)) | ||
| 7278 | (native-inputs | ||
| 7279 | (list ruby-rake-compiler)) | ||
| 7280 | (synopsis "Ruby YAML parser and emitter") | ||
| 7281 | (description | ||
| 7282 | "Psych is a YAML parser and emitter. Psych leverages libyaml for its | ||
| 7283 | YAML parsing and emitting capabilities. In addition to wrapping libyaml, | ||
| 7284 | Psych also knows how to serialize and de-serialize most Ruby objects to and | ||
| 7285 | from the YAML format.") | ||
| 7286 | (home-page "https://github.com/ruby/psych") | ||
| 7287 | (license license:expat))) | ||
| 7288 | |||
| 7289 | (define-public ruby-psych-3 | ||
| 7290 | (package | ||
| 7291 | (inherit ruby-psych) | ||
| 7292 | (version "3.3.4") | ||
| 7293 | (source (origin | ||
| 7294 | (method git-fetch) ;for tests | ||
| 7295 | (uri (git-reference | ||
| 7296 | (url "https://github.com/ruby/psych") | ||
| 7297 | (commit (string-append "v" version)))) | ||
| 7298 | (file-name (git-file-name "ruby-psych" version)) | ||
| 7299 | (sha256 | ||
| 7300 | (base32 | ||
| 7301 | "11f7bxbhaj5697izap7hfbiln6lfk5cks78a498mkyhs2ylhl0fc")))) | ||
| 7302 | (arguments | ||
| 7303 | (list | ||
| 7304 | #:phases | ||
| 7305 | #~(modify-phases %standard-phases | ||
| 7306 | (replace 'check | ||
| 7307 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 7308 | (when tests? | ||
| 7309 | (invoke "bundle" "exec" "rake" "default"))))))))) | ||
| 7310 | |||
| 7311 | (define-public ruby-utils | ||
| 7312 | (package | ||
| 7313 | (name "ruby-utils") | ||
| 7314 | (version "0.9.0") | ||
| 7315 | (source (origin | ||
| 7316 | (method url-fetch) | ||
| 7317 | (uri (rubygems-uri "utils" version)) | ||
| 7318 | (sha256 | ||
| 7319 | (base32 | ||
| 7320 | "196zhgcygrnx09bb9mh22qas03rl9avzx8qs0wnxznpin4pffwcl")))) | ||
| 7321 | (build-system ruby-build-system) | ||
| 7322 | (propagated-inputs | ||
| 7323 | (list ruby-tins ruby-term-ansicolor ruby-pstree ruby-pry-editline)) | ||
| 7324 | (native-inputs | ||
| 7325 | (list ruby-gem-hadar bundler)) | ||
| 7326 | (synopsis "Command line tools for working with Ruby") | ||
| 7327 | (description | ||
| 7328 | "This package provides assorted command line tools that may be useful | ||
| 7329 | when working with Ruby code.") | ||
| 7330 | (home-page "https://github.com/flori/utils") | ||
| 7331 | ;; There is no mention of the "or later" clause. | ||
| 7332 | (license license:gpl2))) | ||
| 7333 | |||
| 7334 | (define-public ruby-jaro-winkler | ||
| 7335 | (package | ||
| 7336 | (name "ruby-jaro-winkler") | ||
| 7337 | (version "1.5.4") | ||
| 7338 | (source | ||
| 7339 | (origin | ||
| 7340 | (method url-fetch) | ||
| 7341 | (uri (rubygems-uri "jaro_winkler" version)) | ||
| 7342 | (sha256 | ||
| 7343 | (base32 "1y8l6k34svmdyqxya3iahpwbpvmn3fswhwsvrz0nk1wyb8yfihsh")))) | ||
| 7344 | (build-system ruby-build-system) | ||
| 7345 | (arguments | ||
| 7346 | '(#:tests? #f)) ; no included tests | ||
| 7347 | (synopsis "Ruby implementation of Jaro-Winkler distance algorithm") | ||
| 7348 | (description | ||
| 7349 | "@code{jaro_winkler} is an implementation of Jaro-Winkler distance | ||
| 7350 | algorithm. It is written as a C extension and will fallback to a pure Ruby | ||
| 7351 | implementation on platforms where this is unsupported.") | ||
| 7352 | (home-page "https://github.com/tonytonyjan/jaro_winkler") | ||
| 7353 | (license license:expat))) | ||
| 7354 | |||
| 7355 | (define-public ruby-json-pure | ||
| 7356 | (package | ||
| 7357 | (name "ruby-json-pure") | ||
| 7358 | (version "2.6.3") | ||
| 7359 | (source | ||
| 7360 | (origin | ||
| 7361 | ;; For tests | ||
| 7362 | (method git-fetch) | ||
| 7363 | (uri (git-reference | ||
| 7364 | (url "https://github.com/flori/json.git") | ||
| 7365 | (commit (string-append "v" version)))) | ||
| 7366 | (file-name (git-file-name name version)) | ||
| 7367 | (sha256 | ||
| 7368 | (base32 | ||
| 7369 | "0551269c98a07m6bl594syh5vknrm3c636a4dxis9jpsb7vf7lfx")))) | ||
| 7370 | (build-system ruby-build-system) | ||
| 7371 | (arguments | ||
| 7372 | (list | ||
| 7373 | #:phases | ||
| 7374 | #~(modify-phases %standard-phases | ||
| 7375 | (add-after 'unpack 'fix-rakefile | ||
| 7376 | (lambda _ | ||
| 7377 | (substitute* "Rakefile" | ||
| 7378 | ;; Since this is not a git repository, do not call 'git'. | ||
| 7379 | (("`git ls-files`") "`find . -type f |sort`"))))))) | ||
| 7380 | (native-inputs | ||
| 7381 | (list bundler ragel ruby-simplecov ruby-test-unit which)) | ||
| 7382 | (synopsis "JSON implementation in pure Ruby") | ||
| 7383 | (description | ||
| 7384 | "This package provides a JSON implementation written in pure Ruby.") | ||
| 7385 | (home-page "https://flori.github.io/json/") | ||
| 7386 | (license license:ruby))) | ||
| 7387 | |||
| 7388 | (define-public ruby-jwt | ||
| 7389 | (package | ||
| 7390 | (name "ruby-jwt") | ||
| 7391 | (version "2.7.1") | ||
| 7392 | (source | ||
| 7393 | (origin | ||
| 7394 | ;; For tests | ||
| 7395 | (method git-fetch) | ||
| 7396 | (uri (git-reference | ||
| 7397 | (url "https://github.com/jwt/ruby-jwt") | ||
| 7398 | (commit (string-append "v" version)))) | ||
| 7399 | (file-name (git-file-name name version)) | ||
| 7400 | (sha256 | ||
| 7401 | (base32 | ||
| 7402 | "12ss6knfis6a6a41qndalnlvq3yykhpg6igzll8qyssnnwi9zdw7")))) | ||
| 7403 | (build-system ruby-build-system) | ||
| 7404 | (arguments | ||
| 7405 | (list | ||
| 7406 | #:test-target "test" | ||
| 7407 | #:phases | ||
| 7408 | #~(modify-phases %standard-phases | ||
| 7409 | (add-after 'unpack 'remove-unnecessary-dependencies | ||
| 7410 | (lambda _ | ||
| 7411 | (substitute* "ruby-jwt.gemspec" | ||
| 7412 | (("spec\\.add_development_dependency 'appraisal'") "") | ||
| 7413 | (("spec\\.add_development_dependency 'simplecov'") "")) | ||
| 7414 | (substitute* "Gemfile" | ||
| 7415 | (("gem 'rubocop'.*") "")) | ||
| 7416 | (substitute* "Rakefile" | ||
| 7417 | (("require 'rubocop/rake_task'") "") | ||
| 7418 | (("RuboCop::RakeTask\\.new\\(:rubocop\\)") "")) | ||
| 7419 | (substitute* "spec/spec_helper.rb" | ||
| 7420 | (("require 'simplecov.*") "\n") | ||
| 7421 | ;; Use [].each to disable running the SimpleCov configuration | ||
| 7422 | ;; block | ||
| 7423 | (("SimpleCov\\.configure") "[].each") | ||
| 7424 | (("require 'codeclimate-test-reporter'") "") | ||
| 7425 | (("require 'codacy-coverage'") "") | ||
| 7426 | (("Codacy::Reporter\\.start") ""))))))) | ||
| 7427 | (native-inputs | ||
| 7428 | (list bundler ruby-rspec ruby-rbnacl)) | ||
| 7429 | (synopsis "Ruby implementation of the JSON Web Token standard") | ||
| 7430 | (description | ||
| 7431 | "This package provides a pure Ruby implementation of the RFC 7519 OAuth | ||
| 7432 | @acronym{JWT, JSON Web Token} standard.") | ||
| 7433 | (home-page "https://github.com/jwt/ruby-jwt") | ||
| 7434 | (license license:expat))) | ||
| 7435 | |||
| 7436 | ;; Even though this package only provides bindings for a Mac OSX API it is | ||
| 7437 | ;; required by "ruby-listen" at runtime. | ||
| 7438 | (define-public ruby-rb-fsevent | ||
| 7439 | (package | ||
| 7440 | (name "ruby-rb-fsevent") | ||
| 7441 | (version "0.10.3") | ||
| 7442 | (source (origin | ||
| 7443 | (method url-fetch) | ||
| 7444 | (uri (rubygems-uri "rb-fsevent" version)) | ||
| 7445 | (sha256 | ||
| 7446 | (base32 | ||
| 7447 | "1lm1k7wpz69jx7jrc92w3ggczkjyjbfziq5mg62vjnxmzs383xx8")))) | ||
| 7448 | (build-system ruby-build-system) | ||
| 7449 | ;; Tests need "guard-rspec", which needs "guard". However, "guard" needs | ||
| 7450 | ;; "listen", which needs "rb-fsevent" at runtime. | ||
| 7451 | (arguments `(#:tests? #f)) | ||
| 7452 | (synopsis "FSEvents API with signals catching") | ||
| 7453 | (description | ||
| 7454 | "This library provides Ruby bindings for the Mac OSX FSEvents API.") | ||
| 7455 | (home-page "https://rubygems.org/gems/rb-fsevent") | ||
| 7456 | (license license:expat))) | ||
| 7457 | |||
| 7458 | (define-public ruby-listen | ||
| 7459 | (package | ||
| 7460 | (name "ruby-listen") | ||
| 7461 | (version "3.8.0") | ||
| 7462 | (source | ||
| 7463 | (origin | ||
| 7464 | ;; The gem does not include a Rakefile, so fetch from the Git | ||
| 7465 | ;; repository. | ||
| 7466 | (method git-fetch) | ||
| 7467 | (uri (git-reference | ||
| 7468 | (url "https://github.com/guard/listen") | ||
| 7469 | (commit (string-append "v" version)))) | ||
| 7470 | (file-name (git-file-name name version)) | ||
| 7471 | (sha256 | ||
| 7472 | (base32 | ||
| 7473 | "1skkglml094dw1xr4742in1rwwa84ld0mz4nkw6qa8pwhx48x2n5")))) | ||
| 7474 | (build-system ruby-build-system) | ||
| 7475 | (arguments | ||
| 7476 | (list | ||
| 7477 | #:test-target "spec" | ||
| 7478 | #:phases | ||
| 7479 | #~(modify-phases %standard-phases | ||
| 7480 | (add-after 'unpack 'fix-files-in-gemspec | ||
| 7481 | (lambda _ | ||
| 7482 | (substitute* "listen.gemspec" | ||
| 7483 | (("`git ls-files -z`") | ||
| 7484 | "`find . -type f -printf '%P\\\\0' |sort -z`")))) | ||
| 7485 | (add-before 'check 'remove-unnecessary-dependencies' | ||
| 7486 | (lambda _ | ||
| 7487 | (substitute* "Rakefile" | ||
| 7488 | ;; Rubocop is for code linting, and is unnecessary for running | ||
| 7489 | ;; the tests. | ||
| 7490 | ((".*rubocop.*") ""))))))) | ||
| 7491 | (native-inputs | ||
| 7492 | (list bundler ruby-rspec)) | ||
| 7493 | (inputs | ||
| 7494 | (list ;; ruby-thor is used for the command line interface, and is referenced | ||
| 7495 | ;; in the wrapper, and therefore just needs to be an input. | ||
| 7496 | ruby-thor)) | ||
| 7497 | (propagated-inputs | ||
| 7498 | (list ruby-rb-fsevent ruby-rb-inotify)) | ||
| 7499 | (synopsis "Listen to file modifications") | ||
| 7500 | (description "The Listen gem listens to file modifications and notifies | ||
| 7501 | you about the changes.") | ||
| 7502 | (home-page "https://github.com/guard/listen") | ||
| 7503 | (license license:expat))) | ||
| 7504 | |||
| 7505 | (define-public ruby-loofah | ||
| 7506 | (package | ||
| 7507 | (name "ruby-loofah") | ||
| 7508 | (version "2.21.3") | ||
| 7509 | (home-page "https://github.com/flavorjones/loofah") | ||
| 7510 | (source | ||
| 7511 | (origin | ||
| 7512 | ;; Build from git because the gem lacks tests. | ||
| 7513 | (method git-fetch) | ||
| 7514 | (uri (git-reference (url home-page) | ||
| 7515 | (commit (string-append "v" version)))) | ||
| 7516 | (file-name (git-file-name name version)) | ||
| 7517 | (sha256 | ||
| 7518 | (base32 | ||
| 7519 | "1lh7cf56y1b0h090ahphvz7grq581phsamdl0rq59y0q9bqwrhg0")))) | ||
| 7520 | (build-system ruby-build-system) | ||
| 7521 | (native-inputs | ||
| 7522 | (list ruby-hoe ruby-hoe-markdown ruby-rr)) | ||
| 7523 | (propagated-inputs | ||
| 7524 | (list ruby-nokogiri ruby-crass)) | ||
| 7525 | (synopsis "Ruby library for manipulating and transforming HTML/XML") | ||
| 7526 | (description | ||
| 7527 | "Loofah is a general library for manipulating and transforming HTML/XML | ||
| 7528 | documents and fragments. It's built on top of Nokogiri and libxml2.") | ||
| 7529 | (license license:expat))) | ||
| 7530 | |||
| 7531 | (define-public ruby-crass | ||
| 7532 | (package | ||
| 7533 | (name "ruby-crass") | ||
| 7534 | (version "1.0.6") | ||
| 7535 | (home-page "https://github.com/rgrove/crass") | ||
| 7536 | (source (origin | ||
| 7537 | ;; The gem does not contain tests, so pull from git. | ||
| 7538 | (method git-fetch) | ||
| 7539 | (uri (git-reference | ||
| 7540 | (url home-page) | ||
| 7541 | (commit (string-append "v" version)))) | ||
| 7542 | (file-name (git-file-name name version)) | ||
| 7543 | (sha256 | ||
| 7544 | (base32 | ||
| 7545 | "1gbsb81psgb6xhnwpx4s409jc0mk0gijh039sy5xyi8jpaaadp40")))) | ||
| 7546 | (build-system ruby-build-system) | ||
| 7547 | (synopsis "Pure Ruby CSS parser") | ||
| 7548 | (description | ||
| 7549 | "Crass is a pure Ruby CSS parser based on the CSS Syntax Level 3 spec.") | ||
| 7550 | (license license:expat))) | ||
| 7551 | |||
| 7552 | ;;; The ruby-nokogumbo package has been absorbed into ruby-nokogiri. | ||
| 7553 | (define-public ruby-nokogumbo | ||
| 7554 | (deprecated-package "ruby-nokogumbo" ruby-nokogiri)) | ||
| 7555 | |||
| 7556 | (define-public ruby-samovar | ||
| 7557 | (package | ||
| 7558 | (name "ruby-samovar") | ||
| 7559 | (version "2.1.4") | ||
| 7560 | (source (origin | ||
| 7561 | (method git-fetch) ;for tests | ||
| 7562 | (uri (git-reference | ||
| 7563 | (url "https://github.com/ioquatix/samovar") | ||
| 7564 | (commit (string-append "v" version)))) | ||
| 7565 | (file-name (git-file-name name version)) | ||
| 7566 | (sha256 | ||
| 7567 | (base32 | ||
| 7568 | "05pc5xlbv44anx0sfqssh0xhxg297bvl5slsl7k1vnka4k5fhax6")))) | ||
| 7569 | (build-system ruby-build-system) | ||
| 7570 | (native-inputs (list ruby-covered ruby-rspec)) | ||
| 7571 | (propagated-inputs (list ruby-console ruby-mapping)) | ||
| 7572 | (synopsis "Flexible option parser for Ruby") | ||
| 7573 | (description "Samovar is a modern framework for building command-line | ||
| 7574 | tools and applications. It provides a declarative class-based DSL for | ||
| 7575 | building command-line parsers that include automatic documentation generation. | ||
| 7576 | It helps you keep your functionality clean and isolated where possible.") | ||
| 7577 | (home-page "https://github.com/ioquatix/samovar") | ||
| 7578 | (license license:expat))) | ||
| 7579 | |||
| 7580 | (define-public ruby-sanitize | ||
| 7581 | (package | ||
| 7582 | (name "ruby-sanitize") | ||
| 7583 | (version "6.0.0") | ||
| 7584 | (home-page "https://github.com/rgrove/sanitize") | ||
| 7585 | (source (origin | ||
| 7586 | (method git-fetch) | ||
| 7587 | ;; The gem does not include the Rakefile, so we download the | ||
| 7588 | ;; source from Github. | ||
| 7589 | (uri (git-reference | ||
| 7590 | (url home-page) | ||
| 7591 | (commit (string-append "v" version)))) | ||
| 7592 | (file-name (git-file-name name version)) | ||
| 7593 | (sha256 | ||
| 7594 | (base32 | ||
| 7595 | "0p1a28vx95vscy9xzzyyddzgb9496x42a5i2ka39cpxbl5f3gkl0")))) | ||
| 7596 | (build-system ruby-build-system) | ||
| 7597 | (propagated-inputs (list ruby-crass ruby-nokogiri)) | ||
| 7598 | (native-inputs (list ruby-minitest)) | ||
| 7599 | (synopsis "Whitelist-based HTML and CSS sanitizer") | ||
| 7600 | (description | ||
| 7601 | "Sanitize is a whitelist-based HTML and CSS sanitizer. Given a list of | ||
| 7602 | acceptable elements, attributes, and CSS properties, Sanitize will remove all | ||
| 7603 | unacceptable HTML and/or CSS from a string.") | ||
| 7604 | (license license:expat))) | ||
| 7605 | |||
| 7606 | (define-public ruby-sync | ||
| 7607 | (package | ||
| 7608 | (name "ruby-sync") | ||
| 7609 | (version "0.5.0") | ||
| 7610 | (source | ||
| 7611 | (origin | ||
| 7612 | (method url-fetch) | ||
| 7613 | (uri (rubygems-uri "sync" version)) | ||
| 7614 | (sha256 | ||
| 7615 | (base32 | ||
| 7616 | "1z9qlq4icyiv3hz1znvsq1wz2ccqjb1zwd6gkvnwg6n50z65d0v6")))) | ||
| 7617 | (build-system ruby-build-system) | ||
| 7618 | (synopsis "Ruby module with a two-phase lock and counter") | ||
| 7619 | (description "This package provides a Ruby module that provides a two-phase | ||
| 7620 | lock with a counter.") | ||
| 7621 | (home-page "https://github.com/ruby/sync") | ||
| 7622 | (license license:bsd-2))) | ||
| 7623 | |||
| 7624 | (define-public ruby-oj | ||
| 7625 | (package | ||
| 7626 | (name "ruby-oj") | ||
| 7627 | (version "3.13.9") | ||
| 7628 | (source | ||
| 7629 | (origin | ||
| 7630 | (method git-fetch) | ||
| 7631 | ;; Version on rubygems.org does not contain Rakefile, so download from | ||
| 7632 | ;; GitHub instead. | ||
| 7633 | (uri (git-reference | ||
| 7634 | (url "https://github.com/ohler55/oj") | ||
| 7635 | (commit (string-append "v" version)))) | ||
| 7636 | (file-name (git-file-name name version)) | ||
| 7637 | (sha256 | ||
| 7638 | (base32 | ||
| 7639 | "0a24zd28y58nyhjxgrpn2k9p72vzj3zbmdrcsbhwbdycj7nn9fpd")))) | ||
| 7640 | (build-system ruby-build-system) | ||
| 7641 | (arguments | ||
| 7642 | '(#:test-target "test_all" | ||
| 7643 | #:phases | ||
| 7644 | (modify-phases %standard-phases | ||
| 7645 | (add-before 'check 'disable-bundler | ||
| 7646 | (lambda _ | ||
| 7647 | (substitute* "Rakefile" | ||
| 7648 | (("Bundler\\.with_clean_env") "1.times") | ||
| 7649 | (("bundle exec ") ""))))))) | ||
| 7650 | (native-inputs | ||
| 7651 | (list bundler ruby-rspec ruby-rake-compiler)) | ||
| 7652 | (synopsis "JSON parser for Ruby optimized for speed") | ||
| 7653 | (description | ||
| 7654 | "Oj is a JSON parser and generator for Ruby, where the encoding and | ||
| 7655 | decoding of JSON is implemented as a C extension to Ruby.") | ||
| 7656 | (home-page "https://www.ohler.com/oj/") | ||
| 7657 | (license (list license:expat ; Ruby code | ||
| 7658 | license:bsd-3)))) ; extension code | ||
| 7659 | |||
| 7660 | (define-public ruby-ox | ||
| 7661 | (package | ||
| 7662 | (name "ruby-ox") | ||
| 7663 | (version "2.6.0") | ||
| 7664 | (source | ||
| 7665 | (origin | ||
| 7666 | (method url-fetch) | ||
| 7667 | (uri (rubygems-uri "ox" version)) | ||
| 7668 | (sha256 | ||
| 7669 | (base32 | ||
| 7670 | "0fmk62b1h2i79dfzjj8wmf8qid1rv5nhwfc17l489ywnga91xl83")))) | ||
| 7671 | (build-system ruby-build-system) | ||
| 7672 | (arguments | ||
| 7673 | '(#:tests? #f)) ; no tests | ||
| 7674 | (synopsis "Optimized XML library for Ruby") | ||
| 7675 | (description | ||
| 7676 | "Optimized XML (Ox) is a fast XML parser and object serializer for Ruby | ||
| 7677 | written as a native C extension. It was designed to be an alternative to | ||
| 7678 | Nokogiri and other Ruby XML parsers for generic XML parsing and as an | ||
| 7679 | alternative to Marshal for Object serialization.") | ||
| 7680 | (home-page "https://www.ohler.com/ox") | ||
| 7681 | (license license:expat))) | ||
| 7682 | |||
| 7683 | (define-public ruby-redcloth | ||
| 7684 | (package | ||
| 7685 | (name "ruby-redcloth") | ||
| 7686 | (version "4.3.2") | ||
| 7687 | (source (origin | ||
| 7688 | (method url-fetch) | ||
| 7689 | (uri (rubygems-uri "RedCloth" version)) | ||
| 7690 | (sha256 | ||
| 7691 | (base32 | ||
| 7692 | "0m9dv7ya9q93r8x1pg2gi15rxlbck8m178j1fz7r5v6wr1avrrqy")))) | ||
| 7693 | (build-system ruby-build-system) | ||
| 7694 | (arguments | ||
| 7695 | `(#:tests? #f ; no tests | ||
| 7696 | #:phases | ||
| 7697 | (modify-phases %standard-phases | ||
| 7698 | ;; Redcloth has complicated rake tasks to build various versions for | ||
| 7699 | ;; multiple targets using RVM. We don't want this so we just use the | ||
| 7700 | ;; existing gemspec. | ||
| 7701 | (replace 'build | ||
| 7702 | (lambda _ | ||
| 7703 | (invoke "gem" "build" "redcloth.gemspec")))))) | ||
| 7704 | (native-inputs | ||
| 7705 | `(("bundler" ,bundler) | ||
| 7706 | ("ruby-diff-lcs" ,ruby-diff-lcs) | ||
| 7707 | ("ruby-rspec-2" ,ruby-rspec-2))) | ||
| 7708 | (synopsis "Textile markup language parser for Ruby") | ||
| 7709 | (description | ||
| 7710 | "RedCloth is a Ruby parser for the Textile markup language.") | ||
| 7711 | (home-page "http://redcloth.org") | ||
| 7712 | (license license:expat))) | ||
| 7713 | |||
| 7714 | (define-public ruby-pg | ||
| 7715 | (let ((commit "378b7a35c12292625460ef2f33373de7114bf255") | ||
| 7716 | (revision "0")) | ||
| 7717 | (package | ||
| 7718 | (name "ruby-pg") | ||
| 7719 | (version (git-version "1.5.9" revision commit)) | ||
| 7720 | (home-page "https://github.com/ged/ruby-pg") | ||
| 7721 | (source | ||
| 7722 | (origin | ||
| 7723 | (method git-fetch) | ||
| 7724 | (uri (git-reference | ||
| 7725 | (url home-page) | ||
| 7726 | (commit commit))) | ||
| 7727 | (file-name (git-file-name name version)) | ||
| 7728 | (sha256 | ||
| 7729 | (base32 "1aq6kakyghgbb4yykxxl9ziaaa7jbdbyc7vz6avyxhlby1jkj0m8")) | ||
| 7730 | (patches | ||
| 7731 | (search-patches "ruby-pg-fix-connect-timeout.patch")))) | ||
| 7732 | (build-system ruby-build-system) | ||
| 7733 | (arguments | ||
| 7734 | (list | ||
| 7735 | #:test-target "spec" | ||
| 7736 | #:phases | ||
| 7737 | #~(modify-phases %standard-phases | ||
| 7738 | (add-before 'build 'compile | ||
| 7739 | (lambda _ | ||
| 7740 | (invoke "rake" "compile"))) | ||
| 7741 | ;; Some tests rely on postgresql_lib_path.rb, but it is not | ||
| 7742 | ;; available until the gem is installed. Run tests after | ||
| 7743 | ;; installing to work around it. | ||
| 7744 | (delete 'check) | ||
| 7745 | (add-after 'install 'check | ||
| 7746 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 7747 | (let ((new-gem (string-append #$output | ||
| 7748 | "/lib/ruby/vendor_ruby"))) | ||
| 7749 | (setenv "GEM_PATH" | ||
| 7750 | (string-append (getenv "GEM_PATH") ":" new-gem)) | ||
| 7751 | (when tests? | ||
| 7752 | (invoke "rspec")))))))) | ||
| 7753 | (native-inputs (list ruby-rake-compiler ruby-hoe ruby-rspec)) | ||
| 7754 | (inputs (list postgresql)) | ||
| 7755 | (synopsis "Ruby interface to PostgreSQL") | ||
| 7756 | (description "Pg is the Ruby interface to the PostgreSQL RDBMS. It works | ||
| 7757 | with PostgreSQL 9.3 and later.") | ||
| 7758 | (license license:ruby)))) | ||
| 7759 | |||
| 7760 | (define-public ruby-byebug | ||
| 7761 | (package | ||
| 7762 | (name "ruby-byebug") | ||
| 7763 | (version "11.1.3") | ||
| 7764 | (source | ||
| 7765 | (origin | ||
| 7766 | (method git-fetch) | ||
| 7767 | (uri (git-reference | ||
| 7768 | (url "https://github.com/deivid-rodriguez/byebug") | ||
| 7769 | (commit (string-append "v" version)))) | ||
| 7770 | (file-name (git-file-name name version)) | ||
| 7771 | (sha256 | ||
| 7772 | (base32 | ||
| 7773 | "0vyy3k2s7dcndngj6m8kxhs1vxc2c93dw8b3yyand3srsg9ffpij")) | ||
| 7774 | (modules '((guix build utils))) | ||
| 7775 | (snippet | ||
| 7776 | '(begin | ||
| 7777 | ;; Remove wrappers that try to setup a bundle environment. | ||
| 7778 | (with-directory-excursion "bin" | ||
| 7779 | (for-each delete-file '("bundle" "rake" "rubocop")) | ||
| 7780 | ;; ruby-minitest doesn't come with a launcher, so fix the one | ||
| 7781 | ;; provided. | ||
| 7782 | (substitute* "minitest" | ||
| 7783 | (("load File\\.expand_path\\(\"bundle\".*") "") | ||
| 7784 | (("require \"bundler/setup\".*") ""))))))) | ||
| 7785 | (build-system ruby-build-system) | ||
| 7786 | (arguments | ||
| 7787 | (list | ||
| 7788 | #:phases | ||
| 7789 | #~(modify-phases %standard-phases | ||
| 7790 | (add-after 'unpack 'sanitize-dependencies | ||
| 7791 | (lambda _ | ||
| 7792 | (substitute* "Rakefile" | ||
| 7793 | ((".*chandler/tasks.*") "")))) | ||
| 7794 | (add-after 'unpack 'skip-tmp-path-sensitive-test | ||
| 7795 | (lambda _ | ||
| 7796 | (substitute* "test/commands/where_test.rb" | ||
| 7797 | (("unless /cygwin\\|mswin\\|mingw\\|darwin/.*") | ||
| 7798 | "unless true\n")))) | ||
| 7799 | (add-before 'build 'compile | ||
| 7800 | (lambda _ | ||
| 7801 | (invoke "rake" "compile"))) | ||
| 7802 | (add-before 'check 'patch-tests | ||
| 7803 | (lambda _ | ||
| 7804 | ;; srand': no implicit conversion of nil into Integer (TypeError) | ||
| 7805 | (delete-file "test/minitest_runner_test.rb") | ||
| 7806 | ;; Expects 5, gets 162. From a file containing ~10 lines. | ||
| 7807 | (substitute* "test/commands/finish_test.rb" | ||
| 7808 | (("test_finish_inside_autoloaded_files") | ||
| 7809 | "finish_inside_autoloaded_files")))) | ||
| 7810 | (add-before 'check 'set-home | ||
| 7811 | (lambda _ | ||
| 7812 | (setenv "HOME" (getcwd))))))) | ||
| 7813 | (native-inputs | ||
| 7814 | (list bundler | ||
| 7815 | ruby-minitest | ||
| 7816 | ruby-pry | ||
| 7817 | ruby-rake-compiler | ||
| 7818 | ruby-rubocop | ||
| 7819 | ruby-yard)) | ||
| 7820 | (synopsis "Debugger for Ruby 2") | ||
| 7821 | (description "Byebug is a Ruby 2 debugger implemented using the Ruby 2 | ||
| 7822 | TracePoint C API for execution control and the Debug Inspector C API for call | ||
| 7823 | stack navigation. The core component provides support that front-ends can | ||
| 7824 | build on. It provides breakpoint handling and bindings for stack frames among | ||
| 7825 | other things and it comes with a command line interface.") | ||
| 7826 | (home-page "https://github.com/deivid-rodriguez/byebug") | ||
| 7827 | (license license:bsd-2))) | ||
| 7828 | |||
| 7829 | (define-public ruby-netrc | ||
| 7830 | (package | ||
| 7831 | (name "ruby-netrc") | ||
| 7832 | (version "0.11.0") | ||
| 7833 | (source (origin | ||
| 7834 | (method url-fetch) | ||
| 7835 | (uri (rubygems-uri "netrc" version)) | ||
| 7836 | (sha256 | ||
| 7837 | (base32 | ||
| 7838 | "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y")))) | ||
| 7839 | (build-system ruby-build-system) | ||
| 7840 | (arguments | ||
| 7841 | `(#:phases | ||
| 7842 | (modify-phases %standard-phases | ||
| 7843 | (replace 'check | ||
| 7844 | ;; There is no Rakefile and minitest can only run one file at once, | ||
| 7845 | ;; so we have to iterate over all test files. | ||
| 7846 | (lambda _ | ||
| 7847 | (for-each (lambda (file) | ||
| 7848 | (invoke "ruby" "-Itest" file)) | ||
| 7849 | (find-files "./test" "test_.*\\.rb")))) | ||
| 7850 | (add-before 'check 'patch-tests-for-newer-ruby | ||
| 7851 | (lambda _ | ||
| 7852 | (substitute* "test/test_netrc.rb" | ||
| 7853 | (("Dir.pwd, '.netrc'") "Netrc.home_path, '.netrc'"))))))) | ||
| 7854 | (native-inputs | ||
| 7855 | (list ruby-minitest)) | ||
| 7856 | (synopsis "Library to read and update netrc files") | ||
| 7857 | (description | ||
| 7858 | "This library can read and update netrc files, preserving formatting | ||
| 7859 | including comments and whitespace.") | ||
| 7860 | (home-page "https://github.com/geemus/netrc") | ||
| 7861 | (license license:expat))) | ||
| 7862 | |||
| 7863 | (define-public ruby-unf-ext | ||
| 7864 | (package | ||
| 7865 | (name "ruby-unf-ext") | ||
| 7866 | (version "0.0.8.2") | ||
| 7867 | (source (origin | ||
| 7868 | (method url-fetch) | ||
| 7869 | (uri (rubygems-uri "unf_ext" version)) | ||
| 7870 | (sha256 | ||
| 7871 | (base32 | ||
| 7872 | "1yj2nz2l101vr1x9w2k83a0fag1xgnmjwp8w8rw4ik2rwcz65fch")))) | ||
| 7873 | (build-system ruby-build-system) | ||
| 7874 | (arguments | ||
| 7875 | `(#:phases | ||
| 7876 | (modify-phases %standard-phases | ||
| 7877 | (add-after 'build 'build-ext | ||
| 7878 | (lambda _ (invoke "rake" "compile:unf_ext"))) | ||
| 7879 | (add-before 'check 'lose-rake-compiler-dock-dependency | ||
| 7880 | (lambda _ | ||
| 7881 | ;; rake-compiler-dock is listed in the gemspec, but only | ||
| 7882 | ;; required when cross-compiling. | ||
| 7883 | (substitute* "unf_ext.gemspec" | ||
| 7884 | ((".*rake-compiler-dock.*") ""))))))) | ||
| 7885 | (native-inputs | ||
| 7886 | (list bundler ruby-rake-compiler ruby-test-unit)) | ||
| 7887 | (synopsis "Unicode normalization form support library") | ||
| 7888 | (description | ||
| 7889 | "This package provides unicode normalization form support for Ruby.") | ||
| 7890 | (home-page "https://github.com/knu/ruby-unf_ext") | ||
| 7891 | (license license:expat))) | ||
| 7892 | |||
| 7893 | (define-public ruby-tdiff | ||
| 7894 | ;; Use a newer than released snapshot so that rspec-2 is not required. | ||
| 7895 | (let ((commit "b662a6048f08abc45c1a834e5f34dd1c662935e2")) | ||
| 7896 | (package | ||
| 7897 | (name "ruby-tdiff") | ||
| 7898 | (version (string-append "0.3.3-1." (string-take commit 8))) | ||
| 7899 | (source (origin | ||
| 7900 | (method git-fetch) | ||
| 7901 | (uri (git-reference | ||
| 7902 | (url "https://github.com/postmodern/tdiff") | ||
| 7903 | (commit commit))) | ||
| 7904 | (file-name (string-append name "-" version "-checkout")) | ||
| 7905 | (sha256 | ||
| 7906 | (base32 | ||
| 7907 | "0n3gq8rx49f7ln6zqlshqfg2mgqyy30rsdjlnki5mv307ykc7ad4")))) | ||
| 7908 | (build-system ruby-build-system) | ||
| 7909 | (native-inputs | ||
| 7910 | (list ruby-rspec ruby-yard/minimal ruby-rubygems-tasks)) | ||
| 7911 | (synopsis "Calculate the differences between two tree-like structures") | ||
| 7912 | (description | ||
| 7913 | "This library provides functions to calculate the differences between two | ||
| 7914 | tree-like structures. It is similar to Ruby's built-in @code{TSort} module.") | ||
| 7915 | (home-page "https://github.com/postmodern/tdiff") | ||
| 7916 | (license license:expat)))) | ||
| 7917 | |||
| 7918 | (define-public ruby-nokogiri-diff | ||
| 7919 | ;; Use a newer than released snapshot so that rspec-2 is not required. | ||
| 7920 | (let ((commit "a38491e4d8709b7406f2cae11a50226d927d06f5")) | ||
| 7921 | (package | ||
| 7922 | (name "ruby-nokogiri-diff") | ||
| 7923 | (version (string-append "0.2.0-1." (string-take commit 8))) | ||
| 7924 | (source (origin | ||
| 7925 | (method git-fetch) | ||
| 7926 | (uri (git-reference | ||
| 7927 | (url "https://github.com/postmodern/nokogiri-diff") | ||
| 7928 | (commit commit))) | ||
| 7929 | (file-name (string-append name "-" version "-checkout")) | ||
| 7930 | (sha256 | ||
| 7931 | (base32 | ||
| 7932 | "1ah2sfjh9n1p0ln2wkqzfl448ml7j4zfy6dhp1qgzq2m41php6rf")))) | ||
| 7933 | (build-system ruby-build-system) | ||
| 7934 | (propagated-inputs | ||
| 7935 | (list ruby-tdiff | ||
| 7936 | ruby-nokogiri)) | ||
| 7937 | (native-inputs | ||
| 7938 | (list ruby-rspec ruby-yard/minimal ruby-rubygems-tasks)) | ||
| 7939 | (synopsis "Calculate the differences between two XML/HTML documents") | ||
| 7940 | (description | ||
| 7941 | "@code{Nokogiri::Diff} adds the ability to calculate the | ||
| 7942 | differences (added or removed nodes) between two XML/HTML documents.") | ||
| 7943 | (home-page "https://github.com/postmodern/nokogiri-diff") | ||
| 7944 | (license license:expat)))) | ||
| 7945 | |||
| 7946 | (define-public ruby-racc | ||
| 7947 | (package | ||
| 7948 | (name "ruby-racc") | ||
| 7949 | (version "1.5.2") | ||
| 7950 | (source | ||
| 7951 | (origin | ||
| 7952 | (method url-fetch) | ||
| 7953 | (uri (rubygems-uri "racc" version)) | ||
| 7954 | (sha256 | ||
| 7955 | (base32 | ||
| 7956 | "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g")))) | ||
| 7957 | (build-system ruby-build-system) | ||
| 7958 | (arguments | ||
| 7959 | `(#:tests? #f)) ; Fails while parsing test instructions. | ||
| 7960 | (native-inputs | ||
| 7961 | (list ruby-hoe ruby-rake-compiler)) | ||
| 7962 | (synopsis "LALR(1) parser generator for Ruby") | ||
| 7963 | (description | ||
| 7964 | "Racc is a LALR(1) parser generator. It is written in Ruby itself, and | ||
| 7965 | generates Ruby program.") | ||
| 7966 | (home-page "https://i.loveruby.net/en/projects/racc/") | ||
| 7967 | (license (list | ||
| 7968 | ;; Generally licensed under the LGPL2.1, and some files also | ||
| 7969 | ;; available under the same license as Ruby. | ||
| 7970 | license:lgpl2.1 | ||
| 7971 | license:ruby)))) | ||
| 7972 | |||
| 7973 | (define-public ruby-rack | ||
| 7974 | (package | ||
| 7975 | (name "ruby-rack") | ||
| 7976 | ;; Do not upgrade to version 3, as Rails doesn't support it yet. | ||
| 7977 | (version "2.2.7") | ||
| 7978 | (source | ||
| 7979 | (origin | ||
| 7980 | (method git-fetch) ;for tests | ||
| 7981 | (uri (git-reference | ||
| 7982 | (url "https://github.com/rack/rack") | ||
| 7983 | (commit (string-append "v" version)))) | ||
| 7984 | (file-name (git-file-name name version)) | ||
| 7985 | (sha256 | ||
| 7986 | (base32 | ||
| 7987 | "02r41fr61x0jfhraizc6bsgs40p8mlpvnzix71zwmcvibg384ify")))) | ||
| 7988 | (build-system ruby-build-system) | ||
| 7989 | (arguments | ||
| 7990 | (list | ||
| 7991 | #:phases | ||
| 7992 | #~(modify-phases %standard-phases | ||
| 7993 | (add-before 'check 'fix-tests | ||
| 7994 | (lambda _ | ||
| 7995 | ;; This test fails in the build environment (and passes outside | ||
| 7996 | ;; of it). | ||
| 7997 | (substitute* "test/spec_files.rb" | ||
| 7998 | (("res.body.must_equal expected_body") "")) | ||
| 7999 | ;; A few of the tests use the length of a file on disk for | ||
| 8000 | ;; Content-Length and Content-Range headers. However, this file | ||
| 8001 | ;; has a shebang in it which an earlier phase patches, growing | ||
| 8002 | ;; the file size from 193 to 239 bytes when the store prefix is | ||
| 8003 | ;; "/gnu/store". | ||
| 8004 | (let ((size-diff (- (string-length (which "ruby")) | ||
| 8005 | (string-length "/usr/bin/env ruby")))) | ||
| 8006 | (substitute* '("test/spec_files.rb") | ||
| 8007 | (("208" bytes) | ||
| 8008 | (number->string (+ (string->number bytes) size-diff))) | ||
| 8009 | (("bytes(.)22-33" all delimiter) | ||
| 8010 | (string-append "bytes" | ||
| 8011 | delimiter | ||
| 8012 | (number->string (+ 22 size-diff)) | ||
| 8013 | "-" | ||
| 8014 | (number->string (+ 33 size-diff))))))))))) | ||
| 8015 | (native-inputs | ||
| 8016 | (list ruby-minitest | ||
| 8017 | ruby-minitest-global-expectations | ||
| 8018 | ruby-webrick)) | ||
| 8019 | (synopsis "Unified web application interface for Ruby") | ||
| 8020 | (description "Rack provides a minimal, modular and adaptable interface for | ||
| 8021 | developing web applications in Ruby. By wrapping HTTP requests and responses, | ||
| 8022 | it unifies the API for web servers, web frameworks, and software in between | ||
| 8023 | into a single method call.") | ||
| 8024 | (home-page "https://github.com/rack/rack") | ||
| 8025 | (license license:expat))) | ||
| 8026 | |||
| 8027 | (define-public ruby-rack-next | ||
| 8028 | (package | ||
| 8029 | (inherit ruby-rack) | ||
| 8030 | (name "ruby-rack") | ||
| 8031 | (version "3.0.7") | ||
| 8032 | (source (origin | ||
| 8033 | (method git-fetch) ;for tests | ||
| 8034 | (uri (git-reference | ||
| 8035 | (url "https://github.com/rack/rack") | ||
| 8036 | (commit (string-append "v" version)))) | ||
| 8037 | (file-name (git-file-name name version)) | ||
| 8038 | (sha256 | ||
| 8039 | (base32 | ||
| 8040 | "0msf14655nfcq1kgmib6932lgzm9nw3nb0m3c7nh6nj4sx30yxfr")))) | ||
| 8041 | (arguments '()))) | ||
| 8042 | |||
| 8043 | (define-public ruby-rackup | ||
| 8044 | (package | ||
| 8045 | (name "ruby-rackup") | ||
| 8046 | (version "2.1.0") | ||
| 8047 | (source (origin | ||
| 8048 | (method git-fetch) | ||
| 8049 | (uri (git-reference | ||
| 8050 | (url "https://github.com/rack/rackup") | ||
| 8051 | (commit (string-append "v" version)))) | ||
| 8052 | (file-name (git-file-name name version)) | ||
| 8053 | (sha256 | ||
| 8054 | (base32 | ||
| 8055 | "19b7sy700zjwaw7x47qpxvhnnz5hrp5bhrxfyljgagrli824dajy")))) | ||
| 8056 | (build-system ruby-build-system) | ||
| 8057 | (native-inputs (list ruby-minitest-global-expectations)) | ||
| 8058 | (inputs (list ruby-rack-next ruby-webrick)) | ||
| 8059 | (synopsis "Command line interface (CLI) for running for Rack applications") | ||
| 8060 | (description "This package provides a command line interface for running | ||
| 8061 | for Rack applications.") | ||
| 8062 | (home-page "https://github.com/rack/rackup") | ||
| 8063 | (license license:expat))) | ||
| 8064 | |||
| 8065 | (define-public ruby-rackup-1 | ||
| 8066 | (package | ||
| 8067 | (inherit ruby-rackup) | ||
| 8068 | (name "ruby-rackup") | ||
| 8069 | (version "1.0.1") | ||
| 8070 | (source (origin | ||
| 8071 | (method git-fetch) | ||
| 8072 | (uri (git-reference | ||
| 8073 | (url "https://github.com/rack/rackup") | ||
| 8074 | (commit (string-append "v" version)))) | ||
| 8075 | (file-name (git-file-name name version)) | ||
| 8076 | (sha256 | ||
| 8077 | (base32 | ||
| 8078 | "1xdfxsz7jx2gwfq212y9mca6q0i5s7kyqbfcscy1315awg57ynyp")))))) | ||
| 8079 | |||
| 8080 | (define-public ruby-rack-cache | ||
| 8081 | (package | ||
| 8082 | (name "ruby-rack-cache") | ||
| 8083 | (version "1.13.0") | ||
| 8084 | (source (origin | ||
| 8085 | (method url-fetch) | ||
| 8086 | (uri (rubygems-uri "rack-cache" version)) | ||
| 8087 | (sha256 | ||
| 8088 | (base32 | ||
| 8089 | "1cqpax628h2mhnsjfg91c3klxwx2pkvaj061cisb0saqa99b0jgm")))) | ||
| 8090 | (build-system ruby-build-system) | ||
| 8091 | (arguments | ||
| 8092 | (list | ||
| 8093 | ;; The test suite depends on ruby-memcached, which is not available in | ||
| 8094 | ;; Guix and bundles a very dated copy of memcached (undesirable). | ||
| 8095 | #:tests? #f)) | ||
| 8096 | (propagated-inputs (list ruby-rack)) | ||
| 8097 | (synopsis "Component to enable HTTP caching for Rack-based applications") | ||
| 8098 | (description "Rack::Cache is suitable as a drop-in component to enable | ||
| 8099 | HTTP caching for Rack-based applications that produce freshness (Expires, | ||
| 8100 | Cache-Control) and/or validation (Last-Modified, ETag) information.") | ||
| 8101 | (home-page "https://github.com/rtomayko/rack-cache") | ||
| 8102 | (license license:expat))) | ||
| 8103 | |||
| 8104 | (define-public ruby-rack-test | ||
| 8105 | (package | ||
| 8106 | (name "ruby-rack-test") | ||
| 8107 | (version "2.1.0") | ||
| 8108 | (source | ||
| 8109 | (origin | ||
| 8110 | (method url-fetch) | ||
| 8111 | (uri (rubygems-uri "rack-test" version)) | ||
| 8112 | (sha256 | ||
| 8113 | (base32 | ||
| 8114 | "1ysx29gk9k14a14zsp5a8czys140wacvp91fja8xcja0j1hzqq8c")))) | ||
| 8115 | (build-system ruby-build-system) | ||
| 8116 | (arguments | ||
| 8117 | ;; Disable tests because of circular dependencies: requires sinatra, | ||
| 8118 | ;; which requires rack-protection, which requires rack-test. Instead | ||
| 8119 | ;; simply require the library. | ||
| 8120 | `(#:phases | ||
| 8121 | (modify-phases %standard-phases | ||
| 8122 | (replace 'check | ||
| 8123 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 8124 | (when tests? | ||
| 8125 | (invoke "ruby" "-Ilib" "-r" "rack/test"))))))) | ||
| 8126 | (propagated-inputs | ||
| 8127 | (list ruby-rack)) | ||
| 8128 | (synopsis "Testing API for Rack applications") | ||
| 8129 | (description | ||
| 8130 | "Rack::Test is a small, simple testing API for Rack applications. It can | ||
| 8131 | be used on its own or as a reusable starting point for Web frameworks and | ||
| 8132 | testing libraries to build on.") | ||
| 8133 | (home-page "https://github.com/rack/rack-test") | ||
| 8134 | (license license:expat))) | ||
| 8135 | |||
| 8136 | (define-public ruby-rack-session | ||
| 8137 | (package | ||
| 8138 | (name "ruby-rack-session") | ||
| 8139 | ;; Stay on version 1 until all the rack users such as Rails can use rack 3 | ||
| 8140 | ;; (rack-session 2 requires rack 3). | ||
| 8141 | (version "1.0.1") | ||
| 8142 | (source (origin | ||
| 8143 | (method git-fetch) ;for tests | ||
| 8144 | (uri (git-reference | ||
| 8145 | (url "https://github.com/rack/rack-session") | ||
| 8146 | (commit (string-append "v" version)))) | ||
| 8147 | (file-name (git-file-name name version)) | ||
| 8148 | (sha256 | ||
| 8149 | (base32 | ||
| 8150 | "0rv955wd7ckp5jgy5c229wmajh48jpcy8s0iv5i8ma61wf7qw0i1")))) | ||
| 8151 | (build-system ruby-build-system) | ||
| 8152 | (native-inputs | ||
| 8153 | (list ruby-minitest-global-expectations | ||
| 8154 | ruby-minitest-sprint)) | ||
| 8155 | (propagated-inputs | ||
| 8156 | (list ruby-rack)) | ||
| 8157 | (synopsis "Session management for Rack") | ||
| 8158 | (description "This package provides a session management implementation | ||
| 8159 | for Rack.") | ||
| 8160 | (home-page "https://github.com/rack/rack-session") | ||
| 8161 | (license license:expat))) | ||
| 8162 | |||
| 8163 | (define-public ruby-rack-protection | ||
| 8164 | (package | ||
| 8165 | (name "ruby-rack-protection") | ||
| 8166 | (version "3.0.5") | ||
| 8167 | (source | ||
| 8168 | (origin | ||
| 8169 | (method url-fetch) | ||
| 8170 | (uri (rubygems-uri "rack-protection" version)) | ||
| 8171 | (sha256 | ||
| 8172 | (base32 | ||
| 8173 | "1a12m1mv8dc0g90fs1myvis8vsgr427k1arg1q4a9qlfw6fqyhis")))) | ||
| 8174 | (build-system ruby-build-system) | ||
| 8175 | (arguments | ||
| 8176 | '(;; Tests missing from the gem. | ||
| 8177 | #:tests? #f)) | ||
| 8178 | (propagated-inputs | ||
| 8179 | (list ruby-rack)) | ||
| 8180 | (native-inputs | ||
| 8181 | (list bundler ruby-rspec-2 ruby-rack-test)) | ||
| 8182 | (synopsis "Rack middleware that protects against typical web attacks") | ||
| 8183 | (description "Rack middleware that can be used to protect against typical | ||
| 8184 | web attacks. It can protect all Rack apps, including Rails. For instance, it | ||
| 8185 | protects against cross site request forgery, cross site scripting, | ||
| 8186 | clickjacking, directory traversal, session hijacking and IP spoofing.") | ||
| 8187 | (home-page "https://github.com/sinatra/sinatra/tree/master/rack-protection") | ||
| 8188 | (license license:expat))) | ||
| 8189 | |||
| 8190 | (define-public ruby-rainbow | ||
| 8191 | (package | ||
| 8192 | (name "ruby-rainbow") | ||
| 8193 | (version "3.0.0") | ||
| 8194 | (source | ||
| 8195 | (origin | ||
| 8196 | (method url-fetch) | ||
| 8197 | (uri (rubygems-uri "rainbow" version)) | ||
| 8198 | (sha256 | ||
| 8199 | (base32 | ||
| 8200 | "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk")))) | ||
| 8201 | (build-system ruby-build-system) | ||
| 8202 | (arguments | ||
| 8203 | '(#:phases | ||
| 8204 | (modify-phases %standard-phases | ||
| 8205 | ;; Run rspec directly, to avoid requiring Rubocop which is used from | ||
| 8206 | ;; the Rakefile. | ||
| 8207 | (replace 'check | ||
| 8208 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 8209 | (when tests? | ||
| 8210 | (invoke "rspec"))))))) | ||
| 8211 | (native-inputs | ||
| 8212 | (list bundler ruby-rspec)) | ||
| 8213 | (synopsis "Colorize printed text on ANSI terminals") | ||
| 8214 | (description | ||
| 8215 | "@code{rainbow} provides a string presenter object to colorize strings by | ||
| 8216 | wrapping them in ANSI escape codes.") | ||
| 8217 | (home-page "https://github.com/sickill/rainbow") | ||
| 8218 | (license license:expat))) | ||
| 8219 | |||
| 8220 | (define-public ruby-rr | ||
| 8221 | (package | ||
| 8222 | (name "ruby-rr") | ||
| 8223 | (version "1.2.1") | ||
| 8224 | (source | ||
| 8225 | (origin | ||
| 8226 | (method url-fetch) | ||
| 8227 | (uri (rubygems-uri "rr" version)) | ||
| 8228 | (sha256 | ||
| 8229 | (base32 | ||
| 8230 | "1n9g78ba4c2zzmz8cdb97c38h1xm0clircag00vbcxwqs4dq0ymp")))) | ||
| 8231 | (build-system ruby-build-system) | ||
| 8232 | (arguments | ||
| 8233 | '(#:tests? #f)) ; test files not included | ||
| 8234 | (native-inputs | ||
| 8235 | (list bundler ruby-rspec)) | ||
| 8236 | (synopsis "Ruby test double framework") | ||
| 8237 | (description | ||
| 8238 | "RR is a test double framework that features a rich selection of double | ||
| 8239 | techniques and a terse syntax.") | ||
| 8240 | (home-page "https://rr.github.io/rr/") | ||
| 8241 | (license license:expat))) | ||
| 8242 | |||
| 8243 | (define-public ruby-rest-client | ||
| 8244 | (package | ||
| 8245 | (name "ruby-rest-client") | ||
| 8246 | (version "2.1.0") | ||
| 8247 | (source | ||
| 8248 | (origin | ||
| 8249 | (method url-fetch) | ||
| 8250 | (uri (rubygems-uri "rest-client" version)) | ||
| 8251 | (sha256 | ||
| 8252 | (base32 | ||
| 8253 | "1qs74yzl58agzx9dgjhcpgmzfn61fqkk33k1js2y5yhlvc5l19im")))) | ||
| 8254 | (build-system ruby-build-system) | ||
| 8255 | (arguments | ||
| 8256 | (list | ||
| 8257 | ;; TODO Some tests are currently broken | ||
| 8258 | #:tests? #f | ||
| 8259 | #:phases | ||
| 8260 | #~(modify-phases %standard-phases | ||
| 8261 | (add-before 'check 'remove-unnecessary-development-dependencies | ||
| 8262 | (lambda _ | ||
| 8263 | (substitute* "rest-client.gemspec" | ||
| 8264 | ;; Remove rubocop as it's unused. Rubocop also indirectly | ||
| 8265 | ;; depends on this package through ruby-parser and ruby-ast so | ||
| 8266 | ;; this avoids a dependency loop. | ||
| 8267 | ((".*rubocop.*") "\n") | ||
| 8268 | ;; Remove pry as it's unused, it's a debugging tool | ||
| 8269 | ((".*pry.*") "\n") | ||
| 8270 | ;; Remove an unnecessarily strict rdoc dependency | ||
| 8271 | ((".*rdoc.*") "\n")))) | ||
| 8272 | (add-before 'check 'delete-network-dependent-tests | ||
| 8273 | (lambda _ | ||
| 8274 | (delete-file "spec/integration/request_spec.rb") | ||
| 8275 | (delete-file "spec/integration/httpbin_spec.rb"))) | ||
| 8276 | (replace 'check | ||
| 8277 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 8278 | (when tests? | ||
| 8279 | (invoke "rspec"))))))) | ||
| 8280 | (propagated-inputs | ||
| 8281 | (list ruby-http-accept-1 | ||
| 8282 | ruby-http-cookie | ||
| 8283 | ruby-mime-types | ||
| 8284 | ruby-netrc)) | ||
| 8285 | (native-inputs | ||
| 8286 | (list bundler | ||
| 8287 | ruby-webmock-2 | ||
| 8288 | ruby-rspec)) | ||
| 8289 | (synopsis "Simple HTTP and REST client for Ruby") | ||
| 8290 | (description | ||
| 8291 | "@code{rest-client} provides a simple HTTP and REST client for Ruby, | ||
| 8292 | inspired by the Sinatra microframework style of specifying actions: | ||
| 8293 | @code{get}, @code{put}, @code{post}, @code{delete}.") | ||
| 8294 | (home-page "https://github.com/rest-client/rest-client") | ||
| 8295 | (license license:expat))) | ||
| 8296 | |||
| 8297 | (define-public ruby-rubocop-ast | ||
| 8298 | (package | ||
| 8299 | (name "ruby-rubocop-ast") | ||
| 8300 | (version "1.37.0") | ||
| 8301 | (source | ||
| 8302 | (origin | ||
| 8303 | (method git-fetch) ;no test suite in distributed gem | ||
| 8304 | (uri (git-reference | ||
| 8305 | (url "https://github.com/rubocop/rubocop-ast") | ||
| 8306 | (commit (string-append "v" version)))) | ||
| 8307 | (file-name (git-file-name name version)) | ||
| 8308 | (sha256 | ||
| 8309 | (base32 | ||
| 8310 | "1ww1vxcx6qaih4g68mrbq4xlgrqbv8w7cqxdaz629sazpw2hkycs")))) | ||
| 8311 | (build-system ruby-build-system) | ||
| 8312 | (arguments | ||
| 8313 | `(#:test-target "spec" | ||
| 8314 | #:phases (modify-phases %standard-phases | ||
| 8315 | (add-after 'unpack 'relax-dependencies | ||
| 8316 | (lambda _ | ||
| 8317 | (substitute* "Gemfile" | ||
| 8318 | (("gem 'simplecov', '~> 0.10', '< 0.18'") | ||
| 8319 | "gem 'simplecov', '~> 0.10'")))) | ||
| 8320 | (add-before 'build 'generate-lexer | ||
| 8321 | (lambda _ | ||
| 8322 | (setenv "RUBOCOP_VERSION" "none") | ||
| 8323 | (invoke "rake" "generate"))) | ||
| 8324 | (replace 'replace-git-ls-files | ||
| 8325 | (lambda _ | ||
| 8326 | (substitute* "rubocop-ast.gemspec" | ||
| 8327 | (("`git ls-files(.*)`" _ files) | ||
| 8328 | (format #f "`find ~a -type f| sort`" files)))))))) | ||
| 8329 | (native-inputs | ||
| 8330 | (list ruby-bump | ||
| 8331 | ruby-oedipus-lex | ||
| 8332 | ruby-prism | ||
| 8333 | ruby-racc | ||
| 8334 | ruby-rake | ||
| 8335 | ruby-rspec | ||
| 8336 | ruby-simplecov)) | ||
| 8337 | (propagated-inputs | ||
| 8338 | (list ruby-parser)) | ||
| 8339 | (synopsis "RuboCop's AST extensions and NodePattern functionality") | ||
| 8340 | (description "Rubocop::AST extends @code{ruby-parser} with classes used | ||
| 8341 | by RuboCop to deal with Ruby's Abstract Syntax Tree (AST), in particular: | ||
| 8342 | @itemize | ||
| 8343 | @item @code{RuboCop::AST::Node} | ||
| 8344 | @item @code{RuboCop::AST::NodePattern} | ||
| 8345 | @end itemize") | ||
| 8346 | (home-page "https://rubocop.org/") | ||
| 8347 | (license license:expat))) | ||
| 8348 | |||
| 8349 | (define-public ruby-rexml | ||
| 8350 | (package | ||
| 8351 | (name "ruby-rexml") | ||
| 8352 | (version "3.2.5") | ||
| 8353 | (source | ||
| 8354 | (origin | ||
| 8355 | (method git-fetch) ;no tests in distributed gem | ||
| 8356 | (uri (git-reference | ||
| 8357 | (url "https://github.com/ruby/rexml") | ||
| 8358 | (commit (string-append "v" version)))) | ||
| 8359 | (file-name (git-file-name name version)) | ||
| 8360 | (sha256 | ||
| 8361 | (base32 "13n6vaa80drqic2wri4q6k22qzvsn683vp5s8c9dllil6x04kn0x")))) | ||
| 8362 | (build-system ruby-build-system) | ||
| 8363 | (synopsis "XML toolkit for Ruby") | ||
| 8364 | (description "Inspired by Electric XML library for Java, REXML aims to be | ||
| 8365 | easy-to-use API, small and fast. It supports both tree and stream document | ||
| 8366 | parsing.") | ||
| 8367 | (home-page "https://github.com/ruby/rexml") | ||
| 8368 | (license license:bsd-2))) | ||
| 8369 | |||
| 8370 | (define-public ruby-character-set | ||
| 8371 | (package | ||
| 8372 | (name "ruby-character-set") | ||
| 8373 | (version "1.4.0") | ||
| 8374 | (source | ||
| 8375 | (origin | ||
| 8376 | (method url-fetch) | ||
| 8377 | (uri (rubygems-uri "character_set" version)) | ||
| 8378 | (sha256 | ||
| 8379 | (base32 | ||
| 8380 | "0affq9n77vwy897ri2zhmfinfagf37hcwwimrccy1bcxan9mj3h3")))) | ||
| 8381 | (build-system ruby-build-system) | ||
| 8382 | (arguments '(#:tests? #f)) ;avoid a cycle with ruby-regexp-parser | ||
| 8383 | (synopsis "Ruby library to manipulate Unicode") | ||
| 8384 | (description "CharacterSet is a C-extended Ruby library to work with sets | ||
| 8385 | of Unicode code points. It can read and write these sets in various formats | ||
| 8386 | and implements the @code{stdlib} @code{Set} interface for them. It also | ||
| 8387 | offers an alternate paradigm of @code{String} processing which grants much | ||
| 8388 | better performance than @code{Regexp} and @code{String} methods from the | ||
| 8389 | @code{stdlib} where applicable. Many parts can be used independently, e.g.: | ||
| 8390 | @itemize | ||
| 8391 | @item @code{CharacterSet::Character} | ||
| 8392 | @item @code{CharacterSet::Parser} | ||
| 8393 | @item @code{CharacterSet::Writer} | ||
| 8394 | @item @code{RangeCompressor} | ||
| 8395 | @end itemize") | ||
| 8396 | (home-page "https://github.com/jaynetics/character_set") | ||
| 8397 | (license license:expat))) | ||
| 8398 | |||
| 8399 | (define-public ruby-range-compressor | ||
| 8400 | (package | ||
| 8401 | (name "ruby-range-compressor") | ||
| 8402 | (version "1.2.0") | ||
| 8403 | (source | ||
| 8404 | (origin | ||
| 8405 | (method git-fetch) | ||
| 8406 | (uri (git-reference | ||
| 8407 | (url "https://github.com/janosch-x/range_compressor") | ||
| 8408 | (commit (string-append "v" version)))) | ||
| 8409 | (file-name (git-file-name name version)) | ||
| 8410 | (sha256 | ||
| 8411 | (base32 | ||
| 8412 | "1zmc44si5ac2h7r1x4f1j8z5yr6wz528c7dssh0g70fmczs3pfga")))) | ||
| 8413 | (build-system ruby-build-system) | ||
| 8414 | (arguments | ||
| 8415 | (list | ||
| 8416 | #:test-target "spec" | ||
| 8417 | #:phases | ||
| 8418 | #~(modify-phases %standard-phases | ||
| 8419 | (add-after 'extract-gemspec 'strip-version-requirements | ||
| 8420 | (lambda _ | ||
| 8421 | (substitute* "range_compressor.gemspec" | ||
| 8422 | (("(.*add_.*dependency '[_A-Za-z0-9-]+').*" _ stripped) | ||
| 8423 | (string-append stripped "\n")))))))) | ||
| 8424 | (native-inputs | ||
| 8425 | (list ruby-rspec | ||
| 8426 | ruby-sorted-set)) | ||
| 8427 | (synopsis "Simple arrays of objects to arrays of ranges compressor") | ||
| 8428 | (description "RangeCompresses is a tiny library that allows compressing | ||
| 8429 | arrays of objects into arrays of ranges. For example, it can turn the | ||
| 8430 | following: @code{[1, 2, 3, 4, 6, 8, 9, 10]} into @code{[1..4, 6..6, 8..10]}.") | ||
| 8431 | (home-page "https://github.com/janosch-x/range_compressor") | ||
| 8432 | (license license:expat))) | ||
| 8433 | |||
| 8434 | (define-public ruby-regexp-property-values | ||
| 8435 | (let ((commit "03007a66c912949a7130b973cc0eca109c20811f") | ||
| 8436 | (revision "1")) | ||
| 8437 | (package | ||
| 8438 | (name "ruby-regexp-property-values") | ||
| 8439 | (version (git-version "1.0.0" revision commit)) | ||
| 8440 | (source | ||
| 8441 | (origin | ||
| 8442 | (method git-fetch) | ||
| 8443 | (uri (git-reference ;no test suite in distributed gem | ||
| 8444 | (url "https://github.com/jaynetics/regexp_property_values") | ||
| 8445 | (commit commit))) | ||
| 8446 | (file-name (git-file-name name version)) | ||
| 8447 | (sha256 | ||
| 8448 | (base32 | ||
| 8449 | "1zsax784p16zdkf60lyq9z924zvsafhx9ckxx9srsgkyiqrifi1s")))) | ||
| 8450 | (build-system ruby-build-system) | ||
| 8451 | (arguments | ||
| 8452 | '(#:test-target "default")) | ||
| 8453 | (native-inputs | ||
| 8454 | (list ruby-character-set ruby-rake ruby-rake-compiler | ||
| 8455 | ruby-range-compressor ruby-rspec)) | ||
| 8456 | (synopsis "Inspect Ruby's regex engine property values") | ||
| 8457 | (description "This small library lets you see which property values are | ||
| 8458 | supported by the regular expression engine of the Ruby version you are running | ||
| 8459 | and can directly read out their code point ranges. In other words, it | ||
| 8460 | determines all supported values for @code{\\p{value}} expressions and what | ||
| 8461 | they match.") | ||
| 8462 | (home-page "https://github.com/jaynetics/regexp_property_values") | ||
| 8463 | (license license:expat)))) | ||
| 8464 | |||
| 8465 | (define-public ruby-regexp-parser | ||
| 8466 | (package | ||
| 8467 | (name "ruby-regexp-parser") | ||
| 8468 | (version "2.6.0") | ||
| 8469 | (source | ||
| 8470 | (origin | ||
| 8471 | (method git-fetch) ;bin/test missing from gem | ||
| 8472 | (uri (git-reference | ||
| 8473 | (url "https://github.com/ammar/regexp_parser") | ||
| 8474 | (commit (string-append "v" version)))) | ||
| 8475 | (file-name (git-file-name name version)) | ||
| 8476 | (sha256 | ||
| 8477 | (base32 | ||
| 8478 | "07dx96gjvpa07dsdnzpwhhwc7qpxakjgws7d7wbnkbs20fyvx55x")))) | ||
| 8479 | (build-system ruby-build-system) | ||
| 8480 | (arguments | ||
| 8481 | '(#:test-target "default" | ||
| 8482 | #:phases (modify-phases %standard-phases | ||
| 8483 | (add-before 'build 'compile-scanner.rb | ||
| 8484 | (lambda _ | ||
| 8485 | (invoke "rake" "build") | ||
| 8486 | ;; XXX: This is needed otherwise the install | ||
| 8487 | ;; phase fails to delete the installed cached | ||
| 8488 | ;; gem file. | ||
| 8489 | (delete-file-recursively "pkg")))))) | ||
| 8490 | (native-inputs | ||
| 8491 | (list ragel ruby-ice-nine ruby-regexp-property-values ruby-rspec)) | ||
| 8492 | (synopsis "Regular expression parser library for Ruby") | ||
| 8493 | (description "A Ruby gem for tokenizing, parsing, and transforming regular | ||
| 8494 | expressions. It comprises the following components: | ||
| 8495 | @itemize | ||
| 8496 | @item A scanner/tokenizer based on Ragel, | ||
| 8497 | @item A lexer that produces a stream of token objects, | ||
| 8498 | @item A parser that produces a tree of Expression objects. | ||
| 8499 | @end itemize") | ||
| 8500 | (home-page "https://github.com/ammar/regexp_parser") | ||
| 8501 | (license license:expat))) | ||
| 8502 | |||
| 8503 | (define-public ruby-test-queue | ||
| 8504 | (package | ||
| 8505 | (name "ruby-test-queue") | ||
| 8506 | (version "0.4.2") | ||
| 8507 | (source | ||
| 8508 | (origin | ||
| 8509 | (method url-fetch) | ||
| 8510 | (uri (rubygems-uri "test-queue" version)) | ||
| 8511 | (sha256 | ||
| 8512 | (base32 | ||
| 8513 | "0hvm3n1qrqxqilhqk4rjivw3gcrd08zz1i6am9qzg1ppjxv6f36f")))) | ||
| 8514 | (build-system ruby-build-system) | ||
| 8515 | (arguments | ||
| 8516 | '(#:phases | ||
| 8517 | (modify-phases %standard-phases | ||
| 8518 | (replace 'check | ||
| 8519 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 8520 | (when tests? | ||
| 8521 | (invoke "rspec"))))))) | ||
| 8522 | (native-inputs | ||
| 8523 | (list ruby-rspec)) | ||
| 8524 | (synopsis "Minitest/RSpec parallel test runner for CI environments") | ||
| 8525 | (description "The test-queue module is a parallel test runner, | ||
| 8526 | built using a centralized queue to ensure optimal distribution of | ||
| 8527 | tests between workers. It is specifically optimized for Continuous | ||
| 8528 | Integration (CI) environments: build statistics from each run are | ||
| 8529 | stored locally and used to sort the queue at the beginning of the next | ||
| 8530 | run.") | ||
| 8531 | (home-page "https://github.com/tmm1/test-queue") | ||
| 8532 | (license license:expat))) | ||
| 8533 | |||
| 8534 | (define-public ruby-rubocop | ||
| 8535 | (package | ||
| 8536 | (name "ruby-rubocop") | ||
| 8537 | ;; XXX: Also update ruby-rubocop/minimal in ruby-build.scm. | ||
| 8538 | (version "1.68.0") | ||
| 8539 | (source | ||
| 8540 | (origin | ||
| 8541 | (method git-fetch) ;no tests in distributed gem | ||
| 8542 | (uri (git-reference | ||
| 8543 | (url "https://github.com/rubocop/rubocop") | ||
| 8544 | (commit (string-append "v" version)))) | ||
| 8545 | (file-name (git-file-name name version)) | ||
| 8546 | (sha256 | ||
| 8547 | (base32 | ||
| 8548 | "0pfsrgkg2dhb6a2rknciqskgxgmb9kf48rvbkhay9n8n6m712v2w")))) | ||
| 8549 | (build-system ruby-build-system) | ||
| 8550 | (arguments | ||
| 8551 | `(#:test-target "default" | ||
| 8552 | ;; TODO: Figure out why test hangs. | ||
| 8553 | #:tests? ,(not (or (%current-target-system) | ||
| 8554 | (target-riscv64?))) | ||
| 8555 | #:phases | ||
| 8556 | (modify-phases %standard-phases | ||
| 8557 | (add-before 'check 'set-home | ||
| 8558 | (lambda _ | ||
| 8559 | (setenv "HOME" (getcwd)))) | ||
| 8560 | ;; Rubocop depends on itself for tests, directly and indirectly. By | ||
| 8561 | ;; regenerating the TODO list we test rubocop against itself and | ||
| 8562 | ;; forgo adjusting the test suite to our environment each release. | ||
| 8563 | (replace 'check | ||
| 8564 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 8565 | (when tests? | ||
| 8566 | (make-file-writable ".rubocop_todo.yml") | ||
| 8567 | (invoke "./exe/rubocop" "--auto-gen-config"))))))) | ||
| 8568 | (native-inputs | ||
| 8569 | (list ruby-pry | ||
| 8570 | ruby-rake | ||
| 8571 | ruby-rspec | ||
| 8572 | ruby-rubocop-ast | ||
| 8573 | ruby-rubocop-capybara-minimal | ||
| 8574 | ruby-rubocop-factory-bot | ||
| 8575 | ruby-rubocop/minimal | ||
| 8576 | ruby-rubocop-performance-minimal | ||
| 8577 | ruby-rubocop-rake-minimal | ||
| 8578 | ruby-rubocop-rspec-minimal | ||
| 8579 | ruby-simplecov | ||
| 8580 | ruby-stackprof | ||
| 8581 | ruby-test-queue | ||
| 8582 | ruby-webmock | ||
| 8583 | ruby-yard)) | ||
| 8584 | (propagated-inputs | ||
| 8585 | (list ruby-json | ||
| 8586 | ruby-language-server-protocol | ||
| 8587 | ruby-parallel | ||
| 8588 | ruby-parser | ||
| 8589 | ruby-progressbar | ||
| 8590 | ruby-rainbow | ||
| 8591 | ruby-regexp-parser | ||
| 8592 | ruby-rexml | ||
| 8593 | ruby-rubocop-ast | ||
| 8594 | ruby-unicode-display-width)) | ||
| 8595 | (synopsis "Ruby code style checking tool") | ||
| 8596 | (description | ||
| 8597 | "@code{rubocop} is a Ruby code style checking tool. It aims to enforce | ||
| 8598 | the community-driven Ruby Style Guide.") | ||
| 8599 | (home-page "https://github.com/rubocop/rubocop") | ||
| 8600 | (license license:expat))) | ||
| 8601 | |||
| 8602 | (define-public ruby-contest | ||
| 8603 | (package | ||
| 8604 | (name "ruby-contest") | ||
| 8605 | (version "0.1.3") | ||
| 8606 | (source | ||
| 8607 | (origin | ||
| 8608 | (method url-fetch) | ||
| 8609 | (uri (rubygems-uri "contest" version)) | ||
| 8610 | (sha256 | ||
| 8611 | (base32 | ||
| 8612 | "1p9f2292b7b0fbrcjswvj9v01z7ig5ig52328wyqcabgb553qsdf")))) | ||
| 8613 | (build-system ruby-build-system) | ||
| 8614 | (synopsis "Write declarative tests using nested contexts") | ||
| 8615 | (description | ||
| 8616 | "Contest allows writing declarative @code{Test::Unit} tests using nested | ||
| 8617 | contexts without performance penalties.") | ||
| 8618 | (home-page "https://github.com/citrusbyte/contest") | ||
| 8619 | (license license:expat))) | ||
| 8620 | |||
| 8621 | (define-public ruby-creole | ||
| 8622 | (package | ||
| 8623 | (name "ruby-creole") | ||
| 8624 | (version "0.5.0") | ||
| 8625 | (source | ||
| 8626 | (origin | ||
| 8627 | (method url-fetch) | ||
| 8628 | (uri (rubygems-uri "creole" version)) | ||
| 8629 | (sha256 | ||
| 8630 | (base32 | ||
| 8631 | "00rcscz16idp6dx0dk5yi5i0fz593i3r6anbn5bg2q07v3i025wm")))) | ||
| 8632 | (build-system ruby-build-system) | ||
| 8633 | (native-inputs | ||
| 8634 | (list ruby-bacon)) | ||
| 8635 | (synopsis "Creole markup language converter") | ||
| 8636 | (description | ||
| 8637 | "Creole is a lightweight markup language and this library for converting | ||
| 8638 | creole to @code{HTML}.") | ||
| 8639 | (home-page "https://github.com/minad/creole") | ||
| 8640 | (license license:ruby))) | ||
| 8641 | |||
| 8642 | (define-public ruby-middleware | ||
| 8643 | (package | ||
| 8644 | (name "ruby-middleware") | ||
| 8645 | (version "0.1.0") | ||
| 8646 | (source | ||
| 8647 | (origin | ||
| 8648 | (method url-fetch) | ||
| 8649 | (uri (rubygems-uri "middleware" version)) | ||
| 8650 | (sha256 | ||
| 8651 | (base32 | ||
| 8652 | "0703nkf2v371wqr41c04x5qid7ww45cxqv3hnlg07if3b3xrm9xl")))) | ||
| 8653 | (build-system ruby-build-system) | ||
| 8654 | (arguments '(#:tests? #f)) ;no test suite | ||
| 8655 | (synopsis "Implementation of a middleware abstraction for Ruby") | ||
| 8656 | (description "Middleware is a generalized implementation of a middleware | ||
| 8657 | abstraction for Ruby.") | ||
| 8658 | (home-page "https://github.com/mitchellh/middleware") | ||
| 8659 | (license license:expat))) | ||
| 8660 | |||
| 8661 | (define-public ruby-benchmark-ips | ||
| 8662 | (package | ||
| 8663 | (name "ruby-benchmark-ips") | ||
| 8664 | (version "2.12.0") | ||
| 8665 | (source | ||
| 8666 | (origin | ||
| 8667 | (method git-fetch) ;no tests in distributed gem | ||
| 8668 | (uri (git-reference | ||
| 8669 | (url "https://github.com/evanphx/benchmark-ips") | ||
| 8670 | (commit (string-append "v" version)))) | ||
| 8671 | (file-name (git-file-name name version)) | ||
| 8672 | (sha256 | ||
| 8673 | (base32 | ||
| 8674 | "19pa2a1lgjzrxcz6vxwfiq5qq337vr15bbbpc2mfwzljdlx5059s")))) | ||
| 8675 | (build-system ruby-build-system) | ||
| 8676 | (arguments | ||
| 8677 | (list | ||
| 8678 | #:phases | ||
| 8679 | #~(modify-phases %standard-phases | ||
| 8680 | (add-after 'unpack 'patch | ||
| 8681 | (lambda _ | ||
| 8682 | (substitute* "Gemfile" | ||
| 8683 | (("gem 'rake'.*") | ||
| 8684 | "gem 'rake'")) | ||
| 8685 | (substitute* "benchmark-ips.gemspec" | ||
| 8686 | (("git ls-files -- examples lib") | ||
| 8687 | "find examples lib -type f | sort"))))))) | ||
| 8688 | (native-inputs | ||
| 8689 | (list ruby-hoe)) | ||
| 8690 | (synopsis "Iterations per second enhancement for the Ruby Benchmark module") | ||
| 8691 | (description "Benchmark-ips enhances the Ruby Benchmark module with the | ||
| 8692 | iterations per second count. For short snippets of code, it can automatically | ||
| 8693 | figure out how many times to run the code to get interesting data.") | ||
| 8694 | (home-page "https://github.com/evanphx/benchmark-ips") | ||
| 8695 | (license license:expat))) | ||
| 8696 | |||
| 8697 | (define-public ruby-ffi-rzmq-core | ||
| 8698 | (package | ||
| 8699 | (name "ruby-ffi-rzmq-core") | ||
| 8700 | (version "1.0.7") | ||
| 8701 | (source | ||
| 8702 | (origin | ||
| 8703 | (method url-fetch) | ||
| 8704 | (uri (rubygems-uri "ffi-rzmq-core" version)) | ||
| 8705 | (sha256 | ||
| 8706 | (base32 | ||
| 8707 | "0amkbvljpjfnv0jpdmz71p1i3mqbhyrnhamjn566w0c01xd64hb5")))) | ||
| 8708 | (build-system ruby-build-system) | ||
| 8709 | (arguments | ||
| 8710 | `(#:phases | ||
| 8711 | (modify-phases %standard-phases | ||
| 8712 | (add-after 'unpack 'patch-libzmq-search-path | ||
| 8713 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 8714 | (let ((zeromq (assoc-ref inputs "zeromq"))) | ||
| 8715 | (substitute* "lib/ffi-rzmq-core/libzmq.rb" | ||
| 8716 | (("/usr/local/lib") | ||
| 8717 | (string-append zeromq "/lib")))))) | ||
| 8718 | (replace 'check | ||
| 8719 | (lambda _ | ||
| 8720 | (invoke "rspec")))))) | ||
| 8721 | (native-inputs | ||
| 8722 | (list ruby-rspec)) | ||
| 8723 | (inputs | ||
| 8724 | (list zeromq)) | ||
| 8725 | (propagated-inputs (list ruby-ffi)) | ||
| 8726 | (synopsis "Low-level Ruby FFI wrapper for the ZeroMQ networking library") | ||
| 8727 | (description "This library only provides the FFI wrapper for the ZeroMQ | ||
| 8728 | networking library. It can be used to implement a Ruby API for the ZeroMQ | ||
| 8729 | library.") | ||
| 8730 | (home-page "https://github.com/chuckremes/ffi-rzmq-core") | ||
| 8731 | (license license:expat))) | ||
| 8732 | |||
| 8733 | (define-public ruby-ffi-rzmq | ||
| 8734 | (package | ||
| 8735 | (name "ruby-ffi-rzmq") | ||
| 8736 | (version "2.0.7") | ||
| 8737 | (source | ||
| 8738 | (origin | ||
| 8739 | (method url-fetch) | ||
| 8740 | (uri (rubygems-uri "ffi-rzmq" version)) | ||
| 8741 | (sha256 | ||
| 8742 | (base32 | ||
| 8743 | "14a5kxfnf8l3ngyk8hgmk30z07aj1324ll8i48z67ps6pz2kpsrg")))) | ||
| 8744 | (build-system ruby-build-system) | ||
| 8745 | (arguments '(#:phases (modify-phases %standard-phases | ||
| 8746 | (replace 'check | ||
| 8747 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 8748 | (when tests? | ||
| 8749 | (invoke "rspec"))))))) | ||
| 8750 | (native-inputs | ||
| 8751 | (list ruby-rspec)) | ||
| 8752 | (propagated-inputs | ||
| 8753 | (list ruby-ffi-rzmq-core)) | ||
| 8754 | (synopsis "High-level Ruby wrapper for the ZeroMQ networking library") | ||
| 8755 | (description "This library provides a high-level API that wraps the ZeroMQ | ||
| 8756 | networking library using the Ruby foreign function interface (FFI). It is a | ||
| 8757 | pure Ruby wrapper, hence is compatible with any Ruby runtime that has support | ||
| 8758 | for FFI.") | ||
| 8759 | (home-page "https://github.com/chuckremes/ffi-rzmq") | ||
| 8760 | (license license:expat))) | ||
| 8761 | |||
| 8762 | (define-public ruby-sawyer | ||
| 8763 | (package | ||
| 8764 | (name "ruby-sawyer") | ||
| 8765 | (version "0.9.2") | ||
| 8766 | (source | ||
| 8767 | (origin | ||
| 8768 | (method url-fetch) | ||
| 8769 | (uri (rubygems-uri "sawyer" version)) | ||
| 8770 | (sha256 | ||
| 8771 | (base32 | ||
| 8772 | "1jks1qjbmqm8f9kvwa81vqj39avaj9wdnzc531xm29a55bb74fps")))) | ||
| 8773 | (build-system ruby-build-system) | ||
| 8774 | (propagated-inputs | ||
| 8775 | (list ruby-addressable ruby-faraday)) | ||
| 8776 | (synopsis "Experimental hypermedia agent for Ruby") | ||
| 8777 | (description "Sawyer is an experimental hypermedia agent for Ruby built on | ||
| 8778 | top of Faraday.") | ||
| 8779 | (home-page "https://github.com/lostisland/sawyer") | ||
| 8780 | (license license:expat))) | ||
| 8781 | |||
| 8782 | (define-public ruby-octokit | ||
| 8783 | (package | ||
| 8784 | (name "ruby-octokit") | ||
| 8785 | (version "6.1.1") | ||
| 8786 | (source (origin | ||
| 8787 | (method git-fetch) | ||
| 8788 | (uri (git-reference | ||
| 8789 | (url "https://github.com/octokit/octokit.rb") | ||
| 8790 | (commit (string-append "v" version)))) | ||
| 8791 | (file-name (git-file-name name version)) | ||
| 8792 | (sha256 | ||
| 8793 | (base32 | ||
| 8794 | "02bcmh0b0v80cis1l80lhzxw8adb69xkz6qgg4m7qcmj3y5arwmk")))) | ||
| 8795 | (build-system ruby-build-system) | ||
| 8796 | (arguments | ||
| 8797 | (list | ||
| 8798 | #:phases | ||
| 8799 | #~(modify-phases %standard-phases | ||
| 8800 | (add-after 'unpack 'remove-unnecessary-dependencies | ||
| 8801 | (lambda _ | ||
| 8802 | (substitute* "spec/spec_helper.rb" | ||
| 8803 | (("require 'pry-byebug'") ""))))))) | ||
| 8804 | (native-inputs | ||
| 8805 | (list ruby-faraday-multipart | ||
| 8806 | ruby-jwt | ||
| 8807 | ruby-mime-types | ||
| 8808 | ruby-multi-json | ||
| 8809 | ruby-netrc | ||
| 8810 | ruby-rbnacl | ||
| 8811 | ruby-rspec | ||
| 8812 | ruby-simplecov | ||
| 8813 | ruby-webmock | ||
| 8814 | ruby-vcr-expat)) | ||
| 8815 | (propagated-inputs (list ruby-faraday ruby-sawyer)) | ||
| 8816 | (synopsis "Ruby toolkit for the GitHub API") | ||
| 8817 | (description "Octokit wraps the GitHub API in a flat API client that | ||
| 8818 | follows Ruby conventions and requires little knowledge of REST.") | ||
| 8819 | (home-page "https://github.com/octokit/octokit.rb") | ||
| 8820 | (license license:expat))) | ||
| 8821 | |||
| 8822 | (define-public ruby-hashicorp-checkpoint | ||
| 8823 | (package | ||
| 8824 | (name "ruby-hashicorp-checkpoint") | ||
| 8825 | (version "0.1.5") | ||
| 8826 | (source (origin | ||
| 8827 | (method url-fetch) | ||
| 8828 | (uri (rubygems-uri "hashicorp-checkpoint" version)) | ||
| 8829 | (sha256 | ||
| 8830 | (base32 | ||
| 8831 | "1z6mwzvd7p2wqhmk07dwrhvm0ncgqm7pxn0pr2k025rwsspp9bsd")))) | ||
| 8832 | (build-system ruby-build-system) | ||
| 8833 | (arguments | ||
| 8834 | (list #:tests? #f)) ;; no need to test, useless outside HashiCorp anyway | ||
| 8835 | (synopsis "Internal HashiCorp service to check version information") | ||
| 8836 | (description "This package is probably useless outside of internal | ||
| 8837 | HashiCorp use. It is open source for disclosure and because HashiCorp's open | ||
| 8838 | source projects must be able to link to it.") | ||
| 8839 | (home-page "https://github.com/hashicorp/ruby-checkpoint") | ||
| 8840 | (license license:mpl2.0))) | ||
| 8841 | |||
| 8842 | (define-public ruby-vagrant-cloud | ||
| 8843 | (package | ||
| 8844 | (name "ruby-vagrant-cloud") | ||
| 8845 | (version "3.1.1") | ||
| 8846 | (source (origin | ||
| 8847 | (method git-fetch) | ||
| 8848 | (uri (git-reference | ||
| 8849 | (url "https://github.com/hashicorp/vagrant_cloud") | ||
| 8850 | (commit (string-append "v" version)))) | ||
| 8851 | (file-name (git-file-name name version)) | ||
| 8852 | (sha256 | ||
| 8853 | (base32 | ||
| 8854 | "0bnjd8b86lrgj5ar1l7pg5if95bv0sxa75mz7x2ikqyz6q8rmjb3")))) | ||
| 8855 | (build-system ruby-build-system) | ||
| 8856 | (arguments | ||
| 8857 | `(#:test-target "spec")) | ||
| 8858 | (native-inputs (list ruby-rspec ruby-webmock)) | ||
| 8859 | (propagated-inputs (list ruby-excon ruby-log4r ruby-rexml)) | ||
| 8860 | (synopsis "Vagrant Cloud API library") | ||
| 8861 | (description "This library provides the functionality to create, modify, | ||
| 8862 | and delete boxes, versions, and providers on HashiCorp's Vagrant Cloud.") | ||
| 8863 | (home-page "https://github.com/hashicorp/vagrant_cloud") | ||
| 8864 | (license license:asl2.0))) | ||
| 8865 | |||
| 8866 | (define-public ruby-libvirt | ||
| 8867 | (package | ||
| 8868 | (name "ruby-libvirt") | ||
| 8869 | (version "0.8.2") | ||
| 8870 | (source (origin | ||
| 8871 | (method url-fetch) | ||
| 8872 | (uri (rubygems-uri "ruby-libvirt" version)) | ||
| 8873 | (sha256 | ||
| 8874 | (base32 | ||
| 8875 | "0v6vj5vs9v01zr00bflqpfczhwcyc6jdf8k2dqn42lq6d87si77d")))) | ||
| 8876 | (build-system ruby-build-system) | ||
| 8877 | (arguments | ||
| 8878 | (list | ||
| 8879 | #:tests? #f)) ; tests require access to libvirt socket | ||
| 8880 | (native-inputs (list pkg-config)) | ||
| 8881 | (inputs (list libvirt)) | ||
| 8882 | (synopsis "Ruby bindings for libvirt") | ||
| 8883 | (description "This package provides Ruby language binding for libvirt's | ||
| 8884 | native C API.") | ||
| 8885 | (home-page "https://ruby.libvirt.org/") | ||
| 8886 | (license license:lgpl2.1+))) | ||
| 8887 | |||
| 8888 | (define-public ruby-fog-core | ||
| 8889 | (package | ||
| 8890 | (name "ruby-fog-core") | ||
| 8891 | (version "2.4.0") | ||
| 8892 | (source (origin | ||
| 8893 | (method git-fetch) ; for tests | ||
| 8894 | (uri (git-reference | ||
| 8895 | (url "https://github.com/fog/fog-core") | ||
| 8896 | (commit (string-append "v" version)))) | ||
| 8897 | (file-name (git-file-name name version)) | ||
| 8898 | (sha256 | ||
| 8899 | (base32 | ||
| 8900 | "184vpi81az7raz98652m7d98ikabdl9di37dgal0adr76q57j03c")))) | ||
| 8901 | (build-system ruby-build-system) | ||
| 8902 | (arguments | ||
| 8903 | (list | ||
| 8904 | #:phases | ||
| 8905 | #~(modify-phases %standard-phases | ||
| 8906 | (add-before 'check 'set-home | ||
| 8907 | (lambda _ | ||
| 8908 | (setenv "HOME" "/tmp")))))) | ||
| 8909 | (native-inputs (list ruby-minitest-stub-const)) | ||
| 8910 | (propagated-inputs (list ruby-builder ruby-excon ruby-formatador | ||
| 8911 | ruby-mime-types)) | ||
| 8912 | (synopsis "Shared classes and tests for fog providers and services") | ||
| 8913 | (description "@code{fog} is a Ruby cloud services library. This package | ||
| 8914 | provides shared classes and tests for @code{fog} providers and services.") | ||
| 8915 | (home-page "https://github.com/fog/fog-core") | ||
| 8916 | (license license:expat))) | ||
| 8917 | |||
| 8918 | (define-public ruby-fog-json | ||
| 8919 | (package | ||
| 8920 | (name "ruby-fog-json") | ||
| 8921 | (version "1.2.0") | ||
| 8922 | (source (origin | ||
| 8923 | (method git-fetch) ; for tests | ||
| 8924 | (uri (git-reference | ||
| 8925 | (url "https://github.com/fog/fog-json") | ||
| 8926 | (commit (string-append "v" version)))) | ||
| 8927 | (file-name (git-file-name name version)) | ||
| 8928 | (sha256 | ||
| 8929 | (base32 | ||
| 8930 | "0f4hbmhy22b1gbkzd3pnj5xvljp6bl7inc2y4fxh29nrmcn4pgb0")))) | ||
| 8931 | (build-system ruby-build-system) | ||
| 8932 | (native-inputs (list ruby-minitest)) | ||
| 8933 | (propagated-inputs (list ruby-fog-core ruby-multi-json)) | ||
| 8934 | (synopsis "JSON parsing tools used by @code{fog} providers") | ||
| 8935 | (description "This package containse the JSON parsing tools shared between | ||
| 8936 | a number of providers in the @code{fog} gem. @code{fog} is a Ruby cloud | ||
| 8937 | services library.") | ||
| 8938 | (home-page "https://github.com/fog/fog-json") | ||
| 8939 | (license license:expat))) | ||
| 8940 | |||
| 8941 | (define-public ruby-fog-xml | ||
| 8942 | (package | ||
| 8943 | (name "ruby-fog-xml") | ||
| 8944 | (version "0.1.5") | ||
| 8945 | (source (origin | ||
| 8946 | (method git-fetch) ; for tests | ||
| 8947 | (uri (git-reference | ||
| 8948 | (url "https://github.com/fog/fog-xml") | ||
| 8949 | (commit (string-append "v" version)))) | ||
| 8950 | (file-name (git-file-name name version)) | ||
| 8951 | (sha256 | ||
| 8952 | (base32 | ||
| 8953 | "1v896k9j44axhgvwjvk1j0amy27a9fm6ynv656fxqa1m2wib6dzh")))) | ||
| 8954 | (build-system ruby-build-system) | ||
| 8955 | (arguments | ||
| 8956 | (list | ||
| 8957 | #:phases | ||
| 8958 | #~(modify-phases %standard-phases | ||
| 8959 | ;; Run tests via bundler so rake picks up the minitest gem from | ||
| 8960 | ;; native-inputs, not the one installed otherwise. This is required | ||
| 8961 | ;; since turn@0.9.7 needs minitest@4 and can not be upgraded to | ||
| 8962 | ;; minitest@5. | ||
| 8963 | (replace 'check | ||
| 8964 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 8965 | (when tests? | ||
| 8966 | (invoke "bundle" "exec" "rake"))))))) | ||
| 8967 | (native-inputs (list ruby-minitest ruby-pry ruby-coveralls)) | ||
| 8968 | (propagated-inputs (list ruby-fog-core ruby-nokogiri)) | ||
| 8969 | (synopsis "XML parsing tools used by @code{fog} providers") | ||
| 8970 | (description "This package containse the XML parsing tools shared between | ||
| 8971 | a number of providers in the @code{fog} gem. @code{fog} is a Ruby cloud | ||
| 8972 | services library.") | ||
| 8973 | (home-page "https://github.com/fog/fog-xml") | ||
| 8974 | (license license:expat))) | ||
| 8975 | |||
| 8976 | (define-public ruby-fog-libvirt | ||
| 8977 | (package | ||
| 8978 | (name "ruby-fog-libvirt") | ||
| 8979 | (version "0.12.0") | ||
| 8980 | (source (origin | ||
| 8981 | (method git-fetch) ; for tests | ||
| 8982 | (uri (git-reference | ||
| 8983 | (url "https://github.com/fog/fog-libvirt") | ||
| 8984 | (commit (string-append "v" version)))) | ||
| 8985 | (file-name (git-file-name name version)) | ||
| 8986 | (sha256 | ||
| 8987 | (base32 | ||
| 8988 | "0b1qafb0l24anmr8fviwhp9vj14g0fic0mkg9n1i11h68zhqkj2v")))) | ||
| 8989 | (build-system ruby-build-system) | ||
| 8990 | (native-inputs (list ruby-minitest-stub-const ruby-mocha ruby-net-ssh | ||
| 8991 | ruby-netrc ruby-octokit ruby-pry ruby-rubocop | ||
| 8992 | ruby-shindo ruby-simplecov ruby-yard )) | ||
| 8993 | (propagated-inputs (list ruby-fog-core ruby-fog-json ruby-fog-xml | ||
| 8994 | ruby-json ruby-libvirt)) | ||
| 8995 | (synopsis "Ruby libvirt provider, either standalone or as a module for | ||
| 8996 | @code{fog}") | ||
| 8997 | (description "This library can be used as a module for @code{fog} or as | ||
| 8998 | standalone libvirt provider. @code{fog} is a Ruby cloud services library.") | ||
| 8999 | (home-page "https://github.com/fog/fog-libvirt") | ||
| 9000 | (license license:expat))) | ||
| 9001 | |||
| 9002 | (define-public ruby-pry-byebug | ||
| 9003 | (package | ||
| 9004 | (name "ruby-pry-byebug") | ||
| 9005 | (version "3.10.1") | ||
| 9006 | (source | ||
| 9007 | (origin | ||
| 9008 | (method git-fetch) | ||
| 9009 | (uri (git-reference | ||
| 9010 | (url "https://github.com/deivid-rodriguez/pry-byebug") | ||
| 9011 | (commit (string-append "v" version)))) | ||
| 9012 | (file-name (git-file-name name version)) | ||
| 9013 | (sha256 | ||
| 9014 | (base32 | ||
| 9015 | "0z8rhvmr9qmlbk8c8h6jbig5qd5xbdg9qihvx3g0cv1whqzbfikq")))) | ||
| 9016 | (build-system ruby-build-system) | ||
| 9017 | (arguments | ||
| 9018 | `(#:phases (modify-phases %standard-phases | ||
| 9019 | (add-after 'unpack 'sanitize-dependencies | ||
| 9020 | (lambda _ | ||
| 9021 | (substitute* "Rakefile" | ||
| 9022 | ((".*chandler/tasks.*") "")))) | ||
| 9023 | (add-before 'check 'set-home | ||
| 9024 | (lambda _ | ||
| 9025 | (setenv "HOME" (getcwd))))))) | ||
| 9026 | (native-inputs (list ruby-rubocop ruby-simplecov)) | ||
| 9027 | (propagated-inputs (list ruby-byebug ruby-pry)) | ||
| 9028 | (synopsis "Step-by-step debugging and stack navigation in Pry") | ||
| 9029 | (description "This package adds step-by-step debugging and stack | ||
| 9030 | navigation capabilities to @code{pry}, using @code{byebug}.") | ||
| 9031 | (home-page "https://github.com/deivid-rodriguez/pry-byebug") | ||
| 9032 | (license license:expat))) | ||
| 9033 | |||
| 9034 | (define-public ruby-stackprof | ||
| 9035 | (package | ||
| 9036 | (name "ruby-stackprof") | ||
| 9037 | (version "0.2.27") | ||
| 9038 | (source | ||
| 9039 | (origin | ||
| 9040 | (method url-fetch) | ||
| 9041 | (uri (rubygems-uri "stackprof" version)) | ||
| 9042 | (sha256 | ||
| 9043 | (base32 "03788mbipmihq2w7rznzvv0ks0s9z1321k1jyr6ffln8as3d5xmg")))) | ||
| 9044 | (build-system ruby-build-system) | ||
| 9045 | (arguments | ||
| 9046 | (list | ||
| 9047 | #:phases | ||
| 9048 | #~(modify-phases %standard-phases | ||
| 9049 | (add-before 'check 'patch-gemspec | ||
| 9050 | (lambda _ | ||
| 9051 | (substitute* "stackprof.gemspec" | ||
| 9052 | (("rake-compiler.*") | ||
| 9053 | "rake-compiler>.freeze, [\"> 0.9\"])\n") | ||
| 9054 | (("mocha.*") | ||
| 9055 | "mocha>.freeze, [\"> 0.14\"])\n")))) | ||
| 9056 | (add-before 'check 'skip-dubious-test | ||
| 9057 | (lambda _ | ||
| 9058 | (substitute* "test/test_stackprof.rb" | ||
| 9059 | ;; This unreliable test can fail with "Expected 0 to be >= 1." | ||
| 9060 | (("def test_(cputime)" _ name) | ||
| 9061 | (string-append "def skip_" name)) | ||
| 9062 | ;; This test often fails | ||
| 9063 | (("def test_gc") "def skip_test_gc") | ||
| 9064 | ;; This test is known to fail on 32-bit systems. | ||
| 9065 | ;; /gnu/store/...-stackprof-0.2.27.gem | ||
| 9066 | (("def test_raw") "def skip_test_raw")))) | ||
| 9067 | (add-before 'check 'build-tests | ||
| 9068 | (lambda _ | ||
| 9069 | (invoke "rake" "compile"))) | ||
| 9070 | (replace 'check | ||
| 9071 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 9072 | (when tests? | ||
| 9073 | (invoke "bundle" "exec" "rake" "default"))))))) | ||
| 9074 | (native-inputs | ||
| 9075 | (list bundler ruby-mocha-1 ruby-rake-compiler)) | ||
| 9076 | (synopsis "Sampling profiler for Ruby code") | ||
| 9077 | (description | ||
| 9078 | "@code{stackprof} is a fast sampling profiler for Ruby code, with cpu, | ||
| 9079 | wallclock and object allocation samplers.") | ||
| 9080 | (home-page "https://github.com/tmm1/stackprof") | ||
| 9081 | (license license:expat))) | ||
| 9082 | |||
| 9083 | (define-public ruby-bindex | ||
| 9084 | (package | ||
| 9085 | (name "ruby-bindex") | ||
| 9086 | (version "0.8.1") | ||
| 9087 | (source | ||
| 9088 | (origin | ||
| 9089 | (method url-fetch) | ||
| 9090 | (uri (rubygems-uri "bindex" version)) | ||
| 9091 | (sha256 | ||
| 9092 | (base32 "0zmirr3m02p52bzq4xgksq4pn8j641rx5d4czk68pv9rqnfwq7kv")))) | ||
| 9093 | (build-system ruby-build-system) | ||
| 9094 | (arguments | ||
| 9095 | (list #:test-target "default" | ||
| 9096 | #:phases | ||
| 9097 | #~(modify-phases %standard-phases | ||
| 9098 | (add-after 'unpack 'avoid-bundler | ||
| 9099 | (lambda _ | ||
| 9100 | (substitute* "Rakefile" | ||
| 9101 | (("^Bundler::.*") ""))))))) | ||
| 9102 | (native-inputs (list bundler ruby-rake-compiler)) | ||
| 9103 | (synopsis "Bindings for Ruby exceptions") | ||
| 9104 | (description | ||
| 9105 | "This package provides bindings for any kind of Ruby exceptions.") | ||
| 9106 | (home-page "https://github.com/gsamokovarov/bindex") | ||
| 9107 | (license license:expat))) | ||
| 9108 | |||
| 9109 | (define-public ruby-binding-of-caller | ||
| 9110 | (package | ||
| 9111 | (name "ruby-binding-of-caller") | ||
| 9112 | (version "0.8.0") | ||
| 9113 | (source | ||
| 9114 | (origin | ||
| 9115 | (method url-fetch) | ||
| 9116 | (uri (rubygems-uri "binding_of_caller" version)) | ||
| 9117 | (sha256 | ||
| 9118 | (base32 | ||
| 9119 | "05syqlks7463zsy1jdfbbdravdhj9hpj5pv2m74blqpv8bq4vv5g")))) | ||
| 9120 | (build-system ruby-build-system) | ||
| 9121 | ;; Attempting to run the test suite fails with a rake deprecation error | ||
| 9122 | ;; (see: https://github.com/banister/binding_of_caller/issues/76). | ||
| 9123 | (arguments '(#:tests? #f)) | ||
| 9124 | (propagated-inputs | ||
| 9125 | (list ruby-debug-inspector)) | ||
| 9126 | (synopsis "Retrieve the binding of a method's caller") | ||
| 9127 | (description "The @code{binding_of_caller} module provides the | ||
| 9128 | @code{Binding#of_caller} method. It allows accessing bindings from upper | ||
| 9129 | frames in the call stack and can evaluate code in that context.") | ||
| 9130 | (home-page "https://github.com/banister/binding_of_caller") | ||
| 9131 | (license license:expat))) | ||
| 9132 | |||
| 9133 | (define-public ruby-pry-stack-explorer | ||
| 9134 | (package | ||
| 9135 | (name "ruby-pry-stack-explorer") | ||
| 9136 | (version "0.5.1") | ||
| 9137 | (source | ||
| 9138 | (origin | ||
| 9139 | (method url-fetch) | ||
| 9140 | (uri (rubygems-uri "pry-stack_explorer" version)) | ||
| 9141 | (sha256 | ||
| 9142 | (base32 | ||
| 9143 | "157rd2n9pfvcmmicm0xkq8z4p6famaj13syrpra6b4032qpb1wn0")))) | ||
| 9144 | (build-system ruby-build-system) | ||
| 9145 | (arguments '(#:tests? #f)) ;no test suite in gem release | ||
| 9146 | (propagated-inputs | ||
| 9147 | (list ruby-binding-of-caller ruby-pry)) | ||
| 9148 | (synopsis "Call-stack navigation plugin for the Pry REPL") | ||
| 9149 | (description "@code{pry-stack_explorer} is a plugin for the Pry REPL that | ||
| 9150 | add support to navigate the call-stack.") | ||
| 9151 | (home-page "https://github.com/pry/pry-stack_explorer") | ||
| 9152 | (license license:expat))) | ||
| 9153 | |||
| 9154 | (define-public ruby-varint | ||
| 9155 | (package | ||
| 9156 | (name "ruby-varint") | ||
| 9157 | (version "0.1.1") | ||
| 9158 | (source | ||
| 9159 | (origin | ||
| 9160 | (method url-fetch) | ||
| 9161 | (uri (rubygems-uri "varint" version)) | ||
| 9162 | (sha256 | ||
| 9163 | (base32 | ||
| 9164 | "1y0l2qc64cwsyv76ygg9bbjnk86riz2kq73kmn87gdrlmpiyrdac")))) | ||
| 9165 | (build-system ruby-build-system) | ||
| 9166 | (arguments '(#:tests? #f)) ;no test suite | ||
| 9167 | (synopsis "Variable length integers (varint) C extension for Ruby") | ||
| 9168 | (description "This package provides a small C extension to speed up | ||
| 9169 | variable length integers (varint) in Ruby Protocol Buffers.") | ||
| 9170 | (home-page "https://github.com/liquidm/varint") | ||
| 9171 | (license license:bsd-3))) | ||
| 9172 | |||
| 9173 | (define-public ruby-version-gem | ||
| 9174 | (package | ||
| 9175 | (name "ruby-version-gem") | ||
| 9176 | (version "1.1.3") | ||
| 9177 | (source (origin | ||
| 9178 | (method git-fetch) ;for tests | ||
| 9179 | (uri (git-reference | ||
| 9180 | (url "https://gitlab.com/oauth-xx/version_gem") | ||
| 9181 | (commit (string-append "v" version)))) | ||
| 9182 | (file-name (git-file-name name version)) | ||
| 9183 | (sha256 | ||
| 9184 | (base32 | ||
| 9185 | "1wazx2jr9vx5wm48fy8bccvfwhg7y2s8shfw9q81dhb4yvwk6gbf")))) | ||
| 9186 | (build-system ruby-build-system) | ||
| 9187 | (arguments | ||
| 9188 | (list | ||
| 9189 | #:phases | ||
| 9190 | #~(modify-phases %standard-phases | ||
| 9191 | (add-after 'unpack 'relax-requirements | ||
| 9192 | (lambda _ | ||
| 9193 | (substitute* "Gemfile" | ||
| 9194 | (("^linting = .*") | ||
| 9195 | "linting = false\n") | ||
| 9196 | (("^coverage = .*") | ||
| 9197 | "coverage = false\n") | ||
| 9198 | (("^debug = .*") | ||
| 9199 | "debug = false\n")) | ||
| 9200 | (substitute* "spec/spec_helper.rb" | ||
| 9201 | (("^RUN_COVERAGE = .*") | ||
| 9202 | "RUN_COVERAGE = false\n") | ||
| 9203 | (("^ALL_FORMATTERS = .*") | ||
| 9204 | "ALL_FORMATTERS = false\n")))) | ||
| 9205 | (add-before 'build 'drop-signing-key-requirement | ||
| 9206 | (lambda _ | ||
| 9207 | (substitute* "version_gem.gemspec" | ||
| 9208 | (("spec.signing_key =.*") | ||
| 9209 | "spec.signing_key = nil"))))))) | ||
| 9210 | (native-inputs (list ruby-rspec ruby-rspec-block-is-expected)) | ||
| 9211 | (synopsis "Improved @code{Version} module for Ruby") | ||
| 9212 | (description "VersionGem aims to provide introspection of a @code{Version} | ||
| 9213 | module based on a @code{Version::VERSION} constant string wile not interfering | ||
| 9214 | with gemspec parsing where the @code{VERSION} string is traditionally used.") | ||
| 9215 | (home-page "https://gitlab.com/oauth-xx/version_gem") | ||
| 9216 | (license license:expat))) | ||
| 9217 | |||
| 9218 | ;;; Note: Do NOT update to a newer version; this is the last commit that is | ||
| 9219 | ;;; still licensed as free software, the project having switched to the | ||
| 9220 | ;;; Hippocratic license afterward (see: | ||
| 9221 | ;;; https://github.com/vcr/vcr/issues/959). | ||
| 9222 | (define-public ruby-vcr-expat | ||
| 9223 | (let ((revision "0") | ||
| 9224 | (commit-dont-touch "842b2bf89099dc91f2c643d0d85d1abd54eb7e85")) ; | ||
| 9225 | (package | ||
| 9226 | (name "ruby-vcr-expat") | ||
| 9227 | (version (git-version "5.0.0" revision commit-dont-touch)) | ||
| 9228 | (source (origin | ||
| 9229 | (method git-fetch) | ||
| 9230 | (uri (git-reference | ||
| 9231 | (url "https://github.com/vcr/vcr") | ||
| 9232 | (commit commit-dont-touch))) | ||
| 9233 | (file-name (git-file-name name version)) | ||
| 9234 | (sha256 | ||
| 9235 | (base32 | ||
| 9236 | "02mzifd2655kjh35bbry01n66jjcjrsw6ncqlybfkjcaqrw2zalv")))) | ||
| 9237 | (build-system ruby-build-system) | ||
| 9238 | (arguments (list #:tests? #f)) ;avoid all dependencies | ||
| 9239 | (home-page "https://github.com/vcr/vcr") | ||
| 9240 | (synopsis "HTTP interaction recorder [old version]") | ||
| 9241 | (description "Record your test suite's HTTP interactions and replay them | ||
| 9242 | during future test runs for fast, deterministic, accurate tests. This is an | ||
| 9243 | older version of VCR that is free software under the Expat license. The | ||
| 9244 | project later switched to the Hippocratic license, which is non-free. | ||
| 9245 | @emph{Do not use it in new free software projects}.") | ||
| 9246 | (license license:expat)))) | ||
| 9247 | |||
| 9248 | (define-public ruby-ruby-prof | ||
| 9249 | (package | ||
| 9250 | (name "ruby-ruby-prof") | ||
| 9251 | (version "1.4.5") | ||
| 9252 | (source | ||
| 9253 | (origin | ||
| 9254 | (method url-fetch) | ||
| 9255 | (uri (rubygems-uri "ruby-prof" version)) | ||
| 9256 | (sha256 | ||
| 9257 | (base32 | ||
| 9258 | "09n13bzm1p956z318xx1v7ikqdp2i971v7p3kwf3170axz368ccy")))) | ||
| 9259 | (build-system ruby-build-system) | ||
| 9260 | (arguments | ||
| 9261 | ;; FIXME: Investigate why the tests fail on i686-linux. | ||
| 9262 | `(#:tests? ,(not (or (%current-target-system) | ||
| 9263 | (target-x86-32?))) | ||
| 9264 | #:phases | ||
| 9265 | (modify-phases %standard-phases | ||
| 9266 | ;; The LineNumbersTest test fails non-deterministically (see: | ||
| 9267 | ;; https://github.com/ruby-prof/ruby-prof/issues/276). | ||
| 9268 | (add-after 'extract-gemspec 'delete-flaky-test | ||
| 9269 | (lambda _ | ||
| 9270 | (delete-file "test/line_number_test.rb") | ||
| 9271 | (substitute* "ruby-prof.gemspec" | ||
| 9272 | (("\"test/line_number_test\\.rb\"\\.freeze, ") "")))) | ||
| 9273 | (add-before 'check 'compile | ||
| 9274 | (lambda _ | ||
| 9275 | (invoke "rake" "compile")))))) | ||
| 9276 | (native-inputs (list bundler ruby-minitest ruby-rake-compiler ruby-rdoc)) | ||
| 9277 | (synopsis "Fast code profiler for Ruby") | ||
| 9278 | (description "RubyProf is a fast code profiler for Ruby. Its features | ||
| 9279 | include: | ||
| 9280 | @table @asis | ||
| 9281 | @item Speed | ||
| 9282 | Being a C extension, it is many times faster than the standard Ruby profiler. | ||
| 9283 | @item Measurement Modes | ||
| 9284 | It can measure program wall time, process time, object allocations and memory | ||
| 9285 | usage. | ||
| 9286 | @item Reports | ||
| 9287 | A variety of text and cross-referenced HTML reports can be generated. | ||
| 9288 | @item Threads | ||
| 9289 | Profiling multiple threads simultaneously is supported. | ||
| 9290 | @end table") | ||
| 9291 | (home-page "https://github.com/ruby-prof/ruby-prof") | ||
| 9292 | (license license:bsd-2))) | ||
| 9293 | |||
| 9294 | (define-public ruby-ruby-memcheck | ||
| 9295 | (package | ||
| 9296 | (name "ruby-ruby-memcheck") | ||
| 9297 | (version "1.3.2") | ||
| 9298 | (source (origin | ||
| 9299 | (method git-fetch) | ||
| 9300 | (uri (git-reference | ||
| 9301 | (url "https://github.com/Shopify/ruby_memcheck") | ||
| 9302 | (commit version))) | ||
| 9303 | (file-name (git-file-name name version)) | ||
| 9304 | (sha256 | ||
| 9305 | (base32 | ||
| 9306 | "0fj4j4d062sw2kx2qlj877gjbj1xbb691njr8x9nbah6615idlni")))) | ||
| 9307 | (build-system ruby-build-system) | ||
| 9308 | (arguments | ||
| 9309 | (list | ||
| 9310 | ;; The tests seem to fail on 32bit x86 | ||
| 9311 | #:tests? (not (or (target-x86-32?) | ||
| 9312 | (%current-target-system))) | ||
| 9313 | #:phases | ||
| 9314 | #~(modify-phases %standard-phases | ||
| 9315 | (add-after 'unpack 'patch-valgrind-path | ||
| 9316 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 9317 | (substitute* "lib/ruby_memcheck/configuration.rb" | ||
| 9318 | (("DEFAULT_VALGRIND = \"valgrind\"") | ||
| 9319 | (format #f "DEFAULT_VALGRIND = ~s" | ||
| 9320 | (search-input-file inputs "bin/valgrind")))))) | ||
| 9321 | (add-before 'replace-git-ls-files 'standardize-git-ls-files | ||
| 9322 | (lambda _ | ||
| 9323 | (substitute* "ruby_memcheck.gemspec" | ||
| 9324 | (("%x\\(git ls-files -z)") | ||
| 9325 | "`git ls-files -z`"))))))) | ||
| 9326 | (native-inputs (list ruby-rake-compiler ruby-rspec)) | ||
| 9327 | (inputs (list valgrind/pinned)) | ||
| 9328 | (propagated-inputs (list ruby-nokogiri)) | ||
| 9329 | (synopsis "Valgrind memcheck tool for Ruby") | ||
| 9330 | (description "The @code{ruby_memcheck} gem provides a sane way to use | ||
| 9331 | Valgrind's memcheck on your native extension gem, that filters out all the | ||
| 9332 | false positives caused by Ruby not freeing all of the memory it allocates | ||
| 9333 | during shutdown.") | ||
| 9334 | (home-page "https://github.com/Shopify/ruby_memcheck") | ||
| 9335 | (license license:expat))) | ||
| 9336 | |||
| 9337 | (define-public ruby-memory-profiler | ||
| 9338 | (package | ||
| 9339 | (name "ruby-memory-profiler") | ||
| 9340 | (version "1.0.1") | ||
| 9341 | (source | ||
| 9342 | (origin | ||
| 9343 | (method git-fetch) | ||
| 9344 | (uri (git-reference | ||
| 9345 | (url "https://github.com/SamSaffron/memory_profiler") | ||
| 9346 | (commit (string-append "v" version)))) | ||
| 9347 | (file-name (git-file-name name version)) | ||
| 9348 | (sha256 | ||
| 9349 | (base32 | ||
| 9350 | "1z1x0rymfv45gh1y3s46w5pga5y8cvgn228jiwlnhc8hin3zig84")))) | ||
| 9351 | (build-system ruby-build-system) | ||
| 9352 | (synopsis "Memory profiling routines for Ruby") | ||
| 9353 | (description | ||
| 9354 | "This package provides memory profiling routines for Ruby.") | ||
| 9355 | (home-page "https://github.com/SamSaffron/memory_profiler") | ||
| 9356 | (license license:expat))) | ||
| 9357 | |||
| 9358 | (define-public ruby-gherkin-ruby | ||
| 9359 | (package | ||
| 9360 | (name "ruby-gherkin-ruby") | ||
| 9361 | (version "0.3.2") | ||
| 9362 | (home-page "https://github.com/codegram/gherkin-ruby") | ||
| 9363 | (source (origin | ||
| 9364 | (method url-fetch) | ||
| 9365 | (uri (rubygems-uri "gherkin-ruby" version)) | ||
| 9366 | (sha256 | ||
| 9367 | (base32 | ||
| 9368 | "18ay7yiibf4sl9n94k7mbi4k5zj2igl4j71qcmkswv69znyx0sn1")))) | ||
| 9369 | (build-system ruby-build-system) | ||
| 9370 | (synopsis "Pure Ruby Gherkin parser") | ||
| 9371 | (description | ||
| 9372 | "Gherkin-ruby is a Gherkin parser written in pure Ruby and less than | ||
| 9373 | 200 lines of code.") | ||
| 9374 | ;; XXX: No license information anywhere but Readme.md. | ||
| 9375 | (license license:expat))) | ||
| 9376 | |||
| 9377 | (define-public ruby-aruba | ||
| 9378 | (package | ||
| 9379 | (name "ruby-aruba") | ||
| 9380 | (version "2.1.0") | ||
| 9381 | (source (origin | ||
| 9382 | (method git-fetch) | ||
| 9383 | (uri (git-reference | ||
| 9384 | (url "https://github.com/cucumber/aruba") | ||
| 9385 | (commit (string-append "v" version)))) | ||
| 9386 | (file-name (git-file-name name version)) | ||
| 9387 | (sha256 | ||
| 9388 | (base32 | ||
| 9389 | "1mmlgqhi6yww3z34hmrrnha2rygkv6kx0q962z31dqxjkcv23yfd")))) | ||
| 9390 | (build-system ruby-build-system) | ||
| 9391 | (arguments | ||
| 9392 | (list | ||
| 9393 | ;; XXX: Only run the "spec" target and not the "cucumber" one, as it is | ||
| 9394 | ;; slow and has multiple unexplained test failures. | ||
| 9395 | #:test-target "spec" | ||
| 9396 | #:phases | ||
| 9397 | #~(modify-phases %standard-phases | ||
| 9398 | (add-after 'unpack 'patch-paths | ||
| 9399 | (lambda _ | ||
| 9400 | ;; This test file relies on a dynamically generated script; | ||
| 9401 | ;; patch its #!/bin/bash shebang. | ||
| 9402 | (substitute* "spec/aruba/api/commands_spec.rb" | ||
| 9403 | (("/bin/bash") | ||
| 9404 | (which "bash"))))) | ||
| 9405 | (add-before 'check 'relax-requirements | ||
| 9406 | ;; Many development requirements are not actually needed. | ||
| 9407 | (lambda _ | ||
| 9408 | (substitute* "aruba.gemspec" | ||
| 9409 | (("\\[\">= 0.18.0\", \"< 0.22.0\"]") ;simplecov | ||
| 9410 | "\">= 0.18.0\"") | ||
| 9411 | ((".*appraisal.*") "") | ||
| 9412 | ((".*pry.*") "") | ||
| 9413 | ((".*kramdown.*") "") | ||
| 9414 | ((".*rubocop.*") "") | ||
| 9415 | ((".*yard-junk.*") "")) | ||
| 9416 | (substitute* "Rakefile" | ||
| 9417 | ((".*require \"rubocop/rake_task\".*") "") | ||
| 9418 | ((".*require \"yard-junk/rake\".*") "") | ||
| 9419 | ((".*RuboCop::RakeTask.new.*") "") | ||
| 9420 | ((".*YardJunk::Rake.define_task.*") "")))) | ||
| 9421 | ;; The tests rely on the Gem being installed, so move the check | ||
| 9422 | ;; phase after the install phase. | ||
| 9423 | (delete 'check) | ||
| 9424 | (add-after 'install 'check | ||
| 9425 | (assoc-ref %standard-phases 'check)) | ||
| 9426 | (add-before 'check 'set-GEM_PATH | ||
| 9427 | (lambda _ | ||
| 9428 | (setenv "GEM_PATH" (string-append | ||
| 9429 | (getenv "GEM_PATH") ":" | ||
| 9430 | #$output "/lib/ruby/vendor_ruby")))) | ||
| 9431 | (add-before 'check 'set-home | ||
| 9432 | (lambda _ | ||
| 9433 | (setenv "HOME" "/tmp")))))) | ||
| 9434 | (native-inputs | ||
| 9435 | (list ruby-rake-manifest | ||
| 9436 | ruby-rspec | ||
| 9437 | ruby-simplecov)) | ||
| 9438 | (propagated-inputs | ||
| 9439 | (list bundler | ||
| 9440 | ruby-childprocess | ||
| 9441 | ruby-contracts | ||
| 9442 | ruby-cucumber | ||
| 9443 | ruby-rspec-expectations | ||
| 9444 | ruby-thor)) | ||
| 9445 | (synopsis "Test command-line applications with Cucumber, RSpec or Minitest") | ||
| 9446 | (description | ||
| 9447 | "Aruba is an extension for Cucumber, RSpec and Minitest for testing | ||
| 9448 | command-line applications. It supports applications written in any | ||
| 9449 | language.") | ||
| 9450 | (home-page "https://github.com/cucumber/aruba") | ||
| 9451 | (license license:expat))) | ||
| 9452 | |||
| 9453 | (define-public ruby-sys-uname | ||
| 9454 | (package | ||
| 9455 | (name "ruby-sys-uname") | ||
| 9456 | (version "1.2.1") | ||
| 9457 | (source | ||
| 9458 | (origin | ||
| 9459 | (method url-fetch) | ||
| 9460 | (uri (rubygems-uri "sys-uname" version)) | ||
| 9461 | (sha256 | ||
| 9462 | (base32 | ||
| 9463 | "00p3wwvkdbg6pl38bchaagncv3i4fq4y0ks470imwykjanpy2ic0")))) | ||
| 9464 | (build-system ruby-build-system) | ||
| 9465 | (arguments | ||
| 9466 | `(#:test-target "spec")) | ||
| 9467 | (propagated-inputs (list ruby-ffi)) | ||
| 9468 | (native-inputs (list ruby-rspec)) | ||
| 9469 | (synopsis "Ruby interface for gathering system information") | ||
| 9470 | (description "The sys-uname library provides an interface for gathering | ||
| 9471 | information about your current platform. It allows retrieving information | ||
| 9472 | such as the OS name, OS version, system name, etc.") | ||
| 9473 | (home-page "https://github.com/djberg96/sys-uname") | ||
| 9474 | (license license:asl2.0))) | ||
| 9475 | |||
| 9476 | (define-public ruby-cucumber | ||
| 9477 | (package | ||
| 9478 | (name "ruby-cucumber") | ||
| 9479 | (version "8.0.0") | ||
| 9480 | (source | ||
| 9481 | (origin | ||
| 9482 | (method git-fetch) | ||
| 9483 | (uri (git-reference | ||
| 9484 | (url "https://github.com/cucumber/cucumber-ruby") | ||
| 9485 | (commit (string-append "v" version)))) | ||
| 9486 | (file-name (git-file-name name version)) | ||
| 9487 | (sha256 | ||
| 9488 | (base32 | ||
| 9489 | "1dz880fdz6rfbh1nwwcq21v65byik46jnf9gppnrqf3p5k61i55r")))) | ||
| 9490 | (build-system ruby-build-system) | ||
| 9491 | (arguments | ||
| 9492 | (list #:test-target "spec" | ||
| 9493 | #:phases | ||
| 9494 | #~(modify-phases %standard-phases | ||
| 9495 | (add-after 'unpack 'disable-rubocop | ||
| 9496 | ;; Remove extraneous Lint checks. | ||
| 9497 | (lambda _ | ||
| 9498 | (substitute* "Rakefile" | ||
| 9499 | (("require 'rubocop/rake_task'") | ||
| 9500 | "") | ||
| 9501 | (("RuboCop::RakeTask.new") | ||
| 9502 | "")))) | ||
| 9503 | (add-after 'extract-gemspec 'strip-version-requirements | ||
| 9504 | (lambda _ | ||
| 9505 | (delete-file "Gemfile") ;do not use Bundler | ||
| 9506 | (substitute* "cucumber.gemspec" | ||
| 9507 | ;; The dependency specifications are often trailing | ||
| 9508 | ;; behind and appear stricter than necessary, since the | ||
| 9509 | ;; test suite passes with the newer component versions. | ||
| 9510 | (("(.*add_.*dependency '[_A-Za-z0-9-]+')(.*)" | ||
| 9511 | _ stripped rest) | ||
| 9512 | (string-append stripped " # " rest "\n"))))) | ||
| 9513 | (add-before 'check 'set-home | ||
| 9514 | (lambda _ | ||
| 9515 | (setenv "HOME" (getcwd))))))) | ||
| 9516 | (propagated-inputs | ||
| 9517 | (list ruby-builder | ||
| 9518 | ruby-cucumber-ci-environment | ||
| 9519 | ruby-cucumber-core | ||
| 9520 | ruby-cucumber-gherkin | ||
| 9521 | ruby-cucumber-html-formatter | ||
| 9522 | ruby-cucumber-messages | ||
| 9523 | ruby-cucumber-wire | ||
| 9524 | ruby-diff-lcs | ||
| 9525 | ruby-mime-types | ||
| 9526 | ruby-multi-test | ||
| 9527 | ruby-sys-uname)) | ||
| 9528 | (native-inputs | ||
| 9529 | (list ruby-cucumber-compatibility-kit | ||
| 9530 | ruby-nokogiri | ||
| 9531 | ruby-pry | ||
| 9532 | ruby-webrick | ||
| 9533 | ruby-rspec)) | ||
| 9534 | (synopsis "Describe automated tests in plain language") | ||
| 9535 | (description "Cucumber is a tool for running automated tests written in | ||
| 9536 | plain language. It's designed to support a Behaviour Driven Development (BDD) | ||
| 9537 | software development workflow.") | ||
| 9538 | (home-page "https://cucumber.io/") | ||
| 9539 | (license license:expat))) | ||
| 9540 | |||
| 9541 | (define ruby-cucumber-without-tests | ||
| 9542 | (package (inherit ruby-cucumber) | ||
| 9543 | (arguments | ||
| 9544 | '(#:tests? #f)) | ||
| 9545 | (native-inputs | ||
| 9546 | '()))) | ||
| 9547 | |||
| 9548 | (define-public ruby-covered | ||
| 9549 | (package | ||
| 9550 | (name "ruby-covered") | ||
| 9551 | (version "0.20.2") | ||
| 9552 | (source (origin | ||
| 9553 | (method url-fetch) | ||
| 9554 | (uri (rubygems-uri "covered" version)) | ||
| 9555 | (sha256 | ||
| 9556 | (base32 | ||
| 9557 | "04fpj493jn23ah5fq93956a5h2xj3z0hrckvc26fxcfsg5pbwypa")))) | ||
| 9558 | (build-system ruby-build-system) | ||
| 9559 | (arguments | ||
| 9560 | ;; XXX: The test suite is disabled to avoid dependency cycles with | ||
| 9561 | ;; ruby-samovar, through ruby-bake. | ||
| 9562 | (list #:tests? #f | ||
| 9563 | #:phases | ||
| 9564 | #~(modify-phases %standard-phases | ||
| 9565 | (add-after 'extract-gemspec 'relax-requirements | ||
| 9566 | (lambda _ | ||
| 9567 | (substitute* ".gemspec" | ||
| 9568 | (("\">= 3.2\"") | ||
| 9569 | "\">= 2.7\""))))))) | ||
| 9570 | (propagated-inputs (list ruby-console ruby-msgpack)) | ||
| 9571 | (synopsis "Modern approach to code coverage in Ruby") | ||
| 9572 | (description "Covered uses modern Ruby features to generate comprehensive | ||
| 9573 | coverage, including support for templates which are compiled into Ruby. It | ||
| 9574 | has the following features: | ||
| 9575 | @itemize | ||
| 9576 | @item | ||
| 9577 | Incremental coverage -- if you run your full test suite, and the run a subset, | ||
| 9578 | it will still report the correct coverage - so you can incrementally work on | ||
| 9579 | improving coverage. | ||
| 9580 | @item | ||
| 9581 | Integration with RSpec, Minitest, Travis & Coveralls - no need to configure | ||
| 9582 | anything - out of the box support for these platforms. | ||
| 9583 | @item | ||
| 9584 | It supports coverage of views -- templates compiled to Ruby code can be | ||
| 9585 | tracked for coverage reporting. | ||
| 9586 | @end itemize") | ||
| 9587 | (home-page "https://github.com/ioquatix/covered") | ||
| 9588 | (license license:expat))) | ||
| 9589 | |||
| 9590 | (define-public ruby-coveralls | ||
| 9591 | (package | ||
| 9592 | (name "ruby-coveralls") | ||
| 9593 | (version "0.8.23") | ||
| 9594 | (source | ||
| 9595 | (origin | ||
| 9596 | (method url-fetch) | ||
| 9597 | (uri (rubygems-uri "coveralls" version)) | ||
| 9598 | (sha256 | ||
| 9599 | (base32 | ||
| 9600 | "1mv4fn5lfxhy7bc2f1lpnc5yp9mvv97az77j4r7jgrxcqwn8fqxc")))) | ||
| 9601 | (build-system ruby-build-system) | ||
| 9602 | (arguments | ||
| 9603 | (list #:test-target "default" | ||
| 9604 | #:phases #~(modify-phases %standard-phases | ||
| 9605 | (add-after 'extract-gemspec 'disable-problematic-tests | ||
| 9606 | (lambda _ | ||
| 9607 | (substitute* "spec/coveralls/coveralls_spec.rb" | ||
| 9608 | ;; This test fails for unknown reasons (perhaps | ||
| 9609 | ;; networking); skip it. | ||
| 9610 | (("it \"sends existing test results\"" all) | ||
| 9611 | (string-append "x" all))) | ||
| 9612 | ;; 3 simplecov tests fail, perhaps due to using a | ||
| 9613 | ;; newer simplecov version. | ||
| 9614 | (delete-file "spec/coveralls/simplecov_spec.rb") | ||
| 9615 | (substitute* "coveralls-ruby.gemspec" | ||
| 9616 | (("\"spec/coveralls/simplecov_spec.rb\".freeze, ") | ||
| 9617 | "")))) | ||
| 9618 | (add-after 'extract-gemspec 'relax-requirements | ||
| 9619 | (lambda _ | ||
| 9620 | (substitute* "coveralls-ruby.gemspec" | ||
| 9621 | (("%q<simplecov>.freeze, \\[\"~> 0.16.1\"]") | ||
| 9622 | "%q<simplecov>.freeze"))))))) | ||
| 9623 | (native-inputs | ||
| 9624 | (list git-minimal/pinned | ||
| 9625 | ruby-pry | ||
| 9626 | ruby-rspec | ||
| 9627 | ruby-truthy | ||
| 9628 | ruby-vcr-expat | ||
| 9629 | ruby-webmock)) | ||
| 9630 | (propagated-inputs | ||
| 9631 | (list ruby-json | ||
| 9632 | ruby-term-ansicolor | ||
| 9633 | ruby-thor | ||
| 9634 | ruby-tins | ||
| 9635 | ruby-simplecov)) | ||
| 9636 | (synopsis "Ruby implementation of the Coveralls API") | ||
| 9637 | (description "This package provides a Ruby implementation of the Coveralls | ||
| 9638 | API.") | ||
| 9639 | (home-page "https://coveralls.io") | ||
| 9640 | (license license:expat))) | ||
| 9641 | |||
| 9642 | (define-public ruby-skiptrace | ||
| 9643 | (package | ||
| 9644 | (name "ruby-skiptrace") | ||
| 9645 | (version "0.8.1") | ||
| 9646 | (source | ||
| 9647 | (origin | ||
| 9648 | (method url-fetch) | ||
| 9649 | (uri (rubygems-uri "skiptrace" version)) | ||
| 9650 | (sha256 | ||
| 9651 | (base32 | ||
| 9652 | "1qpjy6pqd8hx4w7bai64jsr10mwbpnnb65wcbssyqcnalimi1s12")))) | ||
| 9653 | (build-system ruby-build-system) | ||
| 9654 | (arguments | ||
| 9655 | (list | ||
| 9656 | #:phases | ||
| 9657 | #~(modify-phases %standard-phases | ||
| 9658 | (add-after 'unpack 'remove-git-from-gemspec | ||
| 9659 | (lambda _ | ||
| 9660 | (substitute* "skiptrace.gemspec" | ||
| 9661 | (("`git ls-files -z`") "`find . -type f -print0 |sort -z`")))) | ||
| 9662 | (replace 'check | ||
| 9663 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 9664 | (when tests? | ||
| 9665 | (invoke "bundle" "exec" "rake" "default"))))))) | ||
| 9666 | (native-inputs | ||
| 9667 | (list bundler ruby-rake-compiler)) | ||
| 9668 | (synopsis "Provides access for bindings relating to Ruby exceptions") | ||
| 9669 | (description | ||
| 9670 | "@code{skiptrace} provides a way to access the bindings that relate to | ||
| 9671 | exceptions in Ruby, providing more information about the context in which the | ||
| 9672 | exception occurred.") | ||
| 9673 | (home-page "https://github.com/gsamokovarov/skiptrace") | ||
| 9674 | (license license:expat))) | ||
| 9675 | |||
| 9676 | (define-public ruby-bio-logger | ||
| 9677 | (package | ||
| 9678 | (name "ruby-bio-logger") | ||
| 9679 | (version "1.0.1") | ||
| 9680 | (source | ||
| 9681 | (origin | ||
| 9682 | (method url-fetch) | ||
| 9683 | (uri (rubygems-uri "bio-logger" version)) | ||
| 9684 | (sha256 | ||
| 9685 | (base32 | ||
| 9686 | "02pylfy8nkdqzyzplvnhn1crzmfkj1zmi3qjhrj2f2imlxvycd28")))) | ||
| 9687 | (build-system ruby-build-system) | ||
| 9688 | (arguments | ||
| 9689 | `(#:tests? #f)) ; rake errors, missing shoulda | ||
| 9690 | (propagated-inputs | ||
| 9691 | (list ruby-log4r)) | ||
| 9692 | (synopsis "Log4r wrapper for Ruby") | ||
| 9693 | (description "Bio-logger is a wrapper around Log4r adding extra logging | ||
| 9694 | features such as filtering and fine grained logging.") | ||
| 9695 | (home-page "https://github.com/pjotrp/bioruby-logger-plugin") | ||
| 9696 | (license license:expat))) | ||
| 9697 | |||
| 9698 | (define-public ruby-yajl-ruby | ||
| 9699 | (package | ||
| 9700 | (name "ruby-yajl-ruby") | ||
| 9701 | (version "1.4.3") | ||
| 9702 | (source | ||
| 9703 | (origin | ||
| 9704 | (method url-fetch) | ||
| 9705 | (uri (rubygems-uri "yajl-ruby" version)) | ||
| 9706 | (sha256 | ||
| 9707 | (base32 | ||
| 9708 | "1lni4jbyrlph7sz8y49q84pb0sbj82lgwvnjnsiv01xf26f4v5wc")))) | ||
| 9709 | (build-system ruby-build-system) | ||
| 9710 | (arguments | ||
| 9711 | (list | ||
| 9712 | #:test-target "spec" | ||
| 9713 | #:phases | ||
| 9714 | #~(modify-phases %standard-phases | ||
| 9715 | (add-before 'check 'patch-test-to-update-load-path | ||
| 9716 | (lambda _ | ||
| 9717 | (substitute* "spec/parsing/large_number_spec.rb" | ||
| 9718 | (("require \"yajl\"") | ||
| 9719 | "$LOAD_PATH << 'lib'; require 'yajl'"))))))) | ||
| 9720 | (native-inputs | ||
| 9721 | (list ruby-rake-compiler ruby-rspec)) | ||
| 9722 | (synopsis "Streaming JSON parsing and encoding library for Ruby") | ||
| 9723 | (description | ||
| 9724 | "Ruby C bindings to the Yajl JSON stream-based parser library. The API | ||
| 9725 | is compatible with the JSON gem, so yajl-ruby can act as a drop in | ||
| 9726 | replacement. | ||
| 9727 | |||
| 9728 | A modified copy of yajl is used, and included in the package.") | ||
| 9729 | (home-page "https://github.com/brianmario/yajl-ruby") | ||
| 9730 | (license (list license:expat ; Ruby code, yajl_ext.c and yajl_ext.h | ||
| 9731 | license:bsd-3)))) ; Included, modified copy of yajl | ||
| 9732 | |||
| 9733 | (define-public ruby-yard | ||
| 9734 | (package | ||
| 9735 | (name "ruby-yard") | ||
| 9736 | (version "0.9.34") | ||
| 9737 | (source | ||
| 9738 | (origin | ||
| 9739 | (method git-fetch) | ||
| 9740 | ;; Tests do not pass if we build from the distributed gem. | ||
| 9741 | (uri (git-reference | ||
| 9742 | (url "https://github.com/lsegal/yard") | ||
| 9743 | (commit (string-append "v" version)))) | ||
| 9744 | (file-name (git-file-name name version)) | ||
| 9745 | (sha256 | ||
| 9746 | (base32 | ||
| 9747 | "10jq0hyzyy0d6l63jxld32g36fhrclkb3rwnyp47igcik73kbagb")))) | ||
| 9748 | (build-system ruby-build-system) | ||
| 9749 | (arguments | ||
| 9750 | (list | ||
| 9751 | #:test-target "default" | ||
| 9752 | #:phases | ||
| 9753 | #~(modify-phases %standard-phases | ||
| 9754 | (add-after 'unpack 'do-not-set-date-in-gemspec | ||
| 9755 | ;; Fix a reproducibility issue (see: | ||
| 9756 | ;; https://github.com/lsegal/yard/issues/1343). | ||
| 9757 | (lambda _ | ||
| 9758 | (substitute* "yard.gemspec" | ||
| 9759 | ((".*s\\.date.*") "")))) | ||
| 9760 | (add-before 'check 'prepare-for-tests | ||
| 9761 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 9762 | (when tests? | ||
| 9763 | (substitute* "Rakefile" | ||
| 9764 | ((".*[Ss]amus.*") "")) | ||
| 9765 | ;; Delete the Gemfile to avoid errors relating to it. | ||
| 9766 | (delete-file "Gemfile") | ||
| 9767 | ;; $HOME needs to be set to somewhere writeable for tests to | ||
| 9768 | ;; run. | ||
| 9769 | (setenv "HOME" "/tmp") | ||
| 9770 | ;; This test fails | ||
| 9771 | ;; #<File (class)> received :open with unexpected arguments | ||
| 9772 | ;; expected: ("gem1.gem", "rb") | ||
| 9773 | ;; got: ("/gnu/store/.../lib/ruby/vendor_ruby/specifications/asciidoctor-2.0.18.gemspec", "r:UTF-8:-") | ||
| 9774 | (substitute* "spec/cli/diff_spec.rb" | ||
| 9775 | (("it \"searches for .gem file") | ||
| 9776 | "xit \"searches for .gem file")))))))) | ||
| 9777 | (native-inputs | ||
| 9778 | (list ruby-rspec | ||
| 9779 | ruby-rack | ||
| 9780 | ruby-redcloth | ||
| 9781 | ruby-webrick | ||
| 9782 | ruby-asciidoctor/minimal)) | ||
| 9783 | (synopsis "Documentation generation tool for Ruby") | ||
| 9784 | (description "YARD is a documentation generation tool for the Ruby | ||
| 9785 | programming language. It enables the user to generate consistent, usable | ||
| 9786 | documentation that can be exported to a number of formats very easily, and | ||
| 9787 | also supports extending for custom Ruby constructs such as custom class level | ||
| 9788 | definitions.") | ||
| 9789 | (home-page "https://yardoc.org") | ||
| 9790 | (license license:expat))) | ||
| 9791 | |||
| 9792 | (define-public ruby-yard/minimal | ||
| 9793 | (hidden-package | ||
| 9794 | (package | ||
| 9795 | (inherit ruby-yard) | ||
| 9796 | (arguments | ||
| 9797 | (ensure-keyword-arguments | ||
| 9798 | (package-arguments ruby-yard) | ||
| 9799 | (list #:tests? #f))) | ||
| 9800 | (native-inputs '())))) | ||
| 9801 | |||
| 9802 | (define-public ruby-spectroscope | ||
| 9803 | (package | ||
| 9804 | (name "ruby-spectroscope") | ||
| 9805 | (version "0.1.0") | ||
| 9806 | (source | ||
| 9807 | (origin | ||
| 9808 | (method url-fetch) | ||
| 9809 | (uri (rubygems-uri "spectroscope" version)) | ||
| 9810 | (sha256 | ||
| 9811 | (base32 | ||
| 9812 | "0iiid9sm110qhx0i1zkds710cvsnmhd308wbqa7slkzbq2akrb3y")))) | ||
| 9813 | (build-system ruby-build-system) | ||
| 9814 | (arguments | ||
| 9815 | `(#:phases | ||
| 9816 | (modify-phases %standard-phases | ||
| 9817 | (replace 'check | ||
| 9818 | (lambda _ | ||
| 9819 | (with-output-to-file ".test" | ||
| 9820 | (lambda _ | ||
| 9821 | (display | ||
| 9822 | "\ | ||
| 9823 | require 'ae/should' | ||
| 9824 | require 'rspec' | ||
| 9825 | |||
| 9826 | include RSpec | ||
| 9827 | |||
| 9828 | Test.run :default do |run| | ||
| 9829 | run.files << 'spec/*_spec.rb' | ||
| 9830 | end"))) | ||
| 9831 | (invoke "ruby" "-Ilib" "-rrubytest" ".test")))))) | ||
| 9832 | (native-inputs | ||
| 9833 | (list ruby-ae ruby-rspec)) | ||
| 9834 | (propagated-inputs | ||
| 9835 | (list ruby-rubytest)) | ||
| 9836 | (synopsis "Behavior-Driven Development (BDD) framework built on RubyTest") | ||
| 9837 | (description "Spectroscope is a Behavior-Driven Development (BDD) | ||
| 9838 | framework built on RubyTest, designed to emulate RSpec in most respects. It | ||
| 9839 | is assertion framework independent so any number of assertion systems can be | ||
| 9840 | used, such as Assay or AE.") | ||
| 9841 | (home-page "http://rubyworks.github.com/spectroscope/") | ||
| 9842 | (license license:bsd-2))) | ||
| 9843 | |||
| 9844 | (define-public ruby-tomparse | ||
| 9845 | (package | ||
| 9846 | (name "ruby-tomparse") | ||
| 9847 | (version "0.4.2") | ||
| 9848 | (source | ||
| 9849 | (origin | ||
| 9850 | (method url-fetch) | ||
| 9851 | (uri (rubygems-uri "tomparse" version)) | ||
| 9852 | (sha256 | ||
| 9853 | (base32 | ||
| 9854 | "06xakk41f1kgj6j1ahkwn4r6cvidixvm4phhlrvmwb7c3pr8ygc8")))) | ||
| 9855 | (build-system ruby-build-system) | ||
| 9856 | ;; TODO: Tests require citron and rulebow, not yet packaged. | ||
| 9857 | (arguments '(#:tests? #f)) | ||
| 9858 | (synopsis "TomDoc parser for Ruby") | ||
| 9859 | (description "TomParse is a TomDoc parser for Ruby. It takes a code | ||
| 9860 | comment as input and parses it into a convenient object-oriented structure in | ||
| 9861 | accordance with the TomDoc standard. See | ||
| 9862 | @url{https://github.com/mojombo/tomdoc, TomDoc} for more information about the | ||
| 9863 | TomDoc format.") | ||
| 9864 | (home-page "http://rubyworks.github.com/tomparse/") | ||
| 9865 | (license license:bsd-2))) | ||
| 9866 | |||
| 9867 | (define-public ruby-yard-tomdoc | ||
| 9868 | (package | ||
| 9869 | (name "ruby-yard-tomdoc") | ||
| 9870 | (version "0.7.1") | ||
| 9871 | (source | ||
| 9872 | (origin | ||
| 9873 | (method url-fetch) | ||
| 9874 | (uri (rubygems-uri "yard-tomdoc" version)) | ||
| 9875 | (sha256 | ||
| 9876 | (base32 | ||
| 9877 | "1725gs8b8klpwhrvnf2wwp7dw3zxs9vz2la983l2d8c4r4fn1j2z")))) | ||
| 9878 | (build-system ruby-build-system) | ||
| 9879 | (arguments | ||
| 9880 | `(#:phases (modify-phases %standard-phases | ||
| 9881 | (replace 'check | ||
| 9882 | (lambda _ | ||
| 9883 | (invoke "rubytest" "-Ilib" "-Itest" "test/")))))) | ||
| 9884 | (native-inputs | ||
| 9885 | (list ruby-rubytest-cli ruby-spectroscope ruby-ae)) | ||
| 9886 | (propagated-inputs | ||
| 9887 | (list ruby-tomparse ruby-yard)) | ||
| 9888 | (synopsis "TomDoc syntax for YARD") | ||
| 9889 | (description "This module adds support for the TomDoc documentation format | ||
| 9890 | to YARD, a documentation generation tool for Ruby.") | ||
| 9891 | (home-page "http://rubyworks.github.com/yard-tomdoc/") | ||
| 9892 | (license license:expat))) | ||
| 9893 | |||
| 9894 | (define-public ruby-clap | ||
| 9895 | (package | ||
| 9896 | (name "ruby-clap") | ||
| 9897 | (version "1.0.0") | ||
| 9898 | (source (origin | ||
| 9899 | (method url-fetch) | ||
| 9900 | (uri (rubygems-uri "clap" version)) | ||
| 9901 | (sha256 | ||
| 9902 | (base32 | ||
| 9903 | "190m05k3pca72c1h8k0fnvby15m303zi0lpb9c478ad19wqawa5q")))) | ||
| 9904 | (build-system ruby-build-system) | ||
| 9905 | ;; Clap needs cutest for running tests, but cutest needs clap. | ||
| 9906 | (arguments `(#:tests? #f)) | ||
| 9907 | (synopsis "Command line argument parsing for simple applications") | ||
| 9908 | (description | ||
| 9909 | "Clap provides command line argument parsing features. It covers the | ||
| 9910 | simple case of executing code based on the flags or parameters passed.") | ||
| 9911 | (home-page "https://github.com/djanowski/cutest") | ||
| 9912 | (license license:expat))) | ||
| 9913 | |||
| 9914 | (define-public ruby-cutest | ||
| 9915 | (package | ||
| 9916 | (name "ruby-cutest") | ||
| 9917 | (version "1.2.2") | ||
| 9918 | (source (origin | ||
| 9919 | (method url-fetch) | ||
| 9920 | (uri (rubygems-uri "cutest" version)) | ||
| 9921 | (sha256 | ||
| 9922 | (base32 | ||
| 9923 | "1mldhjn62g53vx4gq2qdqg2lgjvyrqxa8d0khf8347bbfgi16d32")))) | ||
| 9924 | (build-system ruby-build-system) | ||
| 9925 | (propagated-inputs | ||
| 9926 | (list ruby-clap)) | ||
| 9927 | (synopsis "Run tests in separate processes") | ||
| 9928 | (description | ||
| 9929 | "Cutest runs tests in separate processes to avoid shared state.") | ||
| 9930 | (home-page "https://github.com/djanowski/cutest") | ||
| 9931 | (license license:expat))) | ||
| 9932 | |||
| 9933 | (define-public ruby-pygmentize | ||
| 9934 | (package | ||
| 9935 | (name "ruby-pygmentize") | ||
| 9936 | (version "0.0.3") | ||
| 9937 | (source (origin | ||
| 9938 | (method url-fetch) | ||
| 9939 | (uri (rubygems-uri "pygmentize" version)) | ||
| 9940 | (sha256 | ||
| 9941 | (base32 | ||
| 9942 | "1pxryhkiwvsz6xzda3bvqwz5z8ggzl1cdglf8qbcf4bb7akirdpb")))) | ||
| 9943 | (build-system ruby-build-system) | ||
| 9944 | (arguments | ||
| 9945 | `(#:phases | ||
| 9946 | (modify-phases %standard-phases | ||
| 9947 | (add-after 'unpack 'fix-pygmentize-path | ||
| 9948 | (lambda _ | ||
| 9949 | (substitute* "lib/pygmentize.rb" | ||
| 9950 | (("\"/usr/bin/env python.*") | ||
| 9951 | (string-append "\"" (which "pygmentize") "\"\n"))))) | ||
| 9952 | (add-after 'build 'do-not-use-vendor-directory | ||
| 9953 | (lambda _ | ||
| 9954 | ;; Remove bundled pygments sources | ||
| 9955 | ;; FIXME: ruby-build-system does not support snippets. | ||
| 9956 | (delete-file-recursively "vendor") | ||
| 9957 | (substitute* "pygmentize.gemspec" | ||
| 9958 | (("\"vendor/\\*\\*/\\*\",") ""))))))) | ||
| 9959 | (inputs | ||
| 9960 | `(("pygments" ,python-pygments))) | ||
| 9961 | (native-inputs | ||
| 9962 | (list ruby-cutest ruby-nokogiri)) | ||
| 9963 | (synopsis "Thin Ruby wrapper around pygmentize") | ||
| 9964 | (description | ||
| 9965 | "Pygmentize provides a simple way to call pygmentize from within a Ruby | ||
| 9966 | application.") | ||
| 9967 | (home-page "https://github.com/djanowski/pygmentize") | ||
| 9968 | (license license:expat))) | ||
| 9969 | |||
| 9970 | (define-public ruby-event-emitter | ||
| 9971 | (package | ||
| 9972 | (name "ruby-event-emitter") | ||
| 9973 | (version "0.2.6") | ||
| 9974 | (source (origin | ||
| 9975 | (method url-fetch) | ||
| 9976 | (uri (rubygems-uri "event_emitter" version)) | ||
| 9977 | (sha256 | ||
| 9978 | (base32 | ||
| 9979 | "148k9qv8102l3m6klc24dwip79f9y4bjr5z19dckd7ffbjyrf9n7")))) | ||
| 9980 | (build-system ruby-build-system) | ||
| 9981 | (arguments | ||
| 9982 | (list #:phases #~(modify-phases %standard-phases | ||
| 9983 | (add-after 'extract-gemspec 'relax-requirements | ||
| 9984 | (lambda _ | ||
| 9985 | (substitute* "event_emitter.gemspec" | ||
| 9986 | (("~> 1.15") ">= 1.15"))))))) | ||
| 9987 | (synopsis "Ruby port of EventEmitter from Node.js") | ||
| 9988 | (description | ||
| 9989 | "This package provides a Ruby port of EventEmitter from Node.js.") | ||
| 9990 | (home-page "https://shokai.github.io/event_emitter/") | ||
| 9991 | (license license:expat))) | ||
| 9992 | |||
| 9993 | (define-public ruby-eventmachine | ||
| 9994 | (package | ||
| 9995 | (name "ruby-eventmachine") | ||
| 9996 | (version "1.2.7") | ||
| 9997 | (source | ||
| 9998 | (origin | ||
| 9999 | (method url-fetch) | ||
| 10000 | (uri (rubygems-uri "eventmachine" version)) | ||
| 10001 | (sha256 | ||
| 10002 | (base32 | ||
| 10003 | "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r")))) | ||
| 10004 | (build-system ruby-build-system) | ||
| 10005 | (arguments | ||
| 10006 | '(#:tests? #f)) ; test suite tries to connect to google.com | ||
| 10007 | (inputs | ||
| 10008 | (list openssl)) | ||
| 10009 | (native-inputs | ||
| 10010 | (list ruby-rake-compiler)) | ||
| 10011 | (synopsis "Single-threaded network event framework for Ruby") | ||
| 10012 | (description | ||
| 10013 | "EventMachine implements a single-threaded engine for arbitrary network | ||
| 10014 | communications. EventMachine wraps all interactions with sockets, allowing | ||
| 10015 | programs to concentrate on the implementation of network protocols. It can be | ||
| 10016 | used to create both network servers and clients.") | ||
| 10017 | ;; The ‘official’ rubyeventmachine.com domain is now registrar-squatted. | ||
| 10018 | (home-page "https://github.com/eventmachine/eventmachine") | ||
| 10019 | (license (list license:ruby license:gpl3)))) ; GPLv3 only AFAICT | ||
| 10020 | |||
| 10021 | (define-public ruby-ruby-engine | ||
| 10022 | (package | ||
| 10023 | (name "ruby-ruby-engine") | ||
| 10024 | (version "2.0.0") | ||
| 10025 | (source | ||
| 10026 | (origin | ||
| 10027 | (method url-fetch) | ||
| 10028 | (uri (rubygems-uri "ruby_engine" version)) | ||
| 10029 | (sha256 | ||
| 10030 | (base32 | ||
| 10031 | "0wqdcv8gxybp1y7kjhh18g3r9dczacs62d4ahcvyhz32bih8c9fm")))) | ||
| 10032 | (build-system ruby-build-system) | ||
| 10033 | (arguments | ||
| 10034 | `(#:phases | ||
| 10035 | (modify-phases %standard-phases | ||
| 10036 | (add-after 'extract-gemspec 'clean-up | ||
| 10037 | (lambda _ | ||
| 10038 | (delete-file "Gemfile.lock") | ||
| 10039 | (substitute* "ruby_engine.gemspec" | ||
| 10040 | ;; Remove unnecessary imports that would entail further | ||
| 10041 | ;; dependencies. | ||
| 10042 | ((".*<rdoc.*") "") | ||
| 10043 | ((".*<rubygems-tasks.*") "") | ||
| 10044 | ;; Remove extraneous .gem file | ||
| 10045 | (("\"pkg/ruby_engine-[0-9.]+\\.gem\".freeze, ") "") | ||
| 10046 | (("\"Gemfile.lock\".freeze, ") "") | ||
| 10047 | ;; Soften rake dependency | ||
| 10048 | (("%q<rake>.freeze, \\[\"~> 10.0\"\\]") | ||
| 10049 | "%q<rake>.freeze, [\">= 10.0\"]") | ||
| 10050 | ;; Soften the rspec dependency | ||
| 10051 | (("%q<rspec>.freeze, \\[\"~> 2.4\"\\]") | ||
| 10052 | "%q<rspec>.freeze, [\">= 2.4\"]")) | ||
| 10053 | (substitute* "Rakefile" | ||
| 10054 | (("require 'rubygems/tasks'") "") | ||
| 10055 | (("Gem::Tasks.new") "")) | ||
| 10056 | ;; Remove extraneous .gem file that otherwise gets installed. | ||
| 10057 | (delete-file-recursively "pkg")))))) | ||
| 10058 | (native-inputs | ||
| 10059 | (list bundler ruby-rake ruby-rspec)) | ||
| 10060 | (synopsis "Simplifies checking for Ruby implementation") | ||
| 10061 | (description | ||
| 10062 | "@code{ruby_engine} provides an RubyEngine class that can be used to | ||
| 10063 | check which implementation of Ruby is in use. It can provide the interpreter | ||
| 10064 | name and provides query methods such as @code{RubyEngine.mri?}.") | ||
| 10065 | (home-page "https://github.com/janlelis/ruby_engine") | ||
| 10066 | (license license:expat))) | ||
| 10067 | |||
| 10068 | (define-public ruby-mimemagic | ||
| 10069 | (package | ||
| 10070 | (name "ruby-mimemagic") | ||
| 10071 | (version "0.3.3") | ||
| 10072 | (source | ||
| 10073 | (origin | ||
| 10074 | (method url-fetch) | ||
| 10075 | (uri (rubygems-uri "mimemagic" version)) | ||
| 10076 | (sha256 | ||
| 10077 | (base32 "04cp5sfbh1qx82yqxn0q75c7hlcx8y1dr5g3kyzwm4mx6wi2gifw")))) | ||
| 10078 | (build-system ruby-build-system) | ||
| 10079 | (arguments | ||
| 10080 | '(#:phases | ||
| 10081 | (modify-phases %standard-phases | ||
| 10082 | ;; This phase breaks the tests, as it patches some of the test data. | ||
| 10083 | (delete 'patch-source-shebangs)))) | ||
| 10084 | (native-inputs | ||
| 10085 | (list ruby-bacon)) | ||
| 10086 | (synopsis "Ruby library for MIME detection by extension or content") | ||
| 10087 | (description | ||
| 10088 | "@acronym{MIME, Multipurpose Internet Mail Extensions} detection by | ||
| 10089 | extension or content, using the freedesktop.org.xml shared-mime-info | ||
| 10090 | database.") | ||
| 10091 | (home-page "https://github.com/minad/mimemagic") | ||
| 10092 | (license license:expat))) | ||
| 10093 | |||
| 10094 | (define-public ruby-mini-mime | ||
| 10095 | (package | ||
| 10096 | (name "ruby-mini-mime") | ||
| 10097 | (version "1.1.2") | ||
| 10098 | (source | ||
| 10099 | (origin | ||
| 10100 | (method url-fetch) | ||
| 10101 | (uri (rubygems-uri "mini_mime" version)) | ||
| 10102 | (sha256 | ||
| 10103 | (base32 | ||
| 10104 | "0lbim375gw2dk6383qirz13hgdmxlan0vc5da2l072j3qw6fqjm5")))) | ||
| 10105 | (build-system ruby-build-system) | ||
| 10106 | (synopsis "Lightweight mime type lookup toy") | ||
| 10107 | (description "This package provides a lightweight mime type lookup toy.") | ||
| 10108 | (home-page "https://github.com/discourse/mini_mime") | ||
| 10109 | (license license:expat))) | ||
| 10110 | |||
| 10111 | (define-public ruby-fileutils | ||
| 10112 | (package | ||
| 10113 | (name "ruby-fileutils") | ||
| 10114 | (version "1.7.0") | ||
| 10115 | (source (origin | ||
| 10116 | (method git-fetch) ;for tests | ||
| 10117 | (uri (git-reference | ||
| 10118 | (url "https://github.com/ruby/fileutils") | ||
| 10119 | (commit (string-append "v" version)))) | ||
| 10120 | (file-name (git-file-name name version)) | ||
| 10121 | (sha256 | ||
| 10122 | (base32 | ||
| 10123 | "0m68gaqclnc2wflilmrnr19kky2gr6fjf6k3yq02sf9scs281kid")))) | ||
| 10124 | (build-system ruby-build-system) | ||
| 10125 | (arguments | ||
| 10126 | (list | ||
| 10127 | #:phases | ||
| 10128 | #~(modify-phases %standard-phases | ||
| 10129 | (add-before 'check 'disable-problematic-tests | ||
| 10130 | (lambda _ | ||
| 10131 | (substitute* "test/fileutils/test_fileutils.rb" | ||
| 10132 | ;; The 'test_chown' tests depends on /etc/groups, which | ||
| 10133 | ;; doesn't exist in the build environment. | ||
| 10134 | (("def test_chown.*" all) | ||
| 10135 | (string-append all " return true\n")) | ||
| 10136 | ;; The 'test_cp_r_dev' expects a RuntimeError to be raised | ||
| 10137 | ;; when copying a char device to a directory, but this is not | ||
| 10138 | ;; triggered in the build environment, for reasons unknown. | ||
| 10139 | (("def test_cp_r_dev.*" all) | ||
| 10140 | (string-append all " return true\n")))))))) | ||
| 10141 | (synopsis "Ruby utility library to manipulate files") | ||
| 10142 | (description "The FileUtils Ruby library includes Several file utility | ||
| 10143 | methods for copying, moving, removing, etc.") | ||
| 10144 | (home-page "https://github.com/ruby/fileutils") | ||
| 10145 | (license license:bsd-2))) | ||
| 10146 | |||
| 10147 | (define-public ruby-sqlite3 | ||
| 10148 | (package | ||
| 10149 | (name "ruby-sqlite3") | ||
| 10150 | (version "2.5.0") | ||
| 10151 | (source | ||
| 10152 | (origin | ||
| 10153 | (method git-fetch) ;for tests | ||
| 10154 | (uri (git-reference | ||
| 10155 | (url "https://github.com/sparklemotion/sqlite3-ruby") | ||
| 10156 | (commit (string-append "v" version)))) | ||
| 10157 | (file-name (git-file-name name version)) | ||
| 10158 | (sha256 | ||
| 10159 | (base32 | ||
| 10160 | "1fanv7bv5lszd5g752yy8nmpjhrl9gqwbbkbis2xbh83y96f2zfm")))) | ||
| 10161 | (build-system ruby-build-system) | ||
| 10162 | (arguments | ||
| 10163 | (list | ||
| 10164 | #:gem-flags #~(list "--" "--enable-system-libraries") | ||
| 10165 | #:modules '((guix build ruby-build-system) | ||
| 10166 | (guix build utils) | ||
| 10167 | (ice-9 rdelim) | ||
| 10168 | (ice-9 textual-ports)) | ||
| 10169 | #:phases | ||
| 10170 | #~(modify-phases %standard-phases | ||
| 10171 | (add-after 'unpack 'relax-requirements | ||
| 10172 | (lambda _ | ||
| 10173 | ;; Don't try to format C code, remove rubocop-rake. | ||
| 10174 | (delete-file "rakelib/format.rake") | ||
| 10175 | ;; Don't try to run valgrind-like memory tests. | ||
| 10176 | ;; This cuts all lines after Minitest::TestTask.create | ||
| 10177 | (with-atomic-file-replacement | ||
| 10178 | "rakelib/test.rake" | ||
| 10179 | (lambda (in out) | ||
| 10180 | (let loop () | ||
| 10181 | (let ((line (read-line in))) | ||
| 10182 | (cond | ||
| 10183 | ((eof-object? line) #f) | ||
| 10184 | ((string-prefix? "Minitest::TestTask.create" line) #f) | ||
| 10185 | (else | ||
| 10186 | (format out "~a~%" line) | ||
| 10187 | (loop))))))))) | ||
| 10188 | (delete 'check) | ||
| 10189 | (add-after 'install 'check | ||
| 10190 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 10191 | (when tests? | ||
| 10192 | (setenv "GEM_PATH" | ||
| 10193 | (string-append (getenv "GEM_PATH") ":" | ||
| 10194 | #$output "/lib/ruby/vendor_ruby")) | ||
| 10195 | (invoke "rake" "test"))))))) | ||
| 10196 | (propagated-inputs | ||
| 10197 | (list ruby-mini-portile-2)) | ||
| 10198 | (inputs | ||
| 10199 | (list sqlite)) | ||
| 10200 | (native-inputs | ||
| 10201 | (list ruby-hoe | ||
| 10202 | ruby-rake-compiler | ||
| 10203 | ruby-rake-compiler-dock)) | ||
| 10204 | (synopsis "Interface with SQLite3 databases") | ||
| 10205 | (description | ||
| 10206 | "This module allows Ruby programs to interface with the SQLite3 database | ||
| 10207 | engine.") | ||
| 10208 | (home-page | ||
| 10209 | "https://github.com/sparklemotion/sqlite3-ruby") | ||
| 10210 | (license license:bsd-3))) | ||
| 10211 | |||
| 10212 | (define-public ruby-sqlite3-1.4 | ||
| 10213 | (package/inherit ruby-sqlite3 | ||
| 10214 | (name "ruby-sqlite3") | ||
| 10215 | (version "1.4.4") | ||
| 10216 | (source | ||
| 10217 | (origin | ||
| 10218 | (method git-fetch) ;for tests | ||
| 10219 | (uri (git-reference | ||
| 10220 | (url "https://github.com/sparklemotion/sqlite3-ruby") | ||
| 10221 | (commit (string-append "v" version)))) | ||
| 10222 | (file-name (git-file-name name version)) | ||
| 10223 | (sha256 | ||
| 10224 | (base32 | ||
| 10225 | "0ngirjbai3f5ki2sf6m4gxbbrjpr3b35bz5nrz1cifyw1jk6a6sr")))) | ||
| 10226 | (arguments | ||
| 10227 | (substitute-keyword-arguments (package-arguments ruby-sqlite3) | ||
| 10228 | ((#:tests? #t #t) #f) | ||
| 10229 | ((#:phases phases #~%standard-phases) | ||
| 10230 | #~(modify-phases #$phases | ||
| 10231 | (delete 'relax-requirements) | ||
| 10232 | (add-after 'unpack 'fix-version | ||
| 10233 | (lambda _ | ||
| 10234 | (substitute* "sqlite3.gemspec" | ||
| 10235 | (("s\\.version = .*") | ||
| 10236 | (format #f "s.version = ~s~%" #$version))))))))))) | ||
| 10237 | |||
| 10238 | (define-public ruby-shoulda-context | ||
| 10239 | (package | ||
| 10240 | (name "ruby-shoulda-context") | ||
| 10241 | (version "2.0.0") | ||
| 10242 | (source | ||
| 10243 | (origin | ||
| 10244 | (method url-fetch) | ||
| 10245 | (uri (rubygems-uri "shoulda-context" version)) | ||
| 10246 | (sha256 | ||
| 10247 | (base32 | ||
| 10248 | "0d1clcp92jv8756h09kbc55qiqncn666alx0s83za06q5hs4bpvs")))) | ||
| 10249 | (build-system ruby-build-system) | ||
| 10250 | (arguments | ||
| 10251 | `(#:phases | ||
| 10252 | (modify-phases %standard-phases | ||
| 10253 | (replace 'check | ||
| 10254 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 10255 | (when tests? | ||
| 10256 | ;; Do not run tests to avoid circular dependence with rails. | ||
| 10257 | ;; Instead just import the library to test. | ||
| 10258 | (invoke "ruby" "-Ilib" "-r" "shoulda-context"))))))) | ||
| 10259 | (synopsis "Test::Unit context framework extracted from Shoulda") | ||
| 10260 | (description | ||
| 10261 | "@code{shoulda-context} is the context framework extracted from Shoulda. | ||
| 10262 | Instead of writing Ruby methods with lots_of_underscores, shoulda-context adds | ||
| 10263 | context, setup, and should blocks combine to produce natural test method | ||
| 10264 | names.") | ||
| 10265 | (home-page "https://github.com/thoughtbot/shoulda-context") | ||
| 10266 | (license license:expat))) | ||
| 10267 | |||
| 10268 | (define-public ruby-shoulda-matchers | ||
| 10269 | (package | ||
| 10270 | (name "ruby-shoulda-matchers") | ||
| 10271 | (version "5.3.0") | ||
| 10272 | (source | ||
| 10273 | (origin | ||
| 10274 | (method url-fetch) | ||
| 10275 | (uri (rubygems-uri "shoulda-matchers" version)) | ||
| 10276 | (sha256 | ||
| 10277 | (base32 | ||
| 10278 | "11igjgh16dl5pwqizdmclzlzpv7mbmnh8fx7m9b5kfsjhwxqdfpn")))) | ||
| 10279 | (build-system ruby-build-system) | ||
| 10280 | (arguments | ||
| 10281 | `(#:phases | ||
| 10282 | (modify-phases %standard-phases | ||
| 10283 | (replace 'check | ||
| 10284 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 10285 | (when tests? | ||
| 10286 | ;; Do not run tests to avoid circular dependence with rails. Instead | ||
| 10287 | ;; just import the library to test. | ||
| 10288 | (invoke "ruby" "-Ilib" "-r" "shoulda-matchers"))))))) | ||
| 10289 | (propagated-inputs | ||
| 10290 | (list ruby-activesupport)) | ||
| 10291 | (synopsis "Collection of testing matchers extracted from Shoulda") | ||
| 10292 | (description | ||
| 10293 | "Shoulda Matchers provides RSpec- and Minitest-compatible one-liners that | ||
| 10294 | test common Rails functionality. These tests would otherwise be much longer, | ||
| 10295 | more complex, and error-prone.") | ||
| 10296 | (home-page "https://github.com/thoughtbot/shoulda-matchers") | ||
| 10297 | (license license:expat))) | ||
| 10298 | |||
| 10299 | (define-public ruby-shoulda | ||
| 10300 | (package | ||
| 10301 | (name "ruby-shoulda") | ||
| 10302 | (version "4.0.0") | ||
| 10303 | (source | ||
| 10304 | (origin | ||
| 10305 | (method url-fetch) | ||
| 10306 | (uri (rubygems-uri "shoulda" version)) | ||
| 10307 | (sha256 | ||
| 10308 | (base32 | ||
| 10309 | "02lww34kn1g6lidp4rx4rs6bqvirrzxlfw1y2wm11aif8f622xz6")))) | ||
| 10310 | (build-system ruby-build-system) | ||
| 10311 | (arguments | ||
| 10312 | `(#:phases | ||
| 10313 | (modify-phases %standard-phases | ||
| 10314 | (replace 'check | ||
| 10315 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 10316 | (when tests? | ||
| 10317 | ;; Don't run tests to avoid circular dependence with rails. | ||
| 10318 | ;; Instead just import the library to test. | ||
| 10319 | (invoke "ruby" "-Ilib" "-r" "shoulda")))) | ||
| 10320 | (add-after 'extract-gemspec 'relax-requirements | ||
| 10321 | (lambda _ | ||
| 10322 | (substitute* "shoulda.gemspec" | ||
| 10323 | ;; An older version of shoulda-matchers (4.0) is used, out of | ||
| 10324 | ;; little maintenance rather than because of an real | ||
| 10325 | ;; incompatibility (see: | ||
| 10326 | ;; https://github.com/thoughtbot/shoulda/issues/275). | ||
| 10327 | ((", \\[\"~> 4.0\"]") ""))))))) | ||
| 10328 | (propagated-inputs | ||
| 10329 | (list ruby-shoulda-context ruby-shoulda-matchers)) | ||
| 10330 | (synopsis "Context framework and matchers for testing") | ||
| 10331 | (description | ||
| 10332 | "@code{shoulda} is a meta-package combining @code{shoulda-context} and | ||
| 10333 | @code{shoulda-matchers} providing tools for writing tests.") | ||
| 10334 | (home-page "https://github.com/thoughtbot/shoulda") | ||
| 10335 | (license license:expat))) | ||
| 10336 | |||
| 10337 | (define-public ruby-unf | ||
| 10338 | (package | ||
| 10339 | (name "ruby-unf") | ||
| 10340 | (version "0.1.4") | ||
| 10341 | (source | ||
| 10342 | (origin | ||
| 10343 | (method url-fetch) | ||
| 10344 | (uri (rubygems-uri "unf" version)) | ||
| 10345 | (sha256 | ||
| 10346 | (base32 | ||
| 10347 | "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9")))) | ||
| 10348 | (build-system ruby-build-system) | ||
| 10349 | (arguments | ||
| 10350 | `(#:phases | ||
| 10351 | (modify-phases %standard-phases | ||
| 10352 | (add-before 'check 'add-dependency-to-bundler | ||
| 10353 | (lambda _ | ||
| 10354 | ;; test-unit is required but not provided by the bundler | ||
| 10355 | ;; environment. This is fixed in the upstream repository but fix | ||
| 10356 | ;; has not been released. | ||
| 10357 | (substitute* "Gemfile" | ||
| 10358 | (("^gemspec") "gem 'test-unit'\ngemspec"))))))) | ||
| 10359 | (propagated-inputs | ||
| 10360 | (list ruby-unf-ext)) | ||
| 10361 | (native-inputs | ||
| 10362 | (list ruby-shoulda bundler ruby-test-unit)) | ||
| 10363 | (synopsis "Unicode Normalization Form support to Ruby and JRuby") | ||
| 10364 | (description | ||
| 10365 | "@code{ruby-unf} is a wrapper library to bring Unicode Normalization Form | ||
| 10366 | support to both Ruby and JRuby. It uses @code{unf_ext} on CRuby and | ||
| 10367 | @code{java.text.Normalizer} on JRuby.") | ||
| 10368 | (home-page "https://github.com/knu/ruby-unf") | ||
| 10369 | (license license:bsd-2))) | ||
| 10370 | |||
| 10371 | (define-public ruby-warden | ||
| 10372 | (package | ||
| 10373 | (name "ruby-warden") | ||
| 10374 | (version "1.2.8") | ||
| 10375 | (source | ||
| 10376 | (origin | ||
| 10377 | (method url-fetch) | ||
| 10378 | (uri (rubygems-uri "warden" version)) | ||
| 10379 | (sha256 | ||
| 10380 | (base32 | ||
| 10381 | "1fr9n9i9r82xb6i61fdw4xgc7zjv7fsdrr4k0njchy87iw9fl454")))) | ||
| 10382 | (build-system ruby-build-system) | ||
| 10383 | (arguments | ||
| 10384 | '(#:tests? #f)) ; No included tests | ||
| 10385 | (propagated-inputs | ||
| 10386 | (list ruby-rack)) | ||
| 10387 | (synopsis "Rack middleware providing authentication") | ||
| 10388 | (description | ||
| 10389 | "Warden is a Rack-based middleware that provides a mechanism for | ||
| 10390 | authentication in Ruby web applications.") | ||
| 10391 | (home-page "https://github.com/wardencommunity/warden") | ||
| 10392 | (license license:expat))) | ||
| 10393 | |||
| 10394 | (define-public ruby-warden-oauth2 | ||
| 10395 | (package | ||
| 10396 | (name "ruby-warden-oauth2") | ||
| 10397 | (version "0.0.1") | ||
| 10398 | (source | ||
| 10399 | (origin | ||
| 10400 | (method url-fetch) | ||
| 10401 | (uri (rubygems-uri "warden-oauth2" version)) | ||
| 10402 | (sha256 | ||
| 10403 | (base32 | ||
| 10404 | "1z9154lvzrnnfjbjkmirh4n811nygp6pm2fa6ikr7y1ysa4zv3cz")))) | ||
| 10405 | (build-system ruby-build-system) | ||
| 10406 | (arguments | ||
| 10407 | '(#:test-target "spec" | ||
| 10408 | #:phases | ||
| 10409 | (modify-phases %standard-phases | ||
| 10410 | (add-after 'unpack 'remove-unnecessary-dependencies | ||
| 10411 | (lambda _ | ||
| 10412 | (substitute* "Gemfile" | ||
| 10413 | ;; All of these gems relate to development, and are unnecessary | ||
| 10414 | ;; when running the tests | ||
| 10415 | (("gem 'guard-bundler'") "") | ||
| 10416 | (("gem 'guard'") "") | ||
| 10417 | (("gem 'guard-rspec'") "") | ||
| 10418 | (("gem 'rb-fsevent'") "") | ||
| 10419 | (("gem 'pry'") "") | ||
| 10420 | (("gem 'growl'") "")))) | ||
| 10421 | ;; The test suite doesn't work with rspec@2, and this is incompatible | ||
| 10422 | ;; with the current version of Rake, so invoke Rspec directly | ||
| 10423 | (replace 'check | ||
| 10424 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 10425 | (when tests? | ||
| 10426 | (invoke "bundle" "exec" "rspec"))))))) | ||
| 10427 | (propagated-inputs | ||
| 10428 | (list ruby-warden)) | ||
| 10429 | (native-inputs | ||
| 10430 | (list bundler ruby-rspec-2 ruby-rack-test)) | ||
| 10431 | (synopsis "OAuth 2.0 strategies for Warden") | ||
| 10432 | (description | ||
| 10433 | "This library extends Warden to support OAuth 2.0 authorized API | ||
| 10434 | requests.") | ||
| 10435 | (home-page "https://github.com/opperator/warden-oauth2") | ||
| 10436 | (license license:expat))) | ||
| 10437 | |||
| 10438 | (define-public ruby-webmock | ||
| 10439 | (package | ||
| 10440 | (name "ruby-webmock") | ||
| 10441 | (version "3.11.2") | ||
| 10442 | (source | ||
| 10443 | (origin | ||
| 10444 | (method url-fetch) | ||
| 10445 | (uri (rubygems-uri "webmock" version)) | ||
| 10446 | (sha256 | ||
| 10447 | (base32 | ||
| 10448 | "1hdlbvfw316lkz251qnfk79drmaay7l51kidvicz41nhvw12xz8v")))) | ||
| 10449 | (build-system ruby-build-system) | ||
| 10450 | (native-inputs | ||
| 10451 | (list bundler ruby-rspec)) | ||
| 10452 | (propagated-inputs | ||
| 10453 | (list ruby-addressable ruby-crack ruby-hashdiff)) | ||
| 10454 | (synopsis "Allows stubbing and setting expectations on HTTP requests") | ||
| 10455 | (description | ||
| 10456 | "WebMock allows stubbing HTTP requests and setting expectations on HTTP | ||
| 10457 | requests. This is useful when testing software.") | ||
| 10458 | (home-page "https://github.com/bblimke/webmock") | ||
| 10459 | (license license:expat))) | ||
| 10460 | |||
| 10461 | (define-public ruby-webmock-2 | ||
| 10462 | (package | ||
| 10463 | (inherit ruby-webmock) | ||
| 10464 | (name "ruby-webmock") | ||
| 10465 | (version "2.3.2") | ||
| 10466 | (source | ||
| 10467 | (origin | ||
| 10468 | (method url-fetch) | ||
| 10469 | (uri (rubygems-uri "webmock" version)) | ||
| 10470 | (sha256 | ||
| 10471 | (base32 | ||
| 10472 | "04hkcqsmbfnp8g237pisnc834vpgildklicbjbyikqg0bg1rwcy5")))))) | ||
| 10473 | |||
| 10474 | (define-public ruby-unicode-display-width | ||
| 10475 | (package | ||
| 10476 | (name "ruby-unicode-display-width") | ||
| 10477 | (version "2.4.2") | ||
| 10478 | (source | ||
| 10479 | (origin | ||
| 10480 | (method url-fetch) | ||
| 10481 | (uri (rubygems-uri "unicode-display_width" version)) | ||
| 10482 | (sha256 | ||
| 10483 | (base32 | ||
| 10484 | "1gi82k102q7bkmfi7ggn9ciypn897ylln1jk9q67kjhr39fj043a")))) | ||
| 10485 | (build-system ruby-build-system) | ||
| 10486 | (arguments | ||
| 10487 | '(;; Test data not included. | ||
| 10488 | #:tests? #f)) | ||
| 10489 | (synopsis "Determine the monospace display width of Ruby strings") | ||
| 10490 | (description | ||
| 10491 | "@code{Unicode::DisplayWidth} is a Ruby library which can determine the | ||
| 10492 | display width of strings in Ruby.") | ||
| 10493 | (home-page "https://github.com/janlelis/unicode-display_width") | ||
| 10494 | (license license:expat))) | ||
| 10495 | |||
| 10496 | ;; There is another gem called 'ruby-version' so we use an underscore in this | ||
| 10497 | ;; name | ||
| 10498 | (define-public ruby_version | ||
| 10499 | (package | ||
| 10500 | (name "ruby_version") | ||
| 10501 | (version "1.0.2") | ||
| 10502 | (source | ||
| 10503 | (origin | ||
| 10504 | (method url-fetch) | ||
| 10505 | (uri (rubygems-uri "ruby_version" version)) | ||
| 10506 | (sha256 | ||
| 10507 | (base32 | ||
| 10508 | "0lvc7bd5ps3w2vq2wb02i0pi3vfcx2rnckx2ix4rjym1qf52kb2j")))) | ||
| 10509 | (build-system ruby-build-system) | ||
| 10510 | (arguments | ||
| 10511 | `(#:phases | ||
| 10512 | (modify-phases %standard-phases | ||
| 10513 | (add-before 'check 'fix-dependencies | ||
| 10514 | (lambda _ | ||
| 10515 | ;; Remove the Gemfile.lock, as we want to use Guix packages at | ||
| 10516 | ;; whatever versions. | ||
| 10517 | (delete-file "Gemfile.lock") | ||
| 10518 | ;; Remove the included gem files as they unnecessary. | ||
| 10519 | (delete-file-recursively "pkg/") | ||
| 10520 | ;; Accept any version of rake, rdoc and rspec | ||
| 10521 | (substitute* "ruby_version.gemspec" | ||
| 10522 | (("%q<rake.*") "%q<rake>)\n") | ||
| 10523 | (("%q<rdoc.*") "%q<rdoc>)\n") | ||
| 10524 | (("%q<rspec.*") "%q<rspec>)\n")) | ||
| 10525 | ;; Do not use bundler. | ||
| 10526 | (substitute* "Rakefile" | ||
| 10527 | (("Bundler\\.setup.*") "nil\n"))))))) | ||
| 10528 | (native-inputs | ||
| 10529 | (list ruby-rdoc ruby-rspec ruby-rubygems-tasks)) | ||
| 10530 | (synopsis "Ruby library to help check the Ruby version") | ||
| 10531 | (description "@code{ruby_version} provides a @code{RubyVersion} module to simplify | ||
| 10532 | checking for the right Ruby version in software.") | ||
| 10533 | (home-page "https://github.com/janlelis/ruby_version") | ||
| 10534 | (license license:expat))) | ||
| 10535 | |||
| 10536 | (define-public ruby-websocket-client-simple | ||
| 10537 | (package | ||
| 10538 | (name "ruby-websocket-client-simple") | ||
| 10539 | (version "0.6.1") | ||
| 10540 | (source (origin | ||
| 10541 | (method url-fetch) | ||
| 10542 | (uri (rubygems-uri "websocket-client-simple" version)) | ||
| 10543 | (sha256 | ||
| 10544 | (base32 | ||
| 10545 | "1ypl4xvlh5c99zbn20sifv7gv04zi20ly464vsgikfrpn5f37bid")))) | ||
| 10546 | (build-system ruby-build-system) | ||
| 10547 | (arguments (list #:test-target "default")) | ||
| 10548 | (native-inputs (list ruby-eventmachine ruby-websocket-eventmachine-server)) | ||
| 10549 | (propagated-inputs (list ruby-event-emitter ruby-websocket)) | ||
| 10550 | (synopsis "Simple WebSocket client for Ruby") | ||
| 10551 | (description "This package provides a simple WebSocket client for Ruby.") | ||
| 10552 | (home-page "https://github.com/ruby-jp/websocket-client-simple") | ||
| 10553 | (license license:expat))) | ||
| 10554 | |||
| 10555 | (define-public ruby-websocket-eventmachine-base | ||
| 10556 | (package | ||
| 10557 | (name "ruby-websocket-eventmachine-base") | ||
| 10558 | (version "1.2.0") | ||
| 10559 | (source (origin | ||
| 10560 | (method url-fetch) | ||
| 10561 | (uri (rubygems-uri "websocket-eventmachine-base" version)) | ||
| 10562 | (sha256 | ||
| 10563 | (base32 | ||
| 10564 | "0wiz61mcwgs3k21cdr5l9b4jpg29gl6mflfampww2v525yc3hr1r")))) | ||
| 10565 | (build-system ruby-build-system) | ||
| 10566 | (arguments | ||
| 10567 | (list #:tests? #f)) ;no test suite | ||
| 10568 | (propagated-inputs (list ruby-eventmachine ruby-websocket | ||
| 10569 | ruby-websocket-native)) | ||
| 10570 | (synopsis "WebSocket base for Ruby client and server") | ||
| 10571 | (description "This package provides a WebSocket base for a Ruby client and | ||
| 10572 | server.") | ||
| 10573 | (home-page "https://github.com/imanel/websocket-eventmachine-base") | ||
| 10574 | (license license:expat))) | ||
| 10575 | |||
| 10576 | (define-public ruby-websocket-eventmachine-server | ||
| 10577 | (package | ||
| 10578 | (name "ruby-websocket-eventmachine-server") | ||
| 10579 | (version "1.0.1") | ||
| 10580 | (source (origin | ||
| 10581 | (method url-fetch) | ||
| 10582 | (uri (rubygems-uri "websocket-eventmachine-server" version)) | ||
| 10583 | (sha256 | ||
| 10584 | (base32 | ||
| 10585 | "0iqpzc8s028nck1flqaj784gvyn64wy1h3svpa4y2847wklg8sms")))) | ||
| 10586 | (build-system ruby-build-system) | ||
| 10587 | ;; TODO: The test suite requires Autobahn, not yet packaged in Guix. | ||
| 10588 | (arguments (list #:tests? #f)) | ||
| 10589 | (propagated-inputs (list ruby-websocket-eventmachine-base)) | ||
| 10590 | (synopsis "WebSocket server for Ruby") | ||
| 10591 | (description "This package provides a WebSocket server for Ruby.") | ||
| 10592 | (home-page "https://github.com/imanel/websocket-eventmachine-server") | ||
| 10593 | (license license:expat))) | ||
| 10594 | |||
| 10595 | (define-public ruby-websocket-native | ||
| 10596 | (package | ||
| 10597 | (name "ruby-websocket-native") | ||
| 10598 | (version "1.0.0") | ||
| 10599 | (source (origin | ||
| 10600 | (method url-fetch) | ||
| 10601 | (uri (rubygems-uri "websocket-native" version)) | ||
| 10602 | (sha256 | ||
| 10603 | (base32 | ||
| 10604 | "1kgvd3gyzh7hk0ddzn85jrs4csxm54qnvla95ldyn6rzgfbjchdn")))) | ||
| 10605 | (build-system ruby-build-system) | ||
| 10606 | (arguments | ||
| 10607 | (list #:test-target "spec" | ||
| 10608 | #:phases #~(modify-phases %standard-phases | ||
| 10609 | (add-before 'check 'disable-problematic-tests | ||
| 10610 | (lambda _ | ||
| 10611 | (substitute* "spec/websocket_spec.rb" | ||
| 10612 | (("it \"should have mask_native defined\"" all) | ||
| 10613 | (string-append "x" all))))) | ||
| 10614 | (add-after 'build 'compile | ||
| 10615 | (lambda _ | ||
| 10616 | (invoke "rake" "compile")))))) | ||
| 10617 | (native-inputs (list ruby-rake-compiler ruby-rspec)) | ||
| 10618 | (synopsis "Native Ruby extension for the WebSocket gem") | ||
| 10619 | (description "This package provides a native extension that can increase | ||
| 10620 | performance by about 25% compared to the pure Ruby WebSocket implementation.") | ||
| 10621 | (home-page "https://github.com/imanel/websocket-ruby-native") | ||
| 10622 | (license license:expat))) | ||
| 10623 | |||
| 10624 | (define-public ruby-websocket-driver | ||
| 10625 | (package | ||
| 10626 | (name "ruby-websocket-driver") | ||
| 10627 | (version "0.7.1") | ||
| 10628 | (source | ||
| 10629 | (origin | ||
| 10630 | (method url-fetch) | ||
| 10631 | (uri (rubygems-uri "websocket-driver" version)) | ||
| 10632 | (sha256 | ||
| 10633 | (base32 "1bxamwqldmy98hxs5pqby3andws14hl36ch78g0s81gaz9b91nj2")))) | ||
| 10634 | (build-system ruby-build-system) | ||
| 10635 | (arguments | ||
| 10636 | '(#:tests? #f)) ; no included tests | ||
| 10637 | (propagated-inputs | ||
| 10638 | (list ruby-websocket-extensions)) | ||
| 10639 | (synopsis "WebSocket protocol handler with pluggable I/O") | ||
| 10640 | (description | ||
| 10641 | "@code{websocket-driver} provides a complete implementation of the | ||
| 10642 | WebSocket protocols that can be hooked up to any TCP library") | ||
| 10643 | (home-page "https://github.com/faye/websocket-driver-ruby") | ||
| 10644 | (license license:expat))) | ||
| 10645 | |||
| 10646 | (define-public ruby-websocket-extensions | ||
| 10647 | (package | ||
| 10648 | (name "ruby-websocket-extensions") | ||
| 10649 | (version "0.1.3") | ||
| 10650 | (source | ||
| 10651 | (origin | ||
| 10652 | (method url-fetch) | ||
| 10653 | (uri (rubygems-uri "websocket-extensions" version)) | ||
| 10654 | (sha256 | ||
| 10655 | (base32 | ||
| 10656 | "034sdr7fd34yag5l6y156rkbhiqgmy395m231dwhlpcswhs6d270")))) | ||
| 10657 | (build-system ruby-build-system) | ||
| 10658 | (arguments | ||
| 10659 | '(;; No included tests | ||
| 10660 | #:tests? #f)) | ||
| 10661 | (synopsis "Generic extension manager for WebSocket connections") | ||
| 10662 | (description | ||
| 10663 | "@code{websocket-extensions} provides a container for registering | ||
| 10664 | extension plugins.") | ||
| 10665 | (home-page "https://github.com/faye/websocket-extensions-ruby") | ||
| 10666 | (license license:expat))) | ||
| 10667 | |||
| 10668 | (define-public ruby-domain-name | ||
| 10669 | (package | ||
| 10670 | (name "ruby-domain-name") | ||
| 10671 | (version "0.5.20190701") | ||
| 10672 | (source | ||
| 10673 | (origin | ||
| 10674 | (method url-fetch) | ||
| 10675 | (uri (rubygems-uri "domain_name" version)) | ||
| 10676 | (sha256 | ||
| 10677 | (base32 "0lcqjsmixjp52bnlgzh4lg9ppsk52x9hpwdjd53k8jnbah2602h0")))) | ||
| 10678 | (build-system ruby-build-system) | ||
| 10679 | (arguments | ||
| 10680 | `(#:phases | ||
| 10681 | (modify-phases %standard-phases | ||
| 10682 | (add-before 'check 'fix-versions | ||
| 10683 | (lambda _ | ||
| 10684 | ;; Fix NameError that appears to already be fixed upstream. | ||
| 10685 | (substitute* "Rakefile" | ||
| 10686 | (("DomainName::VERSION") | ||
| 10687 | "Bundler::GemHelper.gemspec.version")) | ||
| 10688 | ;; Loosen unnecessarily strict test-unit version specification. | ||
| 10689 | (substitute* "domain_name.gemspec" | ||
| 10690 | (("<test-unit>.freeze, \\[\\\"~> 2.5.5") "<test-unit>, [\">0")) | ||
| 10691 | #t))))) | ||
| 10692 | (propagated-inputs | ||
| 10693 | (list ruby-unf)) | ||
| 10694 | (native-inputs | ||
| 10695 | (list ruby-shoulda bundler ruby-test-unit)) | ||
| 10696 | (synopsis "Domain name manipulation library") | ||
| 10697 | (description | ||
| 10698 | "@code{domain_name} is a Domain name manipulation library. It parses a | ||
| 10699 | domain name ready for extracting the registered domain and TLD (Top Level | ||
| 10700 | Domain). It can also be used for cookie domain validation based on the Public | ||
| 10701 | Suffix List.") | ||
| 10702 | (home-page "https://github.com/knu/ruby-domain_name") | ||
| 10703 | (license license:bsd-2))) | ||
| 10704 | |||
| 10705 | (define-public ruby-dotenv | ||
| 10706 | (package | ||
| 10707 | (name "ruby-dotenv") | ||
| 10708 | (version "3.1.7") | ||
| 10709 | (source (origin | ||
| 10710 | (method git-fetch) ;for the tests | ||
| 10711 | (uri (git-reference | ||
| 10712 | (url "https://github.com/bkeepers/dotenv") | ||
| 10713 | (commit (string-append "v" version)))) | ||
| 10714 | (file-name (git-file-name name version)) | ||
| 10715 | (sha256 | ||
| 10716 | (base32 | ||
| 10717 | "19j0acy12si537hwi4q54q8n5ycmlvfd2ik5y6r7jir6ww06l8yx")))) | ||
| 10718 | (build-system ruby-build-system) | ||
| 10719 | (arguments | ||
| 10720 | (list | ||
| 10721 | #:test-target "spec" | ||
| 10722 | #:phases | ||
| 10723 | #~(modify-phases %standard-phases | ||
| 10724 | (add-after 'unpack 'do-not-build-dotenv-rails | ||
| 10725 | (lambda _ | ||
| 10726 | ;; The repository includes the definitions of two packages, | ||
| 10727 | ;; 'dotenv' and 'dotenv-rails'. Since we want to package them | ||
| 10728 | ;; separately, remove the dotenv-rails and associated Rake | ||
| 10729 | ;; tasks. | ||
| 10730 | (delete-file "dotenv-rails.gemspec") | ||
| 10731 | (delete-file "spec/dotenv/rails_spec.rb") | ||
| 10732 | (delete-file "spec/dotenv/log_subscriber_spec.rb") | ||
| 10733 | (substitute* "spec/spec_helper.rb" | ||
| 10734 | (("require \"dotenv\"" all) | ||
| 10735 | (string-append "require \"pathname\"\n" all))) | ||
| 10736 | (substitute* "Rakefile" | ||
| 10737 | (("DotenvRailsGemHelper.install_tasks name: \"dotenv-rails\"") | ||
| 10738 | "") | ||
| 10739 | ((", \"dotenv-rails:.*\"") | ||
| 10740 | "")))) | ||
| 10741 | (replace 'replace-git-ls-files | ||
| 10742 | (lambda _ | ||
| 10743 | (substitute* "dotenv.gemspec" | ||
| 10744 | (("`git ls-files (README.md LICENSE lib bin) \\| ([^`]*`)" | ||
| 10745 | all files command) | ||
| 10746 | (string-append | ||
| 10747 | "`find " files " -type f | sort | " command)))))))) | ||
| 10748 | (native-inputs (list ruby-standard ruby-rspec)) | ||
| 10749 | (synopsis "Ruby library for setting environment variables") | ||
| 10750 | (description "Dotenv is a Ruby library for setting environment variables | ||
| 10751 | defined in a @file{.env} file.") | ||
| 10752 | (home-page "https://github.com/bkeepers/dotenv") | ||
| 10753 | (license license:expat))) | ||
| 10754 | |||
| 10755 | (define-public ruby-dotenv-rails | ||
| 10756 | (package | ||
| 10757 | (inherit ruby-dotenv) | ||
| 10758 | (name "ruby-dotenv-rails") | ||
| 10759 | (arguments | ||
| 10760 | (substitute-keyword-arguments (package-arguments ruby-dotenv) | ||
| 10761 | ((#:phases phases '%standard-phases) | ||
| 10762 | #~(modify-phases #$phases | ||
| 10763 | (delete 'do-not-build-dotenv-rails) | ||
| 10764 | (add-after 'unpack 'delete-Gemfile | ||
| 10765 | (lambda _ | ||
| 10766 | ;; It defines extraneous dependencies; remove it. | ||
| 10767 | (delete-file "Gemfile"))) | ||
| 10768 | (add-after 'unpack 'remove-extraneous-gemspec | ||
| 10769 | (lambda _ | ||
| 10770 | (delete-file "dotenv.gemspec") | ||
| 10771 | (substitute* "Gemfile" | ||
| 10772 | ((".*\"dotenv\".*") "")) | ||
| 10773 | (substitute* "Rakefile" | ||
| 10774 | ;; Remove the dotenv-related Rake tasks. | ||
| 10775 | (("Bundler::GemHelper.install_tasks name: \"dotenv\"") | ||
| 10776 | "") | ||
| 10777 | (("\"dotenv:[^\"]*\", ") | ||
| 10778 | "")))) | ||
| 10779 | (replace 'replace-git-ls-files | ||
| 10780 | (lambda _ | ||
| 10781 | (substitute* "dotenv-rails.gemspec" | ||
| 10782 | (("`git ls-files lib \\| grep rails`") | ||
| 10783 | "`find lib -type f | sort | grep rails`")))))))) | ||
| 10784 | (native-inputs (list ruby-rspec ruby-spring ruby-standard)) | ||
| 10785 | (propagated-inputs (list ruby-dotenv ruby-railties)) | ||
| 10786 | (synopsis "Ruby library for setting environment variables in Rails project") | ||
| 10787 | (description "Dotenv is a Ruby library for setting environment variables | ||
| 10788 | defined in a @file{.env} file. This is the Rails variant, adapted for use | ||
| 10789 | with Ruby on Rails projects."))) | ||
| 10790 | |||
| 10791 | (define-public ruby-http-accept | ||
| 10792 | (package | ||
| 10793 | (name "ruby-http-accept") | ||
| 10794 | (version "2.2.0") | ||
| 10795 | (source (origin | ||
| 10796 | (method git-fetch) ;for the tests | ||
| 10797 | (uri (git-reference | ||
| 10798 | (url "https://github.com/socketry/http-accept") | ||
| 10799 | (commit (string-append "v" version)))) | ||
| 10800 | (file-name (git-file-name name version)) | ||
| 10801 | (sha256 | ||
| 10802 | (base32 | ||
| 10803 | "1d69cy12hqbcqrhw4dibvdq5pqklxsa59kih6pzl479nxq79rgs7")))) | ||
| 10804 | (build-system ruby-build-system) | ||
| 10805 | (arguments | ||
| 10806 | (list | ||
| 10807 | #:phases | ||
| 10808 | #~(modify-phases %standard-phases | ||
| 10809 | (add-after 'unpack 'remove-missing-key-directive | ||
| 10810 | ;; This seem to be a common problem in Ruby projects (see: | ||
| 10811 | ;; https://github.com/prawnpdf/ttfunk/issues/99). | ||
| 10812 | (lambda _ | ||
| 10813 | (substitute* "http-accept.gemspec" | ||
| 10814 | ((".*spec.signing_key.*") "")))) | ||
| 10815 | (replace 'check | ||
| 10816 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 10817 | (when tests? | ||
| 10818 | (invoke "rspec"))))))) | ||
| 10819 | (native-inputs | ||
| 10820 | (list ruby-rspec | ||
| 10821 | ruby-covered)) | ||
| 10822 | (synopsis "Parse Accept and Accept-Language HTTP headers") | ||
| 10823 | (description | ||
| 10824 | "This package provides a set of parsers for Accept and Accept-Language | ||
| 10825 | HTTP headers.") | ||
| 10826 | (home-page "https://github.com/socketry/http-accept") | ||
| 10827 | (license license:expat))) | ||
| 10828 | |||
| 10829 | (define-public ruby-http-accept-1 | ||
| 10830 | (package | ||
| 10831 | (inherit ruby-http-accept) | ||
| 10832 | (version "1.7.0") | ||
| 10833 | (source (origin | ||
| 10834 | (method git-fetch) ;for the tests | ||
| 10835 | (uri (git-reference | ||
| 10836 | (url "https://github.com/ioquatix/http-accept") | ||
| 10837 | (commit (string-append "v" version)))) | ||
| 10838 | (file-name (git-file-name "ruby-http-accept" version)) | ||
| 10839 | (sha256 | ||
| 10840 | (base32 | ||
| 10841 | "1hnqmqpa135s3xgcvv30qzqm8zp88my1aj05m72d2q9cvc31g92z")))))) | ||
| 10842 | |||
| 10843 | (define-public ruby-http-cookie | ||
| 10844 | (package | ||
| 10845 | (name "ruby-http-cookie") | ||
| 10846 | (version "1.0.5") | ||
| 10847 | (source | ||
| 10848 | (origin | ||
| 10849 | (method url-fetch) | ||
| 10850 | (uri (rubygems-uri "http-cookie" version)) | ||
| 10851 | (sha256 | ||
| 10852 | (base32 | ||
| 10853 | "13rilvlv8kwbzqfb644qp6hrbsj82cbqmnzcvqip1p6vqx36sxbk")))) | ||
| 10854 | (build-system ruby-build-system) | ||
| 10855 | (arguments | ||
| 10856 | (list | ||
| 10857 | #:phases | ||
| 10858 | #~(modify-phases %standard-phases | ||
| 10859 | (add-before 'check 'add-dependency-to-bundler | ||
| 10860 | (lambda _ | ||
| 10861 | ;; Fix NameError | ||
| 10862 | (substitute* "Rakefile" | ||
| 10863 | (("HTTP::Cookie::VERSION") | ||
| 10864 | "Bundler::GemHelper.gemspec.version"))))))) | ||
| 10865 | (propagated-inputs | ||
| 10866 | (list ruby-domain-name)) | ||
| 10867 | (native-inputs | ||
| 10868 | (list ruby-simplecov | ||
| 10869 | bundler | ||
| 10870 | ruby-sqlite3 | ||
| 10871 | ruby-test-unit)) | ||
| 10872 | (synopsis "Handle HTTP Cookies based on RFC 6265") | ||
| 10873 | (description | ||
| 10874 | "@code{HTTP::Cookie} is a Ruby library to handle HTTP Cookies based on | ||
| 10875 | RFC 6265. It has been designed with security, standards compliance and | ||
| 10876 | compatibility in mind, to behave just the same as today's major web browsers. | ||
| 10877 | It has built-in support for the legacy @code{cookies.txt} and | ||
| 10878 | @code{cookies.sqlite} formats of Mozilla Firefox.") | ||
| 10879 | (home-page "https://github.com/sparklemotion/http-cookie") | ||
| 10880 | (license license:expat))) | ||
| 10881 | |||
| 10882 | (define-public ruby-httpclient | ||
| 10883 | (package | ||
| 10884 | (name "ruby-httpclient") | ||
| 10885 | (version "2.8.3") | ||
| 10886 | (source | ||
| 10887 | (origin | ||
| 10888 | (method url-fetch) | ||
| 10889 | (uri (rubygems-uri "httpclient" version)) | ||
| 10890 | (sha256 | ||
| 10891 | (base32 | ||
| 10892 | "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99")))) | ||
| 10893 | (build-system ruby-build-system) | ||
| 10894 | (arguments | ||
| 10895 | '(;; TODO: Some tests currently fail | ||
| 10896 | ;; ------ | ||
| 10897 | ;; 211 tests, 729 assertions, 13 failures, 4 errors, 0 pendings, | ||
| 10898 | ;; 2 omissions, 0 notifications | ||
| 10899 | ;; 91.866% passed | ||
| 10900 | ;; ------ | ||
| 10901 | ;; 6.49 tests/s, 22.41 assertions/s | ||
| 10902 | #:tests? #f | ||
| 10903 | #:phases | ||
| 10904 | (modify-phases %standard-phases | ||
| 10905 | (replace 'check | ||
| 10906 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 10907 | (if tests? | ||
| 10908 | (invoke "ruby" | ||
| 10909 | "-Ilib" | ||
| 10910 | "test/runner.rb"))))))) | ||
| 10911 | (native-inputs | ||
| 10912 | (list ruby-rack)) | ||
| 10913 | (synopsis | ||
| 10914 | "Make HTTP requests with support for HTTPS, Cookies, authentication and more") | ||
| 10915 | (description | ||
| 10916 | "The @code{httpclient} ruby library provides functionality related to | ||
| 10917 | HTTP. Compared to the @code{net/http} library, @code{httpclient} also provides | ||
| 10918 | Cookie, multithreading and authentication (digest, NTLM) support. | ||
| 10919 | |||
| 10920 | Also provided is a @command{httpclient} command, which can perform HTTP | ||
| 10921 | requests either using arguments or with an interactive prompt.") | ||
| 10922 | (home-page "https://github.com/nahi/httpclient") | ||
| 10923 | (license license:ruby))) | ||
| 10924 | |||
| 10925 | (define-public ruby-ansi | ||
| 10926 | (package | ||
| 10927 | (name "ruby-ansi") | ||
| 10928 | (version "1.5.0") | ||
| 10929 | (source | ||
| 10930 | (origin | ||
| 10931 | (method git-fetch) | ||
| 10932 | ;; Fetch from GitHub as the gem does not contain testing code. | ||
| 10933 | (uri (git-reference | ||
| 10934 | (url "https://github.com/rubyworks/ansi") | ||
| 10935 | (commit version))) | ||
| 10936 | (file-name (git-file-name name version)) | ||
| 10937 | (sha256 | ||
| 10938 | (base32 | ||
| 10939 | "1wsz7xxwl3vkh277jb7fd7akqnqqgbvalxzpjwniiqk8ghfprbi5")))) | ||
| 10940 | (build-system ruby-build-system) | ||
| 10941 | (arguments | ||
| 10942 | `(#:phases | ||
| 10943 | (modify-phases %standard-phases | ||
| 10944 | ;; Disable testing to break the cycle ansi, ae, ansi, as well as the | ||
| 10945 | ;; cycle ansi, qed, ansi. Instead simply test that the library can | ||
| 10946 | ;; be require'd. | ||
| 10947 | (replace 'check | ||
| 10948 | (lambda _ | ||
| 10949 | (invoke "ruby" "-Ilib" "-r" "ansi"))) | ||
| 10950 | (add-before 'validate-runpath 'replace-broken-symlink | ||
| 10951 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 10952 | (let* ((out (assoc-ref outputs "out")) | ||
| 10953 | (file (string-append | ||
| 10954 | out "/lib/ruby/vendor_ruby/gems/ansi-" | ||
| 10955 | ,version "/lib/ansi.yml"))) | ||
| 10956 | ;; XXX: This symlink is broken since ruby 2.4. | ||
| 10957 | ;; https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00034.html | ||
| 10958 | (delete-file file) | ||
| 10959 | (symlink "../.index" file))))))) | ||
| 10960 | (synopsis "ANSI escape code related libraries") | ||
| 10961 | (description | ||
| 10962 | "This package is a collection of ANSI escape code related libraries | ||
| 10963 | enabling ANSI colorization and stylization of console output. Included in the | ||
| 10964 | library are the @code{Code} module, which defines ANSI codes as constants and | ||
| 10965 | methods, a @code{Mixin} module for including color methods, a @code{Logger}, a | ||
| 10966 | @code{ProgressBar}, and a @code{String} subclass. The library also includes a | ||
| 10967 | @code{Terminal} module which provides information about the current output | ||
| 10968 | device.") | ||
| 10969 | (home-page "https://rubyworks.github.io/ansi/") | ||
| 10970 | (license license:bsd-2))) | ||
| 10971 | |||
| 10972 | (define-public ruby-systemu | ||
| 10973 | (package | ||
| 10974 | (name "ruby-systemu") | ||
| 10975 | (version "2.6.5") | ||
| 10976 | (source | ||
| 10977 | (origin | ||
| 10978 | (method url-fetch) | ||
| 10979 | (uri (rubygems-uri "systemu" version)) | ||
| 10980 | (sha256 | ||
| 10981 | (base32 | ||
| 10982 | "0gmkbakhfci5wnmbfx5i54f25j9zsvbw858yg3jjhfs5n4ad1xq1")))) | ||
| 10983 | (build-system ruby-build-system) | ||
| 10984 | (arguments | ||
| 10985 | `(#:phases | ||
| 10986 | (modify-phases %standard-phases | ||
| 10987 | (add-before 'check 'set-version | ||
| 10988 | (lambda _ | ||
| 10989 | (setenv "VERSION" ,version)))))) | ||
| 10990 | (synopsis "Capture of stdout/stderr and handling of child processes") | ||
| 10991 | (description | ||
| 10992 | "Systemu can be used on any platform to return status, stdout, and stderr | ||
| 10993 | of any command. Unlike other methods like @code{open3} and @code{popen4} | ||
| 10994 | there is no danger of full pipes or threading issues hanging your process or | ||
| 10995 | subprocess.") | ||
| 10996 | (home-page "https://github.com/ahoward/systemu") | ||
| 10997 | (license license:ruby))) | ||
| 10998 | |||
| 10999 | (define-public ruby-bcrypt | ||
| 11000 | (package | ||
| 11001 | (name "ruby-bcrypt") | ||
| 11002 | (version "3.1.20") | ||
| 11003 | ;; FIXME: Unbundle the bcrypt library used. | ||
| 11004 | (source | ||
| 11005 | (origin | ||
| 11006 | (method git-fetch) | ||
| 11007 | (uri (git-reference | ||
| 11008 | (url "https://github.com/bcrypt-ruby/bcrypt-ruby") | ||
| 11009 | (commit (string-append "v" version)))) | ||
| 11010 | (file-name (git-file-name name version)) | ||
| 11011 | (sha256 | ||
| 11012 | (base32 "0q6h8kmjb34hg6qjv31v374n3cavv00drsfyzv6nybdwipgyg62i")))) | ||
| 11013 | (build-system ruby-build-system) | ||
| 11014 | (arguments (list #:test-target "default")) ;compile + spec | ||
| 11015 | (native-inputs (list ruby-rake-compiler ruby-rspec)) | ||
| 11016 | (synopsis "Ruby bcrypt wrapper") | ||
| 11017 | (description "This Ruby library provides a simple wrapper to bcrypt, a | ||
| 11018 | secure hash algorithm for hashing passwords.") | ||
| 11019 | (home-page "https://github.com/bcrypt-ruby/bcrypt-ruby") | ||
| 11020 | (license license:expat))) | ||
| 11021 | |||
| 11022 | (define-public ruby-bcrypt-pbkdf | ||
| 11023 | (package | ||
| 11024 | (name "ruby-bcrypt-pbkdf") | ||
| 11025 | (version "1.1.0") | ||
| 11026 | (source (origin | ||
| 11027 | (method url-fetch) | ||
| 11028 | (uri (rubygems-uri "bcrypt_pbkdf" version)) | ||
| 11029 | (sha256 | ||
| 11030 | (base32 | ||
| 11031 | "0ndamfaivnkhc6hy0yqyk2gkwr6f3bz6216lh74hsiiyk3axz445")))) | ||
| 11032 | (build-system ruby-build-system) | ||
| 11033 | (arguments | ||
| 11034 | (list #:phases #~(modify-phases %standard-phases | ||
| 11035 | (add-before 'build 'compile | ||
| 11036 | (lambda _ | ||
| 11037 | (invoke "rake" "compile")))))) | ||
| 11038 | (native-inputs (list ruby-minitest ruby-rake-compiler | ||
| 11039 | ruby-rake-compiler-dock ruby-rdoc)) | ||
| 11040 | (synopsis "Reading password encrypted Ed25519 keys in Ruby") | ||
| 11041 | (description | ||
| 11042 | "This gem implements @samp{bcrypt_pbkdf}, which is a variant of | ||
| 11043 | PBKDF2 (Password-Based Key Derivation Function 2) with bcrypt-based | ||
| 11044 | pseudorandom function. This is currently used by @samp{net-ssh} to | ||
| 11045 | read password encrypted Ed25519 keys.") | ||
| 11046 | (home-page "https://github.com/net-ssh/bcrypt_pbkdf-ruby") | ||
| 11047 | (license license:expat))) | ||
| 11048 | |||
| 11049 | (define-public ruby-bio-commandeer | ||
| 11050 | (package | ||
| 11051 | (name "ruby-bio-commandeer") | ||
| 11052 | (version "0.4.0") | ||
| 11053 | (source | ||
| 11054 | (origin | ||
| 11055 | (method url-fetch) | ||
| 11056 | (uri (rubygems-uri "bio-commandeer" version)) | ||
| 11057 | (sha256 | ||
| 11058 | (base32 | ||
| 11059 | "0khpfw1yl5l3d2m8nxpkk32ybc4c3pa5hic3agd160jdfjjjnlni")))) | ||
| 11060 | (build-system ruby-build-system) | ||
| 11061 | (arguments | ||
| 11062 | `(#:phases | ||
| 11063 | (modify-phases %standard-phases | ||
| 11064 | (replace 'check | ||
| 11065 | ;; Run test without calling 'rake' so that jeweler is | ||
| 11066 | ;; not required as an input. | ||
| 11067 | (lambda _ | ||
| 11068 | (invoke "rspec" "spec/bio-commandeer_spec.rb")))))) | ||
| 11069 | (propagated-inputs | ||
| 11070 | (list ruby-bio-logger ruby-systemu)) | ||
| 11071 | (native-inputs | ||
| 11072 | (list bundler ruby-rspec)) | ||
| 11073 | (synopsis "Simplified running of shell commands from within Ruby") | ||
| 11074 | (description | ||
| 11075 | "Bio-commandeer provides an opinionated method of running shell commands | ||
| 11076 | from within Ruby. The advantage of bio-commandeer over other methods of | ||
| 11077 | running external commands is that when something goes wrong, messages printed | ||
| 11078 | to the @code{STDOUT} and @code{STDERR} streams are reported, giving extra | ||
| 11079 | detail to ease debugging.") | ||
| 11080 | (home-page "https://github.com/wwood/bioruby-commandeer") | ||
| 11081 | (license license:expat))) | ||
| 11082 | |||
| 11083 | (define-public ruby-rubytest | ||
| 11084 | (package | ||
| 11085 | (name "ruby-rubytest") | ||
| 11086 | (version "0.8.1") | ||
| 11087 | (source | ||
| 11088 | (origin | ||
| 11089 | (method url-fetch) | ||
| 11090 | (uri (rubygems-uri "rubytest" version)) | ||
| 11091 | (sha256 | ||
| 11092 | (base32 | ||
| 11093 | "19jydsdnkl81i9dhdcr4dc34j0ilm68ff2ngnka1hi38xiw4p5qz")))) | ||
| 11094 | (build-system ruby-build-system) | ||
| 11095 | (arguments | ||
| 11096 | ;; Disable regular testing to break the cycle rubytest, qed, brass, | ||
| 11097 | ;; rubytest, as well as the cycle rubytest, qed, ansi, rubytest. Instead | ||
| 11098 | ;; simply test that the library can be require'd. | ||
| 11099 | `(#:phases | ||
| 11100 | (modify-phases %standard-phases | ||
| 11101 | (replace 'check | ||
| 11102 | (lambda _ | ||
| 11103 | (invoke "ruby" "-Ilib" "-r" "rubytest")))))) | ||
| 11104 | (propagated-inputs | ||
| 11105 | (list ruby-ansi)) | ||
| 11106 | (synopsis "Universal test harness for Ruby") | ||
| 11107 | (description | ||
| 11108 | "Rubytest is a testing meta-framework for Ruby. It can handle any | ||
| 11109 | compliant test framework and can run tests from multiple frameworks in a | ||
| 11110 | single pass.") | ||
| 11111 | (home-page "https://rubyworks.github.io/rubytest") | ||
| 11112 | (license license:bsd-2))) | ||
| 11113 | |||
| 11114 | (define-public ruby-brass | ||
| 11115 | (package | ||
| 11116 | (name "ruby-brass") | ||
| 11117 | (version "1.2.1") | ||
| 11118 | (source | ||
| 11119 | (origin | ||
| 11120 | (method url-fetch) | ||
| 11121 | (uri (rubygems-uri "brass" version)) | ||
| 11122 | (sha256 | ||
| 11123 | (base32 | ||
| 11124 | "154lp8rp1vmg60ri1j4cb8hqlw37z7bn575h899v8hzxwi11sxka")))) | ||
| 11125 | (build-system ruby-build-system) | ||
| 11126 | (arguments | ||
| 11127 | ;; Disable tests to break the cycle brass, lemon, ae, qed, brass. | ||
| 11128 | ;; Instead simply test that the library can be require'd. | ||
| 11129 | `(#:phases | ||
| 11130 | (modify-phases %standard-phases | ||
| 11131 | (replace 'check | ||
| 11132 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 11133 | (when tests? | ||
| 11134 | (invoke "ruby" "-Ilib" "-r" "brass"))))))) | ||
| 11135 | (synopsis "Basic foundational assertions framework") | ||
| 11136 | (description | ||
| 11137 | "BRASS (Bare-Metal Ruby Assertion System Standard) is a basic | ||
| 11138 | foundational assertions framework for other assertion and test frameworks to | ||
| 11139 | make use of.") | ||
| 11140 | (home-page "https://rubyworks.github.io/brass") | ||
| 11141 | (license license:bsd-2))) | ||
| 11142 | |||
| 11143 | (define-public ruby-qed | ||
| 11144 | (package | ||
| 11145 | (name "ruby-qed") | ||
| 11146 | (version "2.9.2") | ||
| 11147 | (source | ||
| 11148 | (origin | ||
| 11149 | (method url-fetch) | ||
| 11150 | (uri (rubygems-uri "qed" version)) | ||
| 11151 | (sha256 | ||
| 11152 | (base32 | ||
| 11153 | "03h4lmlxpcya8j7s2cnyscqlx8v3xl1xgsw5y1wk1scxcgz2vbmr")))) | ||
| 11154 | (build-system ruby-build-system) | ||
| 11155 | (arguments | ||
| 11156 | `(#:phases | ||
| 11157 | (modify-phases %standard-phases | ||
| 11158 | (replace 'check | ||
| 11159 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 11160 | (when tests? | ||
| 11161 | (invoke "ruby" "-Ilib" "bin/qed"))))))) | ||
| 11162 | (native-inputs | ||
| 11163 | (list ruby-ae-bootstrap)) | ||
| 11164 | (propagated-inputs | ||
| 11165 | (list ruby-ansi ruby-brass)) | ||
| 11166 | (synopsis "Test framework utilizing literate programming techniques") | ||
| 11167 | (description | ||
| 11168 | "@dfn{Quality Ensured Demonstrations} (QED) is a test framework for | ||
| 11169 | @dfn{Test Driven Development} (TDD) and @dfn{Behaviour Driven | ||
| 11170 | Development} (BDD) utilizing Literate Programming techniques. QED sits | ||
| 11171 | somewhere between lower-level testing tools like @code{Test::Unit} and | ||
| 11172 | requirement specifications systems like Cucumber.") | ||
| 11173 | (home-page "https://rubyworks.github.io/qed") | ||
| 11174 | (license license:bsd-2))) | ||
| 11175 | |||
| 11176 | (define-public ruby-que | ||
| 11177 | (package | ||
| 11178 | (name "ruby-que") | ||
| 11179 | (version "1.0.0.beta3") | ||
| 11180 | (source | ||
| 11181 | (origin | ||
| 11182 | (method url-fetch) | ||
| 11183 | (uri (rubygems-uri "que" version)) | ||
| 11184 | (sha256 | ||
| 11185 | (base32 | ||
| 11186 | "0gr9pb814d4qj3ds98g6cjrdk7wv0yg8aqbm7c1lmgl87jkg8q04")))) | ||
| 11187 | (build-system ruby-build-system) | ||
| 11188 | (arguments | ||
| 11189 | '(#:tests? #f)) ; No included tests | ||
| 11190 | (synopsis "Job queue using PostgreSQL written in Ruby") | ||
| 11191 | (description | ||
| 11192 | "This package provides a job queue that uses PostgreSQL for storing jobs | ||
| 11193 | and locking between worker processes.") | ||
| 11194 | (home-page "https://github.com/chanks/que") | ||
| 11195 | (license license:expat))) | ||
| 11196 | |||
| 11197 | (define-public ruby-queue-classic | ||
| 11198 | (package | ||
| 11199 | (name "ruby-queue-classic") | ||
| 11200 | (version "4.0.0") | ||
| 11201 | (source (origin | ||
| 11202 | (method url-fetch) | ||
| 11203 | (uri (rubygems-uri "queue_classic" version)) | ||
| 11204 | (sha256 | ||
| 11205 | (base32 | ||
| 11206 | "0npyhajf2fc80apkw9s2kj0n254w5lcl4xpjidg5d5w1fb19abh6")))) | ||
| 11207 | (build-system ruby-build-system) | ||
| 11208 | (arguments (list #:tests? #f)) ;tests require a postgresql server | ||
| 11209 | (native-inputs (list ruby-activerecord ruby-minitest-reporters)) | ||
| 11210 | (propagated-inputs (list ruby-pg)) | ||
| 11211 | (synopsis "Queuing library for Ruby") | ||
| 11212 | (description "@code{queue_classic} is a queuing library for Ruby | ||
| 11213 | applications (Rails, Sinatra, etc.) @code{queue_classic} features | ||
| 11214 | asynchronous job polling, database maintained locks and has a single | ||
| 11215 | dependency, @code{pg}.") | ||
| 11216 | (home-page "https://github.com/QueueClassic/queue_classic") | ||
| 11217 | (license license:expat))) | ||
| 11218 | |||
| 11219 | (define-public ruby-pairing-heap | ||
| 11220 | (package | ||
| 11221 | (name "ruby-pairing-heap") | ||
| 11222 | (version "3.1.0") | ||
| 11223 | (source (origin | ||
| 11224 | (method url-fetch) | ||
| 11225 | (uri (rubygems-uri "pairing_heap" version)) | ||
| 11226 | (sha256 | ||
| 11227 | (base32 | ||
| 11228 | "059kqpw53cancnp0bp7y1s74y1955riw33w3lqfbnms4b4mdh5zj")))) | ||
| 11229 | (build-system ruby-build-system) | ||
| 11230 | (arguments | ||
| 11231 | (list | ||
| 11232 | #:phases | ||
| 11233 | #~(modify-phases %standard-phases | ||
| 11234 | (add-after 'unpack 'patch | ||
| 11235 | (lambda _ | ||
| 11236 | (substitute* "Rakefile" | ||
| 11237 | (("require \"standard/rake\"") "") | ||
| 11238 | ((":\"standard:fix\",") ""))))))) | ||
| 11239 | (synopsis "Priority queue in pure Ruby") | ||
| 11240 | (description "This package provides a performant priority queue in pure | ||
| 11241 | ruby with support for changing priority using pairing heap data structure") | ||
| 11242 | (home-page "https://github.com/mhib/pairing_heap") | ||
| 11243 | (license license:expat))) | ||
| 11244 | |||
| 11245 | (define-public ruby-ae | ||
| 11246 | (package | ||
| 11247 | (name "ruby-ae") | ||
| 11248 | (version "1.8.2") | ||
| 11249 | (source | ||
| 11250 | (origin | ||
| 11251 | (method git-fetch) | ||
| 11252 | ;; Fetch from github so tests are included. | ||
| 11253 | (uri (git-reference | ||
| 11254 | (url "https://github.com/rubyworks/ae") | ||
| 11255 | (commit version))) | ||
| 11256 | (file-name (git-file-name name version)) | ||
| 11257 | (sha256 | ||
| 11258 | (base32 | ||
| 11259 | "11299jj5ma8mi7b4majkyjy70y6zlqpgl8aql1c5lvfjavlpwmlp")))) | ||
| 11260 | (build-system ruby-build-system) | ||
| 11261 | (arguments | ||
| 11262 | `(#:phases | ||
| 11263 | (modify-phases %standard-phases | ||
| 11264 | (replace 'check | ||
| 11265 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 11266 | (when tests? | ||
| 11267 | (invoke "qed")))) | ||
| 11268 | (add-before 'validate-runpath 'replace-broken-symlink | ||
| 11269 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 11270 | (let* ((out (assoc-ref outputs "out")) | ||
| 11271 | (file (string-append | ||
| 11272 | out "/lib/ruby/vendor_ruby/gems/ae-" | ||
| 11273 | ,version "/lib/ae.yml"))) | ||
| 11274 | ;; XXX: This symlink is broken since ruby 2.4. | ||
| 11275 | ;; https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00034.html | ||
| 11276 | (delete-file file) | ||
| 11277 | (symlink "../.index" file))))))) | ||
| 11278 | (propagated-inputs | ||
| 11279 | (list ruby-ansi)) | ||
| 11280 | (native-inputs | ||
| 11281 | (list ruby-qed)) | ||
| 11282 | (synopsis "Assertions library") | ||
| 11283 | (description | ||
| 11284 | "Assertive Expressive (AE) is an assertions library specifically designed | ||
| 11285 | for reuse by other test frameworks.") | ||
| 11286 | (home-page "https://rubyworks.github.io/ae/") | ||
| 11287 | (license license:bsd-2))) | ||
| 11288 | |||
| 11289 | (define-public ruby-ae-bootstrap | ||
| 11290 | (hidden-package | ||
| 11291 | (package/inherit ruby-ae | ||
| 11292 | (arguments | ||
| 11293 | (substitute-keyword-arguments | ||
| 11294 | (package-arguments ruby-ae) | ||
| 11295 | ((#:tests? _ #t) #f))) | ||
| 11296 | (native-inputs '())))) | ||
| 11297 | |||
| 11298 | (define-public ruby-lemon | ||
| 11299 | (package | ||
| 11300 | (name "ruby-lemon") | ||
| 11301 | (version "0.9.1") | ||
| 11302 | (source | ||
| 11303 | (origin | ||
| 11304 | (method url-fetch) | ||
| 11305 | (uri (rubygems-uri "lemon" version)) | ||
| 11306 | (sha256 | ||
| 11307 | (base32 | ||
| 11308 | "0gqhpgjavgpvx23rqpfqcv3d5bs8gc7lr9yvj8kxgp7mfbdc2jcm")))) | ||
| 11309 | (build-system ruby-build-system) | ||
| 11310 | (arguments | ||
| 11311 | `(#:phases | ||
| 11312 | (modify-phases %standard-phases | ||
| 11313 | (replace 'check (lambda _ (invoke "qed")))))) | ||
| 11314 | (propagated-inputs | ||
| 11315 | (list ruby-ae ruby-ansi ruby-rubytest)) | ||
| 11316 | (native-inputs | ||
| 11317 | (list ruby-qed)) | ||
| 11318 | (synopsis "Test framework correlating code structure and test unit") | ||
| 11319 | (description | ||
| 11320 | "Lemon is a unit testing framework that enforces highly formal | ||
| 11321 | case-to-class and unit-to-method test construction. This enforcement can help | ||
| 11322 | focus concern on individual units of behavior.") | ||
| 11323 | (home-page "https://rubyworks.github.io/lemon") | ||
| 11324 | (license license:bsd-2))) | ||
| 11325 | |||
| 11326 | (define-public ruby-rubytest-cli | ||
| 11327 | (package | ||
| 11328 | (name "ruby-rubytest-cli") | ||
| 11329 | (version "0.2.0") | ||
| 11330 | (source | ||
| 11331 | (origin | ||
| 11332 | (method url-fetch) | ||
| 11333 | (uri (rubygems-uri "rubytest-cli" version)) | ||
| 11334 | (sha256 | ||
| 11335 | (base32 | ||
| 11336 | "0n7hv4k1ba4fm3i98c6ydbsqhkxgbp52mhi70ba1x3mqzfvk438p")))) | ||
| 11337 | (build-system ruby-build-system) | ||
| 11338 | (arguments | ||
| 11339 | `(#:tests? #f)) ; no tests | ||
| 11340 | (propagated-inputs | ||
| 11341 | (list ruby-ansi ruby-rubytest)) | ||
| 11342 | (synopsis "Command-line interface for rubytest") | ||
| 11343 | (description | ||
| 11344 | "Rubytest CLI is a command-line interface for running tests for | ||
| 11345 | Rubytest-based test frameworks. It provides the @code{rubytest} executable.") | ||
| 11346 | (home-page "https://rubyworks.github.io/rubytest-cli") | ||
| 11347 | (license license:bsd-2))) | ||
| 11348 | |||
| 11349 | (define-public ruby-hashery | ||
| 11350 | (package | ||
| 11351 | (name "ruby-hashery") | ||
| 11352 | (version "2.1.2") | ||
| 11353 | (source | ||
| 11354 | (origin | ||
| 11355 | (method url-fetch) | ||
| 11356 | (uri (rubygems-uri "hashery" version)) | ||
| 11357 | (sha256 | ||
| 11358 | (base32 | ||
| 11359 | "0qj8815bf7q6q7llm5rzdz279gzmpqmqqicxnzv066a020iwqffj")))) | ||
| 11360 | (build-system ruby-build-system) | ||
| 11361 | (arguments | ||
| 11362 | `(#:phases | ||
| 11363 | (modify-phases %standard-phases | ||
| 11364 | (replace 'check | ||
| 11365 | (lambda _ | ||
| 11366 | (invoke "qed") | ||
| 11367 | (invoke "rubytest" "-Ilib" "-Itest" "test/")))))) | ||
| 11368 | (native-inputs | ||
| 11369 | (list ruby-rubytest-cli ruby-qed ruby-lemon)) | ||
| 11370 | (synopsis "Hash-like classes with extra features") | ||
| 11371 | (description | ||
| 11372 | "The Hashery is a tight collection of @code{Hash}-like classes. | ||
| 11373 | Included are the auto-sorting @code{Dictionary} class, the efficient | ||
| 11374 | @code{LRUHash}, the flexible @code{OpenHash} and the convenient | ||
| 11375 | @code{KeyHash}. Nearly every class is a subclass of the @code{CRUDHash} which | ||
| 11376 | defines a CRUD (Create, Read, Update and Delete) model on top of Ruby's | ||
| 11377 | standard @code{Hash} making it possible to subclass and augment to fit any | ||
| 11378 | specific use case.") | ||
| 11379 | (home-page "https://rubyworks.github.io/hashery") | ||
| 11380 | (license license:bsd-2))) | ||
| 11381 | |||
| 11382 | (define-public ruby-rc4 | ||
| 11383 | (package | ||
| 11384 | (name "ruby-rc4") | ||
| 11385 | (version "0.1.5") | ||
| 11386 | (source | ||
| 11387 | (origin | ||
| 11388 | (method url-fetch) | ||
| 11389 | (uri (rubygems-uri "ruby-rc4" version)) | ||
| 11390 | (sha256 | ||
| 11391 | (base32 | ||
| 11392 | "00vci475258mmbvsdqkmqadlwn6gj9m01sp7b5a3zd90knil1k00")))) | ||
| 11393 | (build-system ruby-build-system) | ||
| 11394 | (arguments | ||
| 11395 | `(#:phases | ||
| 11396 | (modify-phases %standard-phases | ||
| 11397 | (replace 'check | ||
| 11398 | (lambda _ | ||
| 11399 | (invoke "rspec" "spec/rc4_spec.rb")))))) | ||
| 11400 | (native-inputs | ||
| 11401 | (list ruby-rspec-2)) | ||
| 11402 | (synopsis "Implementation of the RC4 algorithm") | ||
| 11403 | (description | ||
| 11404 | "RubyRC4 is a pure Ruby implementation of the RC4 algorithm.") | ||
| 11405 | (home-page "https://github.com/caiges/Ruby-RC4") | ||
| 11406 | (license license:expat))) | ||
| 11407 | |||
| 11408 | (define-public ruby-afm | ||
| 11409 | (package | ||
| 11410 | (name "ruby-afm") | ||
| 11411 | (version "0.2.2") | ||
| 11412 | (source | ||
| 11413 | (origin | ||
| 11414 | (method url-fetch) | ||
| 11415 | (uri (rubygems-uri "afm" version)) | ||
| 11416 | (sha256 | ||
| 11417 | (base32 | ||
| 11418 | "06kj9hgd0z8pj27bxp2diwqh6fv7qhwwm17z64rhdc4sfn76jgn8")))) | ||
| 11419 | (build-system ruby-build-system) | ||
| 11420 | (native-inputs | ||
| 11421 | (list bundler)) | ||
| 11422 | (synopsis "Read Adobe Font Metrics (afm) files") | ||
| 11423 | (description | ||
| 11424 | "This library provides methods to read @dfn{Adobe Font Metrics} (afm) | ||
| 11425 | files and use the data therein.") | ||
| 11426 | (home-page "https://github.com/halfbyte/afm") | ||
| 11427 | (license license:expat))) | ||
| 11428 | |||
| 11429 | (define-public ruby-ascii85 | ||
| 11430 | (package | ||
| 11431 | (name "ruby-ascii85") | ||
| 11432 | (version "1.0.3") | ||
| 11433 | (source | ||
| 11434 | (origin | ||
| 11435 | (method url-fetch) | ||
| 11436 | (uri (rubygems-uri "Ascii85" version)) | ||
| 11437 | (sha256 | ||
| 11438 | (base32 | ||
| 11439 | "0658m37jjjn6drzqg1gk4p6c205mgp7g1jh2d00n4ngghgmz5qvs")))) | ||
| 11440 | (build-system ruby-build-system) | ||
| 11441 | (native-inputs | ||
| 11442 | (list bundler)) | ||
| 11443 | (synopsis "Encode and decode Ascii85 binary-to-text encoding") | ||
| 11444 | (description | ||
| 11445 | "This library provides methods to encode and decode Ascii85 | ||
| 11446 | binary-to-text encoding. The main modern use of Ascii85 is in PostScript and | ||
| 11447 | @dfn{Portable Document Format} (PDF) file formats.") | ||
| 11448 | (home-page "https://github.com/datawraith/ascii85gem") | ||
| 11449 | (license license:expat))) | ||
| 11450 | |||
| 11451 | (define-public ruby-ttfunk | ||
| 11452 | (package | ||
| 11453 | (name "ruby-ttfunk") | ||
| 11454 | (version "1.7.0") | ||
| 11455 | (source | ||
| 11456 | (origin | ||
| 11457 | (method git-fetch) | ||
| 11458 | ;; Fetch from github as the gem does not contain testing code. | ||
| 11459 | (uri (git-reference | ||
| 11460 | (url "https://github.com/prawnpdf/ttfunk") | ||
| 11461 | (commit version))) | ||
| 11462 | (file-name (git-file-name name version)) | ||
| 11463 | (sha256 | ||
| 11464 | (base32 | ||
| 11465 | "1jyxn928mpyb1sikjd93s3v8fmh33232pq41ziaph513j7am6fi5")))) | ||
| 11466 | (build-system ruby-build-system) | ||
| 11467 | (arguments | ||
| 11468 | (list #:test-target "spec" ;avoid the rubocop target | ||
| 11469 | #:phases | ||
| 11470 | #~(modify-phases %standard-phases | ||
| 11471 | (add-after 'unpack 'remove-missing-key-directive | ||
| 11472 | ;; This seem to be a common problem in Ruby projects (see: | ||
| 11473 | ;; https://github.com/prawnpdf/ttfunk/issues/99). | ||
| 11474 | (lambda _ | ||
| 11475 | (substitute* "ttfunk.gemspec" | ||
| 11476 | ((".*spec.signing_key.*") ""))))))) | ||
| 11477 | (native-inputs (list ruby-prawn-dev)) | ||
| 11478 | (synopsis "Font metrics parser for the Prawn PDF generator") | ||
| 11479 | (description | ||
| 11480 | "TTFunk is a TrueType font parser written in pure Ruby. It is used as | ||
| 11481 | part of the Prawn PDF generator.") | ||
| 11482 | (home-page "https://github.com/prawnpdf/ttfunk") | ||
| 11483 | ;; From the README: "Matz's terms for Ruby, GPLv2, or GPLv3. See LICENSE | ||
| 11484 | ;; for details." | ||
| 11485 | (license %prawn-project-licenses))) | ||
| 11486 | |||
| 11487 | (define-public ruby-puma | ||
| 11488 | (package | ||
| 11489 | (name "ruby-puma") | ||
| 11490 | (version "6.6.0") | ||
| 11491 | (source | ||
| 11492 | (origin | ||
| 11493 | (method git-fetch) ;for tests | ||
| 11494 | (uri (git-reference | ||
| 11495 | (url "https://github.com/puma/puma") | ||
| 11496 | (commit (string-append "v" version)))) | ||
| 11497 | (file-name (git-file-name name version)) | ||
| 11498 | (sha256 | ||
| 11499 | (base32 | ||
| 11500 | "1pdd7s403pi4y75s1sb4jkghhmm2w9zcqifj7z7yx4z0qfs7lvzv")))) | ||
| 11501 | (build-system ruby-build-system) | ||
| 11502 | (arguments | ||
| 11503 | (list | ||
| 11504 | #:phases | ||
| 11505 | #~(modify-phases %standard-phases | ||
| 11506 | (add-after 'unpack 'patch-Gemfile | ||
| 11507 | (lambda _ | ||
| 11508 | (substitute* "Gemfile" | ||
| 11509 | (("gem \"rake-compiler\".*") | ||
| 11510 | "gem 'rake-compiler'\n")))) | ||
| 11511 | (add-after 'unpack 'disable-rubocop | ||
| 11512 | (lambda _ | ||
| 11513 | (setenv "PUMA_NO_RUBOCOP" "1"))) | ||
| 11514 | (add-after 'unpack 'use-rack-2 | ||
| 11515 | (lambda _ | ||
| 11516 | (setenv "PUMA_CI_RACK" "rack2") | ||
| 11517 | (setenv "PUMA_CI_RACK_2" "1"))) | ||
| 11518 | (add-before 'build 'increase-resource-limits | ||
| 11519 | (lambda _ | ||
| 11520 | ;; The test suite requires a higher number of open files. Try | ||
| 11521 | ;; increasing the soft resource limit of max open files to 2048, | ||
| 11522 | ;; or equal to the hard limit, whichever is lower. | ||
| 11523 | (call-with-values (lambda () (getrlimit 'nofile)) | ||
| 11524 | (lambda (soft hard) | ||
| 11525 | (when (and soft (< soft 2048)) | ||
| 11526 | (if hard | ||
| 11527 | (setrlimit 'nofile (min hard 2048) hard) | ||
| 11528 | (setrlimit 'nofile 2048 #f)) | ||
| 11529 | (format | ||
| 11530 | #t "increased maximum number of open files from ~d to ~d~%" | ||
| 11531 | soft (if hard (min hard 2048) 2048))))))) | ||
| 11532 | (add-before 'build 'fix-gemspec | ||
| 11533 | (lambda _ | ||
| 11534 | (substitute* "puma.gemspec" | ||
| 11535 | (("`git ls-files -- bin docs ext lib tools`") | ||
| 11536 | "`find bin docs ext lib tools -type f |sort`")))) | ||
| 11537 | (delete 'check) ;moved after install | ||
| 11538 | (add-after 'install 'check | ||
| 11539 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 11540 | (when tests? | ||
| 11541 | (invoke "bundle" "exec" "rake" "test")))) | ||
| 11542 | (add-after 'install 'delete-mkmf.log | ||
| 11543 | (lambda _ | ||
| 11544 | ;; Rubygems installs build log files that embed volatile file | ||
| 11545 | ;; names (see: | ||
| 11546 | ;; https://github.com/rubygems/rubygems/issues/6259). | ||
| 11547 | (for-each delete-file (find-files #$output "^mkmf\\.log$")))) | ||
| 11548 | (add-before 'check 'disable-problematic-tests | ||
| 11549 | (lambda _ | ||
| 11550 | (let-syntax ((skip-tests | ||
| 11551 | (syntax-rules () | ||
| 11552 | ((_ file test ...) | ||
| 11553 | (substitute* file | ||
| 11554 | (((string-append "def " test ".*") all) | ||
| 11555 | (string-append | ||
| 11556 | all " skip('fails on guix')\n")) ...))))) | ||
| 11557 | ;; The test failures were reported at: | ||
| 11558 | ;; https://github.com/puma/puma/issues/3093, but appear to be | ||
| 11559 | ;; caused by the Guix build container, perhaps the lack of | ||
| 11560 | ;; zombie process reaping (see: | ||
| 11561 | ;; https://issues.guix.gnu.org/30948). | ||
| 11562 | ;; All the tests in the 'test_worker_gem_independence.rb' | ||
| 11563 | ;; module fail with "Expected false to be truthy.". | ||
| 11564 | (delete-file "test/test_worker_gem_independence.rb") | ||
| 11565 | (skip-tests "test/test_integration_ssl_session.rb" | ||
| 11566 | ;; The TLS 1.2 test fails for unknown reasons. | ||
| 11567 | "test_off_tls1_2") | ||
| 11568 | (skip-tests "test/test_integration_cluster.rb" | ||
| 11569 | "test_fork_worker_on_refork" | ||
| 11570 | "test_hot_restart_does_not_drop_connections" | ||
| 11571 | "test_culling_strategy_oldest_fork_worker" | ||
| 11572 | "test_usr1_fork_worker") | ||
| 11573 | (skip-tests "test/test_integration_pumactl.rb" | ||
| 11574 | "test_refork_cluster") | ||
| 11575 | ;; The Openssl certificate has expired, causing these tests to fail. | ||
| 11576 | (skip-tests "test/test_puma_server_ssl.rb" | ||
| 11577 | "test_verify_fail_if_client_expired_cert" | ||
| 11578 | "test_verify_client_cert" | ||
| 11579 | "test_server_ssl_with_cert_pem_and_key_pem") | ||
| 11580 | (skip-tests "test/test_integration_ssl.rb" | ||
| 11581 | "test_ssl_run_with_curl_client") | ||
| 11582 | (skip-tests "test/test_web_concurrency_auto.rb" "\ | ||
| 11583 | test_web_concurrency_with_concurrent_ruby_unavailable") | ||
| 11584 | (skip-tests "test/helpers/integration.rb" | ||
| 11585 | "test_puma_started_log_writing")))) | ||
| 11586 | (add-before 'check 'relax-test-case-timeout | ||
| 11587 | (lambda _ | ||
| 11588 | ;; The default value is 45 s and easily causes timeouts. | ||
| 11589 | (setenv "TEST_CASE_TIMEOUT" "600"))) | ||
| 11590 | (add-before 'check 'set-home | ||
| 11591 | (lambda _ | ||
| 11592 | ;; Some tests fail if the cannot write to HOME. | ||
| 11593 | (setenv "HOME" "/tmp"))) | ||
| 11594 | (add-before 'check 'set-paths | ||
| 11595 | (lambda _ | ||
| 11596 | ;; The test suite requires the 'puma' command to be on PATH. | ||
| 11597 | (setenv "PATH" (string-append (getenv "PATH") ":" | ||
| 11598 | #$output "/bin")) | ||
| 11599 | (setenv "GEM_PATH" (string-append | ||
| 11600 | (getenv "GEM_PATH") ":" | ||
| 11601 | #$output "/lib/ruby/vendor_ruby"))))))) | ||
| 11602 | (native-inputs | ||
| 11603 | (list bundler | ||
| 11604 | curl | ||
| 11605 | ruby-json | ||
| 11606 | ruby-localhost | ||
| 11607 | ruby-m | ||
| 11608 | ruby-minitest-proveit | ||
| 11609 | ruby-minitest-retry | ||
| 11610 | ruby-minitest-stub-const | ||
| 11611 | ruby-rack | ||
| 11612 | ruby-rackup-1 | ||
| 11613 | ruby-rake-compiler | ||
| 11614 | ruby-webrick)) | ||
| 11615 | (inputs | ||
| 11616 | (list openssl | ||
| 11617 | ruby-nio4r)) | ||
| 11618 | (propagated-inputs | ||
| 11619 | (list ruby-concurrent-ruby)) | ||
| 11620 | (synopsis "Simple, concurrent HTTP server for Ruby/Rack") | ||
| 11621 | (description | ||
| 11622 | "Puma is a simple, fast, threaded, and highly concurrent HTTP 1.1 server | ||
| 11623 | for Ruby/Rack applications. Puma is intended for use in both development and | ||
| 11624 | production environments. In order to get the best throughput, it is highly | ||
| 11625 | recommended that you use a Ruby implementation with real threads like Rubinius | ||
| 11626 | or JRuby.") | ||
| 11627 | (home-page "https://puma.io/") | ||
| 11628 | (license license:expat))) | ||
| 11629 | |||
| 11630 | (define-public ruby-hoe-git | ||
| 11631 | (package | ||
| 11632 | (name "ruby-hoe-git") | ||
| 11633 | (version "1.6.0") | ||
| 11634 | (source | ||
| 11635 | (origin | ||
| 11636 | (method url-fetch) | ||
| 11637 | (uri (rubygems-uri "hoe-git" version)) | ||
| 11638 | (sha256 | ||
| 11639 | (base32 | ||
| 11640 | "10jmmbjm0lkglwxbn4rpqghgg1ipjxrswm117n50adhmy8yij650")))) | ||
| 11641 | (build-system ruby-build-system) | ||
| 11642 | (propagated-inputs | ||
| 11643 | (list ruby-hoe-3)) | ||
| 11644 | (synopsis "Hoe plugins for tighter Git integration") | ||
| 11645 | (description | ||
| 11646 | "This package provides a set of Hoe plugins for tighter Git integration. | ||
| 11647 | It provides tasks to automate release tagging and pushing and changelog | ||
| 11648 | generation.") | ||
| 11649 | (home-page "https://github.com/jbarnette/hoe-git") | ||
| 11650 | (license license:expat))) | ||
| 11651 | |||
| 11652 | (define-public ruby-hoe-markdown | ||
| 11653 | (package | ||
| 11654 | (name "ruby-hoe-markdown") | ||
| 11655 | (version "1.4.0") | ||
| 11656 | (home-page "https://github.com/flavorjones/hoe-markdown") | ||
| 11657 | (source | ||
| 11658 | (origin | ||
| 11659 | (method git-fetch) | ||
| 11660 | (uri (git-reference | ||
| 11661 | (url home-page) | ||
| 11662 | (commit (string-append "v" version)))) | ||
| 11663 | (file-name (git-file-name name version)) | ||
| 11664 | (sha256 | ||
| 11665 | (base32 "0wb0yjdx9gx9r0cahpx42pblvglgh1i9pdfxjavq7f40nan2g076")))) | ||
| 11666 | (build-system ruby-build-system) | ||
| 11667 | (arguments | ||
| 11668 | '(#:test-target "spec" | ||
| 11669 | #:phases (modify-phases %standard-phases | ||
| 11670 | (add-before 'check 'disable-bundler-dependency | ||
| 11671 | (lambda _ | ||
| 11672 | (substitute* "spec/spec_helper.rb" | ||
| 11673 | (("require.*bundler/setup.*") | ||
| 11674 | ""))))))) | ||
| 11675 | (native-inputs | ||
| 11676 | (list ruby-rspec)) | ||
| 11677 | (propagated-inputs | ||
| 11678 | (list ruby-rake)) | ||
| 11679 | (synopsis "Hoe plugin with Markdown helpers") | ||
| 11680 | (description | ||
| 11681 | "This package provides a Hoe plugin with various Markdown helpers, which | ||
| 11682 | can be used to e.g. hyperlink Markdown documentation between project files.") | ||
| 11683 | (license license:expat))) | ||
| 11684 | |||
| 11685 | (define-public ruby-timecop | ||
| 11686 | (package | ||
| 11687 | (name "ruby-timecop") | ||
| 11688 | (version "0.9.6") | ||
| 11689 | (source | ||
| 11690 | (origin | ||
| 11691 | (method url-fetch) | ||
| 11692 | (uri (rubygems-uri "timecop" version)) | ||
| 11693 | (sha256 | ||
| 11694 | (base32 | ||
| 11695 | "0dlx4gx0zh836i7nzna03xdl7fc233s5z6plnr6k3kw46ah8d1fc")))) | ||
| 11696 | (build-system ruby-build-system) | ||
| 11697 | (arguments | ||
| 11698 | (list | ||
| 11699 | #:phases | ||
| 11700 | #~(modify-phases %standard-phases | ||
| 11701 | (add-before 'check 'set-check-rubylib | ||
| 11702 | (lambda _ | ||
| 11703 | ;; Set RUBYLIB so timecop tests finds its own lib. | ||
| 11704 | (setenv "RUBYLIB" "lib")))))) | ||
| 11705 | (native-inputs | ||
| 11706 | (list bundler | ||
| 11707 | ruby-minitest-rg | ||
| 11708 | ruby-mocha | ||
| 11709 | ruby-activesupport | ||
| 11710 | ruby-pry)) | ||
| 11711 | (synopsis "Test mocks for time-dependent functions") | ||
| 11712 | (description | ||
| 11713 | "Timecop provides \"time travel\" and \"time freezing\" capabilities, | ||
| 11714 | making it easier to test time-dependent code. It provides a unified method to | ||
| 11715 | mock @code{Time.now}, @code{Date.today}, and @code{DateTime.now} in a single | ||
| 11716 | call.") | ||
| 11717 | (home-page "https://github.com/travisjeffery/timecop") | ||
| 11718 | (license license:expat))) | ||
| 11719 | |||
| 11720 | (define-public ruby-concurrent-ruby | ||
| 11721 | (package | ||
| 11722 | (name "ruby-concurrent-ruby") | ||
| 11723 | (version "1.3.5") | ||
| 11724 | (source (origin | ||
| 11725 | (method git-fetch) | ||
| 11726 | (uri (git-reference ;for tests | ||
| 11727 | (url "https://github.com/ruby-concurrency/concurrent-ruby") | ||
| 11728 | (commit (string-append "v" version)))) | ||
| 11729 | (file-name (git-file-name name version)) | ||
| 11730 | (sha256 | ||
| 11731 | (base32 | ||
| 11732 | "0f0apna8k9cwnpa4lddwimywxzznrd4rjv4m0lka2i54z49iky73")))) | ||
| 11733 | (build-system ruby-build-system) | ||
| 11734 | (arguments | ||
| 11735 | (list | ||
| 11736 | #:tests? #f ;the test suite is run in ruby-concurrent-ruby-edge | ||
| 11737 | #:phases #~(modify-phases %standard-phases | ||
| 11738 | (add-after 'unpack 'delete-unwanted-gemspecs | ||
| 11739 | (lambda _ | ||
| 11740 | (for-each delete-file | ||
| 11741 | '("concurrent-ruby-ext.gemspec" | ||
| 11742 | "concurrent-ruby-edge.gemspec")))) | ||
| 11743 | (add-after 'unpack 'do-not-install-concurrent_ruby.jar | ||
| 11744 | (lambda _ | ||
| 11745 | ;; This file is only built when building the Java | ||
| 11746 | ;; extension. | ||
| 11747 | (substitute* "concurrent-ruby.gemspec" | ||
| 11748 | (("'lib/concurrent-ruby/concurrent/concurrent_ruby.jar'") | ||
| 11749 | ""))))))) | ||
| 11750 | (synopsis "Concurrency library for Ruby") | ||
| 11751 | (description "Concurrent Ruby includes concurrency tools such as agents, | ||
| 11752 | futures, promises, thread pools, actors, supervisors, and more. It is | ||
| 11753 | inspired by Erlang, Clojure, Go, JavaScript, actors, and classic concurrency | ||
| 11754 | patterns.") | ||
| 11755 | (home-page "https://github.com/ruby-concurrency/concurrent-ruby") | ||
| 11756 | (license license:expat))) | ||
| 11757 | |||
| 11758 | ;;; The 'gem' is called 'concurrent-ruby'; reversing its name was confusing | ||
| 11759 | ;;; and failed to be picked by the gem importer (which led to this newer | ||
| 11760 | ;;; package). | ||
| 11761 | (define-public ruby-concurrent | ||
| 11762 | (deprecated-package "ruby-concurrent" ruby-concurrent-ruby)) | ||
| 11763 | |||
| 11764 | (define-public ruby-concurrent-ruby-ext | ||
| 11765 | (package | ||
| 11766 | (inherit ruby-concurrent-ruby) | ||
| 11767 | (name "ruby-concurrent-ruby-ext") | ||
| 11768 | (arguments | ||
| 11769 | (list | ||
| 11770 | #:tests? #f ;tested as part of concurrent-ruby-edge | ||
| 11771 | #:phases | ||
| 11772 | #~(modify-phases %standard-phases | ||
| 11773 | (add-after 'unpack 'delete-unwanted-gemspecs | ||
| 11774 | (lambda _ | ||
| 11775 | (for-each delete-file | ||
| 11776 | '("concurrent-ruby.gemspec" | ||
| 11777 | "concurrent-ruby-edge.gemspec"))))))) | ||
| 11778 | (native-inputs (list ruby-rake-compiler)) | ||
| 11779 | (propagated-inputs (list ruby-concurrent-ruby)) | ||
| 11780 | (synopsis "C extensions for concurrent-ruby") | ||
| 11781 | (description "This package provides C extensions to optimize the | ||
| 11782 | concurrent-ruby gem when running under the Matz's Ruby Interpreter (MRI, also | ||
| 11783 | known as CRuby)."))) | ||
| 11784 | |||
| 11785 | (define-public ruby-concurrent-ruby-edge | ||
| 11786 | (package | ||
| 11787 | (inherit ruby-concurrent-ruby) | ||
| 11788 | (name "ruby-concurrent-ruby-edge") | ||
| 11789 | (arguments | ||
| 11790 | (list | ||
| 11791 | #:phases | ||
| 11792 | #~(modify-phases %standard-phases | ||
| 11793 | (add-after 'unpack 'delete-unwanted-gemspecs | ||
| 11794 | (lambda _ | ||
| 11795 | (for-each delete-file | ||
| 11796 | '("concurrent-ruby.gemspec" | ||
| 11797 | "concurrent-ruby-ext.gemspec")))) | ||
| 11798 | ;; The tests rely on the Gem being installed, so move the check | ||
| 11799 | ;; phase after the install phase. | ||
| 11800 | (delete 'check) | ||
| 11801 | (add-after 'install 'check | ||
| 11802 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 11803 | (setenv "GEM_PATH" (string-append | ||
| 11804 | (getenv "GEM_PATH") ":" | ||
| 11805 | #$output "/lib/ruby/vendor_ruby")) | ||
| 11806 | (when tests? | ||
| 11807 | (invoke "rake" "ci"))))))) | ||
| 11808 | (native-inputs | ||
| 11809 | (list ruby-rake-compiler | ||
| 11810 | ruby-rake-compiler-dock | ||
| 11811 | ruby-rspec | ||
| 11812 | ruby-timecop | ||
| 11813 | ruby-yard)) | ||
| 11814 | (propagated-inputs | ||
| 11815 | (list ruby-concurrent-ruby ruby-concurrent-ruby-ext)) | ||
| 11816 | (synopsis "Edge features and additions to the @code{concurrent-ruby} gem") | ||
| 11817 | (description "The @code{concurrent-ruby-edge} gem includes | ||
| 11818 | @code{concurrent-ruby} features that are under active development and may | ||
| 11819 | change frequently. They are expected not to keep backward | ||
| 11820 | compatibility (there may also lack tests and documentation), although semantic | ||
| 11821 | versions are obeyed though. Features developed in @code{concurrent-ruby-edge} | ||
| 11822 | are expected to move to @code{concurrent-ruby} when final."))) | ||
| 11823 | |||
| 11824 | (define-public ruby-pkg-config | ||
| 11825 | (package | ||
| 11826 | (name "ruby-pkg-config") | ||
| 11827 | (version "1.2.5") | ||
| 11828 | (source | ||
| 11829 | (origin | ||
| 11830 | (method url-fetch) | ||
| 11831 | (uri (rubygems-uri "pkg-config" version)) | ||
| 11832 | (sha256 | ||
| 11833 | (base32 | ||
| 11834 | "056mzqdh4yjznsg36fi0xiq76f24vxlhzh2n4az919l3x5k318ar")))) | ||
| 11835 | (build-system ruby-build-system) | ||
| 11836 | (arguments | ||
| 11837 | ;; Tests require extra files not included in the gem. | ||
| 11838 | `(#:tests? #f)) | ||
| 11839 | (synopsis "Detect libraries for compiling Ruby native extensions") | ||
| 11840 | (description | ||
| 11841 | "@code{pkg-config} can be used in your extconf.rb to properly detect need | ||
| 11842 | libraries for compiling Ruby native extensions.") | ||
| 11843 | (home-page "https://github.com/ruby-gnome2/pkg-config") | ||
| 11844 | (license license:lgpl2.0+))) | ||
| 11845 | |||
| 11846 | (define-public ruby-net-http-digest-auth | ||
| 11847 | (package | ||
| 11848 | (name "ruby-net-http-digest-auth") | ||
| 11849 | (version "1.4.1") | ||
| 11850 | (source | ||
| 11851 | (origin | ||
| 11852 | (method url-fetch) | ||
| 11853 | (uri (rubygems-uri "net-http-digest_auth" version)) | ||
| 11854 | (sha256 | ||
| 11855 | (base32 | ||
| 11856 | "1nq859b0gh2vjhvl1qh1zrk09pc7p54r9i6nnn6sb06iv07db2jb")))) | ||
| 11857 | (build-system ruby-build-system) | ||
| 11858 | (native-inputs | ||
| 11859 | (list ruby-hoe | ||
| 11860 | ruby-minitest)) | ||
| 11861 | (synopsis "RFC 2617 HTTP digest authentication library") | ||
| 11862 | (description | ||
| 11863 | "This library implements HTTP's digest authentication scheme based on | ||
| 11864 | RFC 2617. This enables the use of the digest authentication scheme instead | ||
| 11865 | of the more insecure basic authentication scheme.") | ||
| 11866 | (home-page "https://github.com/drbrain/net-http-digest_auth") | ||
| 11867 | (license license:expat))) | ||
| 11868 | |||
| 11869 | (define-public ruby-mail | ||
| 11870 | (package | ||
| 11871 | (name "ruby-mail") | ||
| 11872 | (version "2.8.1") | ||
| 11873 | (source | ||
| 11874 | (origin | ||
| 11875 | (method url-fetch) | ||
| 11876 | (uri (rubygems-uri "mail" version)) | ||
| 11877 | (sha256 | ||
| 11878 | (base32 "1bf9pysw1jfgynv692hhaycfxa8ckay1gjw5hz3madrbrynryfzc")))) | ||
| 11879 | (build-system ruby-build-system) | ||
| 11880 | (propagated-inputs | ||
| 11881 | (list ruby-mini-mime)) | ||
| 11882 | (arguments | ||
| 11883 | '(#:tests? #f)) ; no rakefile | ||
| 11884 | (synopsis "Mail library for Ruby") | ||
| 11885 | (description | ||
| 11886 | "Mail is an internet library for Ruby that is designed to handle email | ||
| 11887 | generation, parsing and sending. The purpose of this library is to provide | ||
| 11888 | a single point of access to handle all email functions, including sending | ||
| 11889 | and receiving emails. All network type actions are done through proxy | ||
| 11890 | methods to @code{Net::SMTP}, @code{Net::POP3} etc. | ||
| 11891 | |||
| 11892 | Mail has been designed with a very simple object oriented system that | ||
| 11893 | really opens up the email messages you are parsing, if you know what you | ||
| 11894 | are doing, you can fiddle with every last bit of your email directly.") | ||
| 11895 | (home-page "https://github.com/mikel/mail") | ||
| 11896 | (license license:expat))) | ||
| 11897 | |||
| 11898 | (define-public ruby-net-protocol | ||
| 11899 | (package | ||
| 11900 | (name "ruby-net-protocol") | ||
| 11901 | (version "0.2.1") | ||
| 11902 | (source (origin | ||
| 11903 | (method git-fetch) | ||
| 11904 | (uri (git-reference | ||
| 11905 | (url "https://github.com/ruby/net-protocol") | ||
| 11906 | (commit (string-append "v" version)))) | ||
| 11907 | (file-name (git-file-name name version)) | ||
| 11908 | (sha256 | ||
| 11909 | (base32 | ||
| 11910 | "0niivmjx7bc6vsylc1ag17mw6mnvjxw02s7cin1f0422xyr8msq9")))) | ||
| 11911 | (build-system ruby-build-system) | ||
| 11912 | (propagated-inputs (list ruby-timeout)) | ||
| 11913 | (synopsis "Abstract interface for Ruby network clients") | ||
| 11914 | (description "This Ruby library provides an abstract interface for network | ||
| 11915 | clients.") | ||
| 11916 | (home-page "https://github.com/ruby/net-protocol") | ||
| 11917 | (license (list license:bsd-2)))) | ||
| 11918 | |||
| 11919 | (define-public ruby-email-reply-trimmer | ||
| 11920 | (package | ||
| 11921 | (name "ruby-email-reply-trimmer") | ||
| 11922 | (version "0.1.13") | ||
| 11923 | (source | ||
| 11924 | (origin | ||
| 11925 | (method url-fetch) | ||
| 11926 | (uri (rubygems-uri "email_reply_trimmer" version)) | ||
| 11927 | (sha256 | ||
| 11928 | (base32 | ||
| 11929 | "1jgcxifm48xq5dz9k47q43pqm5bfnf14l62l3bqhmv8f6z8dw4ki")))) | ||
| 11930 | (build-system ruby-build-system) | ||
| 11931 | (synopsis "Trim replies from plain text email") | ||
| 11932 | (description "EmailReplyTrimmer is a Ruby small library to trim replies | ||
| 11933 | from plain text email.") | ||
| 11934 | (home-page "https://github.com/discourse/email_reply_trimmer") | ||
| 11935 | (license license:expat))) | ||
| 11936 | |||
| 11937 | (define-public ruby-mathn | ||
| 11938 | (package | ||
| 11939 | (name "ruby-mathn") | ||
| 11940 | (version "0.1.0") | ||
| 11941 | (source | ||
| 11942 | (origin | ||
| 11943 | (method url-fetch) | ||
| 11944 | (uri (rubygems-uri "mathn" version)) | ||
| 11945 | (sha256 | ||
| 11946 | (base32 | ||
| 11947 | "1wn812llln9jzgybz2d7536q39z3gi99i6fi0j1dapcpzvhgrr0p")))) | ||
| 11948 | (build-system ruby-build-system) | ||
| 11949 | (native-inputs | ||
| 11950 | (list bundler ruby-rake-compiler)) | ||
| 11951 | (synopsis "Extends math operations for increased precision") | ||
| 11952 | (description | ||
| 11953 | "This gem makes mathematical operations more precise in Ruby and | ||
| 11954 | integrates other mathematical standard libraries. Prior to Ruby 2.5, | ||
| 11955 | @code{mathn} was part of the Ruby standard library.") | ||
| 11956 | (home-page "https://github.com/ruby/mathn") | ||
| 11957 | (license license:bsd-2))) | ||
| 11958 | |||
| 11959 | (define-public ruby-code-statistics | ||
| 11960 | (package | ||
| 11961 | (name "ruby-code-statistics") | ||
| 11962 | (version "0.2.13") | ||
| 11963 | (source | ||
| 11964 | (origin | ||
| 11965 | (method url-fetch) | ||
| 11966 | (uri (rubygems-uri "code_statistics" version)) | ||
| 11967 | (sha256 | ||
| 11968 | (base32 | ||
| 11969 | "07rdpsbwbmh4vp8nxyh308cj7am2pbrfhv9v5xr2d5gq8hnnsm93")))) | ||
| 11970 | (build-system ruby-build-system) | ||
| 11971 | (arguments | ||
| 11972 | `(#:tests? #f)) ; Not all test code is included in gem. | ||
| 11973 | (synopsis "Port of the rails 'rake stats' method") | ||
| 11974 | (description | ||
| 11975 | "This gem is a port of the rails 'rake stats' method so it can be made | ||
| 11976 | more robust and work for non rails projects.") | ||
| 11977 | (home-page "https://github.com/danmayer/code_statistics") | ||
| 11978 | (license license:expat))) | ||
| 11979 | |||
| 11980 | (define-public ruby-ruby2-keywords | ||
| 11981 | (package | ||
| 11982 | (name "ruby-ruby2-keywords") | ||
| 11983 | (version "0.0.5") | ||
| 11984 | (source (origin | ||
| 11985 | (method git-fetch) | ||
| 11986 | (uri (git-reference | ||
| 11987 | (url "https://github.com/ruby/ruby2_keywords") | ||
| 11988 | (commit (string-append "v" version)))) | ||
| 11989 | (file-name (git-file-name name version)) | ||
| 11990 | (sha256 | ||
| 11991 | (base32 | ||
| 11992 | "1jhqb152zfr2yrxj6j8rzakkwdkg5viggwnnqrrfxwwy63msdi97")))) | ||
| 11993 | (build-system ruby-build-system) | ||
| 11994 | (arguments | ||
| 11995 | (list | ||
| 11996 | #:phases | ||
| 11997 | #~(modify-phases %standard-phases | ||
| 11998 | (add-after 'unpack 'delete-extraneous-rake-files | ||
| 11999 | (lambda _ | ||
| 12000 | (for-each delete-file '("rakelib/changelogs.rake" | ||
| 12001 | "rakelib/epoch.rake" | ||
| 12002 | "rakelib/version.rake")))) | ||
| 12003 | (add-after 'extract-gemspec 'adjust-files | ||
| 12004 | (lambda _ | ||
| 12005 | (substitute* "ruby2_keywords.gemspec" | ||
| 12006 | ;; This file is not present in the git checkout. | ||
| 12007 | ((".*\"ChangeLog\",.*") ""))))))) | ||
| 12008 | (synopsis "Shim library for Module#ruby2_keywords") | ||
| 12009 | (description "Provides empty @code{Module#ruby2_keywords} method, for the | ||
| 12010 | forward source-level compatibility against @command{ruby2.7} and | ||
| 12011 | @command{ruby3}.") | ||
| 12012 | (home-page "https://github.com/ruby/ruby2_keywords") | ||
| 12013 | (license license:bsd-2))) | ||
| 12014 | |||
| 12015 | (define-public ruby-rubypants | ||
| 12016 | (package | ||
| 12017 | (name "ruby-rubypants") | ||
| 12018 | (version "0.6.0") | ||
| 12019 | (source (origin | ||
| 12020 | (method url-fetch) | ||
| 12021 | (uri (rubygems-uri "rubypants" version)) | ||
| 12022 | (sha256 | ||
| 12023 | (base32 | ||
| 12024 | "0xpqkslan2wkyal2h9qhplkr5d4sdn7q6csigrhnljjpp8j4qfsh")))) | ||
| 12025 | (build-system ruby-build-system) | ||
| 12026 | (arguments | ||
| 12027 | '(#:tests? #f)) ; need Codecov | ||
| 12028 | (synopsis "Port of the smart-quotes library SmartyPants") | ||
| 12029 | (description | ||
| 12030 | "RubyPants is a Ruby port of the smart-quotes library SmartyPants. The | ||
| 12031 | original SmartyPants is a web publishing plug-in for Movable Type, Blosxom, | ||
| 12032 | and BBEdit that easily translates plain ASCII punctuation characters into | ||
| 12033 | smart typographic punctuation HTML entities.") | ||
| 12034 | (home-page "https://github.com/jmcnevin/rubypants") | ||
| 12035 | (license license:bsd-2))) | ||
| 12036 | |||
| 12037 | (define-public ruby-org-ruby | ||
| 12038 | (package | ||
| 12039 | (name "ruby-org-ruby") | ||
| 12040 | (version "0.9.12") | ||
| 12041 | (source (origin | ||
| 12042 | (method url-fetch) | ||
| 12043 | (uri (rubygems-uri "org-ruby" version)) | ||
| 12044 | (sha256 | ||
| 12045 | (base32 | ||
| 12046 | "0x69s7aysfiwlcpd9hkvksfyld34d8kxr62adb59vjvh8hxfrjwk")))) | ||
| 12047 | (build-system ruby-build-system) | ||
| 12048 | (arguments | ||
| 12049 | '(#:tests? #f)) ; no rakefile | ||
| 12050 | (propagated-inputs | ||
| 12051 | (list ruby-rubypants)) | ||
| 12052 | (synopsis "Org-mode parser written in Ruby") | ||
| 12053 | (description | ||
| 12054 | "Org-ruby is an org-mode parser written in Ruby. The most significant | ||
| 12055 | thing this library does today is convert org-mode files to HTML or Textile or | ||
| 12056 | Markdown.") | ||
| 12057 | (home-page "https://github.com/wallyqs/org-ruby") | ||
| 12058 | (license license:expat))) | ||
| 12059 | |||
| 12060 | (define-public ruby-rake-manifest | ||
| 12061 | (package | ||
| 12062 | (name "ruby-rake-manifest") | ||
| 12063 | (version "0.2.3") | ||
| 12064 | (source (origin | ||
| 12065 | (method git-fetch) | ||
| 12066 | (uri (git-reference | ||
| 12067 | (url "https://github.com/mvz/rake-manifest") | ||
| 12068 | (commit (string-append "v" version)))) | ||
| 12069 | (file-name (git-file-name name version)) | ||
| 12070 | (sha256 | ||
| 12071 | (base32 | ||
| 12072 | "16k2yvg773c25kp2vhzhp01rhf53k0nhrcmpv34k1fridw90r2k8")))) | ||
| 12073 | (build-system ruby-build-system) | ||
| 12074 | (arguments | ||
| 12075 | (list | ||
| 12076 | #:test-target "default" | ||
| 12077 | #:phases | ||
| 12078 | #~(modify-phases %standard-phases | ||
| 12079 | (delete 'check) ;moved after the install phase | ||
| 12080 | (add-after 'install 'check | ||
| 12081 | (assoc-ref %standard-phases 'check)) | ||
| 12082 | (add-before 'check 'set-GEM_PATH | ||
| 12083 | (lambda _ | ||
| 12084 | (setenv "GEM_PATH" (string-append | ||
| 12085 | (getenv "GEM_PATH") ":" | ||
| 12086 | #$output "/lib/ruby/vendor_ruby"))))))) | ||
| 12087 | (native-inputs (list ruby-rspec ruby-simplecov)) | ||
| 12088 | (synopsis "Rake tasks to generate and check a manifest file") | ||
| 12089 | (description "This package provides Rake tasks to generate and check a | ||
| 12090 | manifest file.") | ||
| 12091 | (home-page "https://github.com/mvz/rake-manifest") | ||
| 12092 | (license license:expat))) | ||
| 12093 | |||
| 12094 | (define-public ruby-sfl | ||
| 12095 | (package | ||
| 12096 | (name "ruby-sfl") | ||
| 12097 | (version "2.3") | ||
| 12098 | (source (origin | ||
| 12099 | (method url-fetch) | ||
| 12100 | (uri (rubygems-uri "sfl" version)) | ||
| 12101 | (sha256 | ||
| 12102 | (base32 | ||
| 12103 | "1qm4hvhq9pszi9zs1cl9qgwx1n4wxq0af0hq9sbf6qihqd8rwwwr")))) | ||
| 12104 | (build-system ruby-build-system) | ||
| 12105 | (arguments | ||
| 12106 | `(#:tests? #f ;; some tests fail, gem is a dummy for ruby >= 1.9 anyway | ||
| 12107 | #:test-target "spec")) | ||
| 12108 | (synopsis "Spawn for Ruby 1.8") | ||
| 12109 | (description "This pure ruby library provides @code{spawn()} which is | ||
| 12110 | almost perfectly compatible with ruby 1.9's.") | ||
| 12111 | (home-page "https://github.com/ujihisa/spawn-for-legacy") | ||
| 12112 | (license license:bsd-2))) | ||
| 12113 | |||
| 12114 | (define-public ruby-childprocess | ||
| 12115 | (package | ||
| 12116 | (name "ruby-childprocess") | ||
| 12117 | (version "4.1.0") | ||
| 12118 | (source | ||
| 12119 | (origin | ||
| 12120 | (method url-fetch) | ||
| 12121 | (uri (rubygems-uri "childprocess" version)) | ||
| 12122 | (sha256 | ||
| 12123 | (base32 | ||
| 12124 | "1lvcp8bsd35g57f7wz4jigcw2sryzzwrpcgjwwf3chmjrjcww5in")))) | ||
| 12125 | (build-system ruby-build-system) | ||
| 12126 | (arguments | ||
| 12127 | `(#:tests? #f ;; one failing test, even with fixes below | ||
| 12128 | #:test-target "spec" | ||
| 12129 | #:phases | ||
| 12130 | (modify-phases %standard-phases | ||
| 12131 | (add-after 'unpack 'patch | ||
| 12132 | (lambda _ | ||
| 12133 | (substitute* "spec/spec_helper.rb" | ||
| 12134 | (("#!/bin/sh\\\\n") (string-append "#!" (which "sh") "\\n")))))))) | ||
| 12135 | (native-inputs | ||
| 12136 | (list ruby-coveralls ruby-rspec)) | ||
| 12137 | (synopsis "Control external programs running in the background, in Ruby") | ||
| 12138 | (description "@code{childprocess} provides a gem to control external | ||
| 12139 | programs running in the background, in Ruby.") | ||
| 12140 | (home-page "https://github.com/enkessler/childprocess") | ||
| 12141 | (license license:expat))) | ||
| 12142 | |||
| 12143 | (define-public ruby-public-suffix | ||
| 12144 | (package | ||
| 12145 | (name "ruby-public-suffix") | ||
| 12146 | (version "4.0.5") | ||
| 12147 | (source (origin | ||
| 12148 | (method url-fetch) | ||
| 12149 | (uri (rubygems-uri "public_suffix" version)) | ||
| 12150 | (sha256 | ||
| 12151 | (base32 | ||
| 12152 | "0vywld400fzi17cszwrchrzcqys4qm6sshbv73wy5mwcixmrgg7g")))) | ||
| 12153 | (build-system ruby-build-system) | ||
| 12154 | (arguments | ||
| 12155 | '(#:phases | ||
| 12156 | (modify-phases %standard-phases | ||
| 12157 | ;; Remove the requirement on Rubocop, as it isn't useful to run, and | ||
| 12158 | ;; including it as an input can lead to circular dependencies. | ||
| 12159 | (add-after 'unpack 'remove-rubocop-from-Rakefile | ||
| 12160 | (lambda _ | ||
| 12161 | (substitute* "Rakefile" | ||
| 12162 | (("require \"rubocop/rake\\_task\"") "") | ||
| 12163 | (("RuboCop::RakeTask\\.new") ""))))))) | ||
| 12164 | (native-inputs | ||
| 12165 | (list bundler ruby-yard/minimal ruby-mocha ruby-minitest-reporters)) | ||
| 12166 | (home-page "https://simonecarletti.com/code/publicsuffix-ruby/") | ||
| 12167 | (synopsis "Domain name parser") | ||
| 12168 | (description "The gem @code{public_suffix} is a domain name parser, | ||
| 12169 | written in Ruby, and based on the @dfn{Public Suffix List}. A public suffix | ||
| 12170 | is one under which Internet users can (or historically could) directly | ||
| 12171 | register names. Some examples of public suffixes are @code{.com}, | ||
| 12172 | @code{.co.uk} and @code{pvt.k12.ma.us}. The Public Suffix List is a list of | ||
| 12173 | all known public suffixes.") | ||
| 12174 | (license license:expat))) | ||
| 12175 | |||
| 12176 | (define-public ruby-addressable | ||
| 12177 | (package | ||
| 12178 | (name "ruby-addressable") | ||
| 12179 | (version "2.8.1") | ||
| 12180 | (source (origin | ||
| 12181 | (method url-fetch) | ||
| 12182 | (uri (rubygems-uri "addressable" version)) | ||
| 12183 | (sha256 | ||
| 12184 | (base32 | ||
| 12185 | "1ypdmpdn20hxp5vwxz3zc04r5xcwqc25qszdlg41h8ghdqbllwmw")))) | ||
| 12186 | (build-system ruby-build-system) | ||
| 12187 | (arguments | ||
| 12188 | '(#:test-target "spec" | ||
| 12189 | #:phases | ||
| 12190 | (modify-phases %standard-phases | ||
| 12191 | (add-after 'unpack 'disable-bundler | ||
| 12192 | (lambda _ | ||
| 12193 | (substitute* "spec/spec_helper.rb" | ||
| 12194 | (("require 'bundler/setup'") "")))) | ||
| 12195 | (add-after 'unpack 'remove-unnecessary-dependencies-from-Gemfile | ||
| 12196 | (lambda _ | ||
| 12197 | (substitute* "Gemfile" | ||
| 12198 | (("git: 'https://github.com/sporkmonger/rack-mount.git',") "") | ||
| 12199 | ((".*launchy.*") "") | ||
| 12200 | ((".*rake.*") "gem 'rake'\n") | ||
| 12201 | ((".*redcarpet.*") "")))) | ||
| 12202 | (add-before 'check 'delete-network-dependent-test | ||
| 12203 | (lambda _ | ||
| 12204 | (delete-file "spec/addressable/net_http_compat_spec.rb")))))) | ||
| 12205 | (native-inputs | ||
| 12206 | (list bundler | ||
| 12207 | ruby-idn-ruby | ||
| 12208 | ruby-rspec | ||
| 12209 | ruby-rspec-its-minimal | ||
| 12210 | ruby-simplecov | ||
| 12211 | ruby-sporkmonger-rack-mount | ||
| 12212 | ruby-yard/minimal)) | ||
| 12213 | (propagated-inputs | ||
| 12214 | (list ruby-public-suffix)) | ||
| 12215 | (home-page "https://github.com/sporkmonger/addressable") | ||
| 12216 | (synopsis "Alternative URI implementation") | ||
| 12217 | (description "Addressable is a replacement for the URI implementation that | ||
| 12218 | is part of Ruby's standard library. It more closely conforms to RFC 3986, | ||
| 12219 | RFC 3987, and RFC 6570 (level 4), providing support for IRIs and URI templates.") | ||
| 12220 | (license license:asl2.0))) | ||
| 12221 | |||
| 12222 | (define-public ruby-colorize | ||
| 12223 | (package | ||
| 12224 | (name "ruby-colorize") | ||
| 12225 | (version "0.8.1") | ||
| 12226 | (source (origin | ||
| 12227 | (method url-fetch) | ||
| 12228 | (uri (rubygems-uri "colorize" version)) | ||
| 12229 | (sha256 | ||
| 12230 | (base32 | ||
| 12231 | "133rqj85n400qk6g3dhf2bmfws34mak1wqihvh3bgy9jhajw580b")))) | ||
| 12232 | (build-system ruby-build-system) | ||
| 12233 | (arguments | ||
| 12234 | '(#:phases (modify-phases %standard-phases | ||
| 12235 | (add-before 'check 'remove-codeclimate-dependency | ||
| 12236 | (lambda _ | ||
| 12237 | (substitute* "test/test_colorize.rb" | ||
| 12238 | ;; Do not hook the tests into the online CodeClimate | ||
| 12239 | ;; service which is unnecessary for these tests. | ||
| 12240 | (("require 'codeclimate-test-reporter'") | ||
| 12241 | "") | ||
| 12242 | (("CodeClimate.*") ""))))))) | ||
| 12243 | (synopsis "Add color effects to the @code{String} class") | ||
| 12244 | (description | ||
| 12245 | "This package extends the @code{String} class and adds a | ||
| 12246 | @code{ColorizedString} with methods to set text color, background color, | ||
| 12247 | and text effects.") | ||
| 12248 | (home-page "https://github.com/fazibear/colorize") | ||
| 12249 | (license license:gpl2+))) | ||
| 12250 | |||
| 12251 | (define-public ruby-colorator | ||
| 12252 | (package | ||
| 12253 | (name "ruby-colorator") | ||
| 12254 | (version "1.1.0") | ||
| 12255 | (source (origin | ||
| 12256 | (method url-fetch) | ||
| 12257 | (uri (rubygems-uri "colorator" version)) | ||
| 12258 | (sha256 | ||
| 12259 | (base32 | ||
| 12260 | "0f7wvpam948cglrciyqd798gdc6z3cfijciavd0dfixgaypmvy72")))) | ||
| 12261 | (build-system ruby-build-system) | ||
| 12262 | (arguments | ||
| 12263 | ;; No test target | ||
| 12264 | `(#:tests? #f)) | ||
| 12265 | (home-page "http://octopress.org/colorator/") | ||
| 12266 | (synopsis "Terminal color library") | ||
| 12267 | (description "Colorator is a Ruby gem that helps you colorize your text | ||
| 12268 | for the terminal.") | ||
| 12269 | (license license:expat))) | ||
| 12270 | |||
| 12271 | (define-public ruby-command-line-reporter | ||
| 12272 | (package | ||
| 12273 | (name "ruby-command-line-reporter") | ||
| 12274 | (version "4.0.1") | ||
| 12275 | (source (origin | ||
| 12276 | (method url-fetch) | ||
| 12277 | (uri (rubygems-uri "command_line_reporter" version)) | ||
| 12278 | (sha256 | ||
| 12279 | (base32 | ||
| 12280 | "1l0zxkh5n9dxfw46lpkg416ljpldlq1bgdhqh0d118dk338nz4ll")))) | ||
| 12281 | (build-system ruby-build-system) | ||
| 12282 | (arguments | ||
| 12283 | ;; No Rakefile | ||
| 12284 | `(#:tests? #f | ||
| 12285 | #:phases | ||
| 12286 | (modify-phases %standard-phases | ||
| 12287 | (add-before 'build 'fix-dependencies | ||
| 12288 | (lambda _ | ||
| 12289 | (substitute* ".gemspec" | ||
| 12290 | ;; colored is unmaintained | ||
| 12291 | (("colored") "colorator") | ||
| 12292 | ;; colorator version | ||
| 12293 | (("= 1.2") "= 1.1"))))))) | ||
| 12294 | (propagated-inputs (list ruby-colorator)) | ||
| 12295 | (home-page "https://github.com/wbailey/command_line_reporter") | ||
| 12296 | (synopsis "Report production while executing Ruby scripts") | ||
| 12297 | (description "This gem provides a DSL that makes it easy to write reports | ||
| 12298 | of various types in ruby. It eliminates the need to litter your source with | ||
| 12299 | puts statements, instead providing a more readable, expressive interface to | ||
| 12300 | your application.") | ||
| 12301 | (license license:asl2.0))) | ||
| 12302 | |||
| 12303 | (define-public ruby-command-line-reporter-3 | ||
| 12304 | (package | ||
| 12305 | (inherit ruby-command-line-reporter) | ||
| 12306 | (version "3.3.6") | ||
| 12307 | (source (origin | ||
| 12308 | (method url-fetch) | ||
| 12309 | (uri (rubygems-uri "command_line_reporter" version)) | ||
| 12310 | (sha256 | ||
| 12311 | (base32 | ||
| 12312 | "1h39zqqxp3k4qk49ajpx0jps1vmvxgkh43mqkb6znk583bl0fv71")))))) | ||
| 12313 | |||
| 12314 | (define-public ruby-kpeg | ||
| 12315 | (package | ||
| 12316 | (name "ruby-kpeg") | ||
| 12317 | (version "1.3.3") | ||
| 12318 | (source | ||
| 12319 | (origin | ||
| 12320 | (method url-fetch) | ||
| 12321 | (uri (rubygems-uri "kpeg" version)) | ||
| 12322 | (sha256 | ||
| 12323 | (base32 | ||
| 12324 | "0jxddpyb23digcd8b1b02gn94057a7mw17680c3c8s3bcb5xqfnp")))) | ||
| 12325 | (build-system ruby-build-system) | ||
| 12326 | (native-inputs | ||
| 12327 | (list ruby-hoe)) | ||
| 12328 | (synopsis "PEG library for Ruby") | ||
| 12329 | (description "KPeg is a simple PEG library for Ruby. It provides an API as | ||
| 12330 | well as native grammar to build the grammar. KPeg supports direct left | ||
| 12331 | recursion of rules via the | ||
| 12332 | @uref{http://www.vpri.org/pdf/tr2008003_experimenting.pdf,OMeta memoization} | ||
| 12333 | technique.") | ||
| 12334 | (home-page "https://github.com/evanphx/kpeg") | ||
| 12335 | (license license:expat))) | ||
| 12336 | |||
| 12337 | (define-public ruby-rdoc | ||
| 12338 | (package | ||
| 12339 | (name "ruby-rdoc") | ||
| 12340 | (version "6.7.0") | ||
| 12341 | (source | ||
| 12342 | (origin | ||
| 12343 | (method git-fetch) | ||
| 12344 | (uri (git-reference | ||
| 12345 | (url "https://github.com/ruby/rdoc") | ||
| 12346 | (commit (string-append "v" version)))) | ||
| 12347 | (file-name (git-file-name name version)) | ||
| 12348 | (sha256 | ||
| 12349 | (base32 | ||
| 12350 | "0dy997zi7k17c2yjlq1y7zl9yaiym1f4jgfh84qqzhwl1qm6v41j")))) | ||
| 12351 | (build-system ruby-build-system) | ||
| 12352 | (arguments | ||
| 12353 | `(#:phases | ||
| 12354 | (modify-phases %standard-phases | ||
| 12355 | (add-before 'build 'generate | ||
| 12356 | ;; 'gem build' doesn't honor Rakefile dependencies (see: | ||
| 12357 | ;; https://github.com/ruby/rdoc/issues/432#issuecomment-650808977). | ||
| 12358 | (lambda _ | ||
| 12359 | (invoke "rake" "generate")))))) | ||
| 12360 | (native-inputs (list bundler ruby-kpeg ruby-racc ruby-rubocop | ||
| 12361 | ruby-test-unit-ruby-core)) | ||
| 12362 | (home-page "https://ruby.github.io/rdoc/") | ||
| 12363 | (synopsis "HTML and command-line documentation utility") | ||
| 12364 | (description "RDoc produces HTML and command-line documentation for Ruby | ||
| 12365 | projects. RDoc includes the +rdoc+ and +ri+ tools for generating and displaying | ||
| 12366 | documentation from the command-line.") | ||
| 12367 | (license license:gpl2+))) | ||
| 12368 | |||
| 12369 | (define-public ruby-sass-listen | ||
| 12370 | (package | ||
| 12371 | (name "ruby-sass-listen") | ||
| 12372 | (version "4.0.0") | ||
| 12373 | (source (origin | ||
| 12374 | (method url-fetch) | ||
| 12375 | (uri (rubygems-uri "sass-listen" version)) | ||
| 12376 | (sha256 | ||
| 12377 | (base32 | ||
| 12378 | "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df")))) | ||
| 12379 | (build-system ruby-build-system) | ||
| 12380 | (arguments | ||
| 12381 | ;; No test target | ||
| 12382 | `(#:tests? #f)) | ||
| 12383 | (propagated-inputs | ||
| 12384 | (list ruby-rb-fsevent ruby-rb-inotify)) | ||
| 12385 | (home-page "https://github.com/sass/listen") | ||
| 12386 | (synopsis "File modification notification library") | ||
| 12387 | (description "The Listen gem listens to file modifications and notifies you | ||
| 12388 | about the changes.") | ||
| 12389 | (license license:expat))) | ||
| 12390 | |||
| 12391 | (define-public ruby-terminfo | ||
| 12392 | (let ((commit "f4a597d92dcc465e7b343f9afb8cd45607c8e969") | ||
| 12393 | (revision "0")) | ||
| 12394 | (package | ||
| 12395 | (name "ruby-terminfo") | ||
| 12396 | (version (git-version "0.2" revision commit)) | ||
| 12397 | (source | ||
| 12398 | (origin | ||
| 12399 | (method git-fetch) | ||
| 12400 | (uri | ||
| 12401 | (git-reference | ||
| 12402 | (url "https://github.com/genki/ruby-terminfo") | ||
| 12403 | (commit commit))) | ||
| 12404 | (file-name (git-file-name name version)) | ||
| 12405 | (sha256 | ||
| 12406 | (base32 "0b24sqf0jwj8m106nh35hjayw1kiyrpramb6vg7fnz32mqni6hdi")))) | ||
| 12407 | (build-system ruby-build-system) | ||
| 12408 | (arguments | ||
| 12409 | (list | ||
| 12410 | #:phases | ||
| 12411 | #~(modify-phases %standard-phases | ||
| 12412 | (delete 'replace-git-ls-files) | ||
| 12413 | (replace 'build | ||
| 12414 | (lambda _ | ||
| 12415 | (invoke "ruby" "extconf.rb") | ||
| 12416 | (invoke "make"))) | ||
| 12417 | (replace 'check | ||
| 12418 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 12419 | (when tests? | ||
| 12420 | (for-each (lambda (f) | ||
| 12421 | (invoke "ruby" "-Ilib:test" "-Ilib:." f)) | ||
| 12422 | (find-files "test" "^test_.*\\.rb$"))))) | ||
| 12423 | (replace 'install | ||
| 12424 | (lambda _ | ||
| 12425 | (invoke "make" "install" (string-append "prefix=" #$output))))))) | ||
| 12426 | (inputs | ||
| 12427 | (list ncurses)) | ||
| 12428 | (native-inputs | ||
| 12429 | (list ruby-rubygems-tasks ruby-rdoc)) | ||
| 12430 | (home-page "http://www.a-k-r.org/ruby-terminfo/") | ||
| 12431 | (synopsis "Terminfo binding for Ruby") | ||
| 12432 | (description "Ruby-terminfo provides terminfo binding for Ruby.") | ||
| 12433 | (license license:bsd-3)))) | ||
| 12434 | |||
| 12435 | (define-public ruby-diffy | ||
| 12436 | (package | ||
| 12437 | (name "ruby-diffy") | ||
| 12438 | (version "3.2.1") | ||
| 12439 | (source | ||
| 12440 | (origin | ||
| 12441 | (method url-fetch) | ||
| 12442 | (uri (rubygems-uri "diffy" version)) | ||
| 12443 | (sha256 | ||
| 12444 | (base32 | ||
| 12445 | "119imrkn01agwhx5raxhknsi331y5i4yda7r0ws0an6905ximzjg")))) | ||
| 12446 | (build-system ruby-build-system) | ||
| 12447 | (arguments | ||
| 12448 | ;; No tests | ||
| 12449 | `(#:tests? #f)) | ||
| 12450 | (native-inputs | ||
| 12451 | (list ruby-rspec)) | ||
| 12452 | (home-page "https://github.com/samg/diffy") | ||
| 12453 | (synopsis "Convenient diffing in ruby") | ||
| 12454 | (description "Diffy provides a convenient way to generate a diff from two | ||
| 12455 | strings or files.") | ||
| 12456 | (license license:expat))) | ||
| 12457 | |||
| 12458 | (define-public ruby-sass-spec | ||
| 12459 | (package | ||
| 12460 | (name "ruby-sass-spec") | ||
| 12461 | (version "3.5.4") | ||
| 12462 | (source | ||
| 12463 | (origin | ||
| 12464 | (method git-fetch) | ||
| 12465 | (uri (git-reference | ||
| 12466 | (url "https://github.com/sass/sass-spec") | ||
| 12467 | (commit (string-append "v" version)))) | ||
| 12468 | (file-name (git-file-name name version)) | ||
| 12469 | (sha256 | ||
| 12470 | (base32 "1zsw66830w0xlc7kxz6fm4b5nyb44vdsdgm9mgy06s5aixx83pwr")))) | ||
| 12471 | (build-system ruby-build-system) | ||
| 12472 | (propagated-inputs | ||
| 12473 | (list ruby-command-line-reporter-3 | ||
| 12474 | ruby-diffy)) | ||
| 12475 | (arguments | ||
| 12476 | (list | ||
| 12477 | ;; This package contains tests for a sass implementation, and the to | ||
| 12478 | ;; avoid any circular dependencies, the tests are not run here | ||
| 12479 | #:tests? #f | ||
| 12480 | #:phases | ||
| 12481 | #~(modify-phases %standard-phases | ||
| 12482 | (add-after 'unpack 'patch-test | ||
| 12483 | (lambda _ | ||
| 12484 | (delete-file "spec/values/colors/alpha_hex-3.5/error") | ||
| 12485 | (substitute* "spec/values/colors/alpha_hex-3.5/expected_output.css" | ||
| 12486 | (("string") "color"))))))) | ||
| 12487 | (home-page "https://github.com/sass/sass-spec") | ||
| 12488 | (synopsis "Test suite for Sass") | ||
| 12489 | (description "Sass Spec is a test suite for Sass. Test cases are all in | ||
| 12490 | the @file{spec} directory.") | ||
| 12491 | (license license:expat))) | ||
| 12492 | |||
| 12493 | (define-public ruby-sass | ||
| 12494 | (package | ||
| 12495 | (name "ruby-sass") | ||
| 12496 | (version "3.7.4") | ||
| 12497 | (source | ||
| 12498 | (origin | ||
| 12499 | (method git-fetch) | ||
| 12500 | (uri (git-reference | ||
| 12501 | (url "https://github.com/sass/ruby-sass") | ||
| 12502 | (commit version))) | ||
| 12503 | (file-name (git-file-name name version)) | ||
| 12504 | (sha256 | ||
| 12505 | (base32 "03215h9jkni3l9w6lq28p8adaj3qzb47qgxd20l6kldjnm1a1yky")))) | ||
| 12506 | (build-system ruby-build-system) | ||
| 12507 | (arguments | ||
| 12508 | (list #:test-target "test:ruby")) | ||
| 12509 | (propagated-inputs | ||
| 12510 | (list ruby-sass-listen)) | ||
| 12511 | (native-inputs | ||
| 12512 | (list ruby-sass-spec ruby-mathn ruby-cmath)) | ||
| 12513 | (home-page "https://sass-lang.com/") | ||
| 12514 | (synopsis "CSS extension language") | ||
| 12515 | (description "Sass is a CSS extension language. It extends CSS with | ||
| 12516 | features that don't exist yet like variables, nesting, mixins and inheritance.") | ||
| 12517 | (license license:expat))) | ||
| 12518 | |||
| 12519 | (define-public ruby-sassc | ||
| 12520 | (package | ||
| 12521 | (name "ruby-sassc") | ||
| 12522 | (version "2.4.0") | ||
| 12523 | (source | ||
| 12524 | (origin | ||
| 12525 | (method url-fetch) | ||
| 12526 | (uri (rubygems-uri "sassc" version)) | ||
| 12527 | (sha256 | ||
| 12528 | (base32 | ||
| 12529 | "0gpqv48xhl8mb8qqhcifcp0pixn206a7imc07g48armklfqa4q2c")))) | ||
| 12530 | (build-system ruby-build-system) | ||
| 12531 | (arguments | ||
| 12532 | '(#:modules ((guix build ruby-build-system) | ||
| 12533 | (guix build utils) | ||
| 12534 | (ice-9 textual-ports)) | ||
| 12535 | #:phases | ||
| 12536 | (modify-phases %standard-phases | ||
| 12537 | ;; TODO: This would be better as a snippet, but the ruby-build-system | ||
| 12538 | ;; doesn't seem to support that | ||
| 12539 | (add-after 'unpack 'remove-libsass | ||
| 12540 | (lambda _ | ||
| 12541 | (delete-file-recursively "ext") | ||
| 12542 | (with-atomic-file-replacement "sassc.gemspec" | ||
| 12543 | (lambda (in out) | ||
| 12544 | (let* ((gemspec (get-string-all in)) | ||
| 12545 | (index (string-contains gemspec "libsass_dir"))) | ||
| 12546 | (display (string-append | ||
| 12547 | (string-take gemspec index) | ||
| 12548 | "\nend\n") | ||
| 12549 | out)))))) | ||
| 12550 | (add-after 'unpack 'dont-check-the-libsass-version | ||
| 12551 | (lambda _ | ||
| 12552 | (substitute* "test/native_test.rb" | ||
| 12553 | (("assert_equal.*Native\\.version") "")))) | ||
| 12554 | (add-after 'unpack 'remove-git-from-gemspec | ||
| 12555 | (lambda _ | ||
| 12556 | (substitute* "sassc.gemspec" | ||
| 12557 | (("`git ls-files -z`") "`find . -type f -print0 |sort -z`")))) | ||
| 12558 | (add-after 'unpack 'remove-extensions-from-gemspec | ||
| 12559 | (lambda _ | ||
| 12560 | (substitute* "sassc.gemspec" | ||
| 12561 | (("\\[\"ext/extconf.rb\"\\]") "[]")))) | ||
| 12562 | (add-after 'unpack 'fix-Rakefile | ||
| 12563 | (lambda _ | ||
| 12564 | (substitute* "Rakefile" | ||
| 12565 | (("test: 'compile:libsass'") ":test")))) | ||
| 12566 | (add-after 'unpack 'remove-unnecessary-dependencies | ||
| 12567 | (lambda _ | ||
| 12568 | (substitute* "test/test_helper.rb" | ||
| 12569 | (("require \"pry\"") "")))) | ||
| 12570 | (add-before 'build 'patch-native.rb | ||
| 12571 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 12572 | (substitute* "lib/sassc/native.rb" | ||
| 12573 | ((".*gem_root = spec.gem_dir") "") | ||
| 12574 | (("ffi_lib .*\n") | ||
| 12575 | (string-append | ||
| 12576 | "ffi_lib '" (assoc-ref inputs "libsass") "/lib/libsass.so'"))))) | ||
| 12577 | ;; The gemspec still references the libsass files, so just keep the | ||
| 12578 | ;; one in the gem. | ||
| 12579 | (delete 'extract-gemspec)))) | ||
| 12580 | (propagated-inputs | ||
| 12581 | (list ruby-ffi ruby-rake)) | ||
| 12582 | (inputs | ||
| 12583 | (list libsass)) | ||
| 12584 | (native-inputs | ||
| 12585 | (list bundler ruby-rake-compiler ruby-minitest-around | ||
| 12586 | ruby-test-construct)) | ||
| 12587 | (synopsis "Use libsss from Ruby") | ||
| 12588 | (description | ||
| 12589 | "This library provides Ruby q@acronym{FFI, Foreign Function Interface} | ||
| 12590 | bindings to the libsass library. This enables rendering | ||
| 12591 | @acronym{SASS,Syntactically awesome style sheets} from Ruby code.") | ||
| 12592 | (home-page "https://github.com/sass/sassc-ruby") | ||
| 12593 | (license license:expat))) | ||
| 12594 | |||
| 12595 | (define-public ruby-jekyll-sass-converter | ||
| 12596 | (package | ||
| 12597 | (name "ruby-jekyll-sass-converter") | ||
| 12598 | (version "2.1.0") | ||
| 12599 | (source (origin | ||
| 12600 | (method url-fetch) | ||
| 12601 | (uri (rubygems-uri "jekyll-sass-converter" version)) | ||
| 12602 | (sha256 | ||
| 12603 | (base32 | ||
| 12604 | "04ncr44wrilz26ayqwlg7379yjnkb29mvx4j04i62b7czmdrc9dv")))) | ||
| 12605 | (build-system ruby-build-system) | ||
| 12606 | (propagated-inputs | ||
| 12607 | (list ruby-sass)) | ||
| 12608 | (arguments | ||
| 12609 | ;; No rakefile | ||
| 12610 | `(#:tests? #f)) | ||
| 12611 | (home-page "https://github.com/jekyll/jekyll-sass-converter") | ||
| 12612 | (synopsis "Sass converter for Jekyll") | ||
| 12613 | (description "This gem provide built-in support for the Sass converter | ||
| 12614 | in Jekyll.") | ||
| 12615 | (license license:expat))) | ||
| 12616 | |||
| 12617 | (define-public ruby-jekyll-watch | ||
| 12618 | (package | ||
| 12619 | (name "ruby-jekyll-watch") | ||
| 12620 | (version "2.1.2") | ||
| 12621 | (source (origin | ||
| 12622 | (method url-fetch) | ||
| 12623 | (uri (rubygems-uri "jekyll-watch" version)) | ||
| 12624 | (sha256 | ||
| 12625 | (base32 | ||
| 12626 | "1s9ly83sp8albvgdff12xy2h4xd8lm6z2fah4lzmk2yvp85jzdzv")))) | ||
| 12627 | (build-system ruby-build-system) | ||
| 12628 | (propagated-inputs | ||
| 12629 | (list ruby-listen)) | ||
| 12630 | (arguments | ||
| 12631 | ;; No rakefile | ||
| 12632 | `(#:tests? #f)) | ||
| 12633 | (home-page "https://github.com/jekyll/jekyll-watch") | ||
| 12634 | (synopsis "Jekyll auto-rebuild support") | ||
| 12635 | (description "This gems add the @code{--watch} switch to the jekyll CLI | ||
| 12636 | interface. It allows Jekyll to rebuild your site when a file changes.") | ||
| 12637 | (license license:expat))) | ||
| 12638 | |||
| 12639 | (define-public ruby-parallel | ||
| 12640 | (package | ||
| 12641 | (name "ruby-parallel") | ||
| 12642 | (version "1.21.0") | ||
| 12643 | (source | ||
| 12644 | (origin | ||
| 12645 | (method git-fetch) | ||
| 12646 | (uri (git-reference | ||
| 12647 | (url "https://github.com/grosser/parallel") | ||
| 12648 | (commit (string-append "v" version)))) | ||
| 12649 | (file-name (git-file-name name version)) | ||
| 12650 | (sha256 | ||
| 12651 | (base32 | ||
| 12652 | "1xqjcvl3gq3shvrqp8wc3fbqibzh4mf1yczq6np9gd79558dwj3w")))) | ||
| 12653 | (build-system ruby-build-system) | ||
| 12654 | (arguments | ||
| 12655 | `(;; TODO 3 test failures | ||
| 12656 | ;; rspec ./spec/parallel_spec.rb:190 # Parallel.in_processes does not | ||
| 12657 | ;; open unnecessary pipes | ||
| 12658 | ;; rspec './spec/parallel_spec.rb[1:9:7]' # Parallel.each works with | ||
| 12659 | ;; SQLite in processes | ||
| 12660 | ;; rspec './spec/parallel_spec.rb[1:9:16]' # Parallel.each works with | ||
| 12661 | ;; SQLite in threads | ||
| 12662 | #:tests? #f | ||
| 12663 | #:test-target "rspec-rerun:spec" | ||
| 12664 | #:phases | ||
| 12665 | (modify-phases %standard-phases | ||
| 12666 | (add-after 'unpack 'patch-Gemfile | ||
| 12667 | (lambda _ | ||
| 12668 | (substitute* "Gemfile" | ||
| 12669 | (("gem 'rspec-legacy_formatters'") "") | ||
| 12670 | (("gem 'activerecord.*$") "gem 'activerecord'\n")))) | ||
| 12671 | (add-before 'check 'delete-Gemfile.lock | ||
| 12672 | (lambda _ | ||
| 12673 | ;; Bundler isn't being used for fetching dependencies, so | ||
| 12674 | ;; delete the Gemfile.lock | ||
| 12675 | (delete-file "Gemfile.lock"))) | ||
| 12676 | (add-before 'build 'patch-gemspec | ||
| 12677 | (lambda _ | ||
| 12678 | (substitute* "parallel.gemspec" | ||
| 12679 | (("git ls-files") "find"))))))) | ||
| 12680 | (native-inputs | ||
| 12681 | (list ruby-rspec | ||
| 12682 | ruby-rspec-rerun | ||
| 12683 | bundler | ||
| 12684 | ruby-activerecord | ||
| 12685 | ruby-progressbar | ||
| 12686 | ruby-bump | ||
| 12687 | procps | ||
| 12688 | lsof | ||
| 12689 | ruby-mysql2 | ||
| 12690 | ruby-sqlite3 | ||
| 12691 | ruby-i18n)) | ||
| 12692 | (home-page "https://github.com/grosser/parallel") | ||
| 12693 | (synopsis "Parallel processing in Ruby") | ||
| 12694 | (description "Parallel allows you to run any code in parallel Processes | ||
| 12695 | (to use all CPUs) or Threads(to speedup blocking operations). It is best | ||
| 12696 | suited for map-reduce or e.g. parallel downloads/uploads.") | ||
| 12697 | (license license:expat))) | ||
| 12698 | |||
| 12699 | (define-public ruby-cabin | ||
| 12700 | (package | ||
| 12701 | (name "ruby-cabin") | ||
| 12702 | (version "0.9.0") | ||
| 12703 | (source (origin | ||
| 12704 | (method url-fetch) | ||
| 12705 | (uri (rubygems-uri "cabin" version)) | ||
| 12706 | (sha256 | ||
| 12707 | (base32 | ||
| 12708 | "0b3b8j3iqnagjfn1261b9ncaac9g44zrx1kcg81yg4z9i513kici")))) | ||
| 12709 | (build-system ruby-build-system) | ||
| 12710 | (arguments (list #:tests? #f)) ;no Rakefile in released gem | ||
| 12711 | (synopsis "Structured and contextual logging experiments in Ruby") | ||
| 12712 | (description "This Ruby library provides an experimental logging system | ||
| 12713 | that tries to make logging more flexible and more consumable than plain-text | ||
| 12714 | logging.") | ||
| 12715 | (home-page "https://github.com/jordansissel/ruby-cabin") | ||
| 12716 | (license license:asl2.0))) | ||
| 12717 | |||
| 12718 | (define-public ruby-capybara | ||
| 12719 | (package | ||
| 12720 | (name "ruby-capybara") | ||
| 12721 | (version "3.38.0") | ||
| 12722 | (source (origin | ||
| 12723 | (method url-fetch) | ||
| 12724 | (uri (rubygems-uri "capybara" version)) | ||
| 12725 | (sha256 | ||
| 12726 | (base32 | ||
| 12727 | "123198zk2ak8mziwa5jc3ckgpmsg08zn064n3aywnqm9s1bwjv3v")))) | ||
| 12728 | (build-system ruby-build-system) | ||
| 12729 | (arguments | ||
| 12730 | (list #:tests? #f ;sinatra is currently broken with rack 3 | ||
| 12731 | #:phases | ||
| 12732 | #~(modify-phases %standard-phases | ||
| 12733 | (add-after 'extract-gemspec 'remove-extraneous-requirements | ||
| 12734 | (lambda _ | ||
| 12735 | (substitute* "spec/spec_helper.rb" | ||
| 12736 | ((".*require 'selenium_statistics'.*") "") | ||
| 12737 | ((".*SeleniumStatistics.print_results.*") "")))) | ||
| 12738 | (replace 'check | ||
| 12739 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 12740 | (when tests? | ||
| 12741 | (invoke "rspec" "spec"))))))) | ||
| 12742 | (native-inputs | ||
| 12743 | (list ruby-puma | ||
| 12744 | ruby-rspec | ||
| 12745 | ruby-selenium-webdriver | ||
| 12746 | ruby-sinatra)) | ||
| 12747 | (propagated-inputs | ||
| 12748 | (list ruby-addressable | ||
| 12749 | ruby-launchy | ||
| 12750 | ruby-matrix | ||
| 12751 | ruby-mini-mime | ||
| 12752 | ruby-nokogiri | ||
| 12753 | ruby-rack | ||
| 12754 | ruby-rack-test | ||
| 12755 | ruby-regexp-parser | ||
| 12756 | ruby-xpath)) | ||
| 12757 | (synopsis "Integration testing tool for rack-based web applications") | ||
| 12758 | (description "Capybara is an integration testing tool for rack based web | ||
| 12759 | applications. It simulates how a user would interact with a website.") | ||
| 12760 | (home-page "https://github.com/teamcapybara/capybara") | ||
| 12761 | (license license:expat))) | ||
| 12762 | |||
| 12763 | (define-public ruby-cane | ||
| 12764 | (package | ||
| 12765 | (name "ruby-cane") | ||
| 12766 | (version "3.0.0") | ||
| 12767 | (source (origin | ||
| 12768 | (method url-fetch) | ||
| 12769 | (uri (rubygems-uri "cane" version)) | ||
| 12770 | (sha256 | ||
| 12771 | (base32 | ||
| 12772 | "0yf5za3l7lhrqa3g56sah73wh33lbxy5y3cb7ij0a2bp1b4kwhih")))) | ||
| 12773 | (build-system ruby-build-system) | ||
| 12774 | (arguments `(#:tests? #f)); No rakefile | ||
| 12775 | (home-page "https://github.com/square/cane") | ||
| 12776 | (propagated-inputs | ||
| 12777 | (list ruby-parallel)) | ||
| 12778 | (synopsis "Code quality threshold checking") | ||
| 12779 | (description "Cane fails your build if code quality thresholds are not met.") | ||
| 12780 | (license license:asl2.0))) | ||
| 12781 | |||
| 12782 | (define-public ruby-morecane | ||
| 12783 | (package | ||
| 12784 | (name "ruby-morecane") | ||
| 12785 | (version "0.2.0") | ||
| 12786 | (source (origin | ||
| 12787 | (method url-fetch) | ||
| 12788 | (uri (rubygems-uri "morecane" version)) | ||
| 12789 | (sha256 | ||
| 12790 | (base32 | ||
| 12791 | "0w70vb8z5bdhvr21h660aa43m5948pv0bd27z7ngai2iwdvqd771")))) | ||
| 12792 | (build-system ruby-build-system) | ||
| 12793 | (home-page "https://github.com/yob/morecane") | ||
| 12794 | (arguments `(#:tests? #f)); No rakefile | ||
| 12795 | (propagated-inputs | ||
| 12796 | (list ruby-parallel)) | ||
| 12797 | (synopsis "Extra checks for cane") | ||
| 12798 | (description "The cane gem provides a great framework for running quality | ||
| 12799 | checks over your ruby project as part of continuous integration build. It | ||
| 12800 | comes with a few checks out of the box, but also provides an API for loading | ||
| 12801 | custom checks. This gem provides a set of additional checks.") | ||
| 12802 | (license license:expat))) | ||
| 12803 | |||
| 12804 | (define-public ruby-pdf-reader | ||
| 12805 | (package | ||
| 12806 | (name "ruby-pdf-reader") | ||
| 12807 | (version "2.4.0") | ||
| 12808 | (source (origin | ||
| 12809 | (method git-fetch) ;no test in distributed gem archive | ||
| 12810 | (uri (git-reference | ||
| 12811 | (url "https://github.com/yob/pdf-reader") | ||
| 12812 | (commit (string-append "v" version)))) | ||
| 12813 | (file-name (git-file-name name version)) | ||
| 12814 | (sha256 | ||
| 12815 | (base32 | ||
| 12816 | "1yh8yrlssf5ppnkvk4m78vmh5r5vqwdcd0gm3lqipw162llz0rai")))) | ||
| 12817 | (build-system ruby-build-system) | ||
| 12818 | (arguments `(#:test-target "spec" | ||
| 12819 | #:phases (modify-phases %standard-phases | ||
| 12820 | (add-after 'unpack 'do-not-use-bundler | ||
| 12821 | (lambda _ | ||
| 12822 | (substitute* "spec/spec_helper.rb" | ||
| 12823 | ((".*[Bb]undler.*") ""))))))) | ||
| 12824 | (native-inputs | ||
| 12825 | (list ruby-rspec ruby-cane ruby-morecane)) | ||
| 12826 | (propagated-inputs | ||
| 12827 | (list ruby-afm ruby-ascii85 ruby-hashery ruby-rc4 ruby-ttfunk)) | ||
| 12828 | (home-page "https://github.com/yob/pdf-reader") | ||
| 12829 | (synopsis "PDF parser in Ruby") | ||
| 12830 | (description "The PDF::Reader library implements a PDF parser conforming as | ||
| 12831 | much as possible to the PDF specification from Adobe. It provides programmatic | ||
| 12832 | access to the contents of a PDF file with a high degree of flexibility.") | ||
| 12833 | (license license:gpl3+))) | ||
| 12834 | |||
| 12835 | (define-public ruby-pdf-inspector | ||
| 12836 | (let ((revision "1") | ||
| 12837 | (commit "00ee4c92ff917118785ebec188e81effc968abeb")) | ||
| 12838 | (package | ||
| 12839 | (name "ruby-pdf-inspector") | ||
| 12840 | (version (git-version "1.3.0" revision commit)) | ||
| 12841 | (source (origin | ||
| 12842 | (method git-fetch) | ||
| 12843 | (uri (git-reference | ||
| 12844 | (url "https://github.com/prawnpdf/pdf-inspector") | ||
| 12845 | (commit commit))) | ||
| 12846 | (file-name (git-file-name name version)) | ||
| 12847 | (sha256 | ||
| 12848 | (base32 | ||
| 12849 | "0h9w81ddd0gvkh5n2cvny9ddb5qiac1si0dhinkk0xxh5382qs0m")))) | ||
| 12850 | (build-system ruby-build-system) | ||
| 12851 | (arguments | ||
| 12852 | `(#:test-target "spec" | ||
| 12853 | #:phases (modify-phases %standard-phases | ||
| 12854 | (add-before 'build 'drop-signing-key-requirement | ||
| 12855 | (lambda _ | ||
| 12856 | (substitute* "pdf-inspector.gemspec" | ||
| 12857 | (("spec.signing_key =.*") | ||
| 12858 | "spec.signing_key = nil")))) | ||
| 12859 | (replace 'check | ||
| 12860 | (lambda _ | ||
| 12861 | (substitute* "pdf-inspector.gemspec" | ||
| 12862 | ((".*rubocop.*") "") | ||
| 12863 | ((".*yard.*") "")) | ||
| 12864 | (invoke "rspec")))))) | ||
| 12865 | (native-inputs | ||
| 12866 | (list ruby-rspec)) | ||
| 12867 | (propagated-inputs | ||
| 12868 | (list ruby-pdf-reader)) | ||
| 12869 | (home-page "https://github.com/prawnpdf/pdf-inspector") | ||
| 12870 | (synopsis "Analysis classes for inspecting PDF output") | ||
| 12871 | (description "This library provides a number of PDF::Reader based tools for | ||
| 12872 | use in testing PDF output. Presently, the primary purpose of this tool is to | ||
| 12873 | support the tests found in Prawn, a pure Ruby PDF generation library.") | ||
| 12874 | (license %prawn-project-licenses)))) | ||
| 12875 | |||
| 12876 | (define-public ruby-pdf-core | ||
| 12877 | (package | ||
| 12878 | (name "ruby-pdf-core") | ||
| 12879 | (version "0.9.0") | ||
| 12880 | (source (origin | ||
| 12881 | (method url-fetch) | ||
| 12882 | (uri (rubygems-uri "pdf-core" version)) | ||
| 12883 | (sha256 | ||
| 12884 | (base32 | ||
| 12885 | "1fz0yj4zrlii2j08kaw11j769s373ayz8jrdhxwwjzmm28pqndjg")))) | ||
| 12886 | (build-system ruby-build-system) | ||
| 12887 | (arguments | ||
| 12888 | ; No test target | ||
| 12889 | `(#:tests? #f)) | ||
| 12890 | (home-page "https://github.com/prawnpdf/pdf-core") | ||
| 12891 | (synopsis "Low level PDF features for Prawn") | ||
| 12892 | (description "This is an experimental gem that extracts low-level PDF | ||
| 12893 | functionality from Prawn.") | ||
| 12894 | (license license:gpl3+))) | ||
| 12895 | |||
| 12896 | (define-public ruby-prawn-dev | ||
| 12897 | (package | ||
| 12898 | (name "ruby-prawn-dev") | ||
| 12899 | (version "0.3.0") | ||
| 12900 | (source (origin | ||
| 12901 | (method url-fetch) | ||
| 12902 | (uri (rubygems-uri "prawn-dev" version)) | ||
| 12903 | (sha256 | ||
| 12904 | (base32 | ||
| 12905 | "1hbzzgm0nwc6h8pyv8h9xx068bf676rispxcz4a0sm8nykz54z4x")))) | ||
| 12906 | (build-system ruby-build-system) | ||
| 12907 | (arguments | ||
| 12908 | (list | ||
| 12909 | #:tests? #f ;no test suite | ||
| 12910 | #:phases | ||
| 12911 | #~(modify-phases %standard-phases | ||
| 12912 | (add-after 'extract-gemspec 'drop-rubocop-dependency | ||
| 12913 | ;; Rubocop depends on Prawn. Remove it to avoid the | ||
| 12914 | ;; dependency cycle when using this tool to build | ||
| 12915 | ;; Prawn components. | ||
| 12916 | (lambda _ | ||
| 12917 | (substitute* "lib/prawn/dev/tasks.rb" | ||
| 12918 | (("require 'rubocop/rake_task'") | ||
| 12919 | "") | ||
| 12920 | (("RuboCop::RakeTask.new") | ||
| 12921 | "")) | ||
| 12922 | (substitute* ".gemspec" | ||
| 12923 | ((".*add.*dependency.*(rubocop|simplecov).*") | ||
| 12924 | ""))))))) | ||
| 12925 | (propagated-inputs (list ruby-rake ruby-rspec ruby-yard)) | ||
| 12926 | (synopsis "Shared tools for Prawn projects development") | ||
| 12927 | (description "Prawn-dev contains tools to aid the development of the | ||
| 12928 | various Prawn projects.") | ||
| 12929 | (home-page "https://prawnpdf.org/") | ||
| 12930 | (license license:expat))) | ||
| 12931 | |||
| 12932 | (define-public ruby-prawn | ||
| 12933 | ;; There hasn't been a new release since 2017/03/17. | ||
| 12934 | (package | ||
| 12935 | (name "ruby-prawn") | ||
| 12936 | (version "2.4.0") | ||
| 12937 | (source (origin | ||
| 12938 | (method git-fetch) | ||
| 12939 | (uri (git-reference | ||
| 12940 | (url "https://github.com/prawnpdf/prawn") | ||
| 12941 | (commit version))) | ||
| 12942 | (file-name (git-file-name name version)) | ||
| 12943 | (sha256 | ||
| 12944 | (base32 | ||
| 12945 | "1h1gww12wcdscij0lnd21p9zcbwrwc3miini5ppannc2birmj9ja")))) | ||
| 12946 | (build-system ruby-build-system) | ||
| 12947 | (arguments | ||
| 12948 | (list | ||
| 12949 | #:phases | ||
| 12950 | #~(modify-phases %standard-phases | ||
| 12951 | (add-before 'build 'drop-signing-key-requirement | ||
| 12952 | (lambda _ | ||
| 12953 | (substitute* "prawn.gemspec" | ||
| 12954 | (("spec.signing_key =.*") | ||
| 12955 | "spec.signing_key = nil")))) | ||
| 12956 | (replace 'check | ||
| 12957 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 12958 | (when tests? | ||
| 12959 | ;; The Prawn manual test fails (see: | ||
| 12960 | ;; https://github.com/prawnpdf/prawn/issues/1163), so exclude | ||
| 12961 | ;; it. | ||
| 12962 | (invoke "rspec" | ||
| 12963 | "--exclude-pattern" "prawn_manual_spec.rb"))))))) | ||
| 12964 | (propagated-inputs | ||
| 12965 | (list ruby-matrix | ||
| 12966 | ruby-pdf-core | ||
| 12967 | ruby-ttfunk)) | ||
| 12968 | (native-inputs | ||
| 12969 | (list ruby-pdf-inspector | ||
| 12970 | ruby-prawn-manual-builder | ||
| 12971 | ruby-prawn-dev)) | ||
| 12972 | (home-page "https://prawnpdf.org/api-docs/2.0/") | ||
| 12973 | (synopsis "PDF generation for Ruby") | ||
| 12974 | (description "Prawn is a pure Ruby PDF generation library.") | ||
| 12975 | (license %prawn-project-licenses))) | ||
| 12976 | |||
| 12977 | (define-public ruby-prawn-table | ||
| 12978 | (package | ||
| 12979 | (name "ruby-prawn-table") | ||
| 12980 | (version "0.2.2") | ||
| 12981 | (source (origin | ||
| 12982 | (method url-fetch) | ||
| 12983 | (uri (rubygems-uri "prawn-table" version)) | ||
| 12984 | (sha256 | ||
| 12985 | (base32 | ||
| 12986 | "1nxd6qmxqwl850icp18wjh5k0s3amxcajdrkjyzpfgq0kvilcv9k")))) | ||
| 12987 | (build-system ruby-build-system) | ||
| 12988 | (propagated-inputs | ||
| 12989 | (list ruby-prawn ruby-pdf-inspector)) | ||
| 12990 | (native-inputs | ||
| 12991 | `(("bundler" ,bundler) | ||
| 12992 | ("ruby-yard" ,ruby-yard) | ||
| 12993 | ("ruby-mocha" ,ruby-mocha) | ||
| 12994 | ("ruby-coderay" ,ruby-coderay) | ||
| 12995 | ("ruby-prawn-manual-builder" ,ruby-prawn-manual-builder) | ||
| 12996 | ("ruby-simplecov" ,ruby-simplecov) | ||
| 12997 | ("ruby-rspec-2" ,ruby-rspec-2))) | ||
| 12998 | (arguments | ||
| 12999 | '(;; TODO: 1 test fails | ||
| 13000 | ;; Failure/Error: pdf.page_count.should == 1 | ||
| 13001 | ;; expected: 1 | ||
| 13002 | ;; got: 2 (using ==) | ||
| 13003 | ;; # ./spec/table_spec.rb:1308 | ||
| 13004 | ;; | ||
| 13005 | ;; 225 examples, 1 failure | ||
| 13006 | #:tests? #f | ||
| 13007 | #:phases | ||
| 13008 | (modify-phases %standard-phases | ||
| 13009 | (add-before 'check 'patch-gemspec | ||
| 13010 | (lambda _ | ||
| 13011 | (substitute* "prawn-table.gemspec" | ||
| 13012 | ;; Loosen the requirement for pdf-inspector | ||
| 13013 | (("~> 1\\.1\\.0") ">= 0") | ||
| 13014 | ;; Loosen the requirement for pdf-reader | ||
| 13015 | (("~> 1\\.2") ">= 0")))) | ||
| 13016 | (replace 'check | ||
| 13017 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 13018 | (when tests? | ||
| 13019 | (invoke "rspec"))))))) | ||
| 13020 | (home-page "https://github.com/prawnpdf/prawn-table") | ||
| 13021 | (synopsis "Tables support for Prawn") | ||
| 13022 | (description "This gem provides tables support for Prawn.") | ||
| 13023 | (license license:gpl3+))) | ||
| 13024 | |||
| 13025 | (define-public ruby-kramdown | ||
| 13026 | (package | ||
| 13027 | (name "ruby-kramdown") | ||
| 13028 | (version "2.3.1") | ||
| 13029 | (source (origin | ||
| 13030 | (method url-fetch) | ||
| 13031 | (uri (rubygems-uri "kramdown" version)) | ||
| 13032 | (sha256 | ||
| 13033 | (base32 | ||
| 13034 | "0jdbcjv4v7sj888bv3vc6d1dg4ackkh7ywlmn9ln2g9alk7kisar")))) | ||
| 13035 | (build-system ruby-build-system) | ||
| 13036 | (arguments `(#:tests? #f)); FIXME: some test failures | ||
| 13037 | (native-inputs | ||
| 13038 | (list ruby-prawn ruby-prawn-table)) | ||
| 13039 | (home-page "https://kramdown.gettalong.org/") | ||
| 13040 | (synopsis "Markdown parsing and converting library") | ||
| 13041 | (description "Kramdown is a library for parsing and converting a superset | ||
| 13042 | of Markdown. It is completely written in Ruby, supports standard Markdown | ||
| 13043 | (with some minor modifications) and various extensions that have been made | ||
| 13044 | popular by the PHP @code{Markdown Extra} package and @code{Maruku}.") | ||
| 13045 | (license license:expat))) | ||
| 13046 | |||
| 13047 | (define-public ruby-kramdown-parser-gfm | ||
| 13048 | (package | ||
| 13049 | (name "ruby-kramdown-parser-gfm") | ||
| 13050 | (version "1.1.0") | ||
| 13051 | (source | ||
| 13052 | (origin | ||
| 13053 | (method url-fetch) | ||
| 13054 | (uri (rubygems-uri "kramdown-parser-gfm" version)) | ||
| 13055 | (sha256 | ||
| 13056 | (base32 "0a8pb3v951f4x7h968rqfsa19c8arz21zw1vaj42jza22rap8fgv")))) | ||
| 13057 | (build-system ruby-build-system) | ||
| 13058 | (arguments | ||
| 13059 | `(#:tests? #f)) ;no rakefile | ||
| 13060 | (propagated-inputs | ||
| 13061 | (list ruby-kramdown)) | ||
| 13062 | (synopsis "Kramdown parser for the GFM dialect of Markdown") | ||
| 13063 | (description | ||
| 13064 | "This is a parser for kramdown that converts Markdown documents in the | ||
| 13065 | GFM dialect to HTML.") | ||
| 13066 | (home-page "https://github.com/kramdown/parser-gfm") | ||
| 13067 | (license license:expat))) | ||
| 13068 | |||
| 13069 | (define-public ruby-http-parser.rb | ||
| 13070 | (package | ||
| 13071 | (name "ruby-http-parser.rb") | ||
| 13072 | (version "0.6.0") | ||
| 13073 | (source | ||
| 13074 | (origin | ||
| 13075 | (method url-fetch) | ||
| 13076 | (uri (rubygems-uri "http_parser.rb" version)) | ||
| 13077 | (sha256 | ||
| 13078 | (base32 | ||
| 13079 | "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi")))) | ||
| 13080 | (build-system ruby-build-system) | ||
| 13081 | (arguments | ||
| 13082 | ;; No tests | ||
| 13083 | `(#:tests? #f)) | ||
| 13084 | (native-inputs | ||
| 13085 | (list ruby-rake-compiler ruby-rspec)) | ||
| 13086 | (home-page "https://github.com/tmm1/http_parser.rb") | ||
| 13087 | (synopsis "HTTP parser un Ruby") | ||
| 13088 | (description "This gem is a simple callback-based HTTP request/response | ||
| 13089 | parser for writing http servers, clients and proxies.") | ||
| 13090 | (license license:expat))) | ||
| 13091 | |||
| 13092 | (define-public ruby-excon | ||
| 13093 | (package | ||
| 13094 | (name "ruby-excon") | ||
| 13095 | (version "0.109.0") | ||
| 13096 | (source (origin | ||
| 13097 | (method git-fetch) ;for tests | ||
| 13098 | (uri (git-reference | ||
| 13099 | (url "https://github.com/excon/excon") | ||
| 13100 | (commit (string-append "v" version)))) | ||
| 13101 | (file-name (git-file-name name version)) | ||
| 13102 | (sha256 | ||
| 13103 | (base32 | ||
| 13104 | "199niqbpzj70k3n6ybg4vbcw3qm76kwic4nl9747l1n0v49aaj24")))) | ||
| 13105 | (build-system ruby-build-system) | ||
| 13106 | (arguments | ||
| 13107 | (list | ||
| 13108 | #:tests? #f ;; some tests require DNS | ||
| 13109 | #:phases | ||
| 13110 | #~(modify-phases %standard-phases | ||
| 13111 | (replace 'replace-git-ls-files | ||
| 13112 | (lambda _ | ||
| 13113 | (substitute* "excon.gemspec" | ||
| 13114 | (("`git ls-files -- data/. lib/.`") | ||
| 13115 | "`find data lib -type f`")))) | ||
| 13116 | (add-before 'check 'disable-server-spec-checks | ||
| 13117 | (lambda _ ;; TODO: Remove this if ruby-unicorn is available. | ||
| 13118 | ;; Some of the tests in this file require ruby-unicorn, which is | ||
| 13119 | ;; not yet packaged for guix and would pull in a lot of other | ||
| 13120 | ;; dependencies. | ||
| 13121 | (delete-file "spec/excon/test/server_spec.rb")))))) | ||
| 13122 | (native-inputs | ||
| 13123 | (list | ||
| 13124 | ruby-activesupport | ||
| 13125 | ruby-eventmachine | ||
| 13126 | ruby-json | ||
| 13127 | ruby-open4 | ||
| 13128 | ruby-puma | ||
| 13129 | ruby-rspec | ||
| 13130 | ruby-shindo | ||
| 13131 | ruby-sinatra | ||
| 13132 | ruby-webrick)) | ||
| 13133 | (synopsis "Usable, fast, simple Ruby HTTP 1.1") | ||
| 13134 | (description "Excon was designed to be simple, fast and performant. It | ||
| 13135 | works great as a general HTTP(s) client and is particularly well suited to | ||
| 13136 | usage in API clients.") | ||
| 13137 | (home-page "https://github.com/excon/excon") | ||
| 13138 | (license license:expat))) | ||
| 13139 | |||
| 13140 | (define-public ruby-em-websocket | ||
| 13141 | (package | ||
| 13142 | (name "ruby-em-websocket") | ||
| 13143 | (version "0.5.1") | ||
| 13144 | (source | ||
| 13145 | (origin | ||
| 13146 | (method url-fetch) | ||
| 13147 | (uri (rubygems-uri "em-websocket" version)) | ||
| 13148 | (sha256 | ||
| 13149 | (base32 | ||
| 13150 | "1bsw8vjz0z267j40nhbmrvfz7dvacq4p0pagvyp17jif6mj6v7n3")))) | ||
| 13151 | (build-system ruby-build-system) | ||
| 13152 | (arguments | ||
| 13153 | ;; No tests | ||
| 13154 | `(#:tests? #f)) | ||
| 13155 | (propagated-inputs | ||
| 13156 | (list ruby-eventmachine ruby-http-parser.rb)) | ||
| 13157 | (native-inputs | ||
| 13158 | (list bundler ruby-rspec)) | ||
| 13159 | (home-page "https://github.com/igrigorik/em-websocket") | ||
| 13160 | (synopsis "EventMachine based WebSocket server") | ||
| 13161 | (description "Em-websocket is an EventMachine based WebSocket server | ||
| 13162 | implementation.") | ||
| 13163 | (license license:expat))) | ||
| 13164 | |||
| 13165 | (define-public ruby-rouge | ||
| 13166 | (package | ||
| 13167 | (name "ruby-rouge") | ||
| 13168 | (version "3.26.1") | ||
| 13169 | (source (origin | ||
| 13170 | (method url-fetch) | ||
| 13171 | (uri (rubygems-uri "rouge" version)) | ||
| 13172 | (sha256 | ||
| 13173 | (base32 | ||
| 13174 | "197k0vskf72wxx0gzwld2jzg27bb7982xlvnzy9adlvkzp7nh8vf")))) | ||
| 13175 | (build-system ruby-build-system) | ||
| 13176 | (arguments `(#:tests? #f)); No rakefile | ||
| 13177 | (home-page "http://rouge.jneen.net/") | ||
| 13178 | (synopsis "Code highlighter") | ||
| 13179 | (description "Rouge is a code highlighter written in Ruby. It supports more | ||
| 13180 | than 100 languages and outputs HTML or ANSI 256-color text. Its HTML output | ||
| 13181 | is compatible with stylesheets designed for pygments.") | ||
| 13182 | (license (list | ||
| 13183 | ;; rouge is licensed under expat | ||
| 13184 | license:expat | ||
| 13185 | ;; pygments is licensed under bsd-2 | ||
| 13186 | license:bsd-2)))) | ||
| 13187 | |||
| 13188 | (define-public ruby-hashie | ||
| 13189 | (let ((commit "73510552ba580867e9882fe092568916cbcd810b") | ||
| 13190 | (revision "0")) | ||
| 13191 | (package | ||
| 13192 | (name "ruby-hashie") | ||
| 13193 | (version (git-version "5.0.0" revision commit)) | ||
| 13194 | (source (origin | ||
| 13195 | (method git-fetch) ;for tests | ||
| 13196 | (uri (git-reference | ||
| 13197 | (url "https://github.com/hashie/hashie") | ||
| 13198 | (commit commit))) | ||
| 13199 | (file-name (git-file-name name version)) | ||
| 13200 | (sha256 | ||
| 13201 | (base32 | ||
| 13202 | "08rpx040h6vgx6ynk6w029f7z7c8aj2p4v135k2l1zxvnw617ddw")))) | ||
| 13203 | (build-system ruby-build-system) | ||
| 13204 | (arguments | ||
| 13205 | (list #:test-target "spec" | ||
| 13206 | #:phases #~(modify-phases %standard-phases | ||
| 13207 | (add-after 'unpack 'disable-bundler | ||
| 13208 | (lambda _ | ||
| 13209 | (substitute* "Rakefile" | ||
| 13210 | ((".*require 'bundler'.*") "") | ||
| 13211 | ((".*Bundler.setup.*") "") | ||
| 13212 | (("Bundler::GemHelper\\.install_tasks") "")))) | ||
| 13213 | (add-after 'unpack 'disable-rubocop | ||
| 13214 | (lambda _ | ||
| 13215 | (substitute* "Rakefile" | ||
| 13216 | (("require 'rubocop/rake_task'") "") | ||
| 13217 | (("RuboCop::RakeTask.new") "")))) | ||
| 13218 | (add-after 'unpack 'relax-requirements | ||
| 13219 | (lambda _ | ||
| 13220 | ;; Contains multiple extraneous dependencies. | ||
| 13221 | (delete-file "Gemfile")))))) | ||
| 13222 | (native-inputs (list ruby-json ruby-pry ruby-rspec ruby-rspec-pending-for)) | ||
| 13223 | (home-page "https://github.com/hashie/hashie") | ||
| 13224 | (synopsis "Extensions to Ruby Hashes") | ||
| 13225 | (description "Hashie is a collection of classes and mixins that make Ruby | ||
| 13226 | hashes more powerful.") | ||
| 13227 | (license license:expat)))) | ||
| 13228 | |||
| 13229 | (define-public ruby-heredoc-unindent | ||
| 13230 | (package | ||
| 13231 | (name "ruby-heredoc-unindent") | ||
| 13232 | (version "1.2.0") | ||
| 13233 | (source (origin | ||
| 13234 | (method url-fetch) | ||
| 13235 | (uri (rubygems-uri "heredoc_unindent" version)) | ||
| 13236 | (sha256 | ||
| 13237 | (base32 | ||
| 13238 | "14ijr2fsjwhrkjkcaz81d5xnfa4vvgvcflrff83avqw9klm011yw")))) | ||
| 13239 | (build-system ruby-build-system) | ||
| 13240 | (native-inputs | ||
| 13241 | (list ruby-hoe-3)) | ||
| 13242 | (home-page "https://github.com/adrianomitre/heredoc_unindent") | ||
| 13243 | (synopsis "Heredoc indentation cleaner") | ||
| 13244 | (description "This gem removes common margin from indented strings, such | ||
| 13245 | as the ones produced by indented heredocs. In other words, it strips out | ||
| 13246 | leading whitespace chars at the beginning of each line, but only as much as | ||
| 13247 | the line with the smallest margin. | ||
| 13248 | |||
| 13249 | It is acknowledged that many strings defined by heredocs are just code and | ||
| 13250 | fact is that most parsers are insensitive to indentation. If, however, the | ||
| 13251 | strings are to be used otherwise, be it for printing or testing, the extra | ||
| 13252 | indentation will probably be an issue and hence this gem.") | ||
| 13253 | (license license:expat))) | ||
| 13254 | |||
| 13255 | (define-public ruby-safe-yaml | ||
| 13256 | (package | ||
| 13257 | (name "ruby-safe-yaml") | ||
| 13258 | (version "1.0.5") | ||
| 13259 | (source | ||
| 13260 | (origin | ||
| 13261 | (method git-fetch) | ||
| 13262 | (uri (git-reference | ||
| 13263 | (url "https://github.com/dtao/safe_yaml") | ||
| 13264 | (commit version))) | ||
| 13265 | (file-name (git-file-name name version)) | ||
| 13266 | (sha256 | ||
| 13267 | (base32 | ||
| 13268 | "1a0wh7y3va2m7bjza95na2snw0vrdh9syz40mpjvjphbc4ph3pzg")))) | ||
| 13269 | (build-system ruby-build-system) | ||
| 13270 | (native-inputs | ||
| 13271 | (list ruby-rspec ruby-hashie ruby-heredoc-unindent)) | ||
| 13272 | (arguments | ||
| 13273 | (list | ||
| 13274 | ;; Tests are broken since the move to ruby@3. | ||
| 13275 | ;; There's ongoing effort on the Jekyll dependent | ||
| 13276 | ;; to remove this orphan dependency. | ||
| 13277 | #:tests? #f ; broken since move to ruby@3 | ||
| 13278 | #:test-target "spec" | ||
| 13279 | #:phases | ||
| 13280 | #~(modify-phases %standard-phases | ||
| 13281 | (add-before 'check 'set-TZ | ||
| 13282 | (lambda _ | ||
| 13283 | ;; This test is dependent on the timezone | ||
| 13284 | ;; spec/transform/to_date_spec.rb:35 | ||
| 13285 | ;; # SafeYAML::Transform::ToDate converts times to the local | ||
| 13286 | ;; timezone | ||
| 13287 | (setenv "TZ" "UTC-11")))))) | ||
| 13288 | (home-page "https://github.com/dtao/safe_yaml") | ||
| 13289 | (synopsis "YAML parser") | ||
| 13290 | (description "The SafeYAML gem provides an alternative implementation of | ||
| 13291 | YAML.load suitable for accepting user input in Ruby applications.") | ||
| 13292 | (license license:expat))) | ||
| 13293 | |||
| 13294 | (define-public ruby-yaml-lint | ||
| 13295 | ;; No tags for releases. | ||
| 13296 | (let ((commit "d6a253f7d33234a9c24660d582cf7014e882c0c2") | ||
| 13297 | (revision "0")) | ||
| 13298 | (package | ||
| 13299 | (name "ruby-yaml-lint") | ||
| 13300 | (version (git-version "0.1.2" revision commit)) | ||
| 13301 | (source | ||
| 13302 | (origin | ||
| 13303 | (method git-fetch) | ||
| 13304 | (uri (git-reference | ||
| 13305 | (url "https://github.com/Pryz/yaml-lint") | ||
| 13306 | (commit commit))) | ||
| 13307 | (file-name (git-file-name name version)) | ||
| 13308 | (sha256 | ||
| 13309 | (base32 "0zk0jwzmcaaiyixjvkzdb54xhiqcnjkma72nkv0vm5csaphfdjkx")))) | ||
| 13310 | (build-system ruby-build-system) | ||
| 13311 | (arguments | ||
| 13312 | `(#:phases | ||
| 13313 | (modify-phases %standard-phases | ||
| 13314 | (replace 'check | ||
| 13315 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 13316 | (when tests? | ||
| 13317 | (invoke "rspec"))))))) | ||
| 13318 | (native-inputs | ||
| 13319 | (list ruby-coveralls ruby-rspec ruby-simplecov)) | ||
| 13320 | (synopsis "Simple YAML check tool") | ||
| 13321 | (description | ||
| 13322 | "@code{yaml-lint} will simply try to load the YAML file with the built-in | ||
| 13323 | Ruby yaml library.") | ||
| 13324 | (home-page "https://github.com/Pryz/yaml-lint") | ||
| 13325 | (license license:expat)))) | ||
| 13326 | |||
| 13327 | (define-public ruby-matrix | ||
| 13328 | (package | ||
| 13329 | (name "ruby-matrix") | ||
| 13330 | (version "0.4.2") | ||
| 13331 | (source (origin | ||
| 13332 | (method git-fetch) ;for tests | ||
| 13333 | (uri (git-reference | ||
| 13334 | (url "https://github.com/ruby/matrix") | ||
| 13335 | (commit (string-append "v" version)))) | ||
| 13336 | (file-name (git-file-name name version)) | ||
| 13337 | (sha256 | ||
| 13338 | (base32 | ||
| 13339 | "1asxr0jzh39lk5f8a9wm5avykrcy0v2wgd1bl3cszjczh99xy5k2")))) | ||
| 13340 | (build-system ruby-build-system) | ||
| 13341 | (synopsis "@code{Matrix} and @code{Vector} classes implementation for Ruby") | ||
| 13342 | (description "This Ruby library provides an implementation of the | ||
| 13343 | @code{Matrix} and @code{Vector} classes. The @code{Matrix} class represents a | ||
| 13344 | mathematical matrix. It provides methods for creating matrices, operating on | ||
| 13345 | them arithmetically and algebraically, and determining their mathematical | ||
| 13346 | properties (trace, rank, inverse, determinant, eigensystem, etc.). The | ||
| 13347 | @code{Vector} class represents a mathematical vector, which is useful in its | ||
| 13348 | own right, and also constitutes a row or column of a @code{Matrix}.") | ||
| 13349 | (home-page "https://github.com/ruby/matrix") | ||
| 13350 | (license license:bsd-2))) | ||
| 13351 | |||
| 13352 | (define-public ruby-m | ||
| 13353 | (package | ||
| 13354 | (name "ruby-m") | ||
| 13355 | (version "1.6.1") | ||
| 13356 | (source (origin | ||
| 13357 | (method git-fetch) ;for tests | ||
| 13358 | (uri (git-reference | ||
| 13359 | (url "https://github.com/qrush/m") | ||
| 13360 | (commit (string-append "v" version)))) | ||
| 13361 | (file-name (git-file-name name version)) | ||
| 13362 | (sha256 | ||
| 13363 | (base32 | ||
| 13364 | "1aycfc8l1bsln1y300fv75fknn4amjcvc4rm2kd8hb6cqivjq5rg")))) | ||
| 13365 | (build-system ruby-build-system) | ||
| 13366 | (arguments | ||
| 13367 | (list | ||
| 13368 | #:phases | ||
| 13369 | #~(modify-phases %standard-phases | ||
| 13370 | (add-after 'unpack 'sanitize-dependencies | ||
| 13371 | (lambda _ | ||
| 13372 | (delete-file "Gemfile") | ||
| 13373 | (delete-file "Gemfile.lock") | ||
| 13374 | ;; Rocco is unmaintained as of 2023/01/08; avoid depending on | ||
| 13375 | ;; it. | ||
| 13376 | (substitute* "m.gemspec" | ||
| 13377 | ;; The rdiscount and rocco dependencies are used for | ||
| 13378 | ;; generating the documentation. | ||
| 13379 | ((".*rdiscount.*") "") | ||
| 13380 | ((".*rocco.*") "") | ||
| 13381 | ((".*appraisal.*") "") | ||
| 13382 | ((".*coveralls.*") "")) | ||
| 13383 | (substitute* "Rakefile" | ||
| 13384 | ;; ruby-appraisal is not packaged, and is used to test against | ||
| 13385 | ;; various dependencies; circumvent its use. | ||
| 13386 | ((".*require 'appraisal'.*") "") | ||
| 13387 | ((".*require 'coveralls'.*") "") | ||
| 13388 | (("appraisal [:graphic:]+ rake") | ||
| 13389 | "rake") | ||
| 13390 | (("Coveralls.push!") "")))) | ||
| 13391 | (add-before 'replace-git-ls-files 'pre-replace-git-ls-files | ||
| 13392 | (lambda _ | ||
| 13393 | (substitute* "m.gemspec" | ||
| 13394 | (("git ls-files -- bin/\\*") | ||
| 13395 | "find bin -type f -not -regex '.*\\.gem$' | sort") | ||
| 13396 | (("git ls-files -- \\{test,spec,features}/\\*") | ||
| 13397 | "find test -type f -not -regex '.*\\.gem$' | sort")))) | ||
| 13398 | (delete 'check) | ||
| 13399 | (add-after 'install 'check | ||
| 13400 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 13401 | (setenv "GEM_PATH" (string-append | ||
| 13402 | (getenv "GEM_PATH") ":" | ||
| 13403 | #$output "/lib/ruby/vendor_ruby")) | ||
| 13404 | (when tests? | ||
| 13405 | (invoke "rake" "test"))))))) | ||
| 13406 | (native-inputs (list ruby-activesupport)) | ||
| 13407 | (propagated-inputs (list ruby-method-source ruby-rake)) | ||
| 13408 | (synopsis "Ruby test runner that can run tests by line number") | ||
| 13409 | (description "@code{m} stands for metal, a better test/unit and | ||
| 13410 | @code{minitest} test runner that can run tests by line number.") | ||
| 13411 | (home-page "https://github.com/qrush/m") | ||
| 13412 | (license license:expat))) | ||
| 13413 | |||
| 13414 | (define-public ruby-mercenary | ||
| 13415 | (package | ||
| 13416 | (name "ruby-mercenary") | ||
| 13417 | (version "0.4.0") | ||
| 13418 | (source (origin | ||
| 13419 | (method url-fetch) | ||
| 13420 | (uri (rubygems-uri "mercenary" version)) | ||
| 13421 | (sha256 | ||
| 13422 | (base32 | ||
| 13423 | "0f2i827w4lmsizrxixsrv2ssa3gk1b7lmqh8brk8ijmdb551wnmj")))) | ||
| 13424 | (build-system ruby-build-system) | ||
| 13425 | (arguments `(#:test-target "spec")) | ||
| 13426 | (native-inputs | ||
| 13427 | (list bundler)) | ||
| 13428 | (home-page "https://github.com/jekyll/mercenary") | ||
| 13429 | (synopsis "Command-line apps library in Ruby") | ||
| 13430 | (description "Mercenary is a lightweight and flexible library for writing | ||
| 13431 | command-line apps in Ruby.") | ||
| 13432 | (license license:expat))) | ||
| 13433 | |||
| 13434 | (define-public ruby-launchy | ||
| 13435 | (package | ||
| 13436 | (name "ruby-launchy") | ||
| 13437 | (version "2.5.2") | ||
| 13438 | (source (origin | ||
| 13439 | (method url-fetch) | ||
| 13440 | (uri (rubygems-uri "launchy" version)) | ||
| 13441 | (sha256 | ||
| 13442 | (base32 | ||
| 13443 | "06r43899384das2bkbrpsdxsafyyqa94il7111053idfalb4984a")))) | ||
| 13444 | (build-system ruby-build-system) | ||
| 13445 | (native-inputs (list curl links ruby-simplecov)) | ||
| 13446 | (propagated-inputs (list ruby-addressable)) | ||
| 13447 | (synopsis "Ruby helper class for launching applications") | ||
| 13448 | (description | ||
| 13449 | "Launchy is helper class for launching applications in a fire and forget | ||
| 13450 | manner. The aim of Launchy is to provide a common approach to launching | ||
| 13451 | external applications from within Ruby programs.") | ||
| 13452 | (home-page "https://github.com/copiousfreetime/launchy") | ||
| 13453 | (license license:isc))) | ||
| 13454 | |||
| 13455 | (define-public ruby-liquid | ||
| 13456 | (package | ||
| 13457 | (name "ruby-liquid") | ||
| 13458 | (version "5.4.0") | ||
| 13459 | (source (origin | ||
| 13460 | (method git-fetch) ;for tests | ||
| 13461 | (uri (git-reference | ||
| 13462 | (url "https://github.com/Shopify/liquid") | ||
| 13463 | (commit (string-append "v" version)))) | ||
| 13464 | (file-name (git-file-name name version)) | ||
| 13465 | (sha256 | ||
| 13466 | (base32 | ||
| 13467 | "1qdnvd1f9zs6wyilcgxyh93wis7ikbpimjxfpbkpk2ngr1m2c8la")))) | ||
| 13468 | (build-system ruby-build-system) | ||
| 13469 | (arguments | ||
| 13470 | (list | ||
| 13471 | #:phases | ||
| 13472 | #~(modify-phases %standard-phases | ||
| 13473 | (delete 'check) ;moved after the install phase | ||
| 13474 | (add-after 'install 'check | ||
| 13475 | (assoc-ref %standard-phases 'check)) | ||
| 13476 | (add-before 'check 'set-GEM_PATH | ||
| 13477 | (lambda _ | ||
| 13478 | (setenv "GEM_PATH" (string-append | ||
| 13479 | (getenv "GEM_PATH") ":" | ||
| 13480 | #$output "/lib/ruby/vendor_ruby")))) | ||
| 13481 | (add-before 'check 'delete-problematic-tests | ||
| 13482 | (lambda _ | ||
| 13483 | ;; The following test fails with 'Unknown tag' errors (see: | ||
| 13484 | ;; https://github.com/Shopify/liquid/issues/1699). | ||
| 13485 | (delete-file "test/integration/tags/inline_comment_test.rb")))))) | ||
| 13486 | (native-inputs (list ruby-liquid-c-bootstrap ruby-rspec ruby-stackprof)) | ||
| 13487 | (home-page "https://shopify.github.io/liquid/") | ||
| 13488 | (synopsis "Template language") | ||
| 13489 | (description "Liquid is a template language written in Ruby. It is used | ||
| 13490 | to load dynamic content on storefronts.") | ||
| 13491 | (license license:expat))) | ||
| 13492 | |||
| 13493 | (define-public ruby-liquid-4 | ||
| 13494 | (package | ||
| 13495 | (inherit ruby-liquid) | ||
| 13496 | (name "ruby-liquid") | ||
| 13497 | (version "4.0.4") | ||
| 13498 | (source (origin | ||
| 13499 | (method git-fetch) ;for tests | ||
| 13500 | (uri (git-reference | ||
| 13501 | (url "https://github.com/Shopify/liquid") | ||
| 13502 | (commit (string-append "v" version)))) | ||
| 13503 | (file-name (git-file-name name version)) | ||
| 13504 | (sha256 | ||
| 13505 | (base32 | ||
| 13506 | "0cr321nd0zkbxirgdfmz37xx7j26zfnicjh585fi20vx60frry83")))) | ||
| 13507 | (arguments (list #:tests? #f)))) ;avoid required an older ruby-liquid-c | ||
| 13508 | |||
| 13509 | ;;; This variant is purposefully incomplete, lacking ruby-liquid so that it | ||
| 13510 | ;;; can be used for ruby-liquid's test suite. | ||
| 13511 | (define ruby-liquid-c-bootstrap | ||
| 13512 | (package | ||
| 13513 | (name "ruby-liquid-c-bootstrap") | ||
| 13514 | (version "4.1.0") | ||
| 13515 | (source (origin | ||
| 13516 | (method url-fetch) | ||
| 13517 | (uri (rubygems-uri "liquid-c" version)) | ||
| 13518 | (sha256 | ||
| 13519 | (base32 | ||
| 13520 | "0jl37jz9hbfbhknryx4myxqx4n1f5dzyzmf1sapkcbw93xyrmkch")))) | ||
| 13521 | (build-system ruby-build-system) | ||
| 13522 | (arguments (list #:tests? #f)) | ||
| 13523 | (native-inputs (list ruby-rake-compiler)) | ||
| 13524 | (synopsis "Liquid performance extension in C") | ||
| 13525 | (description "This package provides a Partial native implementation of the | ||
| 13526 | liquid ruby gem in C that makes it operate about three times faster.") | ||
| 13527 | (home-page "https://github.com/shopify/liquid-c") | ||
| 13528 | (license license:expat))) | ||
| 13529 | |||
| 13530 | (define-public ruby-liquid-c | ||
| 13531 | (package/inherit ruby-liquid-c-bootstrap | ||
| 13532 | (name "ruby-liquid-c") | ||
| 13533 | (arguments | ||
| 13534 | (list | ||
| 13535 | ;; Only run the unit tests, because the test:integration target fails | ||
| 13536 | ;; with "File does not exist: test_helper" (see: | ||
| 13537 | ;; https://github.com/Shopify/liquid-c/issues/188). | ||
| 13538 | #:test-target "test:unit" | ||
| 13539 | #:phases | ||
| 13540 | #~(modify-phases %standard-phases | ||
| 13541 | (add-after 'extract-gemspec 'relax-requirements | ||
| 13542 | (lambda _ | ||
| 13543 | (substitute* "Gemfile" | ||
| 13544 | ;; Do not attempt to fetch a gem from git. | ||
| 13545 | (("git_source\\(:github) do \\|repo_name\\|") | ||
| 13546 | "if false") | ||
| 13547 | ((", github: \"Shopify/liquid\", ref: \"master\"") | ||
| 13548 | "") | ||
| 13549 | ;; Remove extraneous dependencies. | ||
| 13550 | ((".*byebug.*") "") | ||
| 13551 | ((".*rubocop.*") "") | ||
| 13552 | ;; Relax spy version specification. | ||
| 13553 | (("gem \"spy\", \"0.4.1\"") | ||
| 13554 | "gem \"spy\", \">= 0.4.1\""))))))) | ||
| 13555 | (native-inputs | ||
| 13556 | (list ruby-benchmark-ips | ||
| 13557 | ruby-rake-compiler | ||
| 13558 | ruby-ruby-memcheck | ||
| 13559 | ruby-spy | ||
| 13560 | ruby-stackprof)) | ||
| 13561 | (propagated-inputs | ||
| 13562 | (list ruby-liquid)))) | ||
| 13563 | |||
| 13564 | (define-public ruby-localhost | ||
| 13565 | (package | ||
| 13566 | (name "ruby-localhost") | ||
| 13567 | (version "1.1.10") | ||
| 13568 | (source (origin | ||
| 13569 | (method git-fetch) ;for tests | ||
| 13570 | (uri (git-reference | ||
| 13571 | (url "https://github.com/socketry/localhost") | ||
| 13572 | (commit (string-append "v" version)))) | ||
| 13573 | (file-name (git-file-name name version)) | ||
| 13574 | (sha256 | ||
| 13575 | (base32 | ||
| 13576 | "1yp70w15wpfk613ap5f4y15yx4n2qqwa67vqc2f4lv7npf3llcz0")))) | ||
| 13577 | (build-system ruby-build-system) | ||
| 13578 | (arguments | ||
| 13579 | ;; XXX: The test suite requires sus-fixtures-async, which requires async, | ||
| 13580 | ;; only available for Ruby 3.0. | ||
| 13581 | (list #:tests? #f | ||
| 13582 | #:phases | ||
| 13583 | #~(modify-phases %standard-phases | ||
| 13584 | (add-before 'build 'remove-missing-signing-key | ||
| 13585 | (lambda _ | ||
| 13586 | ;; Otherwise, the build fails with ENOENT. | ||
| 13587 | (substitute* "localhost.gemspec" | ||
| 13588 | ((".*spec.signing_key.*") ""))))))) | ||
| 13589 | (synopsis "API for generating per-user self-signed root certificates") | ||
| 13590 | (description "This package provides @code{localhost}, a Ruby library for | ||
| 13591 | Managing a local certificate authority for self-signed, localhost development | ||
| 13592 | servers.") | ||
| 13593 | (home-page "https://github.com/socketry/localhost") | ||
| 13594 | (license license:expat))) | ||
| 13595 | |||
| 13596 | (define-public ruby-forwardable-extended | ||
| 13597 | (package | ||
| 13598 | (name "ruby-forwardable-extended") | ||
| 13599 | (version "2.6.0") | ||
| 13600 | (source (origin | ||
| 13601 | (method url-fetch) | ||
| 13602 | (uri (rubygems-uri "forwardable-extended" version)) | ||
| 13603 | (sha256 | ||
| 13604 | (base32 | ||
| 13605 | "15zcqfxfvsnprwm8agia85x64vjzr2w0xn9vxfnxzgcv8s699v0v")))) | ||
| 13606 | (build-system ruby-build-system) | ||
| 13607 | (arguments `(#:tests? #f)); Cyclic dependency on luna-rspec-formatters | ||
| 13608 | (home-page "https://github.com/envygeeks/forwardable-extended") | ||
| 13609 | (synopsis "Delegation to hashes and instance variables in Forwardable") | ||
| 13610 | (description "Forwardable Extended provides more @code{Forwardable} | ||
| 13611 | methods for your source as @code{Forwardable::Extended}.") | ||
| 13612 | (license license:expat))) | ||
| 13613 | |||
| 13614 | (define-public ruby-pathutil | ||
| 13615 | (package | ||
| 13616 | (name "ruby-pathutil") | ||
| 13617 | (version "0.16.2") | ||
| 13618 | (source (origin | ||
| 13619 | (method url-fetch) | ||
| 13620 | (uri (rubygems-uri "pathutil" version)) | ||
| 13621 | (sha256 | ||
| 13622 | (base32 | ||
| 13623 | "12fm93ljw9fbxmv2krki5k5wkvr7560qy8p4spvb9jiiaqv78fz4")))) | ||
| 13624 | (build-system ruby-build-system) | ||
| 13625 | (propagated-inputs | ||
| 13626 | (list ruby-forwardable-extended)) | ||
| 13627 | (native-inputs | ||
| 13628 | (list bundler ruby-rspec)) | ||
| 13629 | ;; Fails with: cannot load such file -- | ||
| 13630 | ;; /tmp/guix-build-ruby-pathutil-0.16.0.drv-0/gem/benchmark/support/task | ||
| 13631 | (arguments `(#:tests? #f)) | ||
| 13632 | (home-page "https://github.com/envygeeks/pathutil") | ||
| 13633 | (synopsis "Extended implementation of Pathname") | ||
| 13634 | (description "Pathutil tries to be a faster pure Ruby implementation of | ||
| 13635 | Pathname.") | ||
| 13636 | (license license:expat))) | ||
| 13637 | |||
| 13638 | (define-public ruby-terminal-table | ||
| 13639 | (package | ||
| 13640 | (name "ruby-terminal-table") | ||
| 13641 | (version "3.0.2") | ||
| 13642 | (source (origin | ||
| 13643 | (method git-fetch) | ||
| 13644 | (uri (git-reference | ||
| 13645 | (url "https://github.com/tj/terminal-table") | ||
| 13646 | (commit (string-append "v" version)))) | ||
| 13647 | (file-name (git-file-name name version)) | ||
| 13648 | (sha256 | ||
| 13649 | (base32 | ||
| 13650 | "1c3f7ng3lxq962n8sbmlsvjx6srh5i801wzsyhxmfz2g880f5jps")))) | ||
| 13651 | (arguments | ||
| 13652 | '(#:phases | ||
| 13653 | (modify-phases %standard-phases | ||
| 13654 | (add-before 'check 'remove-unnecessary-dependencies | ||
| 13655 | (lambda _ | ||
| 13656 | (substitute* "terminal-table.gemspec" | ||
| 13657 | (("s.add_runtime_dependency.*") "\n") | ||
| 13658 | (("s.add_development_dependency.*") "\n")) | ||
| 13659 | (substitute* "Gemfile" | ||
| 13660 | ((".*tins.*") "\n")))) | ||
| 13661 | (replace 'check | ||
| 13662 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 13663 | (when tests? | ||
| 13664 | (invoke "rspec"))))))) | ||
| 13665 | (build-system ruby-build-system) | ||
| 13666 | (propagated-inputs | ||
| 13667 | (list ruby-unicode-display-width)) | ||
| 13668 | (native-inputs | ||
| 13669 | (list ruby-rspec ruby-term-ansicolor)) | ||
| 13670 | (home-page "https://github.com/tj/terminal-table") | ||
| 13671 | (synopsis "Simple, feature rich ASCII table generation library") | ||
| 13672 | (description | ||
| 13673 | "Terminal Table is a fast and simple, yet feature rich | ||
| 13674 | table generator written in Ruby. It supports ASCII and | ||
| 13675 | Unicode formatted tables.") | ||
| 13676 | (license license:expat))) | ||
| 13677 | |||
| 13678 | (define-public jekyll | ||
| 13679 | (package | ||
| 13680 | (name "jekyll") | ||
| 13681 | (version "4.3.4") | ||
| 13682 | (source (origin | ||
| 13683 | (method git-fetch) ;for tests | ||
| 13684 | (uri (git-reference | ||
| 13685 | (url "https://github.com/jekyll/jekyll") | ||
| 13686 | (commit (string-append "v" version)))) | ||
| 13687 | (file-name (git-file-name name version)) | ||
| 13688 | (sha256 | ||
| 13689 | (base32 | ||
| 13690 | "0sz285x5ppbifrnixi9sdzv28kg4x3qbzds3qniiwh1ip9hi1yk4")))) | ||
| 13691 | (build-system ruby-build-system) | ||
| 13692 | (arguments | ||
| 13693 | (list #:modules '((guix build ruby-build-system) | ||
| 13694 | (guix build utils) | ||
| 13695 | (ice-9 ftw) | ||
| 13696 | (srfi srfi-26)) | ||
| 13697 | ;; The cucumber acceptance suite is not run as it depends on an old | ||
| 13698 | ;; version (5). | ||
| 13699 | #:test-target "spec" | ||
| 13700 | #:phases | ||
| 13701 | #~(modify-phases %standard-phases | ||
| 13702 | (add-before 'check 'disable-problematic-tests | ||
| 13703 | ;; TODO: Package the missing test inputs. | ||
| 13704 | (lambda _ | ||
| 13705 | (with-directory-excursion "test" | ||
| 13706 | ;; Requires 'jekyll-coffeescript'. | ||
| 13707 | (delete-file "test_coffeescript.rb") | ||
| 13708 | ;; Requires 'tomlrb'. | ||
| 13709 | (delete-file "test_configuration.rb") | ||
| 13710 | (substitute* "test_filters.rb" | ||
| 13711 | ;; The sassify tests fail due to white space | ||
| 13712 | ;; differences (see: | ||
| 13713 | ;; https://github.com/jekyll/jekyll/issues/9322). | ||
| 13714 | ((".*s?ssify with simple string.*" all) | ||
| 13715 | (string-append all | ||
| 13716 | " skip('fails on guix')\n"))) | ||
| 13717 | ;; Requires kramdown-syntax-coderay. | ||
| 13718 | (delete-file "test_kramdown.rb") | ||
| 13719 | ;; Requires 'test-theme', usually made available from the | ||
| 13720 | ;; local checkout via Bundler (not used here). | ||
| 13721 | (delete-file "test_layout_reader.rb") | ||
| 13722 | ;; Requires a large amount of un-packaged dependencies. | ||
| 13723 | (delete-file "test_plugin_manager.rb") | ||
| 13724 | ;; Requires 'classifier-reborn'. | ||
| 13725 | (delete-file "test_related_posts.rb") | ||
| 13726 | ;; This one causes a test failure similar to the ones for | ||
| 13727 | ;; sassify above. | ||
| 13728 | (delete-file "test_sass.rb") | ||
| 13729 | ;; This would require running the tests via 'bundle | ||
| 13730 | ;; exec', but the Gemfile contains too many (extraneous) | ||
| 13731 | ;; dependencies. | ||
| 13732 | (delete-file "test_site.rb") | ||
| 13733 | ;; Delete the theme tests, as they require 'test-theme', | ||
| 13734 | ;; usually made available from the local checkout via the | ||
| 13735 | ;; Gemfile/bundler (not used here). | ||
| 13736 | (for-each delete-file | ||
| 13737 | (scandir | ||
| 13738 | "." (cut string-prefix? "test_theme" <>))) | ||
| 13739 | ;; This one also relies on 'test-theme'. | ||
| 13740 | (delete-file "test_liquid_renderer.rb") | ||
| 13741 | ;; This test assumes internet connectivity, negate it, as | ||
| 13742 | ;; there's no Internet in the build container. | ||
| 13743 | (substitute* "test_utils.rb" | ||
| 13744 | (("assert Utils::Internet\\.connected\\?") | ||
| 13745 | "refute Utils::Internet.connected?")) | ||
| 13746 | ;; These tests fail non-deterministically (see: | ||
| 13747 | ;; https://github.com/jekyll/jekyll/issues/9323). | ||
| 13748 | (delete-file "test_new_command.rb") | ||
| 13749 | (delete-file "test_collections.rb")))) | ||
| 13750 | (replace 'check | ||
| 13751 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 13752 | (when tests? | ||
| 13753 | ;; Invoke the test scripts manually, as 'rake test' | ||
| 13754 | ;; doesn't show any failure details, making debugging | ||
| 13755 | ;; needlessly difficult. | ||
| 13756 | (for-each (lambda (f) | ||
| 13757 | (invoke "ruby" "-I" "test" f)) | ||
| 13758 | (find-files "test" "^test_.*\\.rb$")))))))) | ||
| 13759 | (native-inputs | ||
| 13760 | (list bundler | ||
| 13761 | ruby-httpclient | ||
| 13762 | ruby-minitest-profile | ||
| 13763 | ruby-minitest-reporters | ||
| 13764 | ruby-nokogiri | ||
| 13765 | ruby-rspec | ||
| 13766 | ruby-rspec-mocks | ||
| 13767 | ruby-shoulda | ||
| 13768 | ruby-simplecov)) | ||
| 13769 | (propagated-inputs | ||
| 13770 | (list ruby-addressable | ||
| 13771 | ruby-colorator | ||
| 13772 | ruby-em-websocket | ||
| 13773 | ruby-i18n | ||
| 13774 | ruby-jekyll-sass-converter | ||
| 13775 | ruby-jekyll-watch | ||
| 13776 | ruby-kramdown-parser-gfm | ||
| 13777 | ruby-liquid-4 | ||
| 13778 | ruby-mercenary | ||
| 13779 | ruby-pathutil | ||
| 13780 | ruby-rouge | ||
| 13781 | ruby-safe-yaml | ||
| 13782 | ruby-sassc | ||
| 13783 | ruby-terminal-table | ||
| 13784 | ruby-webrick)) | ||
| 13785 | (home-page "https://jekyllrb.com/") | ||
| 13786 | (synopsis "Static site generator") | ||
| 13787 | (description "Jekyll is a simple, blog aware, static site generator.") | ||
| 13788 | (license license:expat))) | ||
| 13789 | |||
| 13790 | (define-public ruby-jekyll-paginate-v2 | ||
| 13791 | (package | ||
| 13792 | (name "ruby-jekyll-paginate-v2") | ||
| 13793 | (version "3.0.0") | ||
| 13794 | (source (origin | ||
| 13795 | (method url-fetch) | ||
| 13796 | (uri (rubygems-uri "jekyll-paginate-v2" version)) | ||
| 13797 | (sha256 | ||
| 13798 | (base32 | ||
| 13799 | "1qzlqhpiqz28624fp0ak76hfy7908w6kpx62v7z43aiwjv0yc6q0")))) | ||
| 13800 | (build-system ruby-build-system) | ||
| 13801 | (propagated-inputs | ||
| 13802 | (list jekyll)) | ||
| 13803 | (home-page "https://github.com/sverrirs/jekyll-paginate-v2") | ||
| 13804 | (synopsis "Pagination Generator for Jekyll 3") | ||
| 13805 | (description "The Pagination Generator forms the core of the pagination | ||
| 13806 | logic in Jekyll. It calculates and generates the pagination pages.") | ||
| 13807 | (license license:expat))) | ||
| 13808 | |||
| 13809 | (define-public ruby-faraday-net-http | ||
| 13810 | (package | ||
| 13811 | (name "ruby-faraday-net-http") | ||
| 13812 | (version "3.0.2") | ||
| 13813 | (source (origin | ||
| 13814 | (method url-fetch) | ||
| 13815 | (uri (rubygems-uri "faraday-net_http" version)) | ||
| 13816 | (sha256 | ||
| 13817 | (base32 | ||
| 13818 | "13byv3mp1gsjyv8k0ih4612y6vw5kqva6i03wcg4w2fqpsd950k8")))) | ||
| 13819 | (build-system ruby-build-system) | ||
| 13820 | ;; Do not run the test suite here as it would introduce a dependency cycle | ||
| 13821 | ;; with ruby-faraday, which uses it as part of its test suite. | ||
| 13822 | (arguments (list #:tests? #f)) | ||
| 13823 | (synopsis "Faraday adapter for Net::HTTP") | ||
| 13824 | (description "This gem is a Faraday adapter for the @code{Net::HTTP} | ||
| 13825 | library. Faraday is an HTTP client library that provides a common interface | ||
| 13826 | over many adapters.") | ||
| 13827 | (home-page "https://github.com/lostisland/faraday-net_http") | ||
| 13828 | (license license:expat))) | ||
| 13829 | |||
| 13830 | (define-public ruby-faraday | ||
| 13831 | (package | ||
| 13832 | (name "ruby-faraday") | ||
| 13833 | (version "2.7.4") | ||
| 13834 | (source (origin | ||
| 13835 | (method git-fetch) | ||
| 13836 | (uri (git-reference | ||
| 13837 | (url "https://github.com/lostisland/faraday") | ||
| 13838 | (commit (string-append "v" version)))) | ||
| 13839 | (file-name (git-file-name name version)) | ||
| 13840 | (sha256 | ||
| 13841 | (base32 | ||
| 13842 | "0ya6jqa7ryr4i62mmzjjxzd8i8y0pyw0cbhifd758rs6lvkzmxa3")))) | ||
| 13843 | (build-system ruby-build-system) | ||
| 13844 | (arguments (list #:test-target "spec")) | ||
| 13845 | (native-inputs | ||
| 13846 | (list ruby-coveralls | ||
| 13847 | ruby-pry | ||
| 13848 | ruby-rack | ||
| 13849 | ruby-rspec | ||
| 13850 | ruby-simplecov | ||
| 13851 | ruby-webmock)) | ||
| 13852 | ;; Propagate faraday-net-http as this is the default adapter used, and | ||
| 13853 | ;; many Ruby projects assumes it is available. | ||
| 13854 | (propagated-inputs (list ruby-ruby2-keywords ruby-faraday-net-http)) | ||
| 13855 | (synopsis "Ruby HTTP/REST API client library") | ||
| 13856 | (description "Faraday is a HTTP/REST API client library which provides a | ||
| 13857 | common interface over different adapters.") | ||
| 13858 | (home-page "https://github.com/lostisland/faraday") | ||
| 13859 | (license license:expat))) | ||
| 13860 | |||
| 13861 | (define-public ruby-nio4r | ||
| 13862 | (package | ||
| 13863 | (name "ruby-nio4r") | ||
| 13864 | (version "2.5.2") | ||
| 13865 | (source | ||
| 13866 | (origin | ||
| 13867 | (method url-fetch) | ||
| 13868 | (uri (rubygems-uri "nio4r" version)) | ||
| 13869 | (sha256 | ||
| 13870 | (base32 | ||
| 13871 | "0gnmvbryr521r135yz5bv8354m7xn6miiapfgpg1bnwsvxz8xj6c")))) | ||
| 13872 | (build-system ruby-build-system) | ||
| 13873 | (arguments | ||
| 13874 | '(#:phases | ||
| 13875 | (modify-phases %standard-phases | ||
| 13876 | (add-after 'unpack 'remove-unnecessary-dependencies | ||
| 13877 | (lambda _ | ||
| 13878 | (substitute* "spec/spec_helper.rb" | ||
| 13879 | ;; Coveralls is for uploading test coverage information to an | ||
| 13880 | ;; online service, and thus unnecessary for building the Guix | ||
| 13881 | ;; package | ||
| 13882 | (("require \"coveralls\"") "") | ||
| 13883 | (("Coveralls\\.wear!") "") | ||
| 13884 | ;; Remove rspec/retry as we are not retrying the tests | ||
| 13885 | (("require \"rspec/retry\"") "") | ||
| 13886 | (("config\\.display_try_failure_messages = true") "") | ||
| 13887 | (("config\\.verbose_retry = true") "")))) | ||
| 13888 | (add-before 'check 'compile | ||
| 13889 | (lambda _ | ||
| 13890 | (invoke "rake" "compile"))) | ||
| 13891 | (replace 'check | ||
| 13892 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 13893 | (when tests? | ||
| 13894 | (invoke "rspec"))))))) | ||
| 13895 | (native-inputs | ||
| 13896 | (list bundler ruby-rake-compiler ruby-rspec ruby-rubocop)) | ||
| 13897 | (synopsis "New I/O for Ruby") | ||
| 13898 | (description | ||
| 13899 | "@code{nio} provides cross-platform asynchronous I/O primitives in Ruby | ||
| 13900 | for scalable network clients and servers.") | ||
| 13901 | (home-page "https://github.com/socketry/nio4r") | ||
| 13902 | (license license:expat))) | ||
| 13903 | |||
| 13904 | (define-public ruby-language-server-protocol | ||
| 13905 | (package | ||
| 13906 | (name "ruby-language-server-protocol") | ||
| 13907 | (version "3.17.0.3") | ||
| 13908 | (source (origin | ||
| 13909 | (method git-fetch) ;for tests | ||
| 13910 | (uri (git-reference | ||
| 13911 | (url "https://github.com/mtsmfm/language_server-protocol-ruby") | ||
| 13912 | (commit (string-append "v" version)))) | ||
| 13913 | (file-name (git-file-name name version)) | ||
| 13914 | (sha256 | ||
| 13915 | (base32 | ||
| 13916 | "0f2g301fz99c6nkca39s9227brlycznv8a9r4b4i99rg25m91lc6")))) | ||
| 13917 | (build-system ruby-build-system) | ||
| 13918 | (arguments | ||
| 13919 | (list | ||
| 13920 | #:phases | ||
| 13921 | #~(modify-phases %standard-phases | ||
| 13922 | (add-after 'unpack 'remove-unnecessary-dependencies | ||
| 13923 | (lambda _ | ||
| 13924 | (substitute* "Gemfile" | ||
| 13925 | (("gem \"pry-byebug\"") "")))) | ||
| 13926 | (replace 'replace-git-ls-files | ||
| 13927 | (lambda _ | ||
| 13928 | (substitute* "language_server-protocol.gemspec" | ||
| 13929 | (("git ls-files -z([^`]*)" _ files) | ||
| 13930 | (string-append "find " files | ||
| 13931 | " -type f -not -regex '.*\\.gem$'" | ||
| 13932 | " -print0 | sort -z")))))))) | ||
| 13933 | (native-inputs | ||
| 13934 | (list ruby-activesupport | ||
| 13935 | ruby-benchmark-ips | ||
| 13936 | ruby-m | ||
| 13937 | ruby-minitest | ||
| 13938 | ruby-minitest-power-assert)) | ||
| 13939 | (synopsis "Language Server Protocol (LSP) development kit for Ruby") | ||
| 13940 | (description "This package provides a Language Server Protocol (LSP) | ||
| 13941 | development kit for Ruby.") | ||
| 13942 | (home-page "https://github.com/mtsmfm/language_server-protocol-ruby") | ||
| 13943 | (license license:expat))) | ||
| 13944 | |||
| 13945 | (define-public ruby-spy | ||
| 13946 | (package | ||
| 13947 | (name "ruby-spy") | ||
| 13948 | (version "1.0.5") | ||
| 13949 | (source (origin | ||
| 13950 | (method url-fetch) | ||
| 13951 | (uri (rubygems-uri "spy" version)) | ||
| 13952 | (sha256 | ||
| 13953 | (base32 | ||
| 13954 | "0g2mma8q17m26k5s864ndlvvqllhcivwg2wdigjvb7z06iw17gds")))) | ||
| 13955 | (build-system ruby-build-system) | ||
| 13956 | (arguments | ||
| 13957 | (list #:phases #~(modify-phases %standard-phases | ||
| 13958 | (add-after 'extract-gemspec 'relax-requirements | ||
| 13959 | (lambda _ | ||
| 13960 | (substitute* "spy.gemspec" | ||
| 13961 | ((".*pry-byebug.*") "")) | ||
| 13962 | (substitute* "test/test_helper.rb" | ||
| 13963 | ((".*pry-byebug.*") "")) | ||
| 13964 | (substitute* "Gemfile" | ||
| 13965 | ((".*redcarpet.*") "") | ||
| 13966 | ((".*yard.*") ""))))))) | ||
| 13967 | (native-inputs | ||
| 13968 | (list ruby-coveralls | ||
| 13969 | ruby-minitest-reporters | ||
| 13970 | ruby-pry | ||
| 13971 | ruby-rspec-core | ||
| 13972 | ruby-rspec-expectations)) | ||
| 13973 | (synopsis "Mocking library for Ruby") | ||
| 13974 | (description "Spy is a mocking library. By default, it will raise an | ||
| 13975 | error if you attempt to stub a method that doesn't exist or call the stubbed | ||
| 13976 | method with the wrong arity.") | ||
| 13977 | (home-page "https://github.com/ryanong/spy") | ||
| 13978 | (license license:expat))) | ||
| 13979 | |||
| 13980 | (define-public ruby-subprocess | ||
| 13981 | (package | ||
| 13982 | (name "ruby-subprocess") | ||
| 13983 | (version "1.5.6") | ||
| 13984 | (source (origin | ||
| 13985 | (method url-fetch) | ||
| 13986 | (uri (rubygems-uri "subprocess" version)) | ||
| 13987 | (sha256 | ||
| 13988 | (base32 | ||
| 13989 | "0v49ahfx9b75qg42sl8a3l367g2vihc16g8z5f2raxpxjl1wh2s2")))) | ||
| 13990 | (build-system ruby-build-system) | ||
| 13991 | ;; Do not run the test suite, as there its test dependency ruby-sord would | ||
| 13992 | ;; introduce a cycle with ruby-sorbet-runtime. | ||
| 13993 | (arguments (list #:tests? #f)) | ||
| 13994 | (native-inputs (list ruby-minitest ruby-pry)) | ||
| 13995 | (synopsis "Ruby library to control and communicate with spawned processes") | ||
| 13996 | (description "This Ruby library is controlling and communicating with | ||
| 13997 | spawned processes. It is designed after Python's @code{subprocess} module.") | ||
| 13998 | (home-page "https://github.com/stripe/subprocess") | ||
| 13999 | (license license:expat))) | ||
| 14000 | |||
| 14001 | (define-public ruby-sus | ||
| 14002 | (package | ||
| 14003 | (name "ruby-sus") | ||
| 14004 | (version "0.20.3") | ||
| 14005 | (source (origin | ||
| 14006 | (method git-fetch) ;for gems.rb | ||
| 14007 | (uri (git-reference | ||
| 14008 | (url "https://github.com/ioquatix/sus") | ||
| 14009 | (commit (string-append "v" version)))) | ||
| 14010 | (file-name (git-file-name name version)) | ||
| 14011 | (sha256 | ||
| 14012 | (base32 | ||
| 14013 | "0j4rkh9li79674h3lfkxlcdygscmb22l77i7hwhxl3gw103gkpdr")))) | ||
| 14014 | (build-system ruby-build-system) | ||
| 14015 | (arguments | ||
| 14016 | (list #:phases | ||
| 14017 | #~(modify-phases %standard-phases | ||
| 14018 | (add-before 'build 'prune-gems.rb | ||
| 14019 | (lambda _ | ||
| 14020 | (substitute* "gems.rb" | ||
| 14021 | (("gem \"bake-modernize\"") "") | ||
| 14022 | (("gem \"bake-gem\"") "") | ||
| 14023 | (("gem \"utopia-project\"") "")))) | ||
| 14024 | (add-before 'build 'remove-missing-signing-key | ||
| 14025 | (lambda _ | ||
| 14026 | ;; Otherwise, the build fails with ENOENT. | ||
| 14027 | (substitute* "sus.gemspec" | ||
| 14028 | ((".*spec.signing_key.*") "")))) | ||
| 14029 | (delete 'check) ;moved after install | ||
| 14030 | (add-after 'install 'check | ||
| 14031 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 14032 | (when tests? | ||
| 14033 | (setenv "CONSOLE_LEVEL" "debug") | ||
| 14034 | (setenv "HOME" "/tmp") | ||
| 14035 | ;; 'bundle exec' must be used to workaround a problem | ||
| 14036 | ;; when using bake test and GEM_PATH (see: | ||
| 14037 | ;; https://github.com/ioquatix/bake/issues/11). | ||
| 14038 | (invoke "bundle" "exec" "bake" "test")))) | ||
| 14039 | (add-before 'check 'set-paths | ||
| 14040 | (lambda _ | ||
| 14041 | (setenv "PATH" (string-append (getenv "PATH") ":" | ||
| 14042 | #$output "/bin")) | ||
| 14043 | (setenv "GEM_PATH" (string-append | ||
| 14044 | (getenv "GEM_PATH") ":" | ||
| 14045 | #$output "/lib/ruby/vendor_ruby"))))))) | ||
| 14046 | (native-inputs (list ruby-bake-test ruby-bake-test-external ruby-covered)) | ||
| 14047 | (synopsis "Fast and scalable test runner for Ruby") | ||
| 14048 | (description "This package provides a fast and scalable test runner for Ruby.") | ||
| 14049 | (home-page "https://github.com/ioquatix/sus") | ||
| 14050 | (license license:expat))) | ||
| 14051 | |||
| 14052 | (define-public ruby-syntax-tree | ||
| 14053 | (package | ||
| 14054 | (name "ruby-syntax-tree") | ||
| 14055 | (version "6.1.1") | ||
| 14056 | (source (origin | ||
| 14057 | (method git-fetch) ;for tests | ||
| 14058 | (uri (git-reference | ||
| 14059 | (url "https://github.com/ruby-syntax-tree/syntax_tree") | ||
| 14060 | (commit (string-append "v" version)))) | ||
| 14061 | (file-name (git-file-name name version)) | ||
| 14062 | (sha256 | ||
| 14063 | (base32 | ||
| 14064 | "0356lgvqp22nkqlrgszf7myfdg4arclg278awh34zyby1cx6hb2k")))) | ||
| 14065 | (build-system ruby-build-system) | ||
| 14066 | (arguments | ||
| 14067 | (list | ||
| 14068 | #:phases | ||
| 14069 | #~(modify-phases %standard-phases | ||
| 14070 | ;; The tests rely on the Gem being installed, so move the check | ||
| 14071 | ;; phase after the install phase. | ||
| 14072 | (delete 'check) | ||
| 14073 | (add-after 'install 'check | ||
| 14074 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 14075 | (setenv "GEM_PATH" (string-append | ||
| 14076 | #$output "/lib/ruby/vendor_ruby:" | ||
| 14077 | (getenv "GEM_PATH"))) | ||
| 14078 | (when tests? | ||
| 14079 | (invoke "rake" "test"))))))) | ||
| 14080 | (native-inputs (list ruby-rubocop-ast ruby-simplecov)) | ||
| 14081 | (propagated-inputs (list ruby-prettier-print)) | ||
| 14082 | (synopsis "Fast Ruby parser and formatter") | ||
| 14083 | (description "Syntax Tree is a suite of tools built on top of the internal | ||
| 14084 | CRuby parser. It provides the ability to generate a syntax tree from source, | ||
| 14085 | as well as the tools necessary to inspect and manipulate that syntax tree. It | ||
| 14086 | can be used to build formatters, linters, language servers, and more.") | ||
| 14087 | (home-page "https://github.com/ruby-syntax-tree/syntax_tree") | ||
| 14088 | (license license:expat))) | ||
| 14089 | |||
| 14090 | (define-public ruby-stringio | ||
| 14091 | (package | ||
| 14092 | (name "ruby-stringio") | ||
| 14093 | (version "3.1.0") | ||
| 14094 | (source (origin | ||
| 14095 | (method git-fetch) | ||
| 14096 | (uri (git-reference | ||
| 14097 | (url "https://github.com/ruby/stringio") | ||
| 14098 | (commit (string-append "v" version)))) | ||
| 14099 | (file-name (git-file-name name version)) | ||
| 14100 | (sha256 | ||
| 14101 | (base32 | ||
| 14102 | "1jgi2w5y0z0x9mfapr2pdlag4wvn03fpf5kbai8bscyh8nn79yka")))) | ||
| 14103 | (build-system ruby-build-system) | ||
| 14104 | (native-inputs (list ruby-rake-compiler ruby-test-unit-ruby-core)) | ||
| 14105 | (synopsis "Pseudo `IO` class from and to `String`") | ||
| 14106 | (description "Pseudo `IO` class from and to `String`.") | ||
| 14107 | (home-page "https://github.com/ruby/stringio") | ||
| 14108 | (license license:bsd-2))) | ||
| 14109 | |||
| 14110 | (define-public ruby-stream | ||
| 14111 | (package | ||
| 14112 | (name "ruby-stream") | ||
| 14113 | (version "0.5.5") | ||
| 14114 | (source (origin | ||
| 14115 | (method url-fetch) | ||
| 14116 | (uri (rubygems-uri "stream" version)) | ||
| 14117 | (sha256 | ||
| 14118 | (base32 | ||
| 14119 | "016m9v81vpj14d8g5ins91zc4pzl7vf5f1gxl7jhfsfy601k7cv2")))) | ||
| 14120 | (build-system ruby-build-system) | ||
| 14121 | (arguments | ||
| 14122 | '(#:phases | ||
| 14123 | (modify-phases %standard-phases | ||
| 14124 | (add-before 'check 'remove-version-constraints | ||
| 14125 | (lambda _ | ||
| 14126 | (delete-file "Gemfile.lock")))))) | ||
| 14127 | (native-inputs (list bundler ruby-stringio ruby-webrick ruby-yard)) | ||
| 14128 | (synopsis "Interface for external iterators") | ||
| 14129 | (description "Module Stream defines an interface for external iterators.") | ||
| 14130 | (home-page "https://github.com/monora/stream") | ||
| 14131 | (license license:bsd-2))) | ||
| 14132 | |||
| 14133 | (define sorbet-version "0.5.10610.20230106174520-1fa668010") | ||
| 14134 | |||
| 14135 | (define sorbet-monorepo | ||
| 14136 | (origin | ||
| 14137 | (method git-fetch) | ||
| 14138 | (uri (git-reference | ||
| 14139 | (url "https://github.com/sorbet/sorbet") | ||
| 14140 | (commit sorbet-version))) | ||
| 14141 | (file-name (string-append "sorbet-" sorbet-version "-checkout")) | ||
| 14142 | (sha256 | ||
| 14143 | (base32 | ||
| 14144 | "0f21dl06alxwn6xgdxyrkd58plmmsv04z2bcls9ld4cfzsrs5537")))) | ||
| 14145 | |||
| 14146 | (define (make-sorbet-gem-source gem) | ||
| 14147 | "Return the source of GEM, a sub-directory." | ||
| 14148 | (computed-file | ||
| 14149 | (string-append "ruby-sorbet-" gem "-" sorbet-version "-checkout") | ||
| 14150 | (with-imported-modules (source-module-closure '((guix build utils))) | ||
| 14151 | #~(begin | ||
| 14152 | (use-modules (guix build utils)) | ||
| 14153 | (copy-recursively (string-append #$sorbet-monorepo | ||
| 14154 | "/gems/sorbet-" #$gem) | ||
| 14155 | #$output))))) | ||
| 14156 | |||
| 14157 | (define-public ruby-sorbet-runtime | ||
| 14158 | (package | ||
| 14159 | (name "ruby-sorbet-runtime") | ||
| 14160 | (version sorbet-version) | ||
| 14161 | (source (make-sorbet-gem-source "runtime")) | ||
| 14162 | (build-system ruby-build-system) | ||
| 14163 | ;; 25 out of 841 tests currently fail, seemingly due to invalid | ||
| 14164 | ;; assumptions about file names in the build environment (see: | ||
| 14165 | ;; https://github.com/sorbet/sorbet/issues/6650). | ||
| 14166 | (arguments (list #:tests? #f)) | ||
| 14167 | (native-inputs | ||
| 14168 | (list ruby-minitest | ||
| 14169 | ruby-mocha | ||
| 14170 | ruby-rubocop | ||
| 14171 | ruby-rubocop-performance | ||
| 14172 | ruby-concurrent-ruby | ||
| 14173 | ruby-pry | ||
| 14174 | ruby-parser | ||
| 14175 | ruby-subprocess)) | ||
| 14176 | (synopsis "Runtime type checking component for Sorbet") | ||
| 14177 | (description "Sorbet's runtime type checking component. Sorbet is a | ||
| 14178 | powerful type checker for Ruby.") | ||
| 14179 | (home-page "https://sorbet.org") | ||
| 14180 | (license license:asl2.0))) | ||
| 14181 | |||
| 14182 | (define-public ruby-mustache | ||
| 14183 | (package | ||
| 14184 | (name "ruby-mustache") | ||
| 14185 | (version "1.1.1") | ||
| 14186 | (source | ||
| 14187 | (origin | ||
| 14188 | (method url-fetch) | ||
| 14189 | (uri (rubygems-uri "mustache" version)) | ||
| 14190 | (sha256 | ||
| 14191 | (base32 "1l0p4wx15mi3wnamfv92ipkia4nsx8qi132c6g51jfdma3fiz2ch")))) | ||
| 14192 | (build-system ruby-build-system) | ||
| 14193 | (native-inputs | ||
| 14194 | `(("ruby-simplecov" ,ruby-simplecov) | ||
| 14195 | ("test-patch" | ||
| 14196 | ,(search-patch "ruby-mustache-1.1.1-fix-race-condition-tests.patch")))) | ||
| 14197 | (arguments | ||
| 14198 | `(#:phases | ||
| 14199 | (modify-phases %standard-phases | ||
| 14200 | (add-after 'unpack 'patch-tests | ||
| 14201 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 14202 | (invoke "patch" "-p1" "--batch" "-i" | ||
| 14203 | (assoc-ref inputs "test-patch"))))))) | ||
| 14204 | (synopsis "Framework-agnostic way to render logic-free views") | ||
| 14205 | (description | ||
| 14206 | "Mustache is a framework-agnostic way to render logic-free views. | ||
| 14207 | Think of Mustache as a replacement for your views. Instead of views | ||
| 14208 | consisting of ERB or HAML with random helpers and arbitrary logic, | ||
| 14209 | your views are broken into two parts: a Ruby class and an HTML | ||
| 14210 | template.") | ||
| 14211 | (home-page "https://github.com/mustache/mustache") | ||
| 14212 | (license license:expat))) | ||
| 14213 | |||
| 14214 | (define-public ruby-mustermann | ||
| 14215 | (package | ||
| 14216 | (name "ruby-mustermann") | ||
| 14217 | (version "3.0.0") | ||
| 14218 | (source | ||
| 14219 | (origin | ||
| 14220 | (method url-fetch) | ||
| 14221 | (uri (rubygems-uri "mustermann" version)) | ||
| 14222 | (sha256 | ||
| 14223 | (base32 | ||
| 14224 | "0rwbq20s2gdh8dljjsgj5s6wqqfmnbclhvv2c2608brv7jm6jdbd")))) | ||
| 14225 | (build-system ruby-build-system) | ||
| 14226 | (arguments | ||
| 14227 | ;; No tests. | ||
| 14228 | '(#:tests? #f)) | ||
| 14229 | (synopsis "Library implementing patterns that behave like regular expressions") | ||
| 14230 | (description "Given a string pattern, Mustermann will turn it into an | ||
| 14231 | object that behaves like a regular expression and has comparable performance | ||
| 14232 | characteristics.") | ||
| 14233 | (home-page "https://github.com/sinatra/mustermann") | ||
| 14234 | (license license:expat))) | ||
| 14235 | |||
| 14236 | (define-public ruby-prettier-print | ||
| 14237 | (package | ||
| 14238 | (name "ruby-prettier-print") | ||
| 14239 | (version "1.2.1") | ||
| 14240 | (source (origin | ||
| 14241 | (method git-fetch) ;for tests | ||
| 14242 | (uri (git-reference | ||
| 14243 | (url "https://github.com/ruby-syntax-tree/prettier_print") | ||
| 14244 | (commit (string-append "v" version)))) | ||
| 14245 | (file-name (git-file-name name version)) | ||
| 14246 | (sha256 | ||
| 14247 | (base32 | ||
| 14248 | "00cg40jc0il1hpsrpsrqwhsxmx7day9lxp1ksrm08zxzsrz9ykqz")))) | ||
| 14249 | (build-system ruby-build-system) | ||
| 14250 | (native-inputs (list ruby-simplecov)) | ||
| 14251 | (synopsis "Compatible and featureful implementation of @code{prettyprint}") | ||
| 14252 | (description "This package provides a drop-in replacement for the | ||
| 14253 | @code{prettyprint} gem, with more functionality.") | ||
| 14254 | (home-page "https://github.com/ruby-syntax-tree/prettier_print") | ||
| 14255 | (license license:expat))) | ||
| 14256 | |||
| 14257 | (define-public ruby-html-proofer | ||
| 14258 | (package | ||
| 14259 | (name "ruby-html-proofer") | ||
| 14260 | (version "5.0.3") | ||
| 14261 | (source | ||
| 14262 | (origin | ||
| 14263 | (method git-fetch) | ||
| 14264 | (uri (git-reference | ||
| 14265 | (url "https://github.com/gjtorikian/html-proofer") | ||
| 14266 | (commit (string-append "v" version)))) | ||
| 14267 | (file-name (git-file-name name version)) | ||
| 14268 | (sha256 | ||
| 14269 | (base32 | ||
| 14270 | "01ksss3ikppc45z2q33bx8bb9785bqlp1rdqascaqg9mhs392adk")))) | ||
| 14271 | (build-system ruby-build-system) | ||
| 14272 | (arguments | ||
| 14273 | (list | ||
| 14274 | ;; Tests require vcr, which is under the Hippocratic license, which is | ||
| 14275 | ;; not a free software license (see: | ||
| 14276 | ;; https://www.gnu.org/licenses/license-list.html#hippocratic). | ||
| 14277 | #:tests? #f | ||
| 14278 | #:phases | ||
| 14279 | #~(modify-phases %standard-phases | ||
| 14280 | (add-after 'extract-gemspec 'relax-requirements | ||
| 14281 | (lambda _ | ||
| 14282 | (substitute* "html-proofer.gemspec" | ||
| 14283 | (("required_ruby_version = \\[\">= 3.1\"") | ||
| 14284 | "required_ruby_version = [\">= 2.6\"")))) | ||
| 14285 | (replace 'replace-git-ls-files | ||
| 14286 | (lambda _ | ||
| 14287 | ;; The html-proofer.gemspec file contains 'all_files = %x(git | ||
| 14288 | ;; ls-files -z).split("\x0")', but the original phase matches on | ||
| 14289 | ;; `git ls-files -z`. | ||
| 14290 | ;; TODO: Improve ruby-build-system patterns on core-updates. | ||
| 14291 | (substitute* "html-proofer.gemspec" | ||
| 14292 | (("git ls-files -z") | ||
| 14293 | "find . -type f -not -regex '.*\\.gem$' -print0 \ | ||
| 14294 | | sort -z | cut -zc3-"))))))) | ||
| 14295 | (propagated-inputs | ||
| 14296 | (list ruby-addressable | ||
| 14297 | ruby-mercenary | ||
| 14298 | ruby-nokogiri | ||
| 14299 | ruby-parallel | ||
| 14300 | ruby-rainbow | ||
| 14301 | ruby-typhoeus | ||
| 14302 | ruby-yell)) | ||
| 14303 | (synopsis "Test your rendered HTML files to make sure they're accurate") | ||
| 14304 | (description | ||
| 14305 | "HTMLProofer is a set of tests to validate your HTML output. These | ||
| 14306 | tests check if your image references are legitimate, if they have alt tags, | ||
| 14307 | if your internal links are working, and so on. It's intended to be an | ||
| 14308 | all-in-one checker for your output.") | ||
| 14309 | (home-page "https://github.com/gjtorikian/html-proofer") | ||
| 14310 | (license license:expat))) | ||
| 14311 | |||
| 14312 | (define-public ruby-htmlentities | ||
| 14313 | (package | ||
| 14314 | (name "ruby-htmlentities") | ||
| 14315 | (version "4.3.4") | ||
| 14316 | (source | ||
| 14317 | (origin | ||
| 14318 | (method url-fetch) | ||
| 14319 | (uri (rubygems-uri "htmlentities" version)) | ||
| 14320 | (sha256 | ||
| 14321 | (base32 | ||
| 14322 | "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj")))) | ||
| 14323 | (build-system ruby-build-system) | ||
| 14324 | (arguments | ||
| 14325 | `(#:phases | ||
| 14326 | (modify-phases %standard-phases | ||
| 14327 | (replace 'check | ||
| 14328 | (lambda _ | ||
| 14329 | (map (lambda (file) | ||
| 14330 | (invoke "ruby" "-Itest" file)) | ||
| 14331 | (find-files "./test" ".*_test\\.rb"))))))) | ||
| 14332 | (synopsis "Encode and decode (X)HTML entities") | ||
| 14333 | (description | ||
| 14334 | "This package provides a module for encoding and decoding (X)HTML | ||
| 14335 | entities.") | ||
| 14336 | (home-page "https://github.com/threedaymonk/htmlentities") | ||
| 14337 | (license license:expat))) | ||
| 14338 | |||
| 14339 | ;;; FIXME: Currently broken with rack 3, awaiting the merge for | ||
| 14340 | ;;; https://github.com/sinatra/sinatra/pull/1857 and a new release. | ||
| 14341 | (define-public ruby-sinatra | ||
| 14342 | (package | ||
| 14343 | (name "ruby-sinatra") | ||
| 14344 | (version "3.0.5") | ||
| 14345 | (source | ||
| 14346 | (origin | ||
| 14347 | (method url-fetch) | ||
| 14348 | (uri (rubygems-uri "sinatra" version)) | ||
| 14349 | (sha256 | ||
| 14350 | (base32 | ||
| 14351 | "1ryfja9yd3fq8n1p5yi3qnd0pjk7bkycmxxmbb1bj0axlr1pdv20")))) | ||
| 14352 | (build-system ruby-build-system) | ||
| 14353 | (propagated-inputs | ||
| 14354 | (list ruby-mustermann ruby-rack ruby-rack-protection ruby-tilt)) | ||
| 14355 | (synopsis "DSL for quick web applications creation in Ruby") | ||
| 14356 | (description | ||
| 14357 | "Sinatra is a DSL for quickly creating web applications in Ruby with | ||
| 14358 | minimal effort.") | ||
| 14359 | (home-page "https://sinatrarb.com/") | ||
| 14360 | (license license:expat))) | ||
| 14361 | |||
| 14362 | (define-public ruby-timeout | ||
| 14363 | (package | ||
| 14364 | (name "ruby-timeout") | ||
| 14365 | (version "0.4.3") | ||
| 14366 | (source (origin | ||
| 14367 | (method git-fetch) ;for tests | ||
| 14368 | (uri (git-reference | ||
| 14369 | (url "https://github.com/ruby/timeout") | ||
| 14370 | (commit (string-append "v" version)))) | ||
| 14371 | (file-name (git-file-name name version)) | ||
| 14372 | (sha256 | ||
| 14373 | (base32 | ||
| 14374 | "1mw2dwyp2j05fl2gmw8cj132kk145sbxj5i0whpxcnddlc8gw781")))) | ||
| 14375 | (build-system ruby-build-system) | ||
| 14376 | (native-inputs (list ruby-test-unit-ruby-core)) | ||
| 14377 | (synopsis "Timeout library for Ruby") | ||
| 14378 | (description "Timeout provides a way to auto-terminate a potentially | ||
| 14379 | long-running operation if it hasn't finished in a fixed amount of time.") | ||
| 14380 | (home-page "https://github.com/ruby/timeout") | ||
| 14381 | (license (list license:bsd-2)))) | ||
| 14382 | |||
| 14383 | (define-public ruby-thin | ||
| 14384 | (package | ||
| 14385 | (name "ruby-thin") | ||
| 14386 | (version "1.7.2") | ||
| 14387 | (source | ||
| 14388 | (origin | ||
| 14389 | (method url-fetch) | ||
| 14390 | (uri (rubygems-uri "thin" version)) | ||
| 14391 | (sha256 | ||
| 14392 | (base32 | ||
| 14393 | "0nagbf9pwy1vg09k6j4xqhbjjzrg5dwzvkn4ffvlj76fsn6vv61f")))) | ||
| 14394 | (build-system ruby-build-system) | ||
| 14395 | (arguments | ||
| 14396 | ;; No tests. | ||
| 14397 | '(#:tests? #f)) | ||
| 14398 | (propagated-inputs | ||
| 14399 | (list ruby-daemons ruby-eventmachine ruby-rack)) | ||
| 14400 | (synopsis "Thin and fast web server for Ruby") | ||
| 14401 | (description "Thin is a Ruby web server that glues together 3 Ruby libraries: | ||
| 14402 | @itemize | ||
| 14403 | @item the Mongrel parser, | ||
| 14404 | @item Event Machine, a network I/O library with high scalability, performance | ||
| 14405 | and stability, | ||
| 14406 | @item Rack, a minimal interface between webservers and Ruby frameworks. | ||
| 14407 | @end itemize\n") | ||
| 14408 | (home-page "https://github.com/macournoyer/thin") | ||
| 14409 | (license license:ruby))) | ||
| 14410 | |||
| 14411 | (define-public ruby-truthy | ||
| 14412 | (package | ||
| 14413 | (name "ruby-truthy") | ||
| 14414 | (version "1.0.0") | ||
| 14415 | (source (origin | ||
| 14416 | (method url-fetch) | ||
| 14417 | (uri (rubygems-uri "truthy" version)) | ||
| 14418 | (sha256 | ||
| 14419 | (base32 | ||
| 14420 | "19silgd65j3qwfk5w891p9wcmzdmi9ddm2kg5zbvvqn2h9lkfzmd")))) | ||
| 14421 | (build-system ruby-build-system) | ||
| 14422 | (arguments (list #:phases #~(modify-phases %standard-phases | ||
| 14423 | (replace 'check | ||
| 14424 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 14425 | (when tests? | ||
| 14426 | (substitute* "spec/spec_helper.rb" | ||
| 14427 | (("require 'spec'") | ||
| 14428 | "require 'rspec'")) | ||
| 14429 | (invoke "rspec"))))))) | ||
| 14430 | (native-inputs (list ruby-rspec)) | ||
| 14431 | (synopsis "Object truthiness-related Ruby library") | ||
| 14432 | (description "This library makes it easier to discover the truth values of | ||
| 14433 | various Ruby objects.") | ||
| 14434 | (home-page "https://github.com/ymendel/truthy") | ||
| 14435 | (license license:expat))) | ||
| 14436 | |||
| 14437 | (define-public ruby-skinny | ||
| 14438 | (package | ||
| 14439 | (name "ruby-skinny") | ||
| 14440 | (version "0.2.4") | ||
| 14441 | (source | ||
| 14442 | (origin | ||
| 14443 | (method url-fetch) | ||
| 14444 | (uri (rubygems-uri "skinny" version)) | ||
| 14445 | (sha256 | ||
| 14446 | (base32 | ||
| 14447 | "1y3yvx88ylgz4d2s1wskjk5rkmrcr15q3ibzp1q88qwzr5y493a9")))) | ||
| 14448 | (build-system ruby-build-system) | ||
| 14449 | (arguments | ||
| 14450 | '(#:tests? #f ; No included tests | ||
| 14451 | #:phases | ||
| 14452 | (modify-phases %standard-phases | ||
| 14453 | (add-before 'build 'patch-gemspec | ||
| 14454 | (lambda _ | ||
| 14455 | (substitute* ".gemspec" | ||
| 14456 | (("<eventmachine>.freeze, \\[\\\"~> 1.0.0\"") | ||
| 14457 | "<eventmachine>, [\">= 1.0.0\"") | ||
| 14458 | (("<thin>.freeze, \\[\\\"< 1.7\", ") "<thin>, ["))))))) | ||
| 14459 | (propagated-inputs | ||
| 14460 | (list ruby-eventmachine ruby-thin)) | ||
| 14461 | (synopsis "Simple, upgradable WebSockets for Ruby Thin") | ||
| 14462 | (description "Skinny is a simple, upgradable WebSockets for Ruby, using | ||
| 14463 | the Thin library.") | ||
| 14464 | (home-page "https://github.com/sj26/skinny") | ||
| 14465 | (license license:expat))) | ||
| 14466 | |||
| 14467 | (define-public ruby-sys-filesystem | ||
| 14468 | (package | ||
| 14469 | (name "ruby-sys-filesystem") | ||
| 14470 | (version "1.3.4") | ||
| 14471 | (source (origin | ||
| 14472 | (method url-fetch) | ||
| 14473 | (uri (rubygems-uri "sys-filesystem" version)) | ||
| 14474 | (sha256 | ||
| 14475 | (base32 | ||
| 14476 | "0mizqnsiagagmracadr16s5na2ks2j3ih1w0f3gp4ssrda6szl01")))) | ||
| 14477 | (build-system ruby-build-system) | ||
| 14478 | (arguments | ||
| 14479 | '(#:phases (modify-phases %standard-phases | ||
| 14480 | (add-before 'check 'set-HOME | ||
| 14481 | (lambda _ | ||
| 14482 | ;; Some tests attempt to stat $HOME. Let them. | ||
| 14483 | (setenv "HOME" "/tmp")))))) | ||
| 14484 | (propagated-inputs | ||
| 14485 | (list ruby-ffi)) | ||
| 14486 | (native-inputs | ||
| 14487 | (list ruby-mkmf-lite)) | ||
| 14488 | (synopsis "Gather file system information") | ||
| 14489 | (description | ||
| 14490 | "The @code{sys-filesystem} library provides a cross-platform interface | ||
| 14491 | for gathering file system information, such as disk space and mount points.") | ||
| 14492 | (home-page "https://github.com/djberg96/sys-filesystem") | ||
| 14493 | (license license:asl2.0))) | ||
| 14494 | |||
| 14495 | (define-public mailcatcher | ||
| 14496 | (package | ||
| 14497 | (name "mailcatcher") | ||
| 14498 | (version "0.7.1") | ||
| 14499 | (source | ||
| 14500 | (origin | ||
| 14501 | (method url-fetch) | ||
| 14502 | (uri (rubygems-uri "mailcatcher" version)) | ||
| 14503 | (sha256 | ||
| 14504 | (base32 | ||
| 14505 | "02w1ycyfv7x0sh9799lz7xa65p5qvl5z4pa8a7prb68h2zwkfq0n")))) | ||
| 14506 | (build-system ruby-build-system) | ||
| 14507 | (arguments | ||
| 14508 | ;; Tests require web/assets which is not included in the output. We | ||
| 14509 | ;; might be able to fix this by adding the Git repository to the GEM_PATH | ||
| 14510 | ;; of the tests. See ruby-mysql2. | ||
| 14511 | '(#:tests? #f | ||
| 14512 | #:phases | ||
| 14513 | (modify-phases %standard-phases | ||
| 14514 | (add-before 'build 'patch-gemspec | ||
| 14515 | (lambda _ | ||
| 14516 | (substitute* ".gemspec" | ||
| 14517 | (("<eventmachine>.freeze, \\[\\\"= 1.0.9.1") | ||
| 14518 | "<eventmachine>, [\">= 1.0.9.1") | ||
| 14519 | (("<rack>.freeze, \\[\\\"~> 1.5") "<rack>, [\">= 1.5") | ||
| 14520 | (("<thin>.freeze, \\[\\\"~> 1.5.0") "<thin>, [\">= 1.5.0") | ||
| 14521 | (("<sinatra>.freeze, \\[\\\"~> 1.2") "<sinatra>, [\">= 1.2")))) | ||
| 14522 | (add-before 'build 'loosen-dependency-contraint | ||
| 14523 | (lambda _ | ||
| 14524 | (substitute* "lib/mail_catcher.rb" | ||
| 14525 | (("\"eventmachine\", \"1.0.9.1\"") "\"eventmachine\", \">= 1.0.9.1\"") | ||
| 14526 | (("\"rack\", \"~> 1.5\"") "\"rack\", \">= 1.5\"") | ||
| 14527 | (("\"thin\", \"~> 1.5.0\"") "\"thin\", \">= 1.5.0\"") | ||
| 14528 | (("\"sinatra\", \"~> 1.2\"") "\"sinatra\", \">= 1.2\""))))))) | ||
| 14529 | (inputs | ||
| 14530 | (list ruby-eventmachine | ||
| 14531 | ruby-mail | ||
| 14532 | ruby-rack | ||
| 14533 | ruby-sinatra | ||
| 14534 | ruby-skinny | ||
| 14535 | ruby-sqlite3 | ||
| 14536 | ruby-thin)) | ||
| 14537 | (synopsis "SMTP server which catches messages to display them a browser") | ||
| 14538 | (description | ||
| 14539 | "MailCatcher runs a super simple SMTP server which catches any message | ||
| 14540 | sent to it to display in a web interface. Run mailcatcher, set your favourite | ||
| 14541 | app to deliver to smtp://127.0.0.1:1025 instead of your default SMTP server, | ||
| 14542 | then check out http://127.0.0.1:1080 to see the mail.") | ||
| 14543 | (home-page "https://mailcatcher.me") | ||
| 14544 | (license license:expat))) | ||
| 14545 | |||
| 14546 | (define-public ruby-backport | ||
| 14547 | (package | ||
| 14548 | (name "ruby-backport") | ||
| 14549 | (version "1.1.2") | ||
| 14550 | (source | ||
| 14551 | (origin | ||
| 14552 | ;; The gem does not include test code, so fetch from the Git repository. | ||
| 14553 | (method git-fetch) | ||
| 14554 | (uri (git-reference | ||
| 14555 | (url "https://github.com/castwide/backport") | ||
| 14556 | (commit (string-append "v" version)))) | ||
| 14557 | (file-name (git-file-name name version)) | ||
| 14558 | (sha256 | ||
| 14559 | (base32 "18fpg1n7n2z02ykz9v1x1q0cqa2lvivf8ygka768s01q1r9wfwv2")))) | ||
| 14560 | (build-system ruby-build-system) | ||
| 14561 | (arguments | ||
| 14562 | `(#:test-target "spec")) | ||
| 14563 | (native-inputs | ||
| 14564 | (list bundler ruby-rspec)) | ||
| 14565 | (inputs | ||
| 14566 | (list ruby-simplecov)) | ||
| 14567 | (synopsis "Pure Ruby library for event-driven IO") | ||
| 14568 | (description | ||
| 14569 | "This package provides a pure Ruby library for event-driven IO.") | ||
| 14570 | (home-page "https://github.com/castwide/backport") | ||
| 14571 | (license license:expat))) | ||
| 14572 | |||
| 14573 | (define-public ruby-json-schema | ||
| 14574 | (package | ||
| 14575 | (name "ruby-json-schema") | ||
| 14576 | (version "2.8.1") | ||
| 14577 | (source | ||
| 14578 | (origin | ||
| 14579 | (method url-fetch) | ||
| 14580 | (uri (rubygems-uri "json-schema" version)) | ||
| 14581 | (sha256 | ||
| 14582 | (base32 | ||
| 14583 | "1yv5lfmr2nzd14af498xqd5p89f3g080q8wk0klr3vxgypsikkb5")))) | ||
| 14584 | (build-system ruby-build-system) | ||
| 14585 | (arguments | ||
| 14586 | `(#:tests? #f ; no tests | ||
| 14587 | #:phases | ||
| 14588 | (modify-phases %standard-phases | ||
| 14589 | (replace 'build | ||
| 14590 | (lambda _ | ||
| 14591 | (invoke "gem" "build" ".gemspec")))))) | ||
| 14592 | (propagated-inputs | ||
| 14593 | (list ruby-addressable)) | ||
| 14594 | (synopsis "Ruby JSON Schema Validator") | ||
| 14595 | (description "This library provides Ruby with an interface for validating | ||
| 14596 | JSON objects against a JSON schema conforming to JSON Schema Draft 4. Legacy | ||
| 14597 | support for JSON Schema Draft 3, JSON Schema Draft 2, and JSON Schema Draft 1 | ||
| 14598 | is also included.") | ||
| 14599 | (home-page "https://github.com/ruby-json-schema/json-schema") | ||
| 14600 | (license license:expat))) | ||
| 14601 | |||
| 14602 | (define-public swagger-diff | ||
| 14603 | (package | ||
| 14604 | (name "swagger-diff") | ||
| 14605 | (version "2.0.0") | ||
| 14606 | (source | ||
| 14607 | (origin | ||
| 14608 | (method url-fetch) | ||
| 14609 | (uri (rubygems-uri "swagger-diff" version)) | ||
| 14610 | (sha256 | ||
| 14611 | (base32 | ||
| 14612 | "18kbrijkafs3vfsbaqz0cqfj7jrz3aj8xr4fgn5if63wlximybv2")))) | ||
| 14613 | (build-system ruby-build-system) | ||
| 14614 | (arguments | ||
| 14615 | (list | ||
| 14616 | #:test-target "spec" | ||
| 14617 | #:phases | ||
| 14618 | #~(modify-phases %standard-phases | ||
| 14619 | ;; Don't run or require rubocop, the code linting tool, as this is a | ||
| 14620 | ;; bit unnecessary. | ||
| 14621 | (add-after 'unpack 'dont-run-rubocop | ||
| 14622 | (lambda _ | ||
| 14623 | (substitute* "Rakefile" | ||
| 14624 | ((".*rubocop.*") "") | ||
| 14625 | ((".*RuboCop.*") ""))))))) | ||
| 14626 | (propagated-inputs | ||
| 14627 | (list ruby-json-schema)) | ||
| 14628 | (native-inputs | ||
| 14629 | (list bundler ruby-rspec-core ruby-rspec-expectations)) | ||
| 14630 | (synopsis | ||
| 14631 | "Compare Open API Initiative specification files") | ||
| 14632 | (description | ||
| 14633 | "Swagger::Diff is a utility for comparing two different Open API | ||
| 14634 | Initiative (OAI) specifications (formerly known as Swagger specifications). | ||
| 14635 | It is intended to determine whether a newer API specification is | ||
| 14636 | backwards-compatible with an older API specification.") | ||
| 14637 | (home-page "https://github.com/civisanalytics/swagger-diff") | ||
| 14638 | (license license:bsd-3))) | ||
| 14639 | |||
| 14640 | (define-public ruby-reverse-markdown | ||
| 14641 | (package | ||
| 14642 | (name "ruby-reverse-markdown") | ||
| 14643 | (version "1.1.0") | ||
| 14644 | (source | ||
| 14645 | (origin | ||
| 14646 | (method url-fetch) | ||
| 14647 | (uri (rubygems-uri "reverse_markdown" version)) | ||
| 14648 | (sha256 | ||
| 14649 | (base32 | ||
| 14650 | "0w7y5n74daajvl9gixr91nh8670d7mkgspkk3ql71m8azq3nffbg")))) | ||
| 14651 | (build-system ruby-build-system) | ||
| 14652 | (propagated-inputs | ||
| 14653 | (list ruby-nokogiri)) | ||
| 14654 | (native-inputs | ||
| 14655 | (list bundler ruby-rspec ruby-kramdown ruby-simplecov)) | ||
| 14656 | (arguments | ||
| 14657 | `(#:phases | ||
| 14658 | (modify-phases %standard-phases | ||
| 14659 | (replace 'check | ||
| 14660 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 14661 | (when tests? | ||
| 14662 | (invoke "rspec"))))))) | ||
| 14663 | (synopsis "Convert HTML into Markdown") | ||
| 14664 | (description | ||
| 14665 | "This Ruby module allows you to map simple HTML back into | ||
| 14666 | Markdown---e.g., if you want to import existing HTML data in your | ||
| 14667 | application.") | ||
| 14668 | (home-page "https://github.com/xijo/reverse_markdown") | ||
| 14669 | (license license:wtfpl2))) | ||
| 14670 | |||
| 14671 | (define-public ruby-solargraph | ||
| 14672 | (package | ||
| 14673 | (name "ruby-solargraph") | ||
| 14674 | (version "0.40.3") | ||
| 14675 | (source | ||
| 14676 | (origin | ||
| 14677 | (method url-fetch) | ||
| 14678 | (uri (rubygems-uri "solargraph" version)) | ||
| 14679 | (sha256 | ||
| 14680 | (base32 | ||
| 14681 | "1gf049rm0yvw4r8r5yyi890idbfg8qh0dikqx5prvkh11srl73bz")))) | ||
| 14682 | (build-system ruby-build-system) | ||
| 14683 | (propagated-inputs | ||
| 14684 | (list ruby-backport | ||
| 14685 | bundler | ||
| 14686 | ruby-benchmark | ||
| 14687 | ruby-e2mmap | ||
| 14688 | ruby-jaro-winkler | ||
| 14689 | ruby-kramdown | ||
| 14690 | ruby-kramdown-parser-gfm | ||
| 14691 | ruby-maruku | ||
| 14692 | ruby-nokogiri | ||
| 14693 | ruby-parser | ||
| 14694 | ruby-reverse-markdown | ||
| 14695 | ruby-rubocop | ||
| 14696 | ruby-thor | ||
| 14697 | ruby-tilt | ||
| 14698 | ruby-yard)) | ||
| 14699 | (native-inputs | ||
| 14700 | (list ruby-rspec ruby-pry ruby-simplecov ruby-webmock)) | ||
| 14701 | ;; FIXME: can't figure out how to run the tests properly: | ||
| 14702 | |||
| 14703 | ;; An error occurred while loading spec_helper. | ||
| 14704 | ;; Failure/Error: return gem_original_require(path) | ||
| 14705 | ;; LoadError: | ||
| 14706 | ;; cannot load such file -- spec_helper | ||
| 14707 | (arguments | ||
| 14708 | '(#:tests? #f | ||
| 14709 | #:phases | ||
| 14710 | (modify-phases %standard-phases | ||
| 14711 | (replace 'check | ||
| 14712 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 14713 | (when tests? | ||
| 14714 | (invoke "rspec"))))))) | ||
| 14715 | (synopsis | ||
| 14716 | "IDE tools for code completion, inline documentation, and static analysis") | ||
| 14717 | (description | ||
| 14718 | "Solargraph provides a comprehensive suite of tools for Ruby | ||
| 14719 | programming: intellisense, diagnostics, inline documentation, and type | ||
| 14720 | checking.") | ||
| 14721 | (home-page "https://solargraph.org/") | ||
| 14722 | (license license:expat))) | ||
| 14723 | |||
| 14724 | (define-public ruby-wayback-machine-downloader | ||
| 14725 | (package | ||
| 14726 | (name "ruby-wayback-machine-downloader") | ||
| 14727 | (version "2.2.1") | ||
| 14728 | (source | ||
| 14729 | (origin | ||
| 14730 | (method url-fetch) | ||
| 14731 | (uri (rubygems-uri | ||
| 14732 | "wayback_machine_downloader" | ||
| 14733 | version)) | ||
| 14734 | (sha256 | ||
| 14735 | (base32 | ||
| 14736 | "12kb1qmvmmsaihqab1prn6cmynkn6cgb4vf41mgv22wkcgv5wgk2")))) | ||
| 14737 | (build-system ruby-build-system) | ||
| 14738 | (arguments | ||
| 14739 | '(#:tests? #f)) ; no tests | ||
| 14740 | (synopsis "Download archived websites from the Wayback Machine") | ||
| 14741 | (description | ||
| 14742 | "Wayback Machine Downloader is a command line tool for downloading | ||
| 14743 | websites from the Internet Archive's Wayback Machine (archive.org). | ||
| 14744 | It allows fine grained control over what to download by specifying | ||
| 14745 | which snapshots to consider and what files to include.") | ||
| 14746 | (home-page | ||
| 14747 | "https://github.com/hartator/wayback-machine-downloader") | ||
| 14748 | (license license:expat))) | ||
| 14749 | |||
| 14750 | (define-public ruby-zeitwerk | ||
| 14751 | (package | ||
| 14752 | (name "ruby-zeitwerk") | ||
| 14753 | (version "2.7.1") | ||
| 14754 | (source | ||
| 14755 | (origin | ||
| 14756 | (method git-fetch) ;for tests | ||
| 14757 | (uri (git-reference | ||
| 14758 | (url "https://github.com/fxn/zeitwerk") | ||
| 14759 | (commit (string-append "v" version)))) | ||
| 14760 | (file-name (git-file-name name version)) | ||
| 14761 | (sha256 | ||
| 14762 | (base32 | ||
| 14763 | "19qmcdpbh4bl878zd1w19064yjkpb8sxaydcasqfa7p8cfg3hnsr")))) | ||
| 14764 | (build-system ruby-build-system) | ||
| 14765 | (native-inputs | ||
| 14766 | (list ruby-minitest | ||
| 14767 | ruby-minitest-focus | ||
| 14768 | ruby-minitest-proveit | ||
| 14769 | ruby-minitest-reporters | ||
| 14770 | ruby-warning)) | ||
| 14771 | (synopsis "Efficient and thread-safe code loader for Ruby") | ||
| 14772 | (description | ||
| 14773 | "Zeitwerk implements constant autoloading with Ruby semantics. Each gem | ||
| 14774 | and application may have their own independent autoloader, with its own | ||
| 14775 | configuration, inflector, and logger. Supports autoloading, reloading, and | ||
| 14776 | eager loading.") | ||
| 14777 | (home-page "https://github.com/fxn/zeitwerk") | ||
| 14778 | (license license:expat))) | ||
| 14779 | |||
| 14780 | (define-public ruby-warning | ||
| 14781 | (package | ||
| 14782 | (name "ruby-warning") | ||
| 14783 | (version "1.5.0") | ||
| 14784 | (source | ||
| 14785 | (origin | ||
| 14786 | (method url-fetch) | ||
| 14787 | (uri (rubygems-uri "warning" version)) | ||
| 14788 | (sha256 | ||
| 14789 | (base32 "0lwcf7fsz1sda1fdbqq1i4q9kzg4f5vwrzgfg1vpa1hcxagw84hg")))) | ||
| 14790 | (build-system ruby-build-system) | ||
| 14791 | (arguments '(#:tests? #f)) ; No tests bundled. | ||
| 14792 | (synopsis "Custom processing for warnings") | ||
| 14793 | (description | ||
| 14794 | "This package adds custom processing for warnings for Ruby, including the | ||
| 14795 | ability to ignore specific warning messages, ignore warnings in specific | ||
| 14796 | files/directories, include backtraces with warnings, treat warnings as errors, | ||
| 14797 | deduplicate warnings, and add custom handling for all warnings in specific | ||
| 14798 | files/directories.") | ||
| 14799 | (home-page "https://github.com/jeremyevans/ruby-warning") | ||
| 14800 | (license license:expat))) | ||
| 14801 | |||
| 14802 | (define-public ruby-wwtd | ||
| 14803 | (package | ||
| 14804 | (name "ruby-wwtd") | ||
| 14805 | (version "1.4.1") | ||
| 14806 | (home-page "https://github.com/grosser/wwtd") | ||
| 14807 | (source (origin | ||
| 14808 | (method git-fetch) | ||
| 14809 | (uri (git-reference | ||
| 14810 | (url home-page) | ||
| 14811 | (commit (string-append "v" version)))) | ||
| 14812 | (file-name (git-file-name name version)) | ||
| 14813 | (sha256 | ||
| 14814 | (base32 | ||
| 14815 | "0gw7vfnbb41cy67yw82zji3jkhfsgmzcgzaszm99ax77y18wclf2")) | ||
| 14816 | (modules '((guix build utils))) | ||
| 14817 | (snippet | ||
| 14818 | '(begin | ||
| 14819 | ;; Remove bundled library. | ||
| 14820 | (delete-file "spec/rake-12.3.0.gem"))))) | ||
| 14821 | (build-system ruby-build-system) | ||
| 14822 | (arguments | ||
| 14823 | '(;; XXX: Tests need multiple versions of ruby, wants to run | ||
| 14824 | ;; `bundle install`, etc. | ||
| 14825 | #:tests? #f | ||
| 14826 | #:phases (modify-phases %standard-phases | ||
| 14827 | (replace 'replace-git-ls-files | ||
| 14828 | (lambda _ | ||
| 14829 | (substitute* "wwtd.gemspec" | ||
| 14830 | (("git ls-files lib/ bin/`") | ||
| 14831 | "find lib/ bin/ -type f |sort`")))) | ||
| 14832 | (add-before 'check 'remove-version-constraints | ||
| 14833 | (lambda _ | ||
| 14834 | (delete-file "Gemfile.lock"))) | ||
| 14835 | (replace 'check | ||
| 14836 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 14837 | (if tests? | ||
| 14838 | (invoke "rspec" "spec/") | ||
| 14839 | (format #t "test suite not run~%"))))))) | ||
| 14840 | (native-inputs | ||
| 14841 | (list ruby-bump ruby-rspec)) | ||
| 14842 | (synopsis "Run @file{.travis.yml} files locally") | ||
| 14843 | (description | ||
| 14844 | "WWTD is a @dfn{Travis Simulator} that lets you run test matrices | ||
| 14845 | defined in @file{.travis.yml} on your local machine, using @code{rvm}, | ||
| 14846 | @code{rbenv}, or @code{chruby} to test different versions of Ruby.") | ||
| 14847 | (license license:expat))) | ||
| 14848 | |||
| 14849 | (define-public ruby-rugged | ||
| 14850 | ;; The last release is old and doesn't build anymore (see: | ||
| 14851 | ;; https://github.com/libgit2/rugged/issues/951). | ||
| 14852 | (let ((commit "6379f23cedd5f527cf6a5c229627e366b590a22d") | ||
| 14853 | (revision "0")) | ||
| 14854 | (package | ||
| 14855 | (name "ruby-rugged") | ||
| 14856 | (version (git-version "1.6.2" revision commit)) | ||
| 14857 | (source (origin | ||
| 14858 | (method git-fetch) | ||
| 14859 | (uri (git-reference | ||
| 14860 | (url "https://github.com/libgit2/rugged") | ||
| 14861 | (commit commit))) | ||
| 14862 | (file-name (git-file-name name version)) | ||
| 14863 | (sha256 | ||
| 14864 | (base32 | ||
| 14865 | "0yac7vm0l2jsdsxf2k7xbny4iyzsy8fhiy2g5sphhffp7xgynny8")))) | ||
| 14866 | (build-system ruby-build-system) | ||
| 14867 | (arguments | ||
| 14868 | (list #:gem-flags | ||
| 14869 | #~(list "--" "--use-system-libraries") | ||
| 14870 | #:phases | ||
| 14871 | #~(modify-phases %standard-phases | ||
| 14872 | (add-after 'unpack 'adjust-extconf.rb | ||
| 14873 | (lambda _ | ||
| 14874 | ;; Neither using --with-git2-dir=$prefix nor providing | ||
| 14875 | ;; pkg-config allows locating the libgit2 prefix (see: | ||
| 14876 | ;; https://github.com/libgit2/rugged/issues/955). | ||
| 14877 | (substitute* "ext/rugged/extconf.rb" | ||
| 14878 | (("LIBGIT2_DIR = File.join.*'vendor', 'libgit2'.*") | ||
| 14879 | (format #f "LIBGIT2_DIR = ~s~%" | ||
| 14880 | #$(this-package-input "libgit2")))))) | ||
| 14881 | (delete 'check) ;moved after the install phase | ||
| 14882 | (add-after 'install 'check | ||
| 14883 | (assoc-ref %standard-phases 'check)) | ||
| 14884 | (add-before 'check 'set-GEM_PATH | ||
| 14885 | (lambda _ | ||
| 14886 | (setenv "GEM_PATH" (string-append | ||
| 14887 | (getenv "GEM_PATH") ":" | ||
| 14888 | #$output "/lib/ruby/vendor_ruby")))) | ||
| 14889 | (add-before 'check 'disable-problematic-tests | ||
| 14890 | (lambda _ | ||
| 14891 | (with-directory-excursion "test" | ||
| 14892 | (for-each delete-file | ||
| 14893 | ;; These tests require an actual libgit2 git | ||
| 14894 | ;; repository checkout. | ||
| 14895 | '("blame_test.rb" | ||
| 14896 | "blob_test.rb" | ||
| 14897 | "cherrypick_test.rb" | ||
| 14898 | "config_test.rb" | ||
| 14899 | "commit_test.rb" | ||
| 14900 | "diff_test.rb" | ||
| 14901 | "index_test.rb" | ||
| 14902 | "merge_test.rb" | ||
| 14903 | "note_test.rb" | ||
| 14904 | "object_test.rb" | ||
| 14905 | "patch_test.rb" | ||
| 14906 | "rebase_test.rb" | ||
| 14907 | "reference_test.rb" | ||
| 14908 | "remote_test.rb" | ||
| 14909 | "repo_apply_test.rb" | ||
| 14910 | "repo_ignore_test.rb" | ||
| 14911 | "repo_pack_test.rb" | ||
| 14912 | "repo_reset_test.rb" | ||
| 14913 | "repo_test.rb" | ||
| 14914 | "revert_test.rb" | ||
| 14915 | "settings_test.rb" | ||
| 14916 | "status_test.rb" | ||
| 14917 | "submodule_test.rb" | ||
| 14918 | "tag_test.rb" | ||
| 14919 | "tree_test.rb" | ||
| 14920 | "walker_test.rb")) | ||
| 14921 | (delete-file-recursively "online"))))))) | ||
| 14922 | (native-inputs (list git-minimal/pinned ruby-rake-compiler)) | ||
| 14923 | (inputs (list libgit2)) | ||
| 14924 | (synopsis "Ruby bindings to the libgit2 linkable C Git library") | ||
| 14925 | (description "Rugged is a library for accessing libgit2 in Ruby. It gives | ||
| 14926 | you the speed and portability of libgit2 with the beauty of the Ruby | ||
| 14927 | language.") | ||
| 14928 | (home-page "https://www.rubydoc.info/gems/rugged") | ||
| 14929 | (license license:expat)))) | ||
| 14930 | |||
| 14931 | (define-public ruby-yell | ||
| 14932 | (package | ||
| 14933 | (name "ruby-yell") | ||
| 14934 | (version "2.2.2") | ||
| 14935 | (source | ||
| 14936 | (origin | ||
| 14937 | (method url-fetch) | ||
| 14938 | (uri (rubygems-uri "yell" version)) | ||
| 14939 | (sha256 | ||
| 14940 | (base32 | ||
| 14941 | "1g16kcdhdfvczn7x81jiq6afg3bdxmb73skqjyjlkp5nqcy6y5hx")))) | ||
| 14942 | (build-system ruby-build-system) | ||
| 14943 | (arguments | ||
| 14944 | `(#:phases | ||
| 14945 | (modify-phases %standard-phases | ||
| 14946 | (replace 'check | ||
| 14947 | (lambda _ | ||
| 14948 | (invoke "rake" "examples")))))) ; there is no test target. | ||
| 14949 | (synopsis | ||
| 14950 | "Extensible logging library for Ruby") | ||
| 14951 | (description | ||
| 14952 | "Yell is a comprehensive logging replacement for Ruby. It defines | ||
| 14953 | multiple adapters, various log level combinations and message formatting | ||
| 14954 | options.") | ||
| 14955 | (home-page "https://github.com/rudionrails/yell") | ||
| 14956 | (license license:expat))) | ||
| 14957 | |||
| 14958 | (define-public ruby-e2mmap | ||
| 14959 | (package | ||
| 14960 | (name "ruby-e2mmap") | ||
| 14961 | (version "0.1.0") | ||
| 14962 | (source | ||
| 14963 | (origin | ||
| 14964 | (method url-fetch) | ||
| 14965 | (uri (rubygems-uri "e2mmap" version)) | ||
| 14966 | (sha256 | ||
| 14967 | (base32 | ||
| 14968 | "0n8gxjb63dck3vrmsdcqqll7xs7f3wk78mw8w0gdk9wp5nx6pvj5")))) | ||
| 14969 | (build-system ruby-build-system) | ||
| 14970 | (arguments | ||
| 14971 | `(#:tests? #f)) ;; There is a rakefile but no tests | ||
| 14972 | (synopsis | ||
| 14973 | "Module for defining custom exceptions with specific messages") | ||
| 14974 | (description | ||
| 14975 | "Exception2MessageMapper (e2mmap) is a helper module for easily defining | ||
| 14976 | exceptions with predefined messages.") | ||
| 14977 | (home-page "https://github.com/ruby/e2mmap") | ||
| 14978 | (license license:bsd-2))) | ||
| 14979 | |||
| 14980 | (define-public ruby-benchmark | ||
| 14981 | (package | ||
| 14982 | (name "ruby-benchmark") | ||
| 14983 | (version "0.4.0") | ||
| 14984 | (source | ||
| 14985 | (origin | ||
| 14986 | (method url-fetch) | ||
| 14987 | (uri (rubygems-uri "benchmark" version)) | ||
| 14988 | (sha256 | ||
| 14989 | (base32 | ||
| 14990 | "0jl71qcgamm96dzyqk695j24qszhcc7liw74qc83fpjljp2gh4hg")))) | ||
| 14991 | (build-system ruby-build-system) | ||
| 14992 | (synopsis "Performance benchmarking library") | ||
| 14993 | (description "This package provides methods for benchmarking Ruby code, | ||
| 14994 | giving detailed reports on the time taken for each task.") | ||
| 14995 | (home-page "https://github.com/ruby/benchmark") | ||
| 14996 | (license license:bsd-2))) | ||
| 14997 | |||
| 14998 | (define-public ruby-jekyll-feed | ||
| 14999 | (package | ||
| 15000 | (name "ruby-jekyll-feed") | ||
| 15001 | (version "0.15.1") | ||
| 15002 | (source | ||
| 15003 | (origin | ||
| 15004 | (method url-fetch) | ||
| 15005 | (uri (rubygems-uri "jekyll-feed" version)) | ||
| 15006 | (sha256 | ||
| 15007 | (base32 | ||
| 15008 | "1zxqkrnix0xiw98531h5ga6h69jhzlx2jh9qhvcl67p8nq3sgza9")))) | ||
| 15009 | (build-system ruby-build-system) | ||
| 15010 | (arguments | ||
| 15011 | `(#:tests? #false)) ;there are none | ||
| 15012 | (propagated-inputs | ||
| 15013 | (list jekyll)) | ||
| 15014 | (synopsis | ||
| 15015 | "Jekyll plugin to generate an Atom feed of your Jekyll posts") | ||
| 15016 | (description | ||
| 15017 | "This package provides a Jekyll plugin to generate an Atom feed | ||
| 15018 | of your Jekyll posts.") | ||
| 15019 | (home-page | ||
| 15020 | "https://github.com/jekyll/jekyll-feed") | ||
| 15021 | (license license:expat))) | ||
| 15022 | |||
| 15023 | (define-public ruby-jekyll-sitemap | ||
| 15024 | (package | ||
| 15025 | (name "ruby-jekyll-sitemap") | ||
| 15026 | (version "1.4.0") | ||
| 15027 | (source | ||
| 15028 | (origin | ||
| 15029 | (method url-fetch) | ||
| 15030 | (uri (rubygems-uri "jekyll-sitemap" version)) | ||
| 15031 | (sha256 | ||
| 15032 | (base32 | ||
| 15033 | "0622rwsn5i0m5xcyzdn86l68wgydqwji03lqixdfm1f1xdfqrq0d")))) | ||
| 15034 | (build-system ruby-build-system) | ||
| 15035 | (arguments | ||
| 15036 | `(#:tests? #false)) ;there are none | ||
| 15037 | (propagated-inputs | ||
| 15038 | (list jekyll)) | ||
| 15039 | (synopsis | ||
| 15040 | "Automatically generate a sitemap.xml for your Jekyll site") | ||
| 15041 | (description | ||
| 15042 | "This package provides a Jekyll plugin to silently generate | ||
| 15043 | a sitemaps.org compliant sitemap for your Jekyll site.") | ||
| 15044 | (home-page | ||
| 15045 | "https://github.com/jekyll/jekyll-sitemap") | ||
| 15046 | (license license:expat))) | ||
| 15047 | |||
| 15048 | (define-public ruby-jekyll-seo-tag | ||
| 15049 | (package | ||
| 15050 | (name "ruby-jekyll-seo-tag") | ||
| 15051 | (version "2.7.1") | ||
| 15052 | (source | ||
| 15053 | (origin | ||
| 15054 | (method url-fetch) | ||
| 15055 | (uri (rubygems-uri "jekyll-seo-tag" version)) | ||
| 15056 | (sha256 | ||
| 15057 | (base32 | ||
| 15058 | "0fsi75hymk2wswy216fs224p5ycrzjw1kshw1bsl5czhv42wr2w3")))) | ||
| 15059 | (build-system ruby-build-system) | ||
| 15060 | (arguments | ||
| 15061 | `(#:tests? #false)) | ||
| 15062 | (propagated-inputs | ||
| 15063 | (list jekyll)) | ||
| 15064 | (synopsis | ||
| 15065 | "Jekyll plugin to add metadata tags for search engines and social networks") | ||
| 15066 | (description | ||
| 15067 | "This package provides a Jekyll plugin to add metadata tags for search engines | ||
| 15068 | and social networks to better index and display your site's content.") | ||
| 15069 | (home-page | ||
| 15070 | "https://github.com/jekyll/jekyll-seo-tag") | ||
| 15071 | (license license:expat))) | ||
| 15072 | |||
| 15073 | (define-public ruby-taskjuggler | ||
| 15074 | (package | ||
| 15075 | (name "ruby-taskjuggler") | ||
| 15076 | (version "3.8.1") | ||
| 15077 | (source | ||
| 15078 | (origin | ||
| 15079 | (method url-fetch) | ||
| 15080 | (uri (rubygems-uri "taskjuggler" version)) | ||
| 15081 | (sha256 | ||
| 15082 | (base32 | ||
| 15083 | "16d5vgz54all8vl3haqy6j69plny3np4kc3wq7wy3xa3i0h7v60z")))) | ||
| 15084 | (build-system ruby-build-system) | ||
| 15085 | (native-inputs (list ruby-rspec tzdata-for-tests)) | ||
| 15086 | (propagated-inputs | ||
| 15087 | (list ruby-mail ruby-term-ansicolor)) | ||
| 15088 | (arguments | ||
| 15089 | '(#:phases (modify-phases %standard-phases | ||
| 15090 | (replace 'replace-git-ls-files | ||
| 15091 | (lambda _ | ||
| 15092 | (substitute* "tasks/rdoc.rake" | ||
| 15093 | (("`git ls-files -- lib`") | ||
| 15094 | "`find lib/ -type f |sort`")))) | ||
| 15095 | (add-before 'check 'tzdir-setup | ||
| 15096 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 15097 | (setenv "TZDIR" | ||
| 15098 | (string-append (assoc-ref inputs "tzdata") | ||
| 15099 | "/share/zoneinfo")))) | ||
| 15100 | (add-before 'check 'delete-test-BatchProcessor | ||
| 15101 | ;; test_BatchProcessor fails with exception: | ||
| 15102 | ;; run> terminated with exception (report_on_exception is true) | ||
| 15103 | (lambda _ | ||
| 15104 | (delete-file "test/test_BatchProcessor.rb")))))) | ||
| 15105 | (synopsis | ||
| 15106 | "Project management command line tool with a domain specific language") | ||
| 15107 | (description | ||
| 15108 | "TaskJuggler (tj3) is a project management tool for project planning and | ||
| 15109 | tracking using a domain specific language; projects are plain text files | ||
| 15110 | written using your favourite text editor. It includes reporting in HTML, CSV | ||
| 15111 | or iCalendar format and an email based status tracking system to send and | ||
| 15112 | receive time sheets from collaborators. | ||
| 15113 | |||
| 15114 | It covers the complete spectrum of project management tasks from the first | ||
| 15115 | idea to the completion of the project. It assists you during project scoping, | ||
| 15116 | resource assignment, cost and revenue planning, risk and communication | ||
| 15117 | management, status tracking and reporting.") | ||
| 15118 | (home-page "https://taskjuggler.org") | ||
| 15119 | (license license:gpl2))) | ||
| 15120 | |||
| 15121 | (define-public ruby-cmath | ||
| 15122 | (package | ||
| 15123 | (name "ruby-cmath") | ||
| 15124 | (version "1.0.0") | ||
| 15125 | (source | ||
| 15126 | (origin | ||
| 15127 | (method url-fetch) | ||
| 15128 | (uri (rubygems-uri "cmath" version)) | ||
| 15129 | (sha256 | ||
| 15130 | (base32 | ||
| 15131 | "1xkz6xyhpkjbdvpdib8450w62rls1mjryz0gzbbnadxkxn82nb8m")))) | ||
| 15132 | (build-system ruby-build-system) | ||
| 15133 | (arguments | ||
| 15134 | `(#:tests? #false)) | ||
| 15135 | (native-inputs | ||
| 15136 | (list bundler ruby-rake-compiler)) | ||
| 15137 | (synopsis "Trigonometric functions for complex numbers") | ||
| 15138 | (description | ||
| 15139 | "This gem is a library that provides trigonometric and transcendental | ||
| 15140 | functions for complex numbers. The functions in this module accept integers, | ||
| 15141 | floating-point numbers or complex numbers as arguments.") | ||
| 15142 | (home-page "https://github.com/ruby/cmath") | ||
| 15143 | (license license:bsd-2))) | ||
| 15144 | |||
| 15145 | (define-public ruby-sucker-punch | ||
| 15146 | (package | ||
| 15147 | (name "ruby-sucker-punch") | ||
| 15148 | (version "3.1.0") | ||
| 15149 | (source | ||
| 15150 | (origin | ||
| 15151 | (method url-fetch) | ||
| 15152 | (uri (rubygems-uri "sucker_punch" version)) | ||
| 15153 | (sha256 | ||
| 15154 | (base32 "12by9vx8q6l4i56q62k1s1ymaxbpg4rny5zngj5i5h09kyh2yp4p")))) | ||
| 15155 | (build-system ruby-build-system) | ||
| 15156 | (arguments | ||
| 15157 | `(#:phases | ||
| 15158 | (modify-phases %standard-phases | ||
| 15159 | (add-after 'extract-gemspec 'less-strict-dependencies | ||
| 15160 | (lambda _ | ||
| 15161 | (substitute* "sucker_punch.gemspec" | ||
| 15162 | (("1.0.0") "1.0"))))))) | ||
| 15163 | (native-inputs | ||
| 15164 | (list | ||
| 15165 | ruby-pry)) | ||
| 15166 | (propagated-inputs | ||
| 15167 | (list | ||
| 15168 | ruby-concurrent)) | ||
| 15169 | (home-page "https://github.com/brandonhilkert/sucker_punch") | ||
| 15170 | (synopsis "Asynchronous processing library for Ruby") | ||
| 15171 | (description "Sucker Punch is a single-process Ruby asynchronous processing | ||
| 15172 | library. It is perfect for asynchronous processes like emailing, data crunching | ||
| 15173 | or social platform manipulation; and generally recommended for jobs that are | ||
| 15174 | fast and non-mission critical like logs, emails, etc.") | ||
| 15175 | (license license:expat))) | ||
| 15176 | |||
| 15177 | (define-public ruby-countdownlatch | ||
| 15178 | (package | ||
| 15179 | (name "ruby-countdownlatch") | ||
| 15180 | (version "1.0.0") | ||
| 15181 | (source | ||
| 15182 | (origin | ||
| 15183 | (method url-fetch) | ||
| 15184 | (uri (rubygems-uri "countdownlatch" version)) | ||
| 15185 | (sha256 | ||
| 15186 | (base32 "1v6pbay6z07fp7yvnba1hmyacbicvmjndd8rn2h1b5rmpcb5s0j3")))) | ||
| 15187 | (build-system ruby-build-system) | ||
| 15188 | (home-page "https://github.com/benlangfeld/countdownlatch") | ||
| 15189 | (synopsis "Thread synchronization aid Ruby") | ||
| 15190 | (description "CountDownLatch is a synchronization aid that allows one or | ||
| 15191 | more threads to wait until a set of operations being performed in other threads | ||
| 15192 | completes.") | ||
| 15193 | (license license:expat))) | ||
| 15194 | |||
| 15195 | (define-public ruby-value-semantics | ||
| 15196 | (package | ||
| 15197 | (name "ruby-value-semantics") | ||
| 15198 | (version "3.6.1") | ||
| 15199 | (source | ||
| 15200 | (origin | ||
| 15201 | (method url-fetch) | ||
| 15202 | (uri (rubygems-uri "value_semantics" version)) | ||
| 15203 | (sha256 | ||
| 15204 | (base32 "1vdwai8wf6r1fkvdpyz1vzxm89q7ghjvb3pqpg2kvwibwzd99dnx")))) | ||
| 15205 | (build-system ruby-build-system) | ||
| 15206 | (arguments | ||
| 15207 | `(#:phases | ||
| 15208 | (modify-phases %standard-phases | ||
| 15209 | (replace 'check | ||
| 15210 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 15211 | (when tests? | ||
| 15212 | (invoke "rspec"))))))) | ||
| 15213 | (native-inputs | ||
| 15214 | (list | ||
| 15215 | ruby-rspec)) | ||
| 15216 | (home-page "https://github.com/tomdalling/value_semantics") | ||
| 15217 | (synopsis "Ruby gem for making value classes") | ||
| 15218 | (description "ValueSemantics generates modules that provide conventional | ||
| 15219 | value semantics for a given set of attributes. The behaviour is similar to an | ||
| 15220 | immutable Struct class, plus extensible, lightweight validation and coercion.") | ||
| 15221 | (license license:expat))) | ||
| 15222 | |||
| 15223 | (define-public ruby-promise | ||
| 15224 | (package | ||
| 15225 | (name "ruby-promise") | ||
| 15226 | (version "0.7.4") | ||
| 15227 | (source | ||
| 15228 | (origin | ||
| 15229 | (method url-fetch) | ||
| 15230 | (uri (rubygems-uri "promise.rb" version)) | ||
| 15231 | (sha256 | ||
| 15232 | (base32 "0a819sikcqvhi8hck1y10d1nv2qkjvmmm553626fmrh51h2i089d")))) | ||
| 15233 | (build-system ruby-build-system) | ||
| 15234 | (arguments | ||
| 15235 | `(#:test-target "spec" | ||
| 15236 | #:phases | ||
| 15237 | (modify-phases %standard-phases | ||
| 15238 | (add-after 'extract-gemspec 'less-strict-dependencies | ||
| 15239 | (lambda _ | ||
| 15240 | (substitute* "Rakefile" | ||
| 15241 | (("if Gem.ruby_version.*") "if false\n")) | ||
| 15242 | (substitute* "spec/spec_helper.rb" | ||
| 15243 | ((".*devtools/spec_helper.*") "\n"))))))) | ||
| 15244 | (native-inputs | ||
| 15245 | (list | ||
| 15246 | ruby-rspec | ||
| 15247 | ruby-rspec-its | ||
| 15248 | ruby-awesome-print | ||
| 15249 | ruby-fuubar)) | ||
| 15250 | (home-page "https://github.com/lgierth/promise.rb") | ||
| 15251 | (synopsis "Asynchronous operation library for Ruby") | ||
| 15252 | (description "Promise is a Ruby implementation of the Promises/A+ | ||
| 15253 | specification. It provides 100% mutation coverage, tested on MRI 1.9, 2.0, 2.1, | ||
| 15254 | 2.2, Rubinius, and JRuby.") | ||
| 15255 | (license license:unlicense))) | ||
| 15256 | |||
| 15257 | (define-public ruby-multicodecs | ||
| 15258 | (package | ||
| 15259 | (name "ruby-multicodecs") | ||
| 15260 | (version "0.2.1") | ||
| 15261 | (source | ||
| 15262 | (origin | ||
| 15263 | (method url-fetch) | ||
| 15264 | (uri (rubygems-uri "multicodecs" version)) | ||
| 15265 | (sha256 | ||
| 15266 | (base32 "0drq267di57l9zqw6zvqqimilz42rbc8z7392dwkk8wslq30s7v8")))) | ||
| 15267 | (build-system ruby-build-system) | ||
| 15268 | (home-page "https://github.com/SleeplessByte/ruby-multicodec") | ||
| 15269 | (synopsis "Ruby implementation of multiformats/multicodec") | ||
| 15270 | (description "Multicodecs is the ruby implementation of | ||
| 15271 | multiformats/multicodec, a canonical table of of codecs used by various | ||
| 15272 | multiformats.") | ||
| 15273 | (license license:expat))) | ||
| 15274 | |||
| 15275 | (define-public ruby-multihashes | ||
| 15276 | (package | ||
| 15277 | (name "ruby-multihashes") | ||
| 15278 | (version "0.2.0") | ||
| 15279 | (source | ||
| 15280 | (origin | ||
| 15281 | (method url-fetch) | ||
| 15282 | (uri (rubygems-uri "multihashes" version)) | ||
| 15283 | (sha256 | ||
| 15284 | (base32 "17wiyy3fiv8rpgdv9ca01yncsmaaf8yg15bg18wc7m9frss1vgqg")))) | ||
| 15285 | (build-system ruby-build-system) | ||
| 15286 | (propagated-inputs | ||
| 15287 | (list | ||
| 15288 | ruby-multicodecs)) | ||
| 15289 | (home-page "https://github.com/multiformats/ruby-multihash") | ||
| 15290 | (synopsis "Multihash implementation for Ruby") | ||
| 15291 | (description "Multihashes provides a simple, low-level multihash | ||
| 15292 | implementation for Ruby. A multihash is a digest with an embedded hash function | ||
| 15293 | code") | ||
| 15294 | (license license:expat))) | ||
| 15295 | |||
| 15296 | (define-public ruby-lazy-object | ||
| 15297 | (package | ||
| 15298 | (name "ruby-lazy-object") | ||
| 15299 | (version "0.0.3") | ||
| 15300 | (source | ||
| 15301 | (origin | ||
| 15302 | (method url-fetch) | ||
| 15303 | (uri (rubygems-uri "lazy_object" version)) | ||
| 15304 | (sha256 | ||
| 15305 | (base32 "08px15lahc28ik9smvw1hgamf792gd6gq0s4k94yq1h7jq25wjn8")))) | ||
| 15306 | (build-system ruby-build-system) | ||
| 15307 | (arguments | ||
| 15308 | `(#:test-target "spec")) | ||
| 15309 | (home-page "https://github.com/HornsAndHooves/lazy_object") | ||
| 15310 | (synopsis "Object wrapper that forwards all calls to the reference object") | ||
| 15311 | (description "LazyObject is an object wrapper that forwards all calls to the | ||
| 15312 | reference object. This object is not created until the first method dispatch.") | ||
| 15313 | (license license:expat))) | ||
| 15314 | |||
| 15315 | (define-public ruby-citrus | ||
| 15316 | (package | ||
| 15317 | (name "ruby-citrus") | ||
| 15318 | (version "3.0.2") | ||
| 15319 | (source | ||
| 15320 | (origin | ||
| 15321 | (method git-fetch) | ||
| 15322 | ;; Download from GitHub because the rubygems version does not contain | ||
| 15323 | ;; files needed for tests. | ||
| 15324 | (uri (git-reference | ||
| 15325 | (url "https://github.com/mjackson/citrus") | ||
| 15326 | (commit (string-append "v" version)))) | ||
| 15327 | (file-name (git-file-name name version)) | ||
| 15328 | (sha256 | ||
| 15329 | (base32 "197wrgqrddgm1xs3yvjvd8vkvil4h4mdrcp16jmd4b57rxrrr769")))) | ||
| 15330 | (build-system ruby-build-system) | ||
| 15331 | (home-page "https://mjackson.github.io/citrus/") | ||
| 15332 | (synopsis "Parsing Expressions for Ruby") | ||
| 15333 | (description "Citrus is a parsing library for Ruby that combines the | ||
| 15334 | expressiveness of the language with the parsing expressions.") | ||
| 15335 | (license license:expat))) | ||
| 15336 | |||
| 15337 | (define-public ruby-cbor | ||
| 15338 | (package | ||
| 15339 | (name "ruby-cbor") | ||
| 15340 | (version "0.5.9.6") | ||
| 15341 | (source | ||
| 15342 | (origin | ||
| 15343 | (method url-fetch) | ||
| 15344 | (uri (rubygems-uri "cbor" version)) | ||
| 15345 | (sha256 | ||
| 15346 | (base32 "0511idr8xps9625nh3kxr68sdy6l3xy2kcz7r57g47fxb1v18jj3")))) | ||
| 15347 | (build-system ruby-build-system) | ||
| 15348 | (arguments | ||
| 15349 | `(#:test-target "spec")) | ||
| 15350 | (native-inputs | ||
| 15351 | (list | ||
| 15352 | ruby-rspec | ||
| 15353 | ruby-rake-compiler | ||
| 15354 | ruby-yard)) | ||
| 15355 | (home-page "https://cbor.io/") | ||
| 15356 | (synopsis "Concise Binary Object Representation") | ||
| 15357 | (description "CBOR is a library for the | ||
| 15358 | @acronym{CBOR, Concise Binary Object Representation} format, based on | ||
| 15359 | Sadayuki Furuhashi's MessagePack library.") | ||
| 15360 | (license license:asl2.0))) | ||
| 15361 | |||
| 15362 | (define-public ruby-gem-release | ||
| 15363 | (package | ||
| 15364 | (name "ruby-gem-release") | ||
| 15365 | (version "2.2.2") | ||
| 15366 | (source | ||
| 15367 | (origin | ||
| 15368 | (method url-fetch) | ||
| 15369 | (uri (rubygems-uri "gem-release" version)) | ||
| 15370 | (sha256 | ||
| 15371 | (base32 "108rrfaiayi14zrqbb6z0cbwcxh8n15am5ry2a86v7c8c3niysq9")))) | ||
| 15372 | (build-system ruby-build-system) | ||
| 15373 | (arguments | ||
| 15374 | ;; No rakefile | ||
| 15375 | `(#:tests? #f)) | ||
| 15376 | (home-page "https://github.com/svenfuchs/gem-release") | ||
| 15377 | (synopsis "Ruby gem plugin for release management") | ||
| 15378 | (description "GemRelease is a gem plugin that aims at making gem development | ||
| 15379 | easier by automating repetitive work based on conventions, configuration, and | ||
| 15380 | templates.") | ||
| 15381 | (license license:expat))) | ||
| 15382 | |||
| 15383 | (define-public ruby-base32 | ||
| 15384 | (package | ||
| 15385 | (name "ruby-base32") | ||
| 15386 | (version "0.3.4") | ||
| 15387 | (source | ||
| 15388 | (origin | ||
| 15389 | (method url-fetch) | ||
| 15390 | (uri (rubygems-uri "base32" version)) | ||
| 15391 | (sha256 | ||
| 15392 | (base32 "1fjs0l3c5g9qxwp43kcnhc45slx29yjb6m6jxbb2x1krgjmi166b")))) | ||
| 15393 | (build-system ruby-build-system) | ||
| 15394 | (native-inputs | ||
| 15395 | (list | ||
| 15396 | ruby-gem-release)) | ||
| 15397 | (home-page "https://github.com/stesla/base32") | ||
| 15398 | (synopsis "Ruby extension for base32 encoding and decoding") | ||
| 15399 | (description "Base32 is a library which provides base32 decoding and | ||
| 15400 | encoding.") | ||
| 15401 | (license license:expat))) | ||
| 15402 | |||
| 15403 | (define-public ruby-dhall | ||
| 15404 | (package | ||
| 15405 | (name "ruby-dhall") | ||
| 15406 | (version "0.5.2") | ||
| 15407 | (source | ||
| 15408 | (origin | ||
| 15409 | (method url-fetch) | ||
| 15410 | (uri (rubygems-uri "dhall" version)) | ||
| 15411 | (sha256 | ||
| 15412 | (base32 "09wcq8xc1ynld04r2f332bx8cn7rjc4afaq8hm1dr2fc35jlpn6m")))) | ||
| 15413 | (build-system ruby-build-system) | ||
| 15414 | (arguments | ||
| 15415 | ;; No test in gem archive | ||
| 15416 | `(#:tests? #f)) | ||
| 15417 | (propagated-inputs | ||
| 15418 | (list | ||
| 15419 | ruby-base32 | ||
| 15420 | ruby-cbor | ||
| 15421 | ruby-citrus | ||
| 15422 | ruby-lazy-object | ||
| 15423 | ruby-multihashes | ||
| 15424 | ruby-promise | ||
| 15425 | ruby-value-semantics)) | ||
| 15426 | (home-page "https://git.sr.ht/~singpolyma/dhall-ruby") | ||
| 15427 | (synopsis "Ruby implementation of the Dhall configuration language") | ||
| 15428 | (description "Dhall.rb is a Ruby implementation of the Dhall configuration | ||
| 15429 | language. Dhall is a memory safe and non-Turing-complete configuration | ||
| 15430 | language.") | ||
| 15431 | (license license:gpl3+))) | ||
| 15432 | |||
| 15433 | (define-public ruby-money | ||
| 15434 | (package | ||
| 15435 | (name "ruby-money") | ||
| 15436 | (version "6.16.0") | ||
| 15437 | (source | ||
| 15438 | (origin | ||
| 15439 | (method url-fetch) | ||
| 15440 | (uri (rubygems-uri "money" version)) | ||
| 15441 | (sha256 | ||
| 15442 | (base32 "0jkmsj5ymadik7bvl670bqwmvhsdyv7hjr8gq9z293hq35gnyiyg")))) | ||
| 15443 | (build-system ruby-build-system) | ||
| 15444 | (arguments | ||
| 15445 | ;; No rakefile. | ||
| 15446 | `(#:tests? #f)) | ||
| 15447 | (propagated-inputs | ||
| 15448 | (list | ||
| 15449 | ruby-i18n)) | ||
| 15450 | (home-page "https://rubymoney.github.io/money/") | ||
| 15451 | (synopsis "Currency conversion library for Ruby") | ||
| 15452 | (description "RubyMoney provides a library for dealing with money and | ||
| 15453 | currency conversion. Its features are: | ||
| 15454 | @itemize | ||
| 15455 | @item | ||
| 15456 | Provides a Money class which encapsulates all information about a certain | ||
| 15457 | amount of money, such as its value and its currency. | ||
| 15458 | @item | ||
| 15459 | Provides a Money::Currency class which encapsulates all information about a | ||
| 15460 | monetary unit. | ||
| 15461 | @item | ||
| 15462 | Represents monetary values as integers, in cents; so avoids floating point | ||
| 15463 | rounding errors. | ||
| 15464 | @item | ||
| 15465 | Represents currency as Money::Currency instances providing a high level of | ||
| 15466 | flexibility. | ||
| 15467 | @item Provides APIs for exchanging money from one currency to another. | ||
| 15468 | @end itemize") | ||
| 15469 | (license license:expat))) | ||
| 15470 | |||
| 15471 | (define-public ruby-monetize | ||
| 15472 | (package | ||
| 15473 | (name "ruby-monetize") | ||
| 15474 | (version "1.11.0") | ||
| 15475 | (source | ||
| 15476 | (origin | ||
| 15477 | (method url-fetch) | ||
| 15478 | (uri (rubygems-uri "monetize" version)) | ||
| 15479 | (sha256 | ||
| 15480 | (base32 "0cna2myxdbwfq0gn6k2hgrh368dq7wld3jklm96443ysykd0difn")))) | ||
| 15481 | (build-system ruby-build-system) | ||
| 15482 | (arguments | ||
| 15483 | `(#:test-target "spec")) | ||
| 15484 | (native-inputs | ||
| 15485 | (list | ||
| 15486 | ruby-rspec)) | ||
| 15487 | (propagated-inputs | ||
| 15488 | (list | ||
| 15489 | ruby-money)) | ||
| 15490 | (home-page "https://github.com/RubyMoney/monetize") | ||
| 15491 | (synopsis "Convert various objects into Money objects") | ||
| 15492 | (description "Monetize provides a library for converting various objects | ||
| 15493 | into Money objects.") | ||
| 15494 | (license license:expat))) | ||
| 15495 | |||
| 15496 | (define-public ruby-money-open-exchange-rates | ||
| 15497 | (package | ||
| 15498 | (name "ruby-money-open-exchange-rates") | ||
| 15499 | (version "1.4.0") | ||
| 15500 | (source | ||
| 15501 | (origin | ||
| 15502 | (method git-fetch) | ||
| 15503 | ;; Download from GitHub because the rubygems version does not contain | ||
| 15504 | ;; Rakefile. | ||
| 15505 | (uri (git-reference | ||
| 15506 | (url "https://github.com/spk/money-open-exchange-rates") | ||
| 15507 | (commit (string-append "v" version)))) | ||
| 15508 | (file-name (git-file-name name version)) | ||
| 15509 | (sha256 | ||
| 15510 | (base32 "11xwqli8snr19k48yh8h77sal5vxd4snzq9gxg08v61f0574m3gw")))) | ||
| 15511 | (build-system ruby-build-system) | ||
| 15512 | (native-inputs | ||
| 15513 | (list | ||
| 15514 | ruby-minitest | ||
| 15515 | ruby-mocha | ||
| 15516 | ruby-monetize | ||
| 15517 | ruby-rake | ||
| 15518 | ruby-rubocop | ||
| 15519 | ruby-timecop | ||
| 15520 | ruby-webmock)) | ||
| 15521 | (propagated-inputs | ||
| 15522 | (list | ||
| 15523 | ruby-money)) | ||
| 15524 | (home-page "https://spk.github.io/money-open-exchange-rates/") | ||
| 15525 | (synopsis "Money open exchange rates for Ruby") | ||
| 15526 | (description "This package provides a gem that calculates the exchange rate | ||
| 15527 | using published rates from open-exchange-rates. Compatible with the money gem.") | ||
| 15528 | (license license:expat))) | ||
| 15529 | |||
| 15530 | (define-public ruby-roda | ||
| 15531 | (package | ||
| 15532 | (name "ruby-roda") | ||
| 15533 | (version "3.57.0") | ||
| 15534 | (source | ||
| 15535 | (origin | ||
| 15536 | (method url-fetch) | ||
| 15537 | (uri (rubygems-uri "roda" version)) | ||
| 15538 | (sha256 | ||
| 15539 | (base32 "0nkfxnbcfnriywvx9kpamp850cwjmqv8ssajc95d0aiyjr4kdrfy")))) | ||
| 15540 | (build-system ruby-build-system) | ||
| 15541 | (arguments | ||
| 15542 | ;; No rakefile | ||
| 15543 | `(#:tests? #f)) | ||
| 15544 | (propagated-inputs (list ruby-rack)) | ||
| 15545 | (home-page "https://roda.jeremyevans.net") | ||
| 15546 | (synopsis "Routing Tree Web Toolkit") | ||
| 15547 | (description "Roda is a routing tree web toolkit, designed for building fast | ||
| 15548 | and maintainable web applications in ruby.") | ||
| 15549 | (license license:expat))) | ||
| 15550 | |||
| 15551 | (define-public ruby-nori | ||
| 15552 | (package | ||
| 15553 | (name "ruby-nori") | ||
| 15554 | (version "2.6.0") | ||
| 15555 | (source | ||
| 15556 | (origin | ||
| 15557 | (method url-fetch) | ||
| 15558 | (uri (rubygems-uri "nori" version)) | ||
| 15559 | (sha256 | ||
| 15560 | (base32 "066wc774a2zp4vrq3k7k8p0fhv30ymqmxma1jj7yg5735zls8agn")))) | ||
| 15561 | (build-system ruby-build-system) | ||
| 15562 | (arguments | ||
| 15563 | ;; Tests require too old version of rspec | ||
| 15564 | `(#:tests? #f)) | ||
| 15565 | (native-inputs | ||
| 15566 | (list ruby-nokogiri | ||
| 15567 | ruby-rake | ||
| 15568 | ruby-rspec)) | ||
| 15569 | (home-page "https://github.com/savonrb/nori") | ||
| 15570 | (synopsis "XML to Hash translator") | ||
| 15571 | (description "Nori is a simple XML parsing ripped from Crack which in-turn | ||
| 15572 | ripped from Merb. It supports pluggable parsers and ships with both REXML and | ||
| 15573 | Nokogiri implementations.") | ||
| 15574 | (license license:expat))) | ||
| 15575 | |||
| 15576 | ;; This package is deprecated per upstream and should be phased out. | ||
| 15577 | (define-public ruby-faraday-middleware | ||
| 15578 | (package | ||
| 15579 | (name "ruby-faraday-middleware") | ||
| 15580 | (version "1.2.0") | ||
| 15581 | (source | ||
| 15582 | (origin | ||
| 15583 | (method url-fetch) | ||
| 15584 | (uri (rubygems-uri "faraday_middleware" version)) | ||
| 15585 | (sha256 | ||
| 15586 | (base32 "1bw8mfh4yin2xk7138rg3fhb2p5g2dlmdma88k82psah9mbmvlfy")))) | ||
| 15587 | (build-system ruby-build-system) | ||
| 15588 | (arguments `(#:tests? #f)) | ||
| 15589 | (propagated-inputs (list ruby-faraday)) | ||
| 15590 | (home-page "https://github.com/lostisland/faraday_middleware") | ||
| 15591 | (synopsis "Various middleware for Faraday") | ||
| 15592 | (description "Faraday_Middleware is a collection of middleware for the | ||
| 15593 | Faraday-based API wrappers.") | ||
| 15594 | (license license:expat))) | ||
| 15595 | |||
| 15596 | (define-public ruby-faraday-multipart | ||
| 15597 | (package | ||
| 15598 | (name "ruby-faraday-multipart") | ||
| 15599 | (version "1.0.4") | ||
| 15600 | (source (origin | ||
| 15601 | (method git-fetch) | ||
| 15602 | (uri (git-reference | ||
| 15603 | (url "https://github.com/lostisland/faraday-multipart") | ||
| 15604 | (commit (string-append "v" version)))) | ||
| 15605 | (file-name (git-file-name name version)) | ||
| 15606 | (sha256 | ||
| 15607 | (base32 | ||
| 15608 | "0ywxhff40a688n50lxrn4d8y096l8sbrwp1jfz4zd3kdiiygclka")))) | ||
| 15609 | (build-system ruby-build-system) | ||
| 15610 | (arguments (list #:test-target "spec")) | ||
| 15611 | (native-inputs (list ruby-faraday ruby-multipart-parser ruby-rspec)) | ||
| 15612 | (propagated-inputs (list ruby-multipart-post)) | ||
| 15613 | (synopsis "Multipart-post requests extension for Faraday") | ||
| 15614 | (description "This Ruby gem extends Faraday to perform multipart-post | ||
| 15615 | requests.") | ||
| 15616 | (home-page "https://github.com/lostisland/faraday-multipart") | ||
| 15617 | (license license:expat))) | ||
| 15618 | |||
| 15619 | (define-public ruby-bandwidth-iris | ||
| 15620 | (package | ||
| 15621 | (name "ruby-bandwidth-iris") | ||
| 15622 | (version "7.0.0") | ||
| 15623 | (source | ||
| 15624 | (origin | ||
| 15625 | (method url-fetch) | ||
| 15626 | (uri (rubygems-uri "ruby-bandwidth-iris" version)) | ||
| 15627 | (sha256 | ||
| 15628 | (base32 "131c4jhyvnrwbhizkks17fi9g85cwsq5f1p8zi408zyf63n7230d")))) | ||
| 15629 | (build-system ruby-build-system) | ||
| 15630 | (arguments | ||
| 15631 | ;; XXX: Tests don't require helper for some reason, so all fail. | ||
| 15632 | `(#:tests? #f)) | ||
| 15633 | (native-inputs | ||
| 15634 | (list ruby-rspec | ||
| 15635 | ruby-yard)) | ||
| 15636 | (propagated-inputs | ||
| 15637 | (list ruby-activesupport | ||
| 15638 | ruby-builder | ||
| 15639 | ruby-faraday | ||
| 15640 | ruby-faraday-middleware | ||
| 15641 | ruby-nori)) | ||
| 15642 | (home-page "https://github.com/Bandwidth/ruby-bandwidth-iris") | ||
| 15643 | (synopsis "Gem for integrating to Bandwidth's Iris API") | ||
| 15644 | (description "Bandwidth IRIS is a Ruby SDK for Bandwidth Phone Number | ||
| 15645 | Dashboard. It is a Ruby Client library for IRIS / BBS API.") | ||
| 15646 | (license license:expat))) | ||
| 15647 | |||
| 15648 | (define-public ruby-securerandom | ||
| 15649 | (package | ||
| 15650 | (name "ruby-securerandom") | ||
| 15651 | (version "0.4.1") | ||
| 15652 | (source | ||
| 15653 | (origin | ||
| 15654 | (method url-fetch) | ||
| 15655 | (uri (rubygems-uri "securerandom" version)) | ||
| 15656 | (sha256 | ||
| 15657 | (base32 "1cd0iriqfsf1z91qg271sm88xjnfd92b832z49p1nd542ka96lfc")))) | ||
| 15658 | (build-system ruby-build-system) | ||
| 15659 | (arguments '(#:tests? #f)) ; No tests found. | ||
| 15660 | (synopsis "Interface for secure random number generator") | ||
| 15661 | (description "This package provides a Ruby interface for secure random | ||
| 15662 | number generators.") | ||
| 15663 | (home-page "https://github.com/ruby/securerandom") | ||
| 15664 | (license (list license:bsd-2)))) | ||
| 15665 | |||
| 15666 | (define-public ruby-selenium-webdriver | ||
| 15667 | (package | ||
| 15668 | (name "ruby-selenium-webdriver") | ||
| 15669 | (version "4.22.0") | ||
| 15670 | (source (origin | ||
| 15671 | (method url-fetch) | ||
| 15672 | (uri (rubygems-uri "selenium-webdriver" version)) | ||
| 15673 | (sha256 | ||
| 15674 | (base32 | ||
| 15675 | "0rjxlivsh32xvjq78p1m1sr366aa04wms4hwb2r187ygrnmp0hv4")))) | ||
| 15676 | (build-system ruby-build-system) | ||
| 15677 | ;; FIXME: The gem release lacks test files, and the git checkout lacks | ||
| 15678 | ;; JavaScript source that is generated using Bazel, which isn't available | ||
| 15679 | ;; in Guix yet, so disable the test suite for now. | ||
| 15680 | (arguments (list #:tests? #f)) | ||
| 15681 | (propagated-inputs (list ruby-base64 | ||
| 15682 | ruby-rexml | ||
| 15683 | ruby-rubyzip | ||
| 15684 | ruby-websocket)) | ||
| 15685 | (synopsis "Selenium browser automation bindings for Ruby") | ||
| 15686 | (description "Selenium implements the W3C WebDriver protocol to automate | ||
| 15687 | popular browsers. It aims to mimic the behaviour of a real user as it | ||
| 15688 | interacts with the application's HTML. It's primarily intended for web | ||
| 15689 | application testing, but any web-based task can be automated. This package | ||
| 15690 | provides the Ruby bindings of Selenium.") | ||
| 15691 | (home-page "https://www.selenium.dev/") | ||
| 15692 | (license license:asl2.0))) | ||
| 15693 | |||
| 15694 | (define-public ruby-sentry-core | ||
| 15695 | (package | ||
| 15696 | (name "ruby-sentry-core") | ||
| 15697 | (version "5.3.1") | ||
| 15698 | (source | ||
| 15699 | (origin | ||
| 15700 | (method url-fetch) | ||
| 15701 | (uri (rubygems-uri "sentry-ruby-core" version)) | ||
| 15702 | (sha256 | ||
| 15703 | (base32 "141mrw8wghhsjvln9m6ld3hap3xc5v901jjiz007xywy25725hyd")))) | ||
| 15704 | (build-system ruby-build-system) | ||
| 15705 | (arguments | ||
| 15706 | ;; No rakefile in gem. | ||
| 15707 | `(#:tests? #f)) | ||
| 15708 | (propagated-inputs | ||
| 15709 | (list ruby-concurrent | ||
| 15710 | ruby-faraday)) | ||
| 15711 | (home-page "https://sentry.io/for/ruby/") | ||
| 15712 | (synopsis "Client interface for the Sentry error logger") | ||
| 15713 | (description "Sentry-Core provides a gem that provides a client | ||
| 15714 | interface for the Sentry error logger.") | ||
| 15715 | (license license:expat))) | ||
| 15716 | |||
| 15717 | (define-public ruby-sentry | ||
| 15718 | (package | ||
| 15719 | (name "ruby-sentry") | ||
| 15720 | (version "5.3.1") | ||
| 15721 | (source | ||
| 15722 | (origin | ||
| 15723 | (method url-fetch) | ||
| 15724 | (uri (rubygems-uri "sentry-ruby" version)) | ||
| 15725 | (sha256 | ||
| 15726 | (base32 "0by9mvw8rklzpyx59vfija8h3ssfvxvf5nbqxfmygfy6lm1vdngz")))) | ||
| 15727 | (build-system ruby-build-system) | ||
| 15728 | (arguments | ||
| 15729 | ;; No rakefile in gem | ||
| 15730 | `(#:tests? #f)) | ||
| 15731 | (propagated-inputs | ||
| 15732 | (list ruby-concurrent | ||
| 15733 | ruby-faraday | ||
| 15734 | ruby-sentry-core)) | ||
| 15735 | (home-page "https://sentry.io/for/ruby/") | ||
| 15736 | (synopsis "Client interface for the Sentry error logger") | ||
| 15737 | (description "Sentry provides a gem that provides a client | ||
| 15738 | interface for the Sentry error logger.") | ||
| 15739 | (license license:expat))) | ||
| 15740 | |||
| 15741 | (define-public ruby-webrick | ||
| 15742 | (package | ||
| 15743 | (name "ruby-webrick") | ||
| 15744 | (version "1.8.1") | ||
| 15745 | (source (origin | ||
| 15746 | (method git-fetch) ;for tests | ||
| 15747 | (uri (git-reference | ||
| 15748 | (url "https://github.com/ruby/webrick") | ||
| 15749 | (commit (string-append "v" version)))) | ||
| 15750 | (file-name (git-file-name name version)) | ||
| 15751 | (sha256 | ||
| 15752 | (base32 | ||
| 15753 | "1xb0mk3cghdir65nmj0mblprbf21blli7267b6yyvxclh307yp6s")))) | ||
| 15754 | (build-system ruby-build-system) | ||
| 15755 | (arguments | ||
| 15756 | (list #:phases | ||
| 15757 | #~(modify-phases %standard-phases | ||
| 15758 | (add-after 'extract-gemspec 'delete-problematic-tests | ||
| 15759 | (lambda _ | ||
| 15760 | ;; The httresponse tests fail for | ||
| 15761 | ;; unknown reasons (see: | ||
| 15762 | ;; https://github.com/ruby/webrick/issues/112). | ||
| 15763 | (delete-file "test/webrick/test_httpresponse.rb")))))) | ||
| 15764 | (home-page "https://github.com/ruby/webrick") | ||
| 15765 | (synopsis "HTTP server toolkit") | ||
| 15766 | (description "WEBrick is an HTTP server toolkit that can be configured as an | ||
| 15767 | HTTPS server, a proxy server, and a virtual-host server.") | ||
| 15768 | (license license:bsd-2))) | ||
| 15769 | |||
| 15770 | (define-public ruby-websocket | ||
| 15771 | (let ((commit "950e416a19a76c7e6a673a7e5baa6283476dbec1") | ||
| 15772 | (revision "1")) | ||
| 15773 | (package | ||
| 15774 | (name "ruby-websocket") | ||
| 15775 | (version (git-version "1.2.9" revision commit)) | ||
| 15776 | (source (origin | ||
| 15777 | (method git-fetch) | ||
| 15778 | (uri (git-reference | ||
| 15779 | (url "https://github.com/imanel/websocket-ruby") | ||
| 15780 | (commit commit))) | ||
| 15781 | (sha256 | ||
| 15782 | (base32 | ||
| 15783 | "1i6r0glpxy47zdf76aqgcpjgcgydla0733hfdhp628pmrinnkgwv")) | ||
| 15784 | (file-name (git-file-name name version)))) | ||
| 15785 | (build-system ruby-build-system) | ||
| 15786 | (arguments (list #:test-target "spec" | ||
| 15787 | #:phases #~(modify-phases %standard-phases | ||
| 15788 | (add-after 'unpack 'disable-rubocop | ||
| 15789 | (lambda _ | ||
| 15790 | (substitute* "Rakefile" | ||
| 15791 | (("require 'rubocop/rake_task'") "") | ||
| 15792 | (("RuboCop::RakeTask.new") ""))))))) | ||
| 15793 | (native-inputs | ||
| 15794 | (list ruby-rspec | ||
| 15795 | ruby-webrick)) | ||
| 15796 | (synopsis "WebSocket protocol Ruby library") | ||
| 15797 | (description "This package provides a Ruby library to handle the WebSocket | ||
| 15798 | protocol.") | ||
| 15799 | (home-page "https://github.com/imanel/websocket-ruby") | ||
| 15800 | (license license:expat)))) | ||
| 15801 | |||
| 15802 | (define-public ruby-braintree | ||
| 15803 | (package | ||
| 15804 | (name "ruby-braintree") | ||
| 15805 | (version "4.12.0") | ||
| 15806 | (source | ||
| 15807 | (origin | ||
| 15808 | (method git-fetch) ;for tests | ||
| 15809 | (uri (git-reference | ||
| 15810 | (url "https://github.com/braintree/braintree_ruby") | ||
| 15811 | (commit version))) | ||
| 15812 | (file-name (git-file-name name version)) | ||
| 15813 | (sha256 | ||
| 15814 | (base32 "0gfgkymy3655drwgs42bj9ap9qib1l30sajxmypmp6s75m9w3gsh")))) | ||
| 15815 | (build-system ruby-build-system) | ||
| 15816 | (arguments | ||
| 15817 | (list | ||
| 15818 | #:test-target "test:unit" | ||
| 15819 | #:phases | ||
| 15820 | #~(modify-phases %standard-phases | ||
| 15821 | (add-after 'unpack 'disable-rubocop | ||
| 15822 | (lambda _ | ||
| 15823 | (substitute* "Rakefile" | ||
| 15824 | (("sh \"rubocop\"") "")))) | ||
| 15825 | (add-after 'unpack 'relax-requirements | ||
| 15826 | (lambda _ | ||
| 15827 | (substitute* "Gemfile" | ||
| 15828 | (("gem \"pry\".*") "gem 'pry'\n") | ||
| 15829 | (("gem \"rake\".*") "gem 'rake'\n") | ||
| 15830 | (("gem \"libxml-ruby\", \"3.2.0\"") | ||
| 15831 | "gem \"libxml-ruby\", \"~> 3.0.0\"") | ||
| 15832 | (("gem \"rspec\", \"3.9.0\"") | ||
| 15833 | "gem \"rspec\", \">= 3.9.0\"") | ||
| 15834 | (("gem \"webrick\", \"~>1.7.0\"") | ||
| 15835 | "gem \"webrick\", \">=1.7.0\"") | ||
| 15836 | ((".*gem \"rubocop\".*") "") | ||
| 15837 | ((".*gem \"rspec_junit_formatter\".*") ""))))))) | ||
| 15838 | (native-inputs | ||
| 15839 | (list ruby-libxml | ||
| 15840 | ruby-pry | ||
| 15841 | ruby-rake | ||
| 15842 | ruby-rspec | ||
| 15843 | ruby-webrick)) | ||
| 15844 | (propagated-inputs | ||
| 15845 | (list ruby-builder | ||
| 15846 | ruby-rexml)) | ||
| 15847 | (home-page "https://www.braintreepayments.com/") | ||
| 15848 | (synopsis "Integration access to the Braintree Gateway") | ||
| 15849 | (description "Braintree provides resources and tools for developers to | ||
| 15850 | integrate Braintree's global payments platform.") | ||
| 15851 | (license license:expat))) | ||
| 15852 | |||
| 15853 | (define-public ruby-niceogiri | ||
| 15854 | (package | ||
| 15855 | (name "ruby-niceogiri") | ||
| 15856 | (version "1.1.2") | ||
| 15857 | (source | ||
| 15858 | (origin | ||
| 15859 | (method url-fetch) | ||
| 15860 | (uri (rubygems-uri "niceogiri" version)) | ||
| 15861 | (sha256 | ||
| 15862 | (base32 "1ha93211bc9cvh23s9w89zz7rq8irpf64ccd9arvg8v1sxg2798a")))) | ||
| 15863 | (build-system ruby-build-system) | ||
| 15864 | (arguments | ||
| 15865 | `(#:test-target "spec" | ||
| 15866 | #:phases | ||
| 15867 | (modify-phases %standard-phases | ||
| 15868 | (add-after 'extract-gemspec 'less-strict-dependencies | ||
| 15869 | (lambda _ | ||
| 15870 | (substitute* "niceogiri.gemspec" | ||
| 15871 | (("2\\.7") "3.8") ;rspec | ||
| 15872 | ((".*dependency.*bundler.*") "\n") | ||
| 15873 | ((".*dependency.*guard-rspec.*") "\n"))))))) | ||
| 15874 | (native-inputs | ||
| 15875 | (list ruby-rspec | ||
| 15876 | ruby-yard)) | ||
| 15877 | (propagated-inputs (list ruby-nokogiri)) | ||
| 15878 | (home-page "https://github.com/benlangfeld/Niceogiri") | ||
| 15879 | (synopsis "Supplement for Nokogiri") | ||
| 15880 | (description "Niceogiri provides wrappers and helpers for XML manipulation | ||
| 15881 | using Nokogiri.") | ||
| 15882 | (license license:expat))) | ||
| 15883 | |||
| 15884 | (define-public ruby-blather | ||
| 15885 | (package | ||
| 15886 | (name "ruby-blather") | ||
| 15887 | (version "2.0.0") | ||
| 15888 | (source | ||
| 15889 | (origin | ||
| 15890 | (method url-fetch) | ||
| 15891 | (uri (rubygems-uri "blather" version)) | ||
| 15892 | (sha256 | ||
| 15893 | (base32 "05ry2x835fj4pzk61282pcz86n018cr39zbgwbi213md74i90s7c")))) | ||
| 15894 | (build-system ruby-build-system) | ||
| 15895 | (arguments | ||
| 15896 | ;; XXX: Tests require too old version of rspec. | ||
| 15897 | `(#:tests? #f)) | ||
| 15898 | (native-inputs | ||
| 15899 | (list ruby-countdownlatch | ||
| 15900 | ruby-mocha | ||
| 15901 | ruby-rb-fsevent | ||
| 15902 | ruby-rspec | ||
| 15903 | ruby-yard)) | ||
| 15904 | (propagated-inputs | ||
| 15905 | (list ruby-activesupport | ||
| 15906 | ruby-eventmachine | ||
| 15907 | ruby-niceogiri | ||
| 15908 | ruby-nokogiri | ||
| 15909 | ruby-sucker-punch)) | ||
| 15910 | (home-page "https://github.com/adhearsion/blather") | ||
| 15911 | (synopsis "XMPP Domain Specific Language for Ruby") | ||
| 15912 | (description "Blather is a XMPP DSL for Ruby written on top of EventMachine | ||
| 15913 | and Nokogiri.") | ||
| 15914 | (license license:expat))) | ||
| 15915 | |||
| 15916 | (define-public ruby-wapiti | ||
| 15917 | (package | ||
| 15918 | (name "ruby-wapiti") | ||
| 15919 | (version "2.1.0") | ||
| 15920 | ;; the gem archive lacks tests | ||
| 15921 | (source (origin | ||
| 15922 | (method git-fetch) | ||
| 15923 | (uri (git-reference | ||
| 15924 | (url "https://github.com/inukshuk/wapiti-ruby") | ||
| 15925 | (commit (string-append "v" version)))) | ||
| 15926 | (file-name (git-file-name name version)) | ||
| 15927 | (sha256 | ||
| 15928 | (base32 | ||
| 15929 | "1273dqvn6flq2qv9qbp104rgc7zp1gqx4096s0v0z5f0qnhzc7d6")))) | ||
| 15930 | (build-system ruby-build-system) | ||
| 15931 | (propagated-inputs | ||
| 15932 | (list ruby-builder | ||
| 15933 | ruby-rexml)) | ||
| 15934 | (native-inputs | ||
| 15935 | (list ruby-pry | ||
| 15936 | ruby-rake-compiler | ||
| 15937 | ruby-rspec | ||
| 15938 | ruby-simplecov)) | ||
| 15939 | (arguments | ||
| 15940 | (list | ||
| 15941 | #:test-target "spec" | ||
| 15942 | #:phases | ||
| 15943 | #~(modify-phases %standard-phases | ||
| 15944 | (add-after 'replace-git-ls-files 'replace-another-git-ls-files | ||
| 15945 | (lambda args | ||
| 15946 | (substitute* "wapiti.gemspec" | ||
| 15947 | (("`git ls-files spec`") | ||
| 15948 | "`find spec -type f | sort`")))) | ||
| 15949 | (add-before 'build 'compile | ||
| 15950 | (lambda args | ||
| 15951 | (invoke "rake" "compile")))))) | ||
| 15952 | (home-page "https://github.com/inukshuk/wapiti-ruby") | ||
| 15953 | (synopsis "Wicked fast Conditional Random Fields for Ruby") | ||
| 15954 | (description | ||
| 15955 | "The Wapiti-Ruby gem provides a wicked fast linear-chain @acronym{CRF, | ||
| 15956 | Conditional Random Fields} API for sequence segmentation and labelling. It is | ||
| 15957 | based on the codebase of @url{https://wapiti.limsi.fr, Wapiti}.") | ||
| 15958 | (license license:bsd-2))) | ||
| 15959 | |||
| 15960 | (define-public ruby-namae | ||
| 15961 | (package | ||
| 15962 | (name "ruby-namae") | ||
| 15963 | (version "1.1.1") | ||
| 15964 | (source (origin | ||
| 15965 | (method url-fetch) | ||
| 15966 | (uri (rubygems-uri "namae" version)) | ||
| 15967 | (sha256 | ||
| 15968 | (base32 | ||
| 15969 | "1j3nl1klkx3gymrdxfc1hlq4a8qlvhhl9aj5v1v08b9fz27sky0l")))) | ||
| 15970 | (build-system ruby-build-system) | ||
| 15971 | (native-inputs | ||
| 15972 | (list ruby-cucumber | ||
| 15973 | ruby-rspec | ||
| 15974 | ruby-simplecov)) | ||
| 15975 | (arguments | ||
| 15976 | (list | ||
| 15977 | #:phases | ||
| 15978 | #~(modify-phases %standard-phases | ||
| 15979 | (add-after 'extract-gemspec 'allow-newer-cucumber | ||
| 15980 | (lambda args | ||
| 15981 | (substitute* "Gemfile" | ||
| 15982 | (("'cucumber', '[^']*'") | ||
| 15983 | "'cucumber'")))) | ||
| 15984 | (replace 'check | ||
| 15985 | ;; Avoid 'rake' so we don't need jeweler. | ||
| 15986 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 15987 | (when tests? | ||
| 15988 | (apply invoke | ||
| 15989 | "rspec" | ||
| 15990 | (find-files "spec" "_spec\\.rb$")))))))) | ||
| 15991 | (home-page "https://github.com/berkmancenter/namae") | ||
| 15992 | (synopsis "Parser for human names") | ||
| 15993 | (description | ||
| 15994 | "Namae (名前) is a parser for human names. It recognizes personal names | ||
| 15995 | of various cultural backgrounds and tries to split them into their component | ||
| 15996 | parts (e.g., given and family names, honorifics etc.).") | ||
| 15997 | (license (list license:bsd-2 license:agpl3+)))) | ||
| 15998 | |||
| 15999 | (define-public ruby-latex-decode | ||
| 16000 | (package | ||
| 16001 | (name "ruby-latex-decode") | ||
| 16002 | (version "0.4.0") | ||
| 16003 | (source (origin | ||
| 16004 | (method git-fetch) | ||
| 16005 | (uri (git-reference | ||
| 16006 | (url "https://github.com/inukshuk/latex-decode") | ||
| 16007 | (commit (string-append "v" version)))) | ||
| 16008 | (sha256 | ||
| 16009 | (base32 | ||
| 16010 | "1f5j67ayd04pjkmzvn0hk7cr8yqvn0gyg9ns6a0vhzj2gwna9ihy")) | ||
| 16011 | (file-name (git-file-name name version)))) | ||
| 16012 | (build-system ruby-build-system) | ||
| 16013 | (native-inputs | ||
| 16014 | (list ruby-cucumber | ||
| 16015 | ruby-rspec)) | ||
| 16016 | (arguments | ||
| 16017 | (list | ||
| 16018 | #:test-target "cucumber" | ||
| 16019 | #:phases | ||
| 16020 | #~(modify-phases %standard-phases | ||
| 16021 | (add-after 'extract-gemspec 'avoid-bundler | ||
| 16022 | (lambda args | ||
| 16023 | (substitute* "Rakefile" | ||
| 16024 | (("require 'bundler" orig) | ||
| 16025 | (string-append "# " orig " # patched for Guix")) | ||
| 16026 | (("Cucumber::Rake::Task\\.new[(]:cucumber[)]" orig) | ||
| 16027 | (string-append orig " do |c|\n" | ||
| 16028 | " c.bundler = false # patched for Guix\n" | ||
| 16029 | "end")) | ||
| 16030 | (("Bundler\\.setup" orig) | ||
| 16031 | (string-append "true # " orig " # patched for Guix"))) | ||
| 16032 | (substitute* "cucumber.yml" | ||
| 16033 | ;; thanks to avoiding bundler, we can't use this option | ||
| 16034 | ((" --publish-quiet") | ||
| 16035 | "")))) | ||
| 16036 | (add-after 'replace-git-ls-files 'replace-another-git-ls-files | ||
| 16037 | (lambda args | ||
| 16038 | (substitute* "latex-decode.gemspec" | ||
| 16039 | (("`git ls-files -- [{]test,spec,features[}]/\\*`") | ||
| 16040 | "`find {test,spec,features} -type f | sort`"))))))) | ||
| 16041 | (home-page "https://github.com/inukshuk/latex-decode") | ||
| 16042 | (synopsis "Convert LaTeX to Unicode") | ||
| 16043 | (description | ||
| 16044 | "This package provides a gem to convert LaTeX input to Unicode. Its | ||
| 16045 | original use was as an input filter for BibTeX-Ruby, but it can be used | ||
| 16046 | independently to decode LaTeX. Many of the patterns used by this Ruby gem are | ||
| 16047 | based on François Charette's equivalent Perl module @code{LaTeX::Decode}.") | ||
| 16048 | (license license:gpl3+))) | ||
| 16049 | |||
| 16050 | (define-public ruby-link-header | ||
| 16051 | (package | ||
| 16052 | (name "ruby-link-header") | ||
| 16053 | (version "0.0.8") | ||
| 16054 | (source (origin | ||
| 16055 | (method url-fetch) | ||
| 16056 | (uri (rubygems-uri "link_header" version)) | ||
| 16057 | (sha256 | ||
| 16058 | (base32 | ||
| 16059 | "1yamrdq4rywmnpdhbygnkkl9fdy249fg5r851nrkkxr97gj5rihm")))) | ||
| 16060 | (build-system ruby-build-system) | ||
| 16061 | (home-page "https://github.com/asplake/link_header") | ||
| 16062 | (synopsis "Parse and format HTTP @code{Link} headers") | ||
| 16063 | (description | ||
| 16064 | "This gem provides the classes @code{LinkHeader} and | ||
| 16065 | @code{LinkHeader::Link}, which represent HTTP @code{Link} headers conforming | ||
| 16066 | to RFC 5988. Objects can be constructed from and converted to text or a | ||
| 16067 | JSON-friendly @code{Array} representation. They can also be used to generate | ||
| 16068 | corresponding HTML @code{link} elements.") | ||
| 16069 | (license license:expat))) | ||
| 16070 | |||
| 16071 | (define-public ruby-lint-roller | ||
| 16072 | (package | ||
| 16073 | (name "ruby-lint-roller") | ||
| 16074 | (version "1.1.0") | ||
| 16075 | (source | ||
| 16076 | (origin | ||
| 16077 | (method url-fetch) | ||
| 16078 | (uri (rubygems-uri "lint_roller" version)) | ||
| 16079 | (sha256 | ||
| 16080 | (base32 "11yc0d84hsnlvx8cpk4cbj6a4dz9pk0r1k29p0n1fz9acddq831c")))) | ||
| 16081 | (build-system ruby-build-system) | ||
| 16082 | (arguments '(#:tests? #f)) ;Circular dependency on ruby-standard. | ||
| 16083 | (native-inputs (list ruby-minitest)) | ||
| 16084 | (synopsis "Specification for linter and formatter rulesets") | ||
| 16085 | (description | ||
| 16086 | "This package provides a plugin specification for Ruby linter and | ||
| 16087 | formatter rulesets.") | ||
| 16088 | (home-page "https://github.com/standardrb/lint_roller") | ||
| 16089 | (license license:expat))) | ||
| 16090 | |||
| 16091 | (define-public ruby-rdf | ||
| 16092 | (package | ||
| 16093 | (name "ruby-rdf") | ||
| 16094 | (version "3.2.8") | ||
| 16095 | (source (origin | ||
| 16096 | (method url-fetch) | ||
| 16097 | (uri (rubygems-uri "rdf" version)) | ||
| 16098 | (sha256 | ||
| 16099 | (base32 | ||
| 16100 | "1cj0k8ryd8hgbkgqb5swvy6fiygxny3y5bln0my5gv6dbfv3gm20")))) | ||
| 16101 | (build-system ruby-build-system) | ||
| 16102 | (propagated-inputs (list ruby-link-header)) | ||
| 16103 | (arguments | ||
| 16104 | (list #:tests? #f)) ;; tests have many cyclic dependencies | ||
| 16105 | (home-page "https://ruby-rdf.github.io/") | ||
| 16106 | (synopsis "Linked Data for Ruby") | ||
| 16107 | (description | ||
| 16108 | "This gem contains the core algorithms and classes used for doing basic | ||
| 16109 | programming with @acronym{RDF, Resource Description Framework} data, | ||
| 16110 | implemented in pure Ruby.") | ||
| 16111 | (license license:unlicense))) | ||
| 16112 | |||
| 16113 | (define-public ruby-rdf-vocab | ||
| 16114 | (package | ||
| 16115 | (name "ruby-rdf-vocab") | ||
| 16116 | (version "3.2.1") | ||
| 16117 | (source (origin | ||
| 16118 | (method url-fetch) | ||
| 16119 | (uri (rubygems-uri "rdf-vocab" version)) | ||
| 16120 | (sha256 | ||
| 16121 | (base32 | ||
| 16122 | "1bqmp9rfjvd56ajjz68ij6jla1wjf1fqg7bi4dpnjrsmn4pwaq7l")))) | ||
| 16123 | (build-system ruby-build-system) | ||
| 16124 | (propagated-inputs | ||
| 16125 | (list ruby-rdf)) | ||
| 16126 | (arguments | ||
| 16127 | (list #:tests? #f)) ;; tests have many cyclic dependencies | ||
| 16128 | (home-page "https://github.com/ruby-rdf/rdf-vocab") | ||
| 16129 | (synopsis "Common RDF vocabularies") | ||
| 16130 | (description | ||
| 16131 | "This gem extends @code{ruby-rdf} with several common @acronym{RDF, | ||
| 16132 | Resource Description Framework} vocabularies.") | ||
| 16133 | (license license:unlicense))) | ||
| 16134 | |||
| 16135 | (define-public ruby-rdiscount | ||
| 16136 | (package | ||
| 16137 | (name "ruby-rdiscount") | ||
| 16138 | (version "2.2.7") | ||
| 16139 | (source (origin | ||
| 16140 | (method git-fetch) ;for the full test suite | ||
| 16141 | (uri (git-reference | ||
| 16142 | (url "https://github.com/davidfstr/rdiscount") | ||
| 16143 | (commit version))) | ||
| 16144 | (file-name (git-file-name name version)) | ||
| 16145 | (sha256 | ||
| 16146 | (base32 | ||
| 16147 | "1lpfxq3gv0dgmnki9jgfnc8n9k4x9vyq9miqdxv6g4kp90qyfifc")))) | ||
| 16148 | (build-system ruby-build-system) | ||
| 16149 | (native-inputs (list perl)) | ||
| 16150 | (synopsis "Discount Markdown Processor for Ruby") | ||
| 16151 | (description "Discount is an implementation of John Gruber's Markdown | ||
| 16152 | markup language in C. It implements all of the language described in the | ||
| 16153 | markdown syntax document and passes the Markdown 1.0 test suite.") | ||
| 16154 | (home-page "https://dafoster.net/projects/rdiscount/") | ||
| 16155 | (license license:bsd-3))) | ||
| 16156 | |||
| 16157 | (define-public ruby-bibtex-ruby | ||
| 16158 | (package | ||
| 16159 | (name "ruby-bibtex-ruby") | ||
| 16160 | (version "6.0.0") | ||
| 16161 | (source (origin | ||
| 16162 | (method url-fetch) | ||
| 16163 | (uri (rubygems-uri "bibtex-ruby" version)) | ||
| 16164 | (sha256 | ||
| 16165 | (base32 | ||
| 16166 | "0vynqa8q9hwghw6sdljr304b5gh11nqzy5nwqqwxmgy7pqyf7qw5")))) | ||
| 16167 | (build-system ruby-build-system) | ||
| 16168 | (propagated-inputs | ||
| 16169 | (list ruby-latex-decode | ||
| 16170 | ruby-rdf | ||
| 16171 | ruby-rdf-vocab)) | ||
| 16172 | (native-inputs | ||
| 16173 | (list ruby-cucumber | ||
| 16174 | ruby-minitest | ||
| 16175 | ruby-yard)) | ||
| 16176 | (arguments | ||
| 16177 | (list | ||
| 16178 | #:phases | ||
| 16179 | #~(modify-phases %standard-phases | ||
| 16180 | (add-after 'extract-gemspec 'avoid-bundler | ||
| 16181 | (lambda args | ||
| 16182 | (substitute* "Rakefile" | ||
| 16183 | (("require 'bundler" orig) | ||
| 16184 | (string-append "# " orig " # patched for Guix")) | ||
| 16185 | (("Bundler\\.setup" orig) | ||
| 16186 | (string-append "true # " orig " # patched for Guix")))))))) | ||
| 16187 | (home-page "https://github.com/inukshuk/bibtex-ruby") | ||
| 16188 | (synopsis "Rubyist's Swiss Army knife for all things BibTeX") | ||
| 16189 | (description | ||
| 16190 | "BibTeX-Ruby is the Rubyist's Swiss Army knife for all things BibTeX. | ||
| 16191 | It includes a parser for all common BibTeX objects and a sophisticated name | ||
| 16192 | parser that tokenizes correctly formatted names. BibTeX-Ruby recognizes | ||
| 16193 | BibTeX string replacements, joins values containing multiple strings or | ||
| 16194 | variables, supports cross-references, and decodes common LaTeX formatting | ||
| 16195 | instructions to unicode. If you are in a hurry, it also allows for easy | ||
| 16196 | export/conversion to formats such as YAML, JSON, CSL, and XML (BibTeXML).") | ||
| 16197 | (license license:gpl3+))) | ||
| 16198 | |||
| 16199 | (define-public ruby-unicode-scripts | ||
| 16200 | (package | ||
| 16201 | (name "ruby-unicode-scripts") | ||
| 16202 | (version "1.8.0") | ||
| 16203 | (source (origin | ||
| 16204 | (method url-fetch) | ||
| 16205 | (uri (rubygems-uri "unicode-scripts" version)) | ||
| 16206 | (sha256 | ||
| 16207 | (base32 | ||
| 16208 | "0rl6mn908yryhrg8j3mmna54gnrid2nph2kym00lbz6jwdih2a1b")))) | ||
| 16209 | (build-system ruby-build-system) | ||
| 16210 | (native-inputs (list ruby-minitest)) | ||
| 16211 | (arguments (list #:test-target "spec")) | ||
| 16212 | (home-page "https://github.com/janlelis/unicode-scripts") | ||
| 16213 | (synopsis "Unicode script classification library") | ||
| 16214 | (description "This gem provides a simple interface for classifying Ruby | ||
| 16215 | strings using the Unicode @code{Script} and @code{Script_Extensions} | ||
| 16216 | properties.") | ||
| 16217 | (license license:expat))) | ||
| 16218 | |||
| 16219 | (define-public ruby-citeproc | ||
| 16220 | (package | ||
| 16221 | (name "ruby-citeproc") | ||
| 16222 | (version "1.0.10") | ||
| 16223 | (source (origin | ||
| 16224 | (method url-fetch) | ||
| 16225 | (uri (rubygems-uri "citeproc" version)) | ||
| 16226 | (sha256 | ||
| 16227 | (base32 | ||
| 16228 | "13vl5sjmksk5a8kjcqnjxh7kn9gn1n4f9p1rvqfgsfhs54p0m6l2")))) | ||
| 16229 | (build-system ruby-build-system) | ||
| 16230 | (propagated-inputs | ||
| 16231 | (list ruby-namae)) | ||
| 16232 | (arguments | ||
| 16233 | (list #:tests? #f)) ;; tests have a cyclic dependency | ||
| 16234 | (home-page "https://github.com/inukshuk/citeproc") | ||
| 16235 | (synopsis "Interface for Ruby citation processors") | ||
| 16236 | (description | ||
| 16237 | "CiteProc is a citation processor interface and citation data API based | ||
| 16238 | on the @acronym{CSL, Citation Style Language} specifications. To actually | ||
| 16239 | process citations, a dedicated processor engine is required: a pure Ruby | ||
| 16240 | engine is available in the @code{citeproc-ruby} gem.") | ||
| 16241 | (license (list license:agpl3+ license:bsd-2)))) | ||
| 16242 | |||
| 16243 | (define-public ruby-ed25519 | ||
| 16244 | (package | ||
| 16245 | (name "ruby-ed25519") | ||
| 16246 | (version "1.3.0") | ||
| 16247 | (source (origin | ||
| 16248 | (method git-fetch) | ||
| 16249 | (uri (git-reference | ||
| 16250 | (url "https://github.com/RubyCrypto/ed25519") | ||
| 16251 | (commit (string-append "v" version)))) | ||
| 16252 | (file-name (git-file-name name version)) | ||
| 16253 | (sha256 | ||
| 16254 | (base32 | ||
| 16255 | "1jm5w2dyhyrndcx0d02v0gjbzl1abhbx2wkp3gxzwcndghmkz98r")))) | ||
| 16256 | (build-system ruby-build-system) | ||
| 16257 | (arguments | ||
| 16258 | (list | ||
| 16259 | #:test-target "spec" | ||
| 16260 | #:phases | ||
| 16261 | #~(modify-phases %standard-phases | ||
| 16262 | (add-before 'build 'compile | ||
| 16263 | (lambda _ | ||
| 16264 | (invoke "rake" "compile"))) | ||
| 16265 | (add-after 'unpack 'remove-unnecessary-dependencies | ||
| 16266 | (lambda _ | ||
| 16267 | ;; Coveralls relates to a network service, and RuboCop to code | ||
| 16268 | ;; linting and both are unnecessary to run the tests | ||
| 16269 | (substitute* "Gemfile" | ||
| 16270 | ((".*coveralls.*") | ||
| 16271 | "\n") | ||
| 16272 | ((".*rubocop.*") | ||
| 16273 | "\n")) | ||
| 16274 | (substitute* "spec/spec_helper.rb" | ||
| 16275 | (("require \"coveralls\"") | ||
| 16276 | "") | ||
| 16277 | (("Coveralls.wear!") | ||
| 16278 | "")) | ||
| 16279 | (substitute* "Rakefile" | ||
| 16280 | (("require \"rubocop/rake_task\"") | ||
| 16281 | "") | ||
| 16282 | (("RuboCop::RakeTask.new") | ||
| 16283 | ""))))))) | ||
| 16284 | (native-inputs (list ruby-rake-compiler ruby-rspec)) | ||
| 16285 | (synopsis | ||
| 16286 | "Ruby binding to the Ed25519 elliptic curve public-key signature system") | ||
| 16287 | (description | ||
| 16288 | "This package provides a Ruby binding to the Ed25519 elliptic curve | ||
| 16289 | public-key signature system described in | ||
| 16290 | @url{https://www.ietf.org/rfc/rfc8032.txt, RFC 8032}.") | ||
| 16291 | (home-page "https://github.com/RubyCrypto/ed25519") | ||
| 16292 | (license license:expat))) | ||
| 16293 | |||
| 16294 | (define-public ruby-edtf | ||
| 16295 | (package | ||
| 16296 | (name "ruby-edtf") | ||
| 16297 | (version "3.1.0") | ||
| 16298 | (source (origin | ||
| 16299 | (method git-fetch) | ||
| 16300 | (uri (git-reference | ||
| 16301 | (url "https://github.com/inukshuk/edtf-ruby") | ||
| 16302 | (commit (string-append "v" version)))) | ||
| 16303 | (sha256 | ||
| 16304 | (base32 | ||
| 16305 | "18j8xq8zmrn41cs2gpd1i87agi9905asvnjqndky2cqb5zg3q14g")) | ||
| 16306 | (snippet | ||
| 16307 | ;; remove generated file | ||
| 16308 | #~(delete-file "lib/edtf/parser.rb")) | ||
| 16309 | (file-name (git-file-name name version)))) | ||
| 16310 | (build-system ruby-build-system) | ||
| 16311 | (propagated-inputs | ||
| 16312 | (list ruby-activesupport)) | ||
| 16313 | (native-inputs | ||
| 16314 | (list ruby-cucumber | ||
| 16315 | ruby-rspec)) | ||
| 16316 | (arguments | ||
| 16317 | (list | ||
| 16318 | #:phases | ||
| 16319 | #~(modify-phases %standard-phases | ||
| 16320 | (add-after 'extract-gemspec 'avoid-bundler | ||
| 16321 | (lambda args | ||
| 16322 | (substitute* "Rakefile" | ||
| 16323 | (("require 'bundler" orig) | ||
| 16324 | (string-append "# " orig " # patched for Guix")) | ||
| 16325 | (("bundle exec racc") | ||
| 16326 | "racc") | ||
| 16327 | (("Cucumber::Rake::Task\\.new[(]:cucumber[)]" orig) | ||
| 16328 | (string-append orig " do |c|\n" | ||
| 16329 | " c.bundler = false # patched for Guix\n" | ||
| 16330 | "end")) | ||
| 16331 | (("Bundler\\.setup" orig) | ||
| 16332 | (string-append "true # " orig " # patched for Guix"))))) | ||
| 16333 | (add-after 'avoid-bundler 'patch-cucumber-options | ||
| 16334 | (lambda args | ||
| 16335 | (substitute* "cucumber.yml" | ||
| 16336 | ;; this option is not supported, at least in our configuration | ||
| 16337 | ((" --publish-quiet") | ||
| 16338 | "")))) | ||
| 16339 | (add-before 'build 'compile | ||
| 16340 | (lambda args | ||
| 16341 | (invoke "rake" "racc"))) | ||
| 16342 | (replace 'check | ||
| 16343 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 16344 | (when tests? | ||
| 16345 | (invoke "rake"))))))) | ||
| 16346 | (home-page "https://github.com/inukshuk/edtf-ruby") | ||
| 16347 | (synopsis "Ruby implementation of Extended Date/Time Format") | ||
| 16348 | (description | ||
| 16349 | "EDTF-Ruby provides a parser and an API for the @acronym{EDTF, Extended | ||
| 16350 | Date/Time Format} standard, implemented as an extension to Ruby's @code{Date} | ||
| 16351 | class.") | ||
| 16352 | (license license:bsd-2))) | ||
| 16353 | |||
| 16354 | (define-public ruby-gli | ||
| 16355 | (package | ||
| 16356 | (name "ruby-gli") | ||
| 16357 | (version "2.21.0") | ||
| 16358 | (source (origin | ||
| 16359 | (method git-fetch) | ||
| 16360 | (uri (git-reference | ||
| 16361 | (url "https://github.com/davetron5000/gli") | ||
| 16362 | (commit (string-append "v" version)))) | ||
| 16363 | (sha256 | ||
| 16364 | (base32 | ||
| 16365 | "09b1r9hlx4dy2yq036nk7hc2nbswhia6q3na9v11z94yibc8mgja")) | ||
| 16366 | (file-name (git-file-name name version)))) | ||
| 16367 | (build-system ruby-build-system) | ||
| 16368 | (native-inputs | ||
| 16369 | (list ruby-minitest | ||
| 16370 | ruby-rainbow | ||
| 16371 | ruby-rdoc | ||
| 16372 | ruby-sdoc)) | ||
| 16373 | (arguments | ||
| 16374 | (list | ||
| 16375 | #:phases | ||
| 16376 | #~(modify-phases %standard-phases | ||
| 16377 | (add-after 'extract-gemspec 'patch-gemspec-version | ||
| 16378 | (lambda args | ||
| 16379 | (substitute* "gli.gemspec" | ||
| 16380 | ;; this trick fails in our build environment | ||
| 16381 | (("require File\\.join[(]\\[" orig) | ||
| 16382 | (string-append "# patched for Guix # " orig)) | ||
| 16383 | (("s\\.version = GLI::VERSION") | ||
| 16384 | #$(string-append "s.version = '" | ||
| 16385 | (package-version this-package) | ||
| 16386 | "' # patched for Guix"))))) | ||
| 16387 | (add-after 'replace-git-ls-files 'replace-another-git-ls-files | ||
| 16388 | (lambda args | ||
| 16389 | (substitute* "gli.gemspec" | ||
| 16390 | (("`git ls-files -- [{]test,spec,features[}]/\\*`") | ||
| 16391 | "`find {test,spec,features} -type f | sort`")))) | ||
| 16392 | (add-after 'replace-another-git-ls-files 'fix-rubyopt | ||
| 16393 | (lambda args | ||
| 16394 | (substitute* "Rakefile" | ||
| 16395 | (("ENV\\[\"RUBYOPT\"]") | ||
| 16396 | "(ENV['RUBYOPT'] || '')"))))))) | ||
| 16397 | (home-page "https://davetron5000.github.io/gli/") | ||
| 16398 | (synopsis "Git-Like Interface command-line parser") | ||
| 16399 | (description | ||
| 16400 | "GLI allows you to create command-line applications in Ruby with Git-Like | ||
| 16401 | Interfaces: that is, they take subcommands in the style of @command{git} and | ||
| 16402 | @command{gem}. GLI uses a simple domain-specific language, but retains all | ||
| 16403 | the power of the built-in @code{OptionParser}.") | ||
| 16404 | (license license:asl2.0))) | ||
| 16405 | |||
| 16406 | (define-public ruby-anystyle-data | ||
| 16407 | (package | ||
| 16408 | (name "ruby-anystyle-data") | ||
| 16409 | (version "1.3.0") | ||
| 16410 | (source (origin | ||
| 16411 | (method git-fetch) | ||
| 16412 | (uri (git-reference | ||
| 16413 | (url "https://github.com/inukshuk/anystyle-data") | ||
| 16414 | (commit (string-append "v" version)))) | ||
| 16415 | (sha256 | ||
| 16416 | (base32 | ||
| 16417 | "1jh880310m3gjdrk4m8rwwnsf0824zkf26clpr8p64sac2fyy907")) | ||
| 16418 | (snippet | ||
| 16419 | ;; remove pre-built file | ||
| 16420 | #~(delete-file "lib/anystyle/data/dict.txt.gz")) | ||
| 16421 | (patches | ||
| 16422 | (search-patches "ruby-anystyle-data-immutable-install.patch")) | ||
| 16423 | (file-name (git-file-name name version)))) | ||
| 16424 | (build-system ruby-build-system) | ||
| 16425 | (arguments | ||
| 16426 | (list | ||
| 16427 | #:tests? #f ;; there are none | ||
| 16428 | #:modules | ||
| 16429 | `((guix build ruby-build-system) | ||
| 16430 | (guix build utils) | ||
| 16431 | (srfi srfi-26)) | ||
| 16432 | #:phases | ||
| 16433 | #~(modify-phases %standard-phases | ||
| 16434 | (add-after 'replace-git-ls-files 'replace-another-git-ls-files | ||
| 16435 | (lambda args | ||
| 16436 | (substitute* "anystyle-data.gemspec" | ||
| 16437 | (("`git ls-files lib README\\.md LICENSE`\\.split[(][^)]*[)]") | ||
| 16438 | (string-append | ||
| 16439 | "[" | ||
| 16440 | (string-join | ||
| 16441 | (map (cut string-append "\"" <> "\"") | ||
| 16442 | `("README.md" | ||
| 16443 | "LICENSE" | ||
| 16444 | "lib/anystyle/data.rb" | ||
| 16445 | "lib/anystyle/data/dict.txt.gz" | ||
| 16446 | "lib/anystyle/data/setup.rb" | ||
| 16447 | "lib/anystyle/data/version.rb")) | ||
| 16448 | ", ") | ||
| 16449 | "]"))))) | ||
| 16450 | (add-before 'build 'compile-dict | ||
| 16451 | (lambda args | ||
| 16452 | (invoke "rake" "compile")))))) | ||
| 16453 | (home-page "https://anystyle.io") | ||
| 16454 | (synopsis "AnyStyle parser dictionary data") | ||
| 16455 | (description | ||
| 16456 | "This gem provides parser dictionary data for AnyStyle.") | ||
| 16457 | (license license:bsd-2))) | ||
| 16458 | |||
| 16459 | (define-public ruby-anystyle | ||
| 16460 | (package | ||
| 16461 | (name "ruby-anystyle") | ||
| 16462 | (version "1.4.2") | ||
| 16463 | (source (origin | ||
| 16464 | (method git-fetch) | ||
| 16465 | (uri (git-reference | ||
| 16466 | (url "https://github.com/inukshuk/anystyle") | ||
| 16467 | (commit (string-append "v" version)))) | ||
| 16468 | (sha256 | ||
| 16469 | (base32 | ||
| 16470 | "0xhy7wj8v7iahikck6vxbdpncaz5w2gb11b32kmvg5ckgi2kz23p")) | ||
| 16471 | (snippet | ||
| 16472 | ;; There is an optional dependency on | ||
| 16473 | ;; <https://github.com/feedbackmine/language_detector>, which | ||
| 16474 | ;; seems like it was intended to be free software, but | ||
| 16475 | ;; doesn't have a clear license statement. Maybe someone can | ||
| 16476 | ;; do more sleuthing, or else find a replacement? See also | ||
| 16477 | ;; <https://github.com/inukshuk/anystyle/issues/186>. For | ||
| 16478 | ;; now, patch it out, but leave a pointer to follow up. | ||
| 16479 | #~(begin | ||
| 16480 | (use-modules (guix build utils)) | ||
| 16481 | (substitute* "Gemfile" | ||
| 16482 | (("gem 'language_detector', github: '[^']*'" orig) | ||
| 16483 | (string-append "# " orig " # unclear license"))) | ||
| 16484 | (substitute* "spec/anystyle/parser_spec.rb" | ||
| 16485 | (("language: 'en'," orig) | ||
| 16486 | (string-append "# " orig " # no lanugage_detector"))))) | ||
| 16487 | (patches | ||
| 16488 | (search-patches | ||
| 16489 | "ruby-anystyle-fix-dictionary-populate.patch")) | ||
| 16490 | (file-name (git-file-name name version)))) | ||
| 16491 | (build-system ruby-build-system) | ||
| 16492 | (propagated-inputs | ||
| 16493 | (list ruby-anystyle-data | ||
| 16494 | ruby-bibtex-ruby | ||
| 16495 | ruby-namae | ||
| 16496 | ruby-wapiti)) | ||
| 16497 | (native-inputs | ||
| 16498 | (list ruby-byebug | ||
| 16499 | ruby-citeproc | ||
| 16500 | ruby-edtf | ||
| 16501 | ruby-gdbm | ||
| 16502 | ruby-rspec | ||
| 16503 | ruby-unicode-scripts)) | ||
| 16504 | (arguments | ||
| 16505 | (list | ||
| 16506 | #:test-target "spec" | ||
| 16507 | #:phases | ||
| 16508 | #~(modify-phases %standard-phases | ||
| 16509 | (add-after 'extract-gemspec 'avoid-bundler | ||
| 16510 | (lambda args | ||
| 16511 | (substitute* "Rakefile" | ||
| 16512 | (("require 'bundler" orig) | ||
| 16513 | (string-append "# " orig " # patched for Guix")) | ||
| 16514 | (("Bundler\\.setup" orig) | ||
| 16515 | (string-append "true # " orig " # patched for Guix"))))) | ||
| 16516 | (add-after 'replace-git-ls-files 'replace-another-git-ls-files | ||
| 16517 | (lambda args | ||
| 16518 | (substitute* "anystyle.gemspec" | ||
| 16519 | (("`git ls-files spec`") | ||
| 16520 | "`find spec -type f | sort`")))) | ||
| 16521 | (add-after 'wrap 'populate-dictionaries | ||
| 16522 | (lambda args | ||
| 16523 | ;; We must initialize these files here, or they will never be | ||
| 16524 | ;; usable with the default settings. A more flexible approach | ||
| 16525 | ;; might use something like `Gem.find_files()` or | ||
| 16526 | ;; XDG_DATA_DIRS. | ||
| 16527 | (with-output-to-file "initialize-dictionaries.rb" | ||
| 16528 | (lambda () | ||
| 16529 | (display "\ | ||
| 16530 | require 'anystyle/dictionary' # must come before 'anystyle/data' | ||
| 16531 | require 'anystyle/data' | ||
| 16532 | [:marshal, :gdbm].each do |adapter| | ||
| 16533 | AnyStyle::Dictionary.create({adapter: adapter}).open().close() | ||
| 16534 | end | ||
| 16535 | "))) | ||
| 16536 | (let* ((old-gems (getenv "GEM_PATH")) | ||
| 16537 | (new-gems (string-append #$output | ||
| 16538 | "/lib/ruby/vendor_ruby:" | ||
| 16539 | old-gems))) | ||
| 16540 | (dynamic-wind | ||
| 16541 | (lambda () | ||
| 16542 | (setenv "GEM_PATH" new-gems)) | ||
| 16543 | (lambda () | ||
| 16544 | (invoke "ruby" "initialize-dictionaries.rb")) | ||
| 16545 | (lambda () | ||
| 16546 | (setenv "GEM_PATH" old-gems))))))))) | ||
| 16547 | (home-page "https://anystyle.io") | ||
| 16548 | (synopsis "Fast and smart citation reference parsing (Ruby library)") | ||
| 16549 | (description | ||
| 16550 | "AnyStyle is a very fast and smart parser for academic reference lists | ||
| 16551 | and bibliographies. AnyStyle uses powerful machine learning heuristics based | ||
| 16552 | on Conditional Random Fields and aims to make it easy to train the model with | ||
| 16553 | data that is relevant to your parsing needs. | ||
| 16554 | |||
| 16555 | This package provides the Ruby module @code{AnyStyle}. AnyStyle can also be | ||
| 16556 | used via the @command{anystyle} command-line utility or a web application, | ||
| 16557 | though the later has not yet been packaged for Guix.") | ||
| 16558 | (license license:bsd-2))) | ||
| 16559 | |||
| 16560 | (define-public anystyle | ||
| 16561 | (package | ||
| 16562 | (name "anystyle") | ||
| 16563 | (version "1.4.5") | ||
| 16564 | (source (origin | ||
| 16565 | (method git-fetch) | ||
| 16566 | (uri (git-reference | ||
| 16567 | (url "https://github.com/inukshuk/anystyle-cli") | ||
| 16568 | (commit (string-append "v" version)))) | ||
| 16569 | (sha256 | ||
| 16570 | (base32 | ||
| 16571 | "10jx830mx9vh7rsz87ndvz8w5b5azd9s231vwyb0dqxs921v6qwy")) | ||
| 16572 | (file-name (git-file-name name version)))) | ||
| 16573 | (build-system ruby-build-system) | ||
| 16574 | (propagated-inputs | ||
| 16575 | (list ruby-anystyle | ||
| 16576 | ruby-bibtex-ruby | ||
| 16577 | ruby-gli)) | ||
| 16578 | (native-inputs | ||
| 16579 | (list ruby-gdbm | ||
| 16580 | txt2man)) | ||
| 16581 | (arguments | ||
| 16582 | (list | ||
| 16583 | #:modules | ||
| 16584 | `((guix build ruby-build-system) | ||
| 16585 | (ice-9 popen) | ||
| 16586 | (srfi srfi-1) | ||
| 16587 | (guix build utils)) | ||
| 16588 | #:phases | ||
| 16589 | #~(modify-phases %standard-phases | ||
| 16590 | (add-after 'extract-gemspec 'less-strict-dependencies | ||
| 16591 | (lambda args | ||
| 16592 | (substitute* "anystyle-cli.gemspec" | ||
| 16593 | (("'bibtex-ruby', '[^']*'") | ||
| 16594 | "'bibtex-ruby'")))) | ||
| 16595 | (add-before 'build 'change-default-dictionary-adapter | ||
| 16596 | (lambda args | ||
| 16597 | ;; Since we always have gdbm available, using it will give a | ||
| 16598 | ;; faster startup time, which is particularly worth-while for | ||
| 16599 | ;; a command-line tool. | ||
| 16600 | (substitute* "bin/anystyle" | ||
| 16601 | (("default_value: 'ruby',") | ||
| 16602 | "default_value: 'gdbm', # patched for Guix")))) | ||
| 16603 | (replace 'check | ||
| 16604 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 16605 | ;; There are no tests, but let's use this opportunity to do a | ||
| 16606 | ;; basic test of our own that things run ok. It works especially | ||
| 16607 | ;; well to test this here since we know the 'ruby-anystile' | ||
| 16608 | ;; package is in its final, immutable installed form. | ||
| 16609 | (when tests? | ||
| 16610 | (let ((common | ||
| 16611 | `("require 'anystyle'" | ||
| 16612 | ,(string-append | ||
| 16613 | "pp AnyStyle.parse 'Derrida, J. (1967). L’écriture" | ||
| 16614 | " et la différence (1 éd.). Paris: Éditions du" | ||
| 16615 | " Seuil.'")))) | ||
| 16616 | (for-each | ||
| 16617 | (lambda (lines) | ||
| 16618 | (apply invoke "ruby" | ||
| 16619 | (fold-right (lambda (line lst) | ||
| 16620 | (cons* "-e" line lst)) | ||
| 16621 | '() | ||
| 16622 | lines))) | ||
| 16623 | `(,common | ||
| 16624 | ("require 'anystyle/dictionary'" | ||
| 16625 | "AnyStyle::Dictionary.defaults[:adapter] = :gdbm" | ||
| 16626 | ,@common))))))) | ||
| 16627 | (add-after 'wrap 'check-cli | ||
| 16628 | (lambda* (#:key tests? outputs #:allow-other-keys) | ||
| 16629 | (when tests? | ||
| 16630 | (with-output-to-file "check-cli.in" | ||
| 16631 | (lambda () | ||
| 16632 | (for-each | ||
| 16633 | display | ||
| 16634 | '("Derrida, J. (1967). L’écriture et la différence " | ||
| 16635 | "(1 éd.). Paris: Éditions du Seuil.\n")))) | ||
| 16636 | (invoke (search-input-file outputs "/bin/anystyle") | ||
| 16637 | "parse" | ||
| 16638 | "check-cli.in")))) | ||
| 16639 | (add-after 'wrap 'generate-man-page | ||
| 16640 | ;; generating a man page also tests that the command actually runs | ||
| 16641 | (lambda args | ||
| 16642 | (define (run-with-output-file file command . args) | ||
| 16643 | (format (current-output-port) | ||
| 16644 | "running: ~s\nwith output to: ~s\n" | ||
| 16645 | (cons command args) | ||
| 16646 | file) | ||
| 16647 | (unless (zero? | ||
| 16648 | (with-output-to-file file | ||
| 16649 | (lambda () | ||
| 16650 | (status:exit-val | ||
| 16651 | (close-pipe | ||
| 16652 | (apply open-pipe* OPEN_WRITE command args)))))) | ||
| 16653 | (error "command failed"))) | ||
| 16654 | (let ((anystyle (string-append #$output "/bin/anystyle"))) | ||
| 16655 | (run-with-output-file "intro.txt" | ||
| 16656 | anystyle "--help") | ||
| 16657 | (for-each (lambda (cmd) | ||
| 16658 | (let ((file (string-append cmd ".txt"))) | ||
| 16659 | (run-with-output-file file | ||
| 16660 | anystyle cmd "--help") | ||
| 16661 | ;; indent headings to create subsections | ||
| 16662 | (substitute* file | ||
| 16663 | (("^[A-Z]" orig) | ||
| 16664 | (string-append " " orig))) | ||
| 16665 | ;; generate a section heading | ||
| 16666 | (call-with-output-file | ||
| 16667 | (string-append "section-" file) | ||
| 16668 | (lambda (out) | ||
| 16669 | (format out "\n\n~a COMMAND\n\n" | ||
| 16670 | (string-upcase cmd)))))) | ||
| 16671 | '("check" "find" "parse" "train")) | ||
| 16672 | (substitute* `("intro.txt" | ||
| 16673 | "check.txt" "find.txt" "parse.txt" "train.txt") | ||
| 16674 | ;; format "tag list" for txt2man" | ||
| 16675 | ((" - ") | ||
| 16676 | " ") | ||
| 16677 | ;; restore formatting of the "name" sections | ||
| 16678 | (("(anystyle|check|find|parse|train) ([A-Z])" _ cmd post) | ||
| 16679 | (string-append cmd " - " post))) | ||
| 16680 | (run-with-output-file "anystyle.txt" | ||
| 16681 | "cat" | ||
| 16682 | "intro.txt" | ||
| 16683 | "section-check.txt" "check.txt" | ||
| 16684 | "section-find.txt" "find.txt" | ||
| 16685 | "section-parse.txt" "parse.txt" | ||
| 16686 | "section-train.txt" "train.txt") | ||
| 16687 | (run-with-output-file | ||
| 16688 | "anystyle.1" | ||
| 16689 | "txt2man" | ||
| 16690 | "-v" "General Commands Manual" "-t" "anystyle" "-s" "1" | ||
| 16691 | "-r" #$(string-append "anystyle-cli " | ||
| 16692 | (package-version this-package)) | ||
| 16693 | "-B" "check" "-B" "find" "-B" "parse" "-B" "train" | ||
| 16694 | "anystyle.txt") | ||
| 16695 | (install-file "anystyle.1" | ||
| 16696 | (string-append #$output "/share/man/man1")))))))) | ||
| 16697 | (home-page "https://anystyle.io") | ||
| 16698 | (synopsis "Fast and smart citation reference parsing") | ||
| 16699 | (description | ||
| 16700 | "AnyStyle is a very fast and smart parser for academic reference lists | ||
| 16701 | and bibliographies. AnyStyle uses powerful machine learning heuristics based | ||
| 16702 | on Conditional Random Fields and aims to make it easy to train the model with | ||
| 16703 | data that is relevant to your parsing needs. | ||
| 16704 | |||
| 16705 | This package provides the @command{anystyle} command-line utility. AnyStyle | ||
| 16706 | can also be used as a Ruby library or as a web application, though the later | ||
| 16707 | has not yet been packaged for Guix.") | ||
| 16708 | (license license:bsd-2) | ||
| 16709 | (properties `((upstream-name . "anystyle-cli"))))) | ||
| 16710 | |||
| 16711 | (define-public ruby-google-protobuf | ||
| 16712 | (package | ||
| 16713 | (name "ruby-google-protobuf") | ||
| 16714 | (version "3.25.3") | ||
| 16715 | (source (origin | ||
| 16716 | (method url-fetch) | ||
| 16717 | (uri (rubygems-uri "google-protobuf" version)) | ||
| 16718 | (sha256 | ||
| 16719 | (base32 | ||
| 16720 | "1mnxzcq8kmyfb9bkzqnp019d1hx1vprip3yzdkkha6b3qz5rgg9r")))) | ||
| 16721 | (build-system ruby-build-system) | ||
| 16722 | (arguments | ||
| 16723 | `(#:tests? #f)) ;; has no tests | ||
| 16724 | (native-inputs (list ruby-rake)) | ||
| 16725 | (synopsis "Protocol Buffers are Google's data interchange format") | ||
| 16726 | (description "This library contains the Ruby extension that implements | ||
| 16727 | Protocol Buffers functionality in Ruby. | ||
| 16728 | |||
| 16729 | The Ruby extension makes use of generated Ruby code that defines message and | ||
| 16730 | enum types in a Ruby DSL. You may write definitions in this DSL directly, but | ||
| 16731 | we recommend using protoc's Ruby generation support with @code{.proto} files. | ||
| 16732 | The build process in this directory only installs the extension; you need to | ||
| 16733 | install @code{protoc} (in package ruby-grpc-tools) as well to have Ruby code | ||
| 16734 | generation functionality.") | ||
| 16735 | (home-page "https://protobuf.dev") | ||
| 16736 | (license license:bsd-3))) | ||
| 16737 | |||
| 16738 | (define-public ruby-googleapis-common-protos-types | ||
| 16739 | (package | ||
| 16740 | (name "ruby-googleapis-common-protos-types") | ||
| 16741 | (version "1.13.0") | ||
| 16742 | (source (origin | ||
| 16743 | (method url-fetch) | ||
| 16744 | (uri (rubygems-uri "googleapis-common-protos-types" version)) | ||
| 16745 | (sha256 | ||
| 16746 | (base32 | ||
| 16747 | "1zrxnv9s2q39f2nh32x7nbfi8lpwzmmn3ji4adglg8dlfr1xrz16")))) | ||
| 16748 | (build-system ruby-build-system) | ||
| 16749 | (arguments | ||
| 16750 | `(#:tests? #f)) ;; has no tests | ||
| 16751 | (propagated-inputs (list ruby-google-protobuf)) | ||
| 16752 | (synopsis "Common protocol buffer types used by Google APIs") | ||
| 16753 | (description "Common protocol buffer types used by Google APIs") | ||
| 16754 | (home-page "https://github.com/googleapis/common-protos-ruby") | ||
| 16755 | (license license:asl2.0))) | ||
| 16756 | |||
| 16757 | (define-public ruby-grpc | ||
| 16758 | (package | ||
| 16759 | (name "ruby-grpc") | ||
| 16760 | (version "1.62.0") | ||
| 16761 | (source (origin | ||
| 16762 | (method url-fetch) | ||
| 16763 | (uri (rubygems-uri "grpc" version)) | ||
| 16764 | (sha256 | ||
| 16765 | (base32 | ||
| 16766 | "03z8yq0z228g6xxxq6s2mmslpv6psrdmi30dpmhysr4px16d897n")))) | ||
| 16767 | (build-system ruby-build-system) | ||
| 16768 | (arguments | ||
| 16769 | `(#:tests? #f)) ;; has no tests | ||
| 16770 | ;; TODO remove third-party sources (zlib, upb, utf8-range, re2, c-ares, | ||
| 16771 | ;; boringssl-with-bazel, address_sorting, abseil-cpp), see Makefile | ||
| 16772 | (propagated-inputs (list ruby-google-protobuf | ||
| 16773 | ruby-googleapis-common-protos-types)) | ||
| 16774 | (synopsis "GRPC system in Ruby") | ||
| 16775 | (description "GRPC is a high performance, open-source universal RPC | ||
| 16776 | framework. This package provides a ruby interface for it.") | ||
| 16777 | (home-page "https://github.com/grpc/grpc/tree/master/src/ruby") | ||
| 16778 | (license license:asl2.0))) | ||
| 32 | 16779 | ||
| 33 | ;;; | 16780 | ;;; |
| 34 | ;;; Avoid adding new packages to the end of this file. To reduce the chances | 16781 | ;;; Avoid adding new packages to the end of this file. To reduce the chances |
| 35 | ;;; of a merge conflict, place them above in alphabetic order. | 16782 | ;;; of a merge conflict, place them above by existing packages with similar |
| 16783 | ;;; functionality or similar names. | ||
| 36 | ;;; | 16784 | ;;; |
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 105ac485fc5..d7341d8f97e 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm | |||
| @@ -1,41 +1,20 @@ | |||
| 1 | ;;; GNU Guix --- Functional package management for GNU | 1 | ;;; GNU Guix --- Functional package management for GNU |
| 2 | ;;; Copyright © 2014, 2015 Pjotr Prins <pjotr.guix@thebird.nl> | 2 | ;;; Copyright © 2014, 2015 Pjotr Prins <pjotr.guix@thebird.nl> |
| 3 | ;;; Copyright © 2014-2017, 2021-2022, 2024 Ludovic Courtès <ludo@gnu.org> | 3 | ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org> |
| 4 | ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> | 4 | ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> |
| 5 | ;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org> | 5 | ;;; Copyright © 2015-2018 Ben Woodcroft <donttrustben@gmail.com> |
| 6 | ;;; Copyright © 2015 David Thompson <davet@gnu.org> | ||
| 6 | ;;; Copyright © 2015, 2019 Ricardo Wurmus <rekado@elephly.net> | 7 | ;;; Copyright © 2015, 2019 Ricardo Wurmus <rekado@elephly.net> |
| 7 | ;;; Copyright © 2015, 2016, 2017 Ben Woodcroft <donttrustben@gmail.com> | 8 | ;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org> |
| 8 | ;;; Copyright © 2017 Nikita <nikita@n0.is> | 9 | ;;; Copyright © 2019, 2020 Christopher Baines <mail@cbaines.net> |
| 9 | ;;; Copyright © 2017, 2019-2022 Marius Bakke <marius@gnu.org> | ||
| 10 | ;;; Copyright © 2017-2025 Efraim Flashner <efraim@flashner.co.il> | ||
| 11 | ;;; Copyright © 2017, 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr> | ||
| 12 | ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> | ||
| 13 | ;;; Copyright © 2017, 2018, 2019 Christopher Baines <mail@cbaines.net> | ||
| 14 | ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com> | ||
| 15 | ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com> | ||
| 16 | ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz> | ||
| 17 | ;;; Copyright © 2019 Mikhail Kirillov <w96k.ru@gmail.com> | ||
| 18 | ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org> | 10 | ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org> |
| 19 | ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com> | ||
| 20 | ;;; Copyright © 2019 Collin J. Doering <collin@rekahsoft.ca> | ||
| 21 | ;;; Copyright © 2019 Diego N. Barbato <dnbarbato@posteo.de> | ||
| 22 | ;;; Copyright © 2019 Brett Gilio <brettg@posteo.de> | ||
| 23 | ;;; Copyright © 2020, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> | 11 | ;;; Copyright © 2020, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> |
| 24 | ;;; Copyright © 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr> | 12 | ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com> |
| 25 | ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> | 13 | ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> |
| 26 | ;;; Copyright © 2020 Holgr Peters <holger.peters@posteo.de> | 14 | ;;; Copyright © 2021 Marius Bakke <marius@gnu.org> |
| 27 | ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org> | 15 | ;;; Copyright © 2023 Christopher Baines <mail@cbaines.net> |
| 28 | ;;; Copyright © 2021 EuAndreh <eu@euandre.org> | 16 | ;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org> |
| 29 | ;;; Copyright © 2020 Tomás Ortín Fernández <tomasortin@mailbox.org> | 17 | ;;; Copyright © 2023 Zheng Junjie <873216071@qq.com> |
| 30 | ;;; Copyright © 2021 Giovanni Biscuolo <g@xelera.eu> | ||
| 31 | ;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com> | ||
| 32 | ;;; Copyright © 2022-2025 Remco van 't Veer <remco@remworks.net> | ||
| 33 | ;;; Copyright © 2022 Taiju HIGASHI <higashi@taiju.info> | ||
| 34 | ;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream> | ||
| 35 | ;;; Copyright © 2023, 2024 gemmaro <gemmaro.dev@gmail.com> | ||
| 36 | ;;; Copyright © 2023, 2024 Janneke Nieuwenhuizen <janneke@gnu.org> | ||
| 37 | ;;; Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com> | ||
| 38 | ;;; Copyright © 2023, 2024 Hartmut Goebel <h.goebel@crazy-compilers.com> | ||
| 39 | ;;; Copyright © 2025 Nicolas Graves <ngraves@ngraves.fr> | 18 | ;;; Copyright © 2025 Nicolas Graves <ngraves@ngraves.fr> |
| 40 | ;;; | 19 | ;;; |
| 41 | ;;; This file is part of GNU Guix. | 20 | ;;; This file is part of GNU Guix. |
| @@ -96,7 +75,6 @@ | |||
| 96 | #:use-module (gnu packages web-browsers) | 75 | #:use-module (gnu packages web-browsers) |
| 97 | #:use-module (gnu packages serialization) | 76 | #:use-module (gnu packages serialization) |
| 98 | #:use-module (guix packages) | 77 | #:use-module (guix packages) |
| 99 | #:use-module (guix deprecation) | ||
| 100 | #:use-module (guix download) | 78 | #:use-module (guix download) |
| 101 | #:use-module (guix git-download) | 79 | #:use-module (guix git-download) |
| 102 | #:use-module (guix gexp) | 80 | #:use-module (guix gexp) |
| @@ -105,15 +83,7 @@ | |||
| 105 | #:use-module (guix build-system gnu) | 83 | #:use-module (guix build-system gnu) |
| 106 | #:use-module (gnu packages xml) | 84 | #:use-module (gnu packages xml) |
| 107 | #:use-module (gnu packages web) | 85 | #:use-module (gnu packages web) |
| 108 | #:use-module (guix build-system ruby) | 86 | #:use-module (guix build-system ruby)) |
| 109 | #:use-module ((srfi srfi-1) #:select (alist-delete))) | ||
| 110 | |||
| 111 | (define %prawn-project-licenses | ||
| 112 | ;; This set of licenses applies to most (all?) components of the Prawn | ||
| 113 | ;; project (it is triple licensed). | ||
| 114 | (list license:ruby | ||
| 115 | license:gpl2+ | ||
| 116 | license:gpl3+)) | ||
| 117 | 87 | ||
| 118 | (define-public ruby-3.4 | 88 | (define-public ruby-3.4 |
| 119 | (package | 89 | (package |
| @@ -349,17719 +319,6 @@ language. Its syntax is Ruby 3.x compatible except for pattern | |||
| 349 | matching. mruby can be linked and embedded within your application.") | 319 | matching. mruby can be linked and embedded within your application.") |
| 350 | (license license:expat))) | 320 | (license license:expat))) |
| 351 | 321 | ||
| 352 | (define-public ruby-commander | ||
| 353 | (package | ||
| 354 | (name "ruby-commander") | ||
| 355 | (version "4.6.0") | ||
| 356 | (source | ||
| 357 | (origin | ||
| 358 | (method url-fetch) | ||
| 359 | (uri (rubygems-uri "commander" version)) | ||
| 360 | (sha256 | ||
| 361 | (base32 | ||
| 362 | "1n8k547hqq9hvbyqbx2qi08g0bky20bbjca1df8cqq5frhzxq7bx")))) | ||
| 363 | (build-system ruby-build-system) | ||
| 364 | (arguments | ||
| 365 | (list | ||
| 366 | #:test-target "spec" | ||
| 367 | #:phases | ||
| 368 | #~(modify-phases %standard-phases | ||
| 369 | ;; Don't run or require rubocop, the code linting tool, as this is a | ||
| 370 | ;; bit unnecessary. | ||
| 371 | (add-after 'unpack 'dont-run-rubocop | ||
| 372 | (lambda _ | ||
| 373 | (substitute* "Rakefile" | ||
| 374 | ((".*rubocop.*") "") | ||
| 375 | ((".*RuboCop.*") ""))))))) | ||
| 376 | (propagated-inputs | ||
| 377 | (list ruby-highline)) | ||
| 378 | (native-inputs | ||
| 379 | (list bundler ruby-rspec-core ruby-rspec-expectations | ||
| 380 | ruby-rspec-mocks ruby-simplecov)) | ||
| 381 | (home-page "https://github.com/commander-rb/commander") | ||
| 382 | (synopsis "Library for building Ruby command-line executables") | ||
| 383 | (description | ||
| 384 | "Commander aims to be a complete solution for Ruby command-line | ||
| 385 | executables. Commander bridges the gap between other terminal related | ||
| 386 | libraries (OptionParser, HighLine), while providing many new features, and an | ||
| 387 | elegant API.") | ||
| 388 | (license license:expat))) | ||
| 389 | |||
| 390 | (define-public ruby-highline | ||
| 391 | (package | ||
| 392 | (name "ruby-highline") | ||
| 393 | (version "2.0.1") | ||
| 394 | (source | ||
| 395 | (origin | ||
| 396 | (method url-fetch) | ||
| 397 | (uri (rubygems-uri "highline" version)) | ||
| 398 | (sha256 | ||
| 399 | (base32 | ||
| 400 | "0gr6pckj2jayxw1gdgh9193j5jag5zrrqqlrnl4jvcwpyd3sn2zc")))) | ||
| 401 | (build-system ruby-build-system) | ||
| 402 | (arguments | ||
| 403 | `(#:tests? #f)) ;; TODO: NameError: uninitialized constant SPEC | ||
| 404 | (native-inputs | ||
| 405 | (list bundler ruby-code-statistics)) | ||
| 406 | (synopsis | ||
| 407 | "HighLine helps you build command-line interfaces") | ||
| 408 | (description | ||
| 409 | "HighLine provides a high-level IO library that provides validation, | ||
| 410 | type conversion, and more for command-line interfaces. HighLine also includes | ||
| 411 | a menu system for providing multiple options to the user.") | ||
| 412 | (home-page "https://github.com/JEG2/highline") | ||
| 413 | (license (list license:gpl2 license:ruby)))) | ||
| 414 | |||
| 415 | (define-public ruby-hoe | ||
| 416 | (package | ||
| 417 | (name "ruby-hoe") | ||
| 418 | (version "4.2.2") | ||
| 419 | (source (origin | ||
| 420 | (method url-fetch) | ||
| 421 | (uri (rubygems-uri "hoe" version)) | ||
| 422 | (sha256 | ||
| 423 | (base32 | ||
| 424 | "1rhj1zs02mpdw6f4fh3mpfmj0p5pfar7rfxm758pk7l931mm8pyn")))) | ||
| 425 | (build-system ruby-build-system) | ||
| 426 | (arguments | ||
| 427 | (list | ||
| 428 | ;; Circular dependency with minitest | ||
| 429 | #:tests? #f)) | ||
| 430 | (synopsis "Ruby project management helper") | ||
| 431 | (description | ||
| 432 | "Hoe is a rake/rubygems helper for project Rakefiles. It helps manage, | ||
| 433 | maintain, and release projects and includes a dynamic plug-in system allowing | ||
| 434 | for easy extensibility. Hoe ships with plug-ins for all the usual project | ||
| 435 | tasks including rdoc generation, testing, packaging, deployment, and | ||
| 436 | announcement.") | ||
| 437 | (home-page "https://www.zenspider.com/projects/hoe.html") | ||
| 438 | (license license:expat))) | ||
| 439 | |||
| 440 | (define-public ruby-hoe-3 | ||
| 441 | (package | ||
| 442 | (inherit ruby-hoe) | ||
| 443 | (version "3.26.0") | ||
| 444 | (source (origin | ||
| 445 | (method url-fetch) | ||
| 446 | (uri (rubygems-uri "hoe" version)) | ||
| 447 | (sha256 | ||
| 448 | (base32 | ||
| 449 | "02vmphnfzna1dbb1l5nczcvlvvsg4flr26bdhmvdyf447bpswa63")))))) | ||
| 450 | |||
| 451 | (define-public ruby-rake-compiler | ||
| 452 | (package | ||
| 453 | (name "ruby-rake-compiler") | ||
| 454 | (version "1.2.9") | ||
| 455 | (source (origin | ||
| 456 | (method url-fetch) | ||
| 457 | (uri (rubygems-uri "rake-compiler" version)) | ||
| 458 | (sha256 | ||
| 459 | (base32 | ||
| 460 | "01rnl94p1sr84xkbnh66db42qsndykbfx2z2fggxyxx9vnji6cjs")))) | ||
| 461 | (build-system ruby-build-system) | ||
| 462 | (arguments | ||
| 463 | '(#:tests? #f)) ; needs cucumber | ||
| 464 | (synopsis "Building and packaging helper for Ruby native extensions") | ||
| 465 | (description "Rake-compiler provides a framework for building and | ||
| 466 | packaging native C and Java extensions in Ruby.") | ||
| 467 | (home-page "https://github.com/rake-compiler/rake-compiler") | ||
| 468 | (license license:expat))) | ||
| 469 | |||
| 470 | (define-public ruby-rake-compiler-dock | ||
| 471 | (package | ||
| 472 | (name "ruby-rake-compiler-dock") | ||
| 473 | (version "1.3.0") | ||
| 474 | (source (origin | ||
| 475 | (method url-fetch) | ||
| 476 | (uri (rubygems-uri "rake-compiler-dock" version)) | ||
| 477 | (sha256 | ||
| 478 | (base32 | ||
| 479 | "0yr5f72irvhmnk12q7bbr4qw0xwy7diqkbcvb4lygjbg7rvk3k8k")))) | ||
| 480 | (build-system ruby-build-system) | ||
| 481 | (arguments (list #:tests? #f)) ;test suite requires docker | ||
| 482 | (synopsis "Cross compiler environment for building Ruby gems") | ||
| 483 | (description "The code{rake-compiler-dock} gem provides a cross compiler | ||
| 484 | environment for building gems on a variety of platforms (GNU/Linux, JRuby, | ||
| 485 | Windows and Mac).") | ||
| 486 | (home-page "https://github.com/rake-compiler/rake-compiler-dock") | ||
| 487 | (license license:expat))) | ||
| 488 | |||
| 489 | (define-public ruby-rsync | ||
| 490 | (package | ||
| 491 | (name "ruby-rsync") | ||
| 492 | (version "1.0.9") | ||
| 493 | (source | ||
| 494 | (origin | ||
| 495 | (method url-fetch) | ||
| 496 | (uri (rubygems-uri "rsync" version)) | ||
| 497 | (sha256 | ||
| 498 | (base32 | ||
| 499 | "0p8b27q1gvxilqfq2528xpwglzcm2myikkjxpqk7mwbwg9r6knxv")))) | ||
| 500 | (build-system ruby-build-system) | ||
| 501 | (arguments | ||
| 502 | '(#:test-target "spec" | ||
| 503 | #:phases | ||
| 504 | (modify-phases %standard-phases | ||
| 505 | (add-after 'unpack 'remove-coveralls-requirement | ||
| 506 | (lambda _ | ||
| 507 | (substitute* "spec/spec_helper.rb" | ||
| 508 | (("require 'coveralls'") "") | ||
| 509 | (("Coveralls.wear!") ""))))))) | ||
| 510 | (native-inputs | ||
| 511 | (list bundler rsync ruby-rspec-core ruby-rspec-expectations | ||
| 512 | ruby-rspec-mocks)) | ||
| 513 | (home-page "https://github.com/jbussdieker/ruby-rsync") | ||
| 514 | (synopsis "Ruby wrapper around rsync") | ||
| 515 | (description | ||
| 516 | "Ruby Rsync is a Ruby library that can synchronize files between remote | ||
| 517 | hosts by wrapping the @file{rsync} binary.") | ||
| 518 | (license license:expat))) | ||
| 519 | |||
| 520 | (define-public ruby-i18n | ||
| 521 | (package | ||
| 522 | (name "ruby-i18n") | ||
| 523 | (version "1.13.0") | ||
| 524 | (source (origin | ||
| 525 | (method url-fetch) | ||
| 526 | (uri (rubygems-uri "i18n" version)) | ||
| 527 | (sha256 | ||
| 528 | (base32 | ||
| 529 | "1yk33slipi3i1kydzrrchbi7cgisaxym6pgwlzx7ir8vjk6wl90x")))) | ||
| 530 | (build-system ruby-build-system) | ||
| 531 | (arguments | ||
| 532 | '(#:tests? #f)) ; no tests | ||
| 533 | (propagated-inputs `(("concurrent-ruby" ,ruby-concurrent))) | ||
| 534 | (synopsis "Internationalization library for Ruby") | ||
| 535 | (description "Ruby i18n is an internationalization and localization | ||
| 536 | solution for Ruby programs. It features translation and localization, | ||
| 537 | interpolation of values to translations, pluralization, customizable | ||
| 538 | transliteration to ASCII, flexible defaults, bulk lookup, lambdas as | ||
| 539 | translation data, custom key/scope separator, custom exception handlers, and | ||
| 540 | an extensible architecture with a swappable backend.") | ||
| 541 | (home-page "https://github.com/ruby-i18n/i18n") | ||
| 542 | (license license:expat))) | ||
| 543 | |||
| 544 | (define-public ruby-ice-nine | ||
| 545 | (package | ||
| 546 | (name "ruby-ice-nine") | ||
| 547 | (version "0.11.2") | ||
| 548 | (source | ||
| 549 | (origin | ||
| 550 | (method url-fetch) | ||
| 551 | (uri (rubygems-uri "ice_nine" version)) | ||
| 552 | (sha256 | ||
| 553 | (base32 "1nv35qg1rps9fsis28hz2cq2fx1i96795f91q4nmkm934xynll2x")))) | ||
| 554 | (build-system ruby-build-system) | ||
| 555 | (arguments | ||
| 556 | (list #:tests? #f)) ;Dependency on convoluted unpackaged ruby-devtools. | ||
| 557 | (synopsis "Deep Freeze Ruby Objects") | ||
| 558 | (description | ||
| 559 | "This package provides a function to deep freeze Ruby objects.") | ||
| 560 | (home-page "https://github.com/dkubb/ice_nine") | ||
| 561 | (license license:expat))) | ||
| 562 | |||
| 563 | (define-public ruby-io-console | ||
| 564 | (package | ||
| 565 | (name "ruby-io-console") | ||
| 566 | (version "0.6.0") | ||
| 567 | (source (origin | ||
| 568 | (method git-fetch) ;for tests | ||
| 569 | (uri (git-reference | ||
| 570 | (url "https://github.com/ruby/io-console/") | ||
| 571 | (commit (string-append "v" version)))) | ||
| 572 | (file-name (git-file-name name version)) | ||
| 573 | (sha256 | ||
| 574 | (base32 | ||
| 575 | "0gwxrp29b6awkid1sf85sbh529mnq6hb86m8c2443cm6nc4vr8qb")))) | ||
| 576 | (build-system ruby-build-system) | ||
| 577 | (arguments | ||
| 578 | (list #:phases #~(modify-phases %standard-phases | ||
| 579 | (add-after 'unpack 'delete-rakelib-files | ||
| 580 | (lambda _ | ||
| 581 | ;; These depend on git and other extraneous | ||
| 582 | ;; dependencies, and are loaded by rake. | ||
| 583 | (delete-file-recursively "rakelib")))))) | ||
| 584 | (native-inputs (list ruby-rake-compiler)) | ||
| 585 | (synopsis "Console capabilities library for IO instances") | ||
| 586 | (description "IO.console adds console capabilities to Ruby IO instances.") | ||
| 587 | (home-page "https://github.com/ruby/io-console") | ||
| 588 | (license license:bsd-2))) | ||
| 589 | |||
| 590 | (define-public ruby-irb | ||
| 591 | (package | ||
| 592 | (name "ruby-irb") | ||
| 593 | (version "1.6.3") | ||
| 594 | (source (origin | ||
| 595 | (method url-fetch) | ||
| 596 | (uri (rubygems-uri "irb" version)) | ||
| 597 | (sha256 | ||
| 598 | (base32 | ||
| 599 | "1h9s07n5v3z029v18924ws9vdkdc80n6llp9ccx77yg1krv2g0f3")))) | ||
| 600 | (build-system ruby-build-system) | ||
| 601 | ;; XXX: Disable the test suite, as it requires debug, which requires this | ||
| 602 | ;; package (dependency cycle). | ||
| 603 | (arguments (list #:tests? #f)) | ||
| 604 | (propagated-inputs (list ruby-reline)) | ||
| 605 | (synopsis "Ruby command-line tool for REPL (Read Eval Print Loop)") | ||
| 606 | (description "IRB is an interactive Ruby command-line tool for REPL (Read | ||
| 607 | Eval Print Loop).") | ||
| 608 | (home-page "https://github.com/ruby/irb") | ||
| 609 | (license license:bsd-2))) | ||
| 610 | |||
| 611 | (define-public ruby-irb-1.1.1 | ||
| 612 | (package | ||
| 613 | (inherit ruby-irb) | ||
| 614 | (version "1.1.1") | ||
| 615 | (source (origin | ||
| 616 | (method url-fetch) | ||
| 617 | (uri (rubygems-uri "irb" version)) | ||
| 618 | (sha256 | ||
| 619 | (base32 | ||
| 620 | "0h605w798s2bg9wg681ynvvzgdz1yy69gh387bl0khw9ll7wkn8v")))))) | ||
| 621 | |||
| 622 | (define-public ruby-iruby | ||
| 623 | (package | ||
| 624 | (name "ruby-iruby") | ||
| 625 | (version "0.3") | ||
| 626 | (source | ||
| 627 | (origin | ||
| 628 | (method url-fetch) | ||
| 629 | (uri (rubygems-uri "iruby" version)) | ||
| 630 | (sha256 | ||
| 631 | (base32 | ||
| 632 | "1wdf2c0x8y6cya0n3y0p3p7b1sxkb2fdavdn2k58rf4rs37s7rzn")))) | ||
| 633 | (build-system ruby-build-system) | ||
| 634 | (arguments | ||
| 635 | ;; TODO: Tests currently fail. | ||
| 636 | ;; | ||
| 637 | ;; Finished in 1.764405s, 1.1335 runs/s, 5.1009 assertions/s. | ||
| 638 | ;; | ||
| 639 | ;; 1) Failure: | ||
| 640 | ;; IntegrationTest#test_interaction [/tmp/guix-build-ruby-iruby-0.3.drv-0/gem/test/integration_test.rb:25]: | ||
| 641 | ;; In [ expected | ||
| 642 | ;; | ||
| 643 | ;; 2 runs, 9 assertions, 1 failures, 0 errors, 0 skips | ||
| 644 | '(#:tests? #f | ||
| 645 | #:phases | ||
| 646 | (modify-phases %standard-phases | ||
| 647 | (add-after 'unpack 'patch-ipython | ||
| 648 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 649 | (substitute* "lib/iruby/command.rb" | ||
| 650 | (("version = `") | ||
| 651 | (string-append | ||
| 652 | "version = `" | ||
| 653 | (assoc-ref inputs "python-ipython") | ||
| 654 | "/bin/")) | ||
| 655 | (("Kernel\\.exec\\('") | ||
| 656 | (string-append | ||
| 657 | "Kernel.exec('" | ||
| 658 | (assoc-ref inputs "python-ipython") | ||
| 659 | "/bin/")))))))) | ||
| 660 | (inputs | ||
| 661 | (list python-ipython)) | ||
| 662 | (propagated-inputs | ||
| 663 | (list ruby-bond | ||
| 664 | ruby-data_uri | ||
| 665 | ruby-mimemagic | ||
| 666 | ruby-multi-json | ||
| 667 | ruby-cztop | ||
| 668 | ;; Optional inputs | ||
| 669 | ruby-pry)) | ||
| 670 | (synopsis "Ruby kernel for Jupyter/IPython") | ||
| 671 | (description | ||
| 672 | "This package provides a Ruby kernel for Jupyter/IPython frontends (e.g. | ||
| 673 | notebook).") | ||
| 674 | (home-page "https://github.com/SciRuby/iruby") | ||
| 675 | (license license:expat))) | ||
| 676 | |||
| 677 | ;; RSpec is the dominant testing library for Ruby projects. Even RSpec's | ||
| 678 | ;; dependencies use RSpec for their test suites! To avoid these circular | ||
| 679 | ;; dependencies, we disable tests for all of the RSpec-related packages. | ||
| 680 | (define-public ruby-rspec-support | ||
| 681 | (package | ||
| 682 | (name "ruby-rspec-support") | ||
| 683 | (version "3.13.2") | ||
| 684 | (source (origin | ||
| 685 | (method url-fetch) | ||
| 686 | (uri (rubygems-uri "rspec-support" version)) | ||
| 687 | (sha256 | ||
| 688 | (base32 | ||
| 689 | "1v6v6xvxcpkrrsrv7v1xgf7sl0d71vcfz1cnrjflpf6r7x3a58yf")))) | ||
| 690 | (build-system ruby-build-system) | ||
| 691 | (arguments | ||
| 692 | '(#:tests? #f)) ; avoid dependency cycles | ||
| 693 | (synopsis "RSpec support library") | ||
| 694 | (description "Support utilities for RSpec gems.") | ||
| 695 | (home-page "https://github.com/rspec/rspec-support") | ||
| 696 | (license license:expat))) | ||
| 697 | |||
| 698 | (define-public ruby-rspec-core | ||
| 699 | (package | ||
| 700 | (name "ruby-rspec-core") | ||
| 701 | (version "3.13.2") | ||
| 702 | (source (origin | ||
| 703 | (method url-fetch) | ||
| 704 | (uri (rubygems-uri "rspec-core" version)) | ||
| 705 | (sha256 | ||
| 706 | (base32 | ||
| 707 | "001kazj244cb6fbkmh7ap74csbr78717qaskqzqpir1q8xpdmywl")))) | ||
| 708 | (build-system ruby-build-system) | ||
| 709 | (arguments | ||
| 710 | '(#:tests? #f)) ; avoid dependency cycles | ||
| 711 | (propagated-inputs | ||
| 712 | (list ruby-rspec-support)) | ||
| 713 | (synopsis "RSpec core library") | ||
| 714 | (description "Rspec-core provides the RSpec test runner and example | ||
| 715 | groups.") | ||
| 716 | (home-page "https://github.com/rspec/rspec-core") | ||
| 717 | (license license:expat))) | ||
| 718 | |||
| 719 | (define-public ruby-rspec-core-2 | ||
| 720 | (package (inherit ruby-rspec-core) | ||
| 721 | (version "2.14.8") | ||
| 722 | (source (origin | ||
| 723 | (method url-fetch) | ||
| 724 | (uri (rubygems-uri "rspec-core" version)) | ||
| 725 | (sha256 | ||
| 726 | (base32 | ||
| 727 | "0psjy5kdlz3ph39br0m01w65i1ikagnqlg39f8p65jh5q7dz8hwc")))) | ||
| 728 | (arguments | ||
| 729 | (cons* | ||
| 730 | #:phases | ||
| 731 | #~(modify-phases %standard-phases | ||
| 732 | (add-after 'unpack 'patch | ||
| 733 | (lambda _ | ||
| 734 | (substitute* "lib/rspec/core/ruby_project.rb" | ||
| 735 | (("File\\.exists\\?") "File.exist?"))))) | ||
| 736 | (package-arguments ruby-rspec-core))) | ||
| 737 | (propagated-inputs `()))) | ||
| 738 | |||
| 739 | (define-public ruby-date | ||
| 740 | (package | ||
| 741 | (name "ruby-date") | ||
| 742 | (version "3.3.3") | ||
| 743 | (source (origin | ||
| 744 | (method git-fetch) | ||
| 745 | (uri (git-reference | ||
| 746 | (url "https://github.com/ruby/date") | ||
| 747 | (commit (string-append "v" version)))) | ||
| 748 | (file-name (git-file-name name version)) | ||
| 749 | (sha256 | ||
| 750 | (base32 | ||
| 751 | "1jiqjnaap1jk1r8z37iicnzqha1rhc713qmcir17f4vnz8ac8v75")))) | ||
| 752 | (build-system ruby-build-system) | ||
| 753 | (arguments (list #:test-target "default")) | ||
| 754 | (native-inputs (list ruby-rake-compiler)) | ||
| 755 | (synopsis "Ruby @code{Object} subclass with date comparison capability") | ||
| 756 | (description "This package provides a subclass of @code{Object} that | ||
| 757 | includes the @code{Comparable} module for handling dates.") | ||
| 758 | (home-page "https://github.com/ruby/date") | ||
| 759 | (license license:bsd-2))) | ||
| 760 | |||
| 761 | (define-public ruby-time | ||
| 762 | (package | ||
| 763 | (name "ruby-time") | ||
| 764 | (version "0.3.0") | ||
| 765 | (source (origin | ||
| 766 | (method git-fetch) ; for tests | ||
| 767 | (uri (git-reference | ||
| 768 | (url "https://github.com/ruby/time") | ||
| 769 | (commit (string-append "v" version)))) | ||
| 770 | (file-name (git-file-name name version)) | ||
| 771 | (sha256 | ||
| 772 | (base32 | ||
| 773 | "0jd6df2lxd60wcxyaf37j8v3nnfn952d5xhg6aap9zlcdmkk4g2n")))) | ||
| 774 | (build-system ruby-build-system) | ||
| 775 | (propagated-inputs (list ruby-date)) | ||
| 776 | (native-inputs (list ruby-test-unit-ruby-core)) | ||
| 777 | (synopsis | ||
| 778 | "Extends the Time class with methods for parsing and conversion") | ||
| 779 | (description | ||
| 780 | "When this gem is @code{require}d, it extends the Time class with with | ||
| 781 | additional methods for parsing and converting Times.") | ||
| 782 | (home-page "https://github.com/ruby/time") | ||
| 783 | (license license:bsd-2))) | ||
| 784 | |||
| 785 | (define-public ruby-diff-lcs | ||
| 786 | (package | ||
| 787 | (name "ruby-diff-lcs") | ||
| 788 | (version "1.3") | ||
| 789 | (source (origin | ||
| 790 | (method url-fetch) | ||
| 791 | (uri (rubygems-uri "diff-lcs" version)) | ||
| 792 | (sha256 | ||
| 793 | (base32 | ||
| 794 | "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza")))) | ||
| 795 | (build-system ruby-build-system) | ||
| 796 | (arguments | ||
| 797 | '(#:tests? #f)) ; avoid dependency cycles | ||
| 798 | (synopsis "Compute the difference between two Enumerable sequences") | ||
| 799 | (description "Diff::LCS computes the difference between two Enumerable | ||
| 800 | sequences using the McIlroy-Hunt longest common subsequence (LCS) algorithm. | ||
| 801 | It includes utilities to create a simple HTML diff output format and a | ||
| 802 | standard diff-like tool.") | ||
| 803 | (home-page "https://github.com/halostatue/diff-lcs") | ||
| 804 | (license license:expat))) | ||
| 805 | |||
| 806 | (define-public ruby-rspec-expectations | ||
| 807 | (package | ||
| 808 | (name "ruby-rspec-expectations") | ||
| 809 | (version "3.13.3") | ||
| 810 | (source (origin | ||
| 811 | (method url-fetch) | ||
| 812 | (uri (rubygems-uri "rspec-expectations" version)) | ||
| 813 | (sha256 | ||
| 814 | (base32 | ||
| 815 | "0n3cyrhsa75x5wwvskrrqk56jbjgdi2q1zx0irllf0chkgsmlsqf")))) | ||
| 816 | (build-system ruby-build-system) | ||
| 817 | (arguments | ||
| 818 | '(#:tests? #f)) ; avoid dependency cycles | ||
| 819 | (propagated-inputs | ||
| 820 | (list ruby-diff-lcs ruby-rspec-support)) | ||
| 821 | (synopsis "RSpec expectations library") | ||
| 822 | (description "Rspec-expectations provides a simple API to express expected | ||
| 823 | outcomes of a code example.") | ||
| 824 | (home-page "https://github.com/rspec/rspec-expectations") | ||
| 825 | (license license:expat))) | ||
| 826 | |||
| 827 | (define-public ruby-rspec-expectations-2 | ||
| 828 | (package (inherit ruby-rspec-expectations) | ||
| 829 | (version "2.14.5") | ||
| 830 | (source (origin | ||
| 831 | (method url-fetch) | ||
| 832 | (uri (rubygems-uri "rspec-expectations" version)) | ||
| 833 | (sha256 | ||
| 834 | (base32 | ||
| 835 | "1ni8kw8kjv76jvwjzi4jba00k3qzj9f8wd94vm6inz0jz3gwjqf9")))) | ||
| 836 | (propagated-inputs | ||
| 837 | (list ruby-diff-lcs)))) | ||
| 838 | |||
| 839 | (define-public ruby-sorcerer | ||
| 840 | (package | ||
| 841 | (name "ruby-sorcerer") | ||
| 842 | (version "2.0.1") | ||
| 843 | (source | ||
| 844 | (origin | ||
| 845 | (method url-fetch) | ||
| 846 | (uri (rubygems-uri "sorcerer" version)) | ||
| 847 | (sha256 | ||
| 848 | (base32 | ||
| 849 | "0d32ha9pp9slpmsm027pkdpbr9vc5jn2m8rl6hwwx6a87m8cr58h")))) | ||
| 850 | (build-system ruby-build-system) | ||
| 851 | (synopsis "Ripper-style abstract syntax tree to Ruby source generator") | ||
| 852 | (description "Sorcerer generates Ruby code from a Ripper-like abstract | ||
| 853 | syntax tree (i.e. S-Expressions). Sorcerer is targeted mainly at small | ||
| 854 | snippets of Ruby code, expressible in a single line. Longer examples may be | ||
| 855 | re-sourced, but they will be rendered in a single-line format.") | ||
| 856 | (home-page "https://github.com/rspec-given/sorcerer") | ||
| 857 | (license license:expat))) | ||
| 858 | |||
| 859 | (define-public ruby-sorted-set | ||
| 860 | (package | ||
| 861 | (name "ruby-sorted-set") | ||
| 862 | (version "1.0.3") | ||
| 863 | (source (origin | ||
| 864 | (method url-fetch) | ||
| 865 | (uri (rubygems-uri "sorted_set" version)) | ||
| 866 | (sha256 | ||
| 867 | (base32 | ||
| 868 | "0brpwv68d7m9qbf5js4bg8bmg4v7h4ghz312jv9cnnccdvp8nasg")))) | ||
| 869 | (build-system ruby-build-system) | ||
| 870 | (propagated-inputs | ||
| 871 | (list ruby-rbtree ruby-set)) | ||
| 872 | (synopsis | ||
| 873 | "Ruby Set variant whose elements are sorted in ascending order") | ||
| 874 | (description | ||
| 875 | "This package implements a variant of Set whose elements are sorted in | ||
| 876 | ascending order") | ||
| 877 | (home-page "https://github.com/knu/sorted_set") | ||
| 878 | (license license:bsd-2))) | ||
| 879 | |||
| 880 | (define-public ruby-given-core | ||
| 881 | (package | ||
| 882 | (name "ruby-given-core") | ||
| 883 | (version "3.8.2") | ||
| 884 | (source | ||
| 885 | (origin | ||
| 886 | (method url-fetch) | ||
| 887 | (uri (rubygems-uri "given_core" version)) | ||
| 888 | (sha256 | ||
| 889 | (base32 | ||
| 890 | "0w1pyhgb2am7c267s8v06dpd9qhmsk2x4hfr2aq8l8lh49ma227s")))) | ||
| 891 | (build-system ruby-build-system) | ||
| 892 | (arguments '(#:tests? #f)) ;no test suite for the core package | ||
| 893 | (propagated-inputs | ||
| 894 | (list ruby-sorcerer)) | ||
| 895 | (synopsis "Core abstractions used by rspec-given and minitest-given") | ||
| 896 | (description "Given_core is the basic functionality behind rspec-given and | ||
| 897 | minitest-given, extensions that allow the use of Given/When/Then terminology | ||
| 898 | when defining specifications.") | ||
| 899 | (home-page "https://github.com/rspec-given/rspec-given") | ||
| 900 | (license license:expat))) | ||
| 901 | |||
| 902 | (define-public ruby-rspec-given | ||
| 903 | (package | ||
| 904 | (name "ruby-rspec-given") | ||
| 905 | (version "3.8.2") | ||
| 906 | (source | ||
| 907 | (origin | ||
| 908 | (method url-fetch) | ||
| 909 | (uri (rubygems-uri "rspec-given" version)) | ||
| 910 | (sha256 | ||
| 911 | (base32 | ||
| 912 | "0xzzxjjzwrsp84p12sd6ab3jbm9kh7sbnqpxgc9mlfq3s3ll0fdj")))) | ||
| 913 | (build-system ruby-build-system) | ||
| 914 | (arguments | ||
| 915 | `(#:test-target "rs" | ||
| 916 | #:phases | ||
| 917 | (modify-phases %standard-phases | ||
| 918 | (add-after 'unpack 'fix-rakefile | ||
| 919 | (lambda _ | ||
| 920 | (substitute* '("Rakefile" "rakelib/gemspec.rake") | ||
| 921 | (("require '\\./lib/given/.*") "") | ||
| 922 | (("Given::VERSION") (format #f "~s" ,version)) | ||
| 923 | ;; Fix the error: "cannot load such file -- example_helper" | ||
| 924 | (("sh \"rspec") | ||
| 925 | "sh \"rspec -Ilib:examples")))) | ||
| 926 | (add-after 'extract-gemspec 'delete-failing-tests | ||
| 927 | ;; See: https://github.com/jimweirich/rspec-given/issues/57. | ||
| 928 | (lambda _ | ||
| 929 | (substitute* ".gemspec" | ||
| 930 | (("\"spec/lib/given/natural_assertion_spec.rb\".freeze, ") | ||
| 931 | "") | ||
| 932 | (("\"examples/integration/failing_messages_spec.rb\".freeze, ") | ||
| 933 | "")) | ||
| 934 | (delete-file "spec/lib/given/natural_assertion_spec.rb") | ||
| 935 | (delete-file "examples/integration/failing_messages_spec.rb")))))) | ||
| 936 | (native-inputs | ||
| 937 | (list ruby-rspec ruby-minitest)) | ||
| 938 | (propagated-inputs | ||
| 939 | (list ruby-given-core ruby-rspec)) | ||
| 940 | (synopsis "Given/When/Then for RSpec and Minitest") | ||
| 941 | (description "Given is an RSpec extension that allows the use of | ||
| 942 | Given/When/Then terminology when defining specifications, in a way similar to | ||
| 943 | the Cucumber Gherkin language.") | ||
| 944 | (home-page "https://github.com/rspec-given/rspec-given") | ||
| 945 | (license license:expat))) | ||
| 946 | |||
| 947 | (define-public ruby-rspec-its | ||
| 948 | (package | ||
| 949 | (name "ruby-rspec-its") | ||
| 950 | (version "1.3.0") | ||
| 951 | (source | ||
| 952 | (origin | ||
| 953 | (method git-fetch) | ||
| 954 | (uri (git-reference | ||
| 955 | (url "https://github.com/rspec/rspec-its") | ||
| 956 | (commit (string-append "v" version)))) | ||
| 957 | (file-name (git-file-name name version)) | ||
| 958 | (sha256 | ||
| 959 | (base32 | ||
| 960 | "02mlsc9d4d1cjj5vahi8v3q8hyn9fyiv8nnlidhgfh186qp20g1p")))) | ||
| 961 | (build-system ruby-build-system) | ||
| 962 | (arguments | ||
| 963 | `(#:test-target "spec" | ||
| 964 | #:phases | ||
| 965 | (modify-phases %standard-phases | ||
| 966 | (add-after 'unpack 'dont-install-gems-from-gemfile | ||
| 967 | (lambda _ | ||
| 968 | (substitute* "Gemfile" | ||
| 969 | (("rspec rspec-core rspec-expectations rspec-mocks rspec-support") | ||
| 970 | "")))) | ||
| 971 | (add-before 'build 'loosen-ffi-requirement | ||
| 972 | (lambda _ | ||
| 973 | ;; Accept any version of ruby-ffi. | ||
| 974 | (substitute* "Gemfile" | ||
| 975 | ((" gem 'ffi', '~> 1\\.9\\.25'") | ||
| 976 | " gem 'ffi'")))) | ||
| 977 | (add-before 'build 'remove-unnecessary-dependency-versions-from-gemfile | ||
| 978 | (lambda _ | ||
| 979 | (substitute* "rspec-its.gemspec" | ||
| 980 | (("rake.*") "rake'\n") | ||
| 981 | (("spec.add_development_dependency 'cucumber'.*") | ||
| 982 | "spec.add_development_dependency 'cucumber'\n") | ||
| 983 | (("bundler.*") "bundler'\n") | ||
| 984 | (("\"aruba.*") "'aruba'\n"))))))) | ||
| 985 | (propagated-inputs | ||
| 986 | (list ruby-rspec-core ruby-rspec-expectations)) | ||
| 987 | (native-inputs | ||
| 988 | (list bundler ruby-cucumber ruby-ffi ruby-aruba)) | ||
| 989 | (synopsis "RSpec extension that provides the @code{its} method") | ||
| 990 | (description | ||
| 991 | "RSpec::Its provides the its method as a short-hand to specify the expected | ||
| 992 | value of an attribute. For example, one can use @code{its(:size)\\{should | ||
| 993 | eq(1)\\}}.") | ||
| 994 | (home-page "https://github.com/rspec/rspec-its") | ||
| 995 | (license license:expat))) | ||
| 996 | |||
| 997 | ;;; This variant is used to break a cycle with ruby-protobuf. | ||
| 998 | (define-public ruby-rspec-its-minimal | ||
| 999 | (hidden-package | ||
| 1000 | (package | ||
| 1001 | (inherit ruby-rspec-its) | ||
| 1002 | (arguments | ||
| 1003 | (substitute-keyword-arguments (package-arguments ruby-rspec-its) | ||
| 1004 | ((#:tests? _ #f) #f))) | ||
| 1005 | (native-inputs '())))) | ||
| 1006 | |||
| 1007 | (define-public ruby-rspec-mocks | ||
| 1008 | (package | ||
| 1009 | (name "ruby-rspec-mocks") | ||
| 1010 | (version "3.13.2") | ||
| 1011 | (source (origin | ||
| 1012 | (method url-fetch) | ||
| 1013 | (uri (rubygems-uri "rspec-mocks" version)) | ||
| 1014 | (sha256 | ||
| 1015 | (base32 | ||
| 1016 | "1vxxkb2sf2b36d8ca2nq84kjf85fz4x7wqcvb8r6a5hfxxfk69r3")))) | ||
| 1017 | (build-system ruby-build-system) | ||
| 1018 | (arguments | ||
| 1019 | '(#:tests? #f)) ; avoid dependency cycles | ||
| 1020 | (propagated-inputs | ||
| 1021 | (list ruby-diff-lcs ruby-rspec-support)) | ||
| 1022 | (synopsis "RSpec stubbing and mocking library") | ||
| 1023 | (description "Rspec-mocks provides RSpec's \"test double\" framework, with | ||
| 1024 | support for stubbing and mocking.") | ||
| 1025 | (home-page "https://github.com/rspec/rspec-mocks") | ||
| 1026 | (license license:expat))) | ||
| 1027 | |||
| 1028 | (define-public ruby-rspec-mocks-2 | ||
| 1029 | (package (inherit ruby-rspec-mocks) | ||
| 1030 | (version "2.14.6") | ||
| 1031 | (source (origin | ||
| 1032 | (method url-fetch) | ||
| 1033 | (uri (rubygems-uri "rspec-mocks" version)) | ||
| 1034 | (sha256 | ||
| 1035 | (base32 | ||
| 1036 | "1fwsmijd6w6cmqyh4ky2nq89jrpzh56hzmndx9wgkmdgfhfakv30")))) | ||
| 1037 | (propagated-inputs | ||
| 1038 | (list ruby-diff-lcs)))) | ||
| 1039 | |||
| 1040 | (define-public ruby-rspec-block-is-expected | ||
| 1041 | (package | ||
| 1042 | (name "ruby-rspec-block-is-expected") | ||
| 1043 | (version "1.0.5") | ||
| 1044 | (source (origin | ||
| 1045 | (method git-fetch) ;for tests | ||
| 1046 | (uri (git-reference | ||
| 1047 | (url "https://github.com/pboling/rspec-block_is_expected") | ||
| 1048 | (commit (string-append "v" version)))) | ||
| 1049 | (file-name (git-file-name name version)) | ||
| 1050 | (sha256 | ||
| 1051 | (base32 | ||
| 1052 | "1zi5z12lkw3fiwgr7g61845wj73asr2vzw4zsjv45klnnfspwass")))) | ||
| 1053 | (build-system ruby-build-system) | ||
| 1054 | (arguments | ||
| 1055 | (list #:phases #~(modify-phases %standard-phases | ||
| 1056 | (add-after 'unpack 'relax-requirements | ||
| 1057 | (lambda _ | ||
| 1058 | (substitute* "Rakefile" | ||
| 1059 | (("require 'rubocop/rake_task'") "") | ||
| 1060 | (("RuboCop::RakeTask.new") "")) | ||
| 1061 | ;; Contains extraneous requirements not actually | ||
| 1062 | ;; needed for the test suite. | ||
| 1063 | (delete-file "Gemfile"))) | ||
| 1064 | (add-before 'build 'drop-signing-key-requirement | ||
| 1065 | (lambda _ | ||
| 1066 | (substitute* "rspec-block_is_expected.gemspec" | ||
| 1067 | (("spec.signing_key =.*") | ||
| 1068 | "spec.signing_key = nil"))))))) | ||
| 1069 | (native-inputs (list ruby-rspec-pending-for ruby-rspec-expectations)) | ||
| 1070 | (propagated-inputs (list ruby-rspec-core)) | ||
| 1071 | (synopsis "Simplify testing of blocks in RSpec") | ||
| 1072 | (description "This RSpec plugin allows you to use @code{block_is_expected} | ||
| 1073 | similarly to how you would use @code{is_expected} if a block was wrapping the | ||
| 1074 | subject.") | ||
| 1075 | (home-page "https://github.com/pboling/rspec-block_is_expected") | ||
| 1076 | (license license:expat))) | ||
| 1077 | |||
| 1078 | (define-public ruby-rspec-pending-for | ||
| 1079 | (package | ||
| 1080 | (name "ruby-rspec-pending-for") | ||
| 1081 | (version "0.1.16") | ||
| 1082 | (source (origin | ||
| 1083 | (method git-fetch) ;for tests | ||
| 1084 | (uri (git-reference | ||
| 1085 | (url "https://github.com/pboling/rspec-pending_for") | ||
| 1086 | (commit (string-append "v" version)))) | ||
| 1087 | (file-name (git-file-name name version)) | ||
| 1088 | (sha256 | ||
| 1089 | (base32 | ||
| 1090 | "107l560vm0kx25w5iy5rsk9ly8dxzr81b31284j514f4hkd0qv3m")))) | ||
| 1091 | (build-system ruby-build-system) | ||
| 1092 | (native-inputs (list ruby-rspec ruby-simplecov)) | ||
| 1093 | (propagated-inputs (list ruby-rspec-core ruby-ruby-engine | ||
| 1094 | ruby-ruby-version)) | ||
| 1095 | (synopsis "Skip RSpec tests for specific Ruby engines or versions") | ||
| 1096 | (description "This RSpec plugin makes it easy to mark test cases as | ||
| 1097 | pending or skipped for a specific Ruby engine (e.g. MRI or JRuby) or version | ||
| 1098 | combinations.") | ||
| 1099 | (home-page "https://github.com/pboling/rspec-pending_for") | ||
| 1100 | (license license:expat))) | ||
| 1101 | |||
| 1102 | (define-public ruby-rspec-rerun | ||
| 1103 | (package | ||
| 1104 | (name "ruby-rspec-rerun") | ||
| 1105 | (version "1.1.0") | ||
| 1106 | (source | ||
| 1107 | (origin | ||
| 1108 | (method url-fetch) | ||
| 1109 | (uri (rubygems-uri "rspec-rerun" version)) | ||
| 1110 | (sha256 | ||
| 1111 | (base32 | ||
| 1112 | "1gy7znkcaqhpccfnk2nvaqbsvgxy3q57cmjwkl9fi1zabaq5lbkj")))) | ||
| 1113 | (build-system ruby-build-system) | ||
| 1114 | (arguments | ||
| 1115 | '(;; No included tests | ||
| 1116 | #:tests? #f)) | ||
| 1117 | (propagated-inputs (list ruby-rspec)) | ||
| 1118 | (synopsis "Track failed RSpec tests to re-run them") | ||
| 1119 | (description | ||
| 1120 | "This package provides an automated way to track, and then re-run failed | ||
| 1121 | RSpec tests.") | ||
| 1122 | (home-page "https://github.com/dblock/rspec-rerun") | ||
| 1123 | (license license:expat))) | ||
| 1124 | |||
| 1125 | (define-public ruby-rspec-stubbed-env | ||
| 1126 | ;; There is no release nor tag (see: | ||
| 1127 | ;; https://github.com/pboling/rspec-stubbed_env/issues/7). | ||
| 1128 | (let ((revision "0") | ||
| 1129 | (commit "9d767dec77a6d130f6ad83c48a00a5c81b14b9fa")) | ||
| 1130 | (package | ||
| 1131 | (name "ruby-rspec-stubbed-env") | ||
| 1132 | (version (git-version "1.0.0" revision commit)) | ||
| 1133 | (source (origin | ||
| 1134 | (method git-fetch) | ||
| 1135 | (uri (git-reference | ||
| 1136 | (url "https://github.com/pboling/rspec-stubbed_env") | ||
| 1137 | (commit commit))) | ||
| 1138 | (file-name (git-file-name name version)) | ||
| 1139 | (sha256 | ||
| 1140 | (base32 | ||
| 1141 | "1dy4m04h613dp0s59rknjd6h4lqs1h17mffc5kd8kh046mk8nr1p")))) | ||
| 1142 | (build-system ruby-build-system) | ||
| 1143 | (arguments | ||
| 1144 | (list #:test-target "spec" | ||
| 1145 | #:phases #~(modify-phases %standard-phases | ||
| 1146 | (add-after 'unpack 'streamline-requirements | ||
| 1147 | (lambda _ | ||
| 1148 | ;; Remove extraneous development dependencies. | ||
| 1149 | (substitute* "rspec-stubbed_env.gemspec" | ||
| 1150 | ((".*bundler.*") "") | ||
| 1151 | ((".*rubocop.*") ""))))))) | ||
| 1152 | (native-inputs (list ruby-simplecov)) | ||
| 1153 | (propagated-inputs (list ruby-rspec)) | ||
| 1154 | (synopsis "RSpec plugin to stub environment variables") | ||
| 1155 | (description | ||
| 1156 | "This RSpec plugin can be used to stub environment variables in a scoped | ||
| 1157 | context for testing.") | ||
| 1158 | (home-page "https://github.com/pboling/rspec-stubbed_env") | ||
| 1159 | (license license:expat)))) | ||
| 1160 | |||
| 1161 | (define-public ruby-rspec-wait | ||
| 1162 | (package | ||
| 1163 | (name "ruby-rspec-wait") | ||
| 1164 | (version "0.0.9") | ||
| 1165 | (source | ||
| 1166 | (origin | ||
| 1167 | (method url-fetch) | ||
| 1168 | (uri (rubygems-uri "rspec-wait" version)) | ||
| 1169 | (sha256 | ||
| 1170 | (base32 | ||
| 1171 | "0gvj1bp5ccx001dyvcgk2j49s5sl6vs9fdaqqb08z3bd1554hsww")))) | ||
| 1172 | (build-system ruby-build-system) | ||
| 1173 | (arguments | ||
| 1174 | '(#:phases | ||
| 1175 | (modify-phases %standard-phases | ||
| 1176 | (replace 'check | ||
| 1177 | (lambda _ | ||
| 1178 | (invoke "rake" "spec")))))) | ||
| 1179 | (native-inputs | ||
| 1180 | (list bundler)) | ||
| 1181 | (propagated-inputs | ||
| 1182 | (list ruby-rspec)) | ||
| 1183 | (home-page "https://github.com/laserlemon/rspec-wait") | ||
| 1184 | (synopsis "Wait for conditions in RSpec") | ||
| 1185 | (description | ||
| 1186 | "RSpec::Wait strives to make it easier to test asynchronous or slow | ||
| 1187 | interactions.") | ||
| 1188 | (license license:expat))) | ||
| 1189 | |||
| 1190 | (define-public ruby-rspec | ||
| 1191 | (package | ||
| 1192 | (name "ruby-rspec") | ||
| 1193 | (version "3.13.0") | ||
| 1194 | (source (origin | ||
| 1195 | (method url-fetch) | ||
| 1196 | (uri (rubygems-uri "rspec" version)) | ||
| 1197 | (sha256 | ||
| 1198 | (base32 | ||
| 1199 | "14xrp8vq6i9zx37vh0yp4h9m0anx9paw200l1r5ad9fmq559346l")))) | ||
| 1200 | (build-system ruby-build-system) | ||
| 1201 | (arguments | ||
| 1202 | '(#:tests? #f)) ; avoid dependency cycles | ||
| 1203 | (propagated-inputs | ||
| 1204 | (list ruby-rspec-core ruby-rspec-expectations ruby-rspec-mocks)) | ||
| 1205 | (synopsis "Behavior-driven development framework for Ruby") | ||
| 1206 | (description "RSpec is a behavior-driven development (BDD) framework for | ||
| 1207 | Ruby. This meta-package includes the RSpec test runner, along with the | ||
| 1208 | expectations and mocks frameworks.") | ||
| 1209 | (home-page "https://rspec.info/") | ||
| 1210 | (license license:expat))) | ||
| 1211 | |||
| 1212 | (define-public ruby-rspec-2 | ||
| 1213 | (package (inherit ruby-rspec) | ||
| 1214 | (version "2.14.1") | ||
| 1215 | (source (origin | ||
| 1216 | (method url-fetch) | ||
| 1217 | (uri (rubygems-uri "rspec" version)) | ||
| 1218 | (sha256 | ||
| 1219 | (base32 | ||
| 1220 | "134y4wzk1prninb5a0bhxgm30kqfzl8dg06af4js5ylnhv2wd7sg")))) | ||
| 1221 | (propagated-inputs | ||
| 1222 | (list ruby-rspec-core-2 ruby-rspec-mocks-2 ruby-rspec-expectations-2)))) | ||
| 1223 | |||
| 1224 | (define-public ruby-rspec-debug | ||
| 1225 | (package | ||
| 1226 | (name "ruby-rspec-debug") | ||
| 1227 | (version "0.2.0") | ||
| 1228 | (source (origin | ||
| 1229 | (method git-fetch) ;for tests | ||
| 1230 | (uri (git-reference | ||
| 1231 | (url "https://github.com/ko1/rspec-debug") | ||
| 1232 | (commit (string-append "v" version)))) | ||
| 1233 | (file-name (git-file-name name version)) | ||
| 1234 | (sha256 | ||
| 1235 | (base32 | ||
| 1236 | "125p1zxjznkk765nyqvkksw8x1nbm7xk4sjc1wza2fyp5hvyiddn")))) | ||
| 1237 | (build-system ruby-build-system) | ||
| 1238 | (arguments | ||
| 1239 | (list #:test-target "spec" | ||
| 1240 | #:phases #~(modify-phases %standard-phases | ||
| 1241 | (add-after 'extract-gemspec 'relax-dependencies | ||
| 1242 | (lambda _ | ||
| 1243 | (substitute* "Gemfile" | ||
| 1244 | (("~>") ">="))))))) | ||
| 1245 | (native-inputs (list ruby-rspec)) | ||
| 1246 | (propagated-inputs (list ruby-debug)) | ||
| 1247 | (synopsis "Invoke Ruby debugger when spec fails") | ||
| 1248 | (description "This package can be used to have the execution stopped for | ||
| 1249 | inspection in the Ruby debugger upon encountering a failure. To use it, set | ||
| 1250 | the @env{RSPEC_DEBUG} environment variable to @samp{true} then invoke the | ||
| 1251 | @command{rspec} command as usual.") | ||
| 1252 | (home-page "https://github.com/ko1/rspec-debug") | ||
| 1253 | (license license:expat))) | ||
| 1254 | |||
| 1255 | (define-public ruby-specinfra | ||
| 1256 | (package | ||
| 1257 | (name "ruby-specinfra") | ||
| 1258 | (version "2.88.1") | ||
| 1259 | (source (origin | ||
| 1260 | (method url-fetch) | ||
| 1261 | (uri (rubygems-uri "specinfra" version)) | ||
| 1262 | (sha256 | ||
| 1263 | (base32 | ||
| 1264 | "07lap3sknncffpq9jw1x1mn9c5xxd058wxs5vnyz1y0lawdjfnsf")))) | ||
| 1265 | (build-system ruby-build-system) | ||
| 1266 | (propagated-inputs (list ruby-net-scp ruby-net-ssh ruby-net-telnet | ||
| 1267 | ruby-sfl)) | ||
| 1268 | (arguments | ||
| 1269 | (list | ||
| 1270 | #:test-target "spec" | ||
| 1271 | #:phases | ||
| 1272 | #~(modify-phases %standard-phases | ||
| 1273 | (add-after 'extract-gemspec 'relax-dependencies | ||
| 1274 | (lambda _ | ||
| 1275 | (substitute* "specinfra.gemspec" | ||
| 1276 | (("%q<net-telnet>.freeze, \\[.*\\]") | ||
| 1277 | "%q<net-telnet>.freeze, [\">= 0\"]"))))))) | ||
| 1278 | (synopsis "Common layer for serverspec and itamae") | ||
| 1279 | (description "This Gem provides a common layer for serverspec and | ||
| 1280 | itamae.") | ||
| 1281 | (home-page "https://github.com/mizzy/specinfra") | ||
| 1282 | (license license:expat))) | ||
| 1283 | |||
| 1284 | (define-public ruby-serverspec | ||
| 1285 | (package | ||
| 1286 | (name "ruby-serverspec") | ||
| 1287 | (version "2.42.3") | ||
| 1288 | (source (origin | ||
| 1289 | (method url-fetch) | ||
| 1290 | (uri (rubygems-uri "serverspec" version)) | ||
| 1291 | (sha256 | ||
| 1292 | (base32 | ||
| 1293 | "0kfaqrqynly8n3dy5qrbjvx4lx6mk9a5vynwb7xwqj8bixm0mab4")))) | ||
| 1294 | (build-system ruby-build-system) | ||
| 1295 | (propagated-inputs (list ruby-multi-json ruby-rspec ruby-rspec-its | ||
| 1296 | ruby-specinfra)) | ||
| 1297 | (arguments | ||
| 1298 | (list #:test-target "spec")) | ||
| 1299 | (synopsis | ||
| 1300 | "RSpec tests for servers configured by Puppet, Chef, Itamae, etc") | ||
| 1301 | (description | ||
| 1302 | "With Serverspec, you can write RSpec tests for checking your servers are | ||
| 1303 | configured correctly. | ||
| 1304 | |||
| 1305 | Serverspec tests your servers’ actual state by executing command locally, via | ||
| 1306 | SSH, via WinRM, via Docker API and so on. So you don’t need to install any | ||
| 1307 | agent softwares on your servers and can use any configuration management | ||
| 1308 | tools, Puppet, Ansible, CFEngine, Itamae and so on. | ||
| 1309 | |||
| 1310 | But the true aim of Serverspec is to help refactoring infrastructure code.") | ||
| 1311 | (home-page "https://serverspec.org/") | ||
| 1312 | (license license:expat))) | ||
| 1313 | |||
| 1314 | ;; Bundler is yet another source of circular dependencies, so we must disable | ||
| 1315 | ;; its test suite as well. | ||
| 1316 | (define-public bundler | ||
| 1317 | (package | ||
| 1318 | (name "bundler") | ||
| 1319 | (version "2.4.18") | ||
| 1320 | (source (origin | ||
| 1321 | (method url-fetch) | ||
| 1322 | (uri (rubygems-uri "bundler" version)) | ||
| 1323 | (sha256 | ||
| 1324 | (base32 | ||
| 1325 | "03ppd60cbwzlrhsidi7frj826ssmxzwd954ikjk7966l45qx5xxn")))) | ||
| 1326 | (build-system ruby-build-system) | ||
| 1327 | (arguments | ||
| 1328 | '(#:tests? #f)) ; avoid dependency cycles | ||
| 1329 | (synopsis "Ruby gem bundler") | ||
| 1330 | (description "Bundler automatically downloads and installs a list of gems | ||
| 1331 | specified in a \"Gemfile\", as well as their dependencies.") | ||
| 1332 | (home-page "https://bundler.io/") | ||
| 1333 | (license license:expat))) | ||
| 1334 | |||
| 1335 | (define-public ruby-base64 | ||
| 1336 | (package | ||
| 1337 | (name "ruby-base64") | ||
| 1338 | (version "0.2.0") | ||
| 1339 | (source | ||
| 1340 | (origin | ||
| 1341 | (method url-fetch) | ||
| 1342 | (uri (rubygems-uri "base64" version)) | ||
| 1343 | (sha256 | ||
| 1344 | (base32 "01qml0yilb9basf7is2614skjp8384h2pycfx86cr8023arfj98g")))) | ||
| 1345 | (build-system ruby-build-system) | ||
| 1346 | (arguments '(#:tests? #f)) ; No tests bundled. | ||
| 1347 | (synopsis "Base64 encoding/decoding in Ruby") | ||
| 1348 | (description | ||
| 1349 | "This package provides support for encoding and decoding binary data | ||
| 1350 | using a Base64 representation.") | ||
| 1351 | (home-page "https://github.com/ruby/base64") | ||
| 1352 | (license (list license:bsd-2)))) | ||
| 1353 | |||
| 1354 | (define-public ruby-builder | ||
| 1355 | (package | ||
| 1356 | (name "ruby-builder") | ||
| 1357 | (version "3.2.4") | ||
| 1358 | (source (origin | ||
| 1359 | (method url-fetch) | ||
| 1360 | (uri (rubygems-uri "builder" version)) | ||
| 1361 | (sha256 | ||
| 1362 | (base32 | ||
| 1363 | "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr")))) | ||
| 1364 | (build-system ruby-build-system) | ||
| 1365 | (arguments | ||
| 1366 | (list | ||
| 1367 | #:phases | ||
| 1368 | #~(modify-phases %standard-phases | ||
| 1369 | (add-after 'unpack 'patch | ||
| 1370 | (lambda _ | ||
| 1371 | (substitute* "rakelib/tags.rake" | ||
| 1372 | (("File\\.exists\\?") "File.exist?")) | ||
| 1373 | |||
| 1374 | ;; TODO This test is broken | ||
| 1375 | ;; https://github.com/tenderlove/builder/issues/13 | ||
| 1376 | (substitute* "test/test_blankslate.rb" | ||
| 1377 | (("test_late_included_module_in_kernel_is_ok") | ||
| 1378 | "test_late_included_module_in_kernel_is_ok | ||
| 1379 | skip(\"test expected to fail\") | ||
| 1380 | ")) | ||
| 1381 | (substitute* "rakelib/tags.rake" | ||
| 1382 | (("RVM_GEMDIR = .*") "RVM_GEMDIR = 'no-rvm-please'\n"))))))) | ||
| 1383 | (synopsis "Ruby library to create structured data") | ||
| 1384 | (description "Builder provides a number of builder objects that make it | ||
| 1385 | easy to create structured data. Currently the following builder objects are | ||
| 1386 | supported: XML Markup and XML Events.") | ||
| 1387 | (home-page "https://github.com/tenderlove/builder") | ||
| 1388 | (license license:expat))) | ||
| 1389 | |||
| 1390 | (define-public ruby-bump | ||
| 1391 | (package | ||
| 1392 | (name "ruby-bump") | ||
| 1393 | (version "0.7.0") | ||
| 1394 | (source | ||
| 1395 | (origin | ||
| 1396 | (method url-fetch) | ||
| 1397 | (uri (rubygems-uri "bump" version)) | ||
| 1398 | (sha256 | ||
| 1399 | (base32 | ||
| 1400 | "1xinbr9rzh6cj75x24niwgqcnbhdxc68a8bc41lk8xv6fd906fym")))) | ||
| 1401 | (build-system ruby-build-system) | ||
| 1402 | (arguments | ||
| 1403 | '(;; No included tests | ||
| 1404 | #:tests? #f)) | ||
| 1405 | (synopsis "Tool for working with Rubygems") | ||
| 1406 | (description | ||
| 1407 | "Bump provides commands to manage Rubygem versioning, updating to the | ||
| 1408 | next patch version for example.") | ||
| 1409 | (home-page "https://github.com/gregorym/bump") | ||
| 1410 | (license license:expat))) | ||
| 1411 | |||
| 1412 | (define-public ruby-rjb | ||
| 1413 | (package | ||
| 1414 | (name "ruby-rjb") | ||
| 1415 | (version "1.6.7") | ||
| 1416 | (source (origin | ||
| 1417 | (method url-fetch) | ||
| 1418 | (uri (rubygems-uri "rjb" version)) | ||
| 1419 | (sha256 | ||
| 1420 | (base32 | ||
| 1421 | "0ck802bm8cklhmqsgzhsa0y8lg80qy52dp3m8rlld3zc5gv1rsb9")))) | ||
| 1422 | (build-system ruby-build-system) | ||
| 1423 | (arguments | ||
| 1424 | (list | ||
| 1425 | #:tests? #f ; no rakefile | ||
| 1426 | #:phases | ||
| 1427 | #~(modify-phases %standard-phases | ||
| 1428 | (add-before 'build 'set-java-home | ||
| 1429 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 1430 | (setenv "JAVA_HOME" (assoc-ref inputs "jdk"))))))) | ||
| 1431 | (native-inputs | ||
| 1432 | `(("jdk" ,icedtea "jdk"))) | ||
| 1433 | (synopsis "Ruby-to-Java bridge using the Java Native Interface") | ||
| 1434 | (description "RJB is a bridge program that connects Ruby and Java via the | ||
| 1435 | Java Native Interface.") | ||
| 1436 | (home-page "https://www.artonx.org/collabo/backyard/?RubyJavaBridge") | ||
| 1437 | (license license:lgpl2.1+))) | ||
| 1438 | |||
| 1439 | (define-public ruby-log4r | ||
| 1440 | (package | ||
| 1441 | (name "ruby-log4r") | ||
| 1442 | (version "1.1.10") | ||
| 1443 | (source | ||
| 1444 | (origin | ||
| 1445 | (method url-fetch) | ||
| 1446 | (uri (rubygems-uri "log4r" version)) | ||
| 1447 | (sha256 | ||
| 1448 | (base32 | ||
| 1449 | "0ri90q0frfmigkirqv5ihyrj59xm8pq5zcmf156cbdv4r4l2jicv")))) | ||
| 1450 | (build-system ruby-build-system) | ||
| 1451 | (arguments | ||
| 1452 | '(#:tests? #f)) ; no Rakefile in gem | ||
| 1453 | (synopsis "Flexible logging library for Ruby") | ||
| 1454 | (description "Comprehensive and flexible logging library written | ||
| 1455 | in Ruby for use in Ruby programs. It features a hierarchical logging | ||
| 1456 | system of any number of levels, custom level names, logger | ||
| 1457 | inheritance, multiple output destinations per log event, execution | ||
| 1458 | tracing, custom formatting, thread safteyness, XML and YAML | ||
| 1459 | configuration, and more.") | ||
| 1460 | (home-page "http://log4r.rubyforge.org/") | ||
| 1461 | (license license:bsd-3))) | ||
| 1462 | |||
| 1463 | (define-public ruby-atoulme-antwrap | ||
| 1464 | (package | ||
| 1465 | (name "ruby-atoulme-antwrap") | ||
| 1466 | (version "0.7.5") | ||
| 1467 | (source (origin | ||
| 1468 | (method url-fetch) | ||
| 1469 | (uri (rubygems-uri "atoulme-Antwrap" version)) | ||
| 1470 | (sha256 | ||
| 1471 | (base32 | ||
| 1472 | "05s3iw44lqa81f8nfy5f0xjj808600h82zb9bsh46b9kcq2w2kmz")))) | ||
| 1473 | (build-system ruby-build-system) | ||
| 1474 | ;; Test data required for most of the tests are not included. | ||
| 1475 | (arguments `(#:tests? #f)) | ||
| 1476 | (native-inputs | ||
| 1477 | (list ruby-hoe)) | ||
| 1478 | (inputs | ||
| 1479 | (list ruby-rjb)) | ||
| 1480 | (synopsis "Ruby wrapper for the Ant build tool") | ||
| 1481 | (description "Antwrap is a Ruby module that wraps the Apache Ant build | ||
| 1482 | tool. Antwrap can be used to invoke Ant tasks from a Ruby or a JRuby | ||
| 1483 | script.") | ||
| 1484 | (home-page "http://rubyforge.org/projects/antwrap/") | ||
| 1485 | (license license:expat))) | ||
| 1486 | |||
| 1487 | (define-public ruby-atoulme-saikuro | ||
| 1488 | (package | ||
| 1489 | (name "ruby-atoulme-saikuro") | ||
| 1490 | (version "1.2.1") | ||
| 1491 | (source (origin | ||
| 1492 | (method url-fetch) | ||
| 1493 | (uri (rubygems-uri "atoulme-Saikuro" version)) | ||
| 1494 | (sha256 | ||
| 1495 | (base32 | ||
| 1496 | "0kvd2nsxffbza61d3q4j94wrbnbv50r1zy3a7q26f6k706fw1f19")))) | ||
| 1497 | (build-system ruby-build-system) | ||
| 1498 | (arguments | ||
| 1499 | (list | ||
| 1500 | #:phases | ||
| 1501 | #~(modify-phases %standard-phases | ||
| 1502 | (add-after 'unpack 'fix-module-resolution | ||
| 1503 | (lambda _ | ||
| 1504 | (substitute* "lib/saikuro.rb" | ||
| 1505 | ;; irb 1.2.0 or later doesn't have RubyToken | ||
| 1506 | (("require 'irb/ruby-lex'") | ||
| 1507 | "require 'rubygems'\ngem 'irb', '=1.1.1'\nrequire 'irb/ruby-lex'")))) | ||
| 1508 | (delete 'check) | ||
| 1509 | (add-after 'install 'check | ||
| 1510 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 1511 | (let* ((out (assoc-ref outputs "out")) | ||
| 1512 | (saikuro (string-append out "/bin/saikuro"))) | ||
| 1513 | (setenv "GEM_PATH" (string-append | ||
| 1514 | (getenv "GEM_PATH") ":" | ||
| 1515 | #$output "/lib/ruby/vendor_ruby")) | ||
| 1516 | (invoke saikuro "--cyclo" "--token" "--input_directory" "tests"))))))) | ||
| 1517 | (propagated-inputs (list ruby-irb-1.1.1 | ||
| 1518 | ruby-e2mmap)) ;required by rubygems | ||
| 1519 | (synopsis "Cyclomatic complexity analyzer") | ||
| 1520 | (description "Saikuro is a Ruby cyclomatic complexity analyzer. When | ||
| 1521 | given Ruby source code Saikuro will generate a report listing the cyclomatic | ||
| 1522 | complexity of each method found. In addition, Saikuro counts the number of | ||
| 1523 | lines per method and can generate a listing of the number of tokens on each | ||
| 1524 | line of code.") | ||
| 1525 | (home-page "http://www.github.com/atoulme/Saikuro") | ||
| 1526 | ;; File headers contain the BSD-3 license and the README.rdoc says that | ||
| 1527 | ;; "Saikuro uses the BSD license", but the LICENSE file contains the text | ||
| 1528 | ;; of the Expat license. | ||
| 1529 | (license license:bsd-3))) | ||
| 1530 | |||
| 1531 | (define-public ruby-awesome-print | ||
| 1532 | (package | ||
| 1533 | (name "ruby-awesome-print") | ||
| 1534 | (version "1.9.2") | ||
| 1535 | (source | ||
| 1536 | (origin | ||
| 1537 | (method url-fetch) | ||
| 1538 | (uri (rubygems-uri "awesome_print" version)) | ||
| 1539 | (sha256 | ||
| 1540 | (base32 | ||
| 1541 | "0vkq6c8y2jvaw03ynds5vjzl1v9wg608cimkd3bidzxc0jvk56z9")))) | ||
| 1542 | (build-system ruby-build-system) | ||
| 1543 | (arguments | ||
| 1544 | (list | ||
| 1545 | #:phases | ||
| 1546 | #~(modify-phases %standard-phases | ||
| 1547 | (replace 'check | ||
| 1548 | (lambda _ | ||
| 1549 | ;; Remove failing test. | ||
| 1550 | (for-each delete-file | ||
| 1551 | '("spec/ext/nokogiri_spec.rb" | ||
| 1552 | "spec/colors_spec.rb" | ||
| 1553 | "spec/formats_spec.rb" | ||
| 1554 | "spec/methods_spec.rb" | ||
| 1555 | "spec/misc_spec.rb" | ||
| 1556 | "spec/objects_spec.rb")) | ||
| 1557 | (invoke "rspec" "-c" "spec")))))) | ||
| 1558 | (native-inputs | ||
| 1559 | (list ruby-nokogiri ruby-rspec ruby-simplecov)) | ||
| 1560 | (synopsis "Pretty print Ruby objects to visualize their structure") | ||
| 1561 | (description | ||
| 1562 | "Ruby dubugging companion: pretty print Ruby objects to visualize their | ||
| 1563 | structure. Supports custom object formatting via plugins.") | ||
| 1564 | (home-page "https://github.com/awesome-print/awesome_print") | ||
| 1565 | (license license:expat))) | ||
| 1566 | |||
| 1567 | (define-public ruby-pandoc-ruby | ||
| 1568 | (package | ||
| 1569 | (name "ruby-pandoc-ruby") | ||
| 1570 | (version "2.1.4") | ||
| 1571 | (source | ||
| 1572 | (origin | ||
| 1573 | (method git-fetch) ;the gem lacks many test files | ||
| 1574 | (uri (git-reference | ||
| 1575 | (url "https://github.com/xwmx/pandoc-ruby") | ||
| 1576 | (commit version))) | ||
| 1577 | (file-name (git-file-name name version)) | ||
| 1578 | (sha256 | ||
| 1579 | (base32 | ||
| 1580 | "03a11clhycyn0jhc7g9davpqd83sn60jqwjy1y145ag9sq6sp935")))) | ||
| 1581 | (build-system ruby-build-system) | ||
| 1582 | (arguments | ||
| 1583 | `(#:tests? #f ; Disable tests since they depend on pandoc behavior | ||
| 1584 | ; and there are no upstream releases. | ||
| 1585 | #:phases | ||
| 1586 | (modify-phases %standard-phases | ||
| 1587 | (add-after 'unpack 'patch-pandoc-path | ||
| 1588 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 1589 | (let ((pandoc (search-input-file inputs "/bin/pandoc"))) | ||
| 1590 | (substitute* "lib/pandoc-ruby.rb" | ||
| 1591 | (("@@pandoc_path = 'pandoc'") | ||
| 1592 | (format #f "@@pandoc_path = '~a'" pandoc))) | ||
| 1593 | (substitute* "test/test_pandoc_ruby.rb" | ||
| 1594 | (("('|\")pandoc" _ quote) | ||
| 1595 | (string-append quote pandoc)) | ||
| 1596 | (("\\^pandoc") | ||
| 1597 | ".*pandoc"))))) | ||
| 1598 | (add-after 'unpack 'adjust-tests | ||
| 1599 | ;; The tests expect filenames with spaces. Because they don't have | ||
| 1600 | ;; spaces the quotes around the output are dropped automatically. | ||
| 1601 | (lambda _ | ||
| 1602 | (substitute* "test/test_pandoc_ruby.rb" | ||
| 1603 | (("\\\\\"#\\{file\\.path\\}\\\\\"") "#{file.path}")))) | ||
| 1604 | (add-after 'extract-gemspec 'remove-Gemfile.lock | ||
| 1605 | (lambda _ | ||
| 1606 | (delete-file "Gemfile.lock") | ||
| 1607 | (substitute* "pandoc-ruby.gemspec" | ||
| 1608 | (("Gemfile\\.lock") ""))))))) | ||
| 1609 | (native-inputs | ||
| 1610 | (list ruby-mocha)) | ||
| 1611 | (inputs | ||
| 1612 | (list pandoc)) | ||
| 1613 | (synopsis "Ruby wrapper for Pandoc") | ||
| 1614 | (description "PandocRuby is a wrapper for Pandoc, a Haskell library with | ||
| 1615 | command line tools for converting one markup format to another. Pandoc can | ||
| 1616 | convert documents from a variety of formats including markdown, | ||
| 1617 | reStructuredText, textile, HTML, DocBook, LaTeX, and MediaWiki markup to a | ||
| 1618 | variety of other formats, including markdown, reStructuredText, HTML, LaTeX, | ||
| 1619 | ConTeXt, PDF, RTF, DocBook XML, OpenDocument XML, ODT, GNU Texinfo, MediaWiki | ||
| 1620 | markup, groff man pages, HTML slide shows, EPUB, Microsoft Word docx, and | ||
| 1621 | more.") | ||
| 1622 | (home-page "https://github.com/xwmx/pandoc-ruby") | ||
| 1623 | (license license:expat))) | ||
| 1624 | |||
| 1625 | (define-public ruby-patron | ||
| 1626 | (package | ||
| 1627 | (name "ruby-patron") | ||
| 1628 | (version "0.13.3") | ||
| 1629 | (source | ||
| 1630 | (origin | ||
| 1631 | (method url-fetch) | ||
| 1632 | (uri (rubygems-uri "patron" version)) | ||
| 1633 | (sha256 | ||
| 1634 | (base32 | ||
| 1635 | "0523gddx88zql2mq6655k60gy2ac8vybpzkcf90lmd9nx7wl3fi9")))) | ||
| 1636 | (build-system ruby-build-system) | ||
| 1637 | (inputs | ||
| 1638 | (list curl)) | ||
| 1639 | (arguments | ||
| 1640 | `(#:tests? #f)) ; no included tests | ||
| 1641 | (synopsis "Ruby HTTP client library based on @code{libcurl}") | ||
| 1642 | (description | ||
| 1643 | "Patron is a Ruby HTTP client library based on @code{libcurl}. It does | ||
| 1644 | not try to expose the full power (read complexity) of @code{libcurl} but | ||
| 1645 | instead tries to provide a sane API while taking advantage of @code{libcurl} | ||
| 1646 | under the hood.") | ||
| 1647 | (home-page "https://github.com/toland/patron") | ||
| 1648 | (license license:expat))) | ||
| 1649 | |||
| 1650 | (define-public ruby-slim | ||
| 1651 | (package | ||
| 1652 | (name "ruby-slim") | ||
| 1653 | (version "5.2.1") | ||
| 1654 | (source | ||
| 1655 | (origin | ||
| 1656 | (method url-fetch) | ||
| 1657 | (uri (rubygems-uri "slim" version)) | ||
| 1658 | (sha256 | ||
| 1659 | (base32 | ||
| 1660 | "1rqk7jn66wgx50b18ndhbppjq55rbcwgqg1rbhnhxwiggvzisdbj")))) | ||
| 1661 | (build-system ruby-build-system) | ||
| 1662 | (arguments | ||
| 1663 | `(#:phases | ||
| 1664 | (modify-phases %standard-phases | ||
| 1665 | ;; See: https://github.com/slim-template/slim/issues/857 and | ||
| 1666 | ;; https://github.com/slim-template/slim/issues/858. | ||
| 1667 | (add-after 'unpack 'skip-broken-tests | ||
| 1668 | (lambda _ | ||
| 1669 | (substitute* "test/core/test_embedded_engines.rb" | ||
| 1670 | (("def test_render_with_markdown") | ||
| 1671 | "def skipped_test_render_with_markdown")) | ||
| 1672 | (substitute* "test/translator/test_translator.rb" | ||
| 1673 | (("raise (\"Missing test for.*)" _ tail) | ||
| 1674 | (string-append "print " tail))))) | ||
| 1675 | ;; See: https://salsa.debian.org/ruby-team/ruby-slim/-/commit/ | ||
| 1676 | ;; 824862bd99d1675bc699d8fc71ba965a785c1f44. | ||
| 1677 | (add-after 'unpack 'prevent-bundler-interference | ||
| 1678 | (lambda _ | ||
| 1679 | (substitute* "Rakefile" | ||
| 1680 | (("require 'bundler/setup'") "nil") | ||
| 1681 | (("Bundler::GemHelper\\.install_tasks") "nil"))))))) | ||
| 1682 | (native-inputs | ||
| 1683 | (list ruby-rack-test ruby-rspec-core ruby-sinatra)) | ||
| 1684 | (propagated-inputs | ||
| 1685 | (list ruby-temple ruby-tilt)) | ||
| 1686 | (synopsis "Minimalist template language for Ruby") | ||
| 1687 | (description "Slim is a template language for Ruby that aims to reduce the | ||
| 1688 | syntax to the minimum while remaining clear.") | ||
| 1689 | (home-page "http://slim-lang.com/") | ||
| 1690 | (license license:expat))) | ||
| 1691 | |||
| 1692 | (define-public ruby-asciidoctor | ||
| 1693 | (package | ||
| 1694 | (name "ruby-asciidoctor") | ||
| 1695 | (version "2.0.20") | ||
| 1696 | (source | ||
| 1697 | (origin | ||
| 1698 | (method git-fetch) ;the gem release lacks a Rakefile | ||
| 1699 | (uri (git-reference | ||
| 1700 | (url "https://github.com/asciidoctor/asciidoctor") | ||
| 1701 | (commit (string-append "v" version)))) | ||
| 1702 | (file-name (git-file-name name version)) | ||
| 1703 | (sha256 | ||
| 1704 | (base32 | ||
| 1705 | "19qvilhwa9plg80ppspn5ys0ybl8qfyaicqbl9w316hk5ldwi1jq")))) | ||
| 1706 | (build-system ruby-build-system) | ||
| 1707 | (arguments | ||
| 1708 | (list | ||
| 1709 | #:test-target "test:all" | ||
| 1710 | #:phases | ||
| 1711 | #~(modify-phases %standard-phases | ||
| 1712 | (add-after 'extract-gemspec 'strip-version-requirements | ||
| 1713 | (lambda _ | ||
| 1714 | (delete-file "Gemfile") | ||
| 1715 | (substitute* "asciidoctor.gemspec" | ||
| 1716 | (("(.*add_.*dependency '[_A-Za-z0-9-]+').*" _ stripped) | ||
| 1717 | (string-append stripped "\n"))))) | ||
| 1718 | (add-after 'install 'install-man-page | ||
| 1719 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 1720 | (install-file (search-input-file | ||
| 1721 | outputs (string-append "lib/ruby/vendor_ruby/" | ||
| 1722 | "gems/asciidoctor-" | ||
| 1723 | #$version | ||
| 1724 | "/man/asciidoctor.1")) | ||
| 1725 | (string-append #$output "/share/man/man1"))))))) | ||
| 1726 | (native-inputs | ||
| 1727 | (list ruby-asciimath | ||
| 1728 | ruby-coderay | ||
| 1729 | ruby-cucumber | ||
| 1730 | ruby-erubis | ||
| 1731 | ruby-haml | ||
| 1732 | ruby-minitest | ||
| 1733 | ruby-nokogiri | ||
| 1734 | ruby-open-uri-cached | ||
| 1735 | ruby-rouge | ||
| 1736 | ruby-rspec-expectations | ||
| 1737 | ruby-simplecov | ||
| 1738 | ruby-slim | ||
| 1739 | ruby-tilt | ||
| 1740 | ruby-erubi)) | ||
| 1741 | (synopsis "Converter from AsciiDoc content to other formats") | ||
| 1742 | (description "Asciidoctor is a text processor and publishing toolchain for | ||
| 1743 | converting AsciiDoc content to HTML5, DocBook 5, PDF, and other formats.") | ||
| 1744 | (home-page "https://asciidoctor.org") | ||
| 1745 | (license license:expat))) | ||
| 1746 | |||
| 1747 | (define-public ruby-asciidoctor/minimal | ||
| 1748 | (hidden-package | ||
| 1749 | (package | ||
| 1750 | (inherit ruby-asciidoctor) | ||
| 1751 | (arguments | ||
| 1752 | (ensure-keyword-arguments | ||
| 1753 | (package-arguments ruby-asciidoctor) | ||
| 1754 | (list #:tests? #f))) | ||
| 1755 | (native-inputs '())))) | ||
| 1756 | |||
| 1757 | (define-public ruby-asciidoctor-multipage | ||
| 1758 | (package | ||
| 1759 | (name "ruby-asciidoctor-multipage") | ||
| 1760 | (version "0.0.16") | ||
| 1761 | (source (origin | ||
| 1762 | (method git-fetch) | ||
| 1763 | (uri (git-reference | ||
| 1764 | (url "https://github.com/owenh000/asciidoctor-multipage") | ||
| 1765 | (commit (string-append "v" version)))) | ||
| 1766 | (file-name (git-file-name name version)) | ||
| 1767 | (sha256 | ||
| 1768 | (base32 | ||
| 1769 | "0rnz7qxdw5qbi3qjplihhk468kv690njdi06yllgylc75k62ar1p")))) | ||
| 1770 | (propagated-inputs (list ruby-asciidoctor ruby-slim)) | ||
| 1771 | (build-system ruby-build-system) | ||
| 1772 | (arguments | ||
| 1773 | `(#:phases (modify-phases %standard-phases | ||
| 1774 | (add-after 'extract-gemspec 'strip-version-requirements | ||
| 1775 | (lambda _ | ||
| 1776 | (delete-file "Gemfile") | ||
| 1777 | (substitute* "asciidoctor-multipage.gemspec" | ||
| 1778 | (("(.*add_.*dependency '[_A-Za-z0-9-]+').*" _ stripped) | ||
| 1779 | (string-append stripped "\n")))))))) | ||
| 1780 | (synopsis | ||
| 1781 | "Asciidoctor extension for generating HTML output using multiple pages") | ||
| 1782 | (description | ||
| 1783 | "Asciidoctor generates single-page documents. This extension | ||
| 1784 | splits documents up into multiple HTML pages according to their headings, with | ||
| 1785 | configurable levels.") | ||
| 1786 | (license license:expat) | ||
| 1787 | (home-page "https://github.com/owenh000/asciidoctor-multipage"))) | ||
| 1788 | |||
| 1789 | (define-public ruby-prawn-icon | ||
| 1790 | (package | ||
| 1791 | (name "ruby-prawn-icon") | ||
| 1792 | (version "3.1.0") | ||
| 1793 | (source | ||
| 1794 | (origin | ||
| 1795 | (method url-fetch) | ||
| 1796 | (uri (rubygems-uri "prawn-icon" version)) | ||
| 1797 | (sha256 | ||
| 1798 | (base32 | ||
| 1799 | "049k42bqy4iq9hddf7jah83b6qr8ka63w1d63illh1mf4f4dihdk")))) | ||
| 1800 | (build-system ruby-build-system) | ||
| 1801 | (arguments | ||
| 1802 | `(#:test-target "spec" | ||
| 1803 | #:phases (modify-phases %standard-phases | ||
| 1804 | (add-after 'unpack 'remove-unnecessary-dependencies | ||
| 1805 | (lambda _ | ||
| 1806 | (substitute* '("Rakefile" "spec/spec_helper.rb") | ||
| 1807 | ((".*[Bb]undler.*") "") | ||
| 1808 | (("^require 'rubocop.*") "") | ||
| 1809 | (("^RuboCop.*") ""))))))) | ||
| 1810 | (native-inputs | ||
| 1811 | (list ruby-pdf-inspector ruby-pdf-reader ruby-rspec ruby-simplecov)) | ||
| 1812 | (propagated-inputs | ||
| 1813 | (list ruby-prawn)) | ||
| 1814 | (synopsis "Icon fonts for use with the Prawn PDF toolkit") | ||
| 1815 | (description "@code{Prawn::Icon} provides various icon fonts including | ||
| 1816 | FontAwesome, PaymentFont and Foundation Icons for use with the Prawn PDF | ||
| 1817 | toolkit.") | ||
| 1818 | (home-page "https://github.com/jessedoyle/prawn-icon/") | ||
| 1819 | (license %prawn-project-licenses))) | ||
| 1820 | |||
| 1821 | (define-public ruby-css-parser | ||
| 1822 | (package | ||
| 1823 | (name "ruby-css-parser") | ||
| 1824 | (version "1.7.1") | ||
| 1825 | (source | ||
| 1826 | (origin | ||
| 1827 | (method url-fetch) | ||
| 1828 | (uri (rubygems-uri "css_parser" version)) | ||
| 1829 | (sha256 | ||
| 1830 | (base32 | ||
| 1831 | "04c4dl8cm5rjr50k9qa6yl9r05fk9zcb1zxh0y0cdahxlsgcydfw")))) | ||
| 1832 | (build-system ruby-build-system) | ||
| 1833 | (arguments `(#:tests? #f)) ;gem doesn't ship with test suite | ||
| 1834 | (propagated-inputs | ||
| 1835 | (list ruby-addressable)) | ||
| 1836 | (synopsis "Ruby Cascading Style Sheets (CSS) parser") | ||
| 1837 | (description "This package allows loading, parsing and cascading Cascading | ||
| 1838 | Style Sheets (CSS) rule sets in Ruby.") | ||
| 1839 | (home-page "https://github.com/premailer/css_parser") | ||
| 1840 | (license license:expat))) | ||
| 1841 | |||
| 1842 | (define-public ruby-prism | ||
| 1843 | (package | ||
| 1844 | (name "ruby-prism") | ||
| 1845 | (version "1.3.0") | ||
| 1846 | (source (origin | ||
| 1847 | (method git-fetch) | ||
| 1848 | (uri (git-reference | ||
| 1849 | (url "https://github.com/ruby/prism.git") | ||
| 1850 | (commit (string-append "v" version)))) | ||
| 1851 | (file-name (git-file-name name version)) | ||
| 1852 | (sha256 | ||
| 1853 | (base32 | ||
| 1854 | "03bs2gbackc3c3k4p979l2p9v215jb1m5h7b44n6yzh18kaimc85")))) | ||
| 1855 | (build-system ruby-build-system) | ||
| 1856 | (arguments | ||
| 1857 | `(#:phases | ||
| 1858 | (modify-phases %standard-phases | ||
| 1859 | (replace 'build | ||
| 1860 | (lambda _ | ||
| 1861 | (setenv "CC" ,(cc-for-target)) | ||
| 1862 | (invoke "rake" "compile"))) | ||
| 1863 | (replace 'install | ||
| 1864 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 1865 | (setenv "GEM_HOME" (string-append (assoc-ref outputs "out") | ||
| 1866 | "/lib/ruby/vendor_ruby")) | ||
| 1867 | (invoke "rake" "install") | ||
| 1868 | ;; Make build reproducible. | ||
| 1869 | (for-each delete-file | ||
| 1870 | (find-files (string-append (assoc-ref outputs "out") | ||
| 1871 | "/lib/ruby/vendor_ruby") | ||
| 1872 | "gem_make.out$"))))))) | ||
| 1873 | (native-inputs | ||
| 1874 | (list ruby-rake ruby-rake-compiler)) | ||
| 1875 | (synopsis "Parser for Ruby source code") | ||
| 1876 | (description "This package provides a parser for Ruby source code, | ||
| 1877 | written in C.") | ||
| 1878 | (home-page "https://ruby.github.io/prism/") | ||
| 1879 | (license license:expat))) | ||
| 1880 | |||
| 1881 | (define-public ruby-prawn-svg | ||
| 1882 | (package | ||
| 1883 | (name "ruby-prawn-svg") | ||
| 1884 | (version "0.36.0") | ||
| 1885 | (source | ||
| 1886 | (origin | ||
| 1887 | (method url-fetch) | ||
| 1888 | (uri (rubygems-uri "prawn-svg" version)) | ||
| 1889 | (sha256 | ||
| 1890 | (base32 "008p1p334h3019x5w5bqvwgmly3g5n08s63va1261nwyvfb955jv")))) | ||
| 1891 | (build-system ruby-build-system) | ||
| 1892 | (arguments | ||
| 1893 | (list #:test-target "spec" | ||
| 1894 | #:phases | ||
| 1895 | #~(modify-phases %standard-phases | ||
| 1896 | (add-after 'unpack 'do-not-use-bundler | ||
| 1897 | (lambda _ | ||
| 1898 | (substitute* "spec/spec_helper.rb" | ||
| 1899 | ((".*[Bb]undler.*") "")))) | ||
| 1900 | (replace 'check | ||
| 1901 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 1902 | (when tests? | ||
| 1903 | ;; This test fails due to the recent rspec 3.12 used | ||
| 1904 | ;; (see: https://github.com/mogest/prawn-svg/issues/151). | ||
| 1905 | (delete-file "spec/prawn/svg/interface_spec.rb") | ||
| 1906 | (invoke "rspec" "-Ilib" "-rprawn-svg"))))))) | ||
| 1907 | (native-inputs (list ruby-rspec)) | ||
| 1908 | (propagated-inputs (list ruby-css-parser ruby-matrix ruby-prawn ruby-rexml)) | ||
| 1909 | (synopsis "SVG renderer for the Prawn PDF library") | ||
| 1910 | (description "This library allows rendering Scalable Vector Graphics (SVG) | ||
| 1911 | graphics directly into a Portable Document Format (PDF) document using the | ||
| 1912 | Prawn module.") | ||
| 1913 | (home-page "https://github.com/mogest/prawn-svg") | ||
| 1914 | (license license:expat))) | ||
| 1915 | |||
| 1916 | (define-public ruby-prawn-templates | ||
| 1917 | (package | ||
| 1918 | (name "ruby-prawn-templates") | ||
| 1919 | (version "0.1.2") | ||
| 1920 | (source | ||
| 1921 | (origin | ||
| 1922 | (method git-fetch) | ||
| 1923 | (uri (git-reference | ||
| 1924 | (url "https://github.com/prawnpdf/prawn-templates") | ||
| 1925 | (commit version))) | ||
| 1926 | (file-name (git-file-name name version)) | ||
| 1927 | (sha256 | ||
| 1928 | (base32 | ||
| 1929 | "0wll54wxxwixpwazfn4ffbqvqbfrl01cfsv8y11vnlzy7isx5xvl")))) | ||
| 1930 | (build-system ruby-build-system) | ||
| 1931 | (arguments | ||
| 1932 | `(#:phases (modify-phases %standard-phases | ||
| 1933 | (add-after 'unpack 'do-not-use-bundler | ||
| 1934 | (lambda _ | ||
| 1935 | (substitute* "spec/spec_helper.rb" | ||
| 1936 | ((".*[Bb]undler.*") "")))) | ||
| 1937 | (replace 'check | ||
| 1938 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 1939 | (when tests? | ||
| 1940 | (invoke "rspec"))))))) | ||
| 1941 | (native-inputs | ||
| 1942 | (list ruby-pdf-inspector ruby-rspec)) | ||
| 1943 | (propagated-inputs | ||
| 1944 | (list ruby-pdf-reader ruby-prawn)) | ||
| 1945 | (synopsis "Prawn extension to include or combine PDF documents") | ||
| 1946 | (description "This @strong{unmaintained} package provides a Prawn | ||
| 1947 | extension that allows including other Portable Document Format (PDF) documents | ||
| 1948 | as background or combining several PDF documents into one. This functionality | ||
| 1949 | used to be part of Prawn itself, but was extracted from Prawn 0.15.0 because | ||
| 1950 | of its many longstanding issues.") | ||
| 1951 | (home-page "https://github.com/prawnpdf/prawn-templates") | ||
| 1952 | (license %prawn-project-licenses))) | ||
| 1953 | |||
| 1954 | (define-public ruby-polyglot | ||
| 1955 | (package | ||
| 1956 | (name "ruby-polyglot") | ||
| 1957 | (version "0.3.5") | ||
| 1958 | (source | ||
| 1959 | (origin | ||
| 1960 | (method url-fetch) | ||
| 1961 | (uri (rubygems-uri "polyglot" version)) | ||
| 1962 | (sha256 | ||
| 1963 | (base32 | ||
| 1964 | "1bqnxwyip623d8pr29rg6m8r0hdg08fpr2yb74f46rn1wgsnxmjr")))) | ||
| 1965 | (build-system ruby-build-system) | ||
| 1966 | (arguments `(#:tests? #f)) ;no test suite | ||
| 1967 | (synopsis "Augment @code{require} to load non-Ruby file types") | ||
| 1968 | (description "The Polyglot library allows a Ruby module to register a | ||
| 1969 | loader for the file type associated with a filename extension, and it augments | ||
| 1970 | @code{require} to find and load matching files.") | ||
| 1971 | (home-page "https://github.com/cjheath/polyglot") | ||
| 1972 | (license license:expat))) | ||
| 1973 | |||
| 1974 | (define-public ruby-treetop | ||
| 1975 | (package | ||
| 1976 | (name "ruby-treetop") | ||
| 1977 | (version "1.6.12") | ||
| 1978 | (source | ||
| 1979 | (origin | ||
| 1980 | (method git-fetch) ;no test suite in distributed gem | ||
| 1981 | (uri (git-reference | ||
| 1982 | (url "https://github.com/cjheath/treetop") | ||
| 1983 | (commit (string-append "v" version)))) | ||
| 1984 | (file-name (git-file-name name version)) | ||
| 1985 | (sha256 | ||
| 1986 | (base32 | ||
| 1987 | "0cgs6f9z0a9dq5fc03710zsch4gmh1771wq36mq81qsql4x9vksf")))) | ||
| 1988 | (build-system ruby-build-system) | ||
| 1989 | (arguments | ||
| 1990 | `(#:test-target "spec")) | ||
| 1991 | (native-inputs | ||
| 1992 | (list ruby-activesupport ruby-rr ruby-rspec)) | ||
| 1993 | (propagated-inputs | ||
| 1994 | (list ruby-polyglot)) | ||
| 1995 | (synopsis "Ruby-based parsing DSL based on parsing expression grammars") | ||
| 1996 | (description "This package provides a Ruby-based Parsing Expression | ||
| 1997 | Grammar (PEG) parser generator Domain Specific Language (DSL).") | ||
| 1998 | (home-page "https://github.com/cjheath/treetop") | ||
| 1999 | (license license:expat))) | ||
| 2000 | |||
| 2001 | (define-public ruby-typhoeus | ||
| 2002 | (package | ||
| 2003 | (name "ruby-typhoeus") | ||
| 2004 | (version "1.4.0") | ||
| 2005 | (source | ||
| 2006 | (origin | ||
| 2007 | (method url-fetch) | ||
| 2008 | (uri (rubygems-uri "typhoeus" version)) | ||
| 2009 | (sha256 | ||
| 2010 | (base32 | ||
| 2011 | "1m22yrkmbj81rzhlny81j427qdvz57yk5wbcf3km0nf3bl6qiygz")))) | ||
| 2012 | (build-system ruby-build-system) | ||
| 2013 | (arguments | ||
| 2014 | `(#:tests? #f)) ; no included tests | ||
| 2015 | (propagated-inputs | ||
| 2016 | (list ruby-ethon)) | ||
| 2017 | (synopsis "@code{libcurl} wrapper in Ruby") | ||
| 2018 | (description | ||
| 2019 | "Like a modern code version of the mythical beast with 100 serpent heads, | ||
| 2020 | Typhoeus runs HTTP requests in parallel while cleanly encapsulating handling | ||
| 2021 | logic.") | ||
| 2022 | (home-page "https://github.com/typhoeus/typhoeus") | ||
| 2023 | (license license:expat))) | ||
| 2024 | |||
| 2025 | ;;; A minimal variant used to build ruby-rubocop itself. | ||
| 2026 | (define ruby-rubocop-capybara-minimal | ||
| 2027 | (package | ||
| 2028 | (name "ruby-rubocop-capybara") | ||
| 2029 | (version "2.21.0") | ||
| 2030 | (source (origin | ||
| 2031 | (method git-fetch) ;for tests | ||
| 2032 | (uri (git-reference | ||
| 2033 | (url "https://github.com/rubocop/rubocop-capybara") | ||
| 2034 | (commit (string-append "v" version)))) | ||
| 2035 | (file-name (git-file-name name version)) | ||
| 2036 | (sha256 | ||
| 2037 | (base32 | ||
| 2038 | "19r2s782r9ch2g1lxgrvk22d9qqkxi69brza16bfwp2rl2064qnc")))) | ||
| 2039 | (build-system ruby-build-system) | ||
| 2040 | (arguments (list #:tests? #f)) | ||
| 2041 | (synopsis "Capybara plugin for RuboCop") | ||
| 2042 | (description "This package provides a RuboCop plugin that can be used for | ||
| 2043 | code style checking of Capybara test files (RSpec, Cucumber, Minitest).") | ||
| 2044 | (home-page "https://github.com/rubocop/rubocop-capybara") | ||
| 2045 | (license license:expat))) | ||
| 2046 | |||
| 2047 | (define-public ruby-rubocop-capybara | ||
| 2048 | (package | ||
| 2049 | (inherit ruby-rubocop-capybara-minimal) | ||
| 2050 | (arguments | ||
| 2051 | (list #:test-target "spec" | ||
| 2052 | #:phases #~(modify-phases %standard-phases | ||
| 2053 | (add-after 'unpack 'relax-requirements | ||
| 2054 | (lambda _ | ||
| 2055 | (substitute* "Gemfile" | ||
| 2056 | (("gem 'rubocop-rspec', '~> 2.16.0'") | ||
| 2057 | "gem 'rubocop-rspec', '>= 2.16.0'") | ||
| 2058 | (("gem 'danger'.*") ""))))))) | ||
| 2059 | (native-inputs | ||
| 2060 | (list ruby-bump | ||
| 2061 | ruby-rack | ||
| 2062 | ruby-rake | ||
| 2063 | ruby-rspec | ||
| 2064 | ruby-rubocop | ||
| 2065 | ruby-rubocop-performance-minimal | ||
| 2066 | ruby-rubocop-rake-minimal | ||
| 2067 | ruby-rubocop-rspec-minimal | ||
| 2068 | ruby-simplecov | ||
| 2069 | ruby-yard)))) | ||
| 2070 | |||
| 2071 | (define-public ruby-rubocop-factory-bot | ||
| 2072 | (package | ||
| 2073 | (name "ruby-rubocop-factory-bot") | ||
| 2074 | (version "2.26.1") | ||
| 2075 | (source | ||
| 2076 | (origin | ||
| 2077 | (method url-fetch) | ||
| 2078 | (uri (rubygems-uri "rubocop-factory_bot" version)) | ||
| 2079 | (sha256 | ||
| 2080 | (base32 "1aljadsjx7affcarzbhz7pydpy6fgqb8hl951y0cmrffxpa3rqcd")))) | ||
| 2081 | (build-system ruby-build-system) | ||
| 2082 | (arguments '(#:tests? #f)) ; No tests bundled. | ||
| 2083 | (synopsis "Code style checking for factory_bot files") | ||
| 2084 | (description | ||
| 2085 | "This package provides a plugin for the @code{RuboCop} code style | ||
| 2086 | enforcing & linting tool for @code{factory_bot} files.") | ||
| 2087 | (home-page "https://github.com/rubocop/rubocop-factory_bot") | ||
| 2088 | (license license:expat))) | ||
| 2089 | |||
| 2090 | ;;; A minimal variant used to build ruby-rubocop itself. | ||
| 2091 | (define ruby-rubocop-rake-minimal | ||
| 2092 | (package | ||
| 2093 | (name "ruby-rubocop-rake") | ||
| 2094 | (version "0.6.0") | ||
| 2095 | (source (origin | ||
| 2096 | (method git-fetch) ;for tests | ||
| 2097 | (uri (git-reference | ||
| 2098 | (url "https://github.com/rubocop/rubocop-rake") | ||
| 2099 | (commit (string-append "v" version)))) | ||
| 2100 | (file-name (git-file-name name version)) | ||
| 2101 | (sha256 | ||
| 2102 | (base32 | ||
| 2103 | "1r53szwglikbir1fvpz4i51p915khrrkl6rp61zcx3dcrclkr3ld")))) | ||
| 2104 | (build-system ruby-build-system) | ||
| 2105 | (arguments (list #:tests? #f)) ;avoid extra dependencies | ||
| 2106 | (synopsis "RuboCop plugin for Rake") | ||
| 2107 | (description "This package provides a RuboCop plugin for Rake.") | ||
| 2108 | (home-page "https://github.com/rubocop/rubocop-rake") | ||
| 2109 | (license license:expat))) | ||
| 2110 | |||
| 2111 | (define-public ruby-rubocop-rake | ||
| 2112 | (package | ||
| 2113 | (inherit ruby-rubocop-rake-minimal) | ||
| 2114 | (arguments | ||
| 2115 | (list #:test-target "spec")) | ||
| 2116 | (native-inputs | ||
| 2117 | (list ruby-rake | ||
| 2118 | ruby-rspec | ||
| 2119 | ruby-rubocop | ||
| 2120 | ruby-rubocop-rspec)) | ||
| 2121 | (propagated-inputs | ||
| 2122 | (list ruby-rubocop)))) | ||
| 2123 | |||
| 2124 | ;;; A minimal variant used to build ruby-rubocop itself. | ||
| 2125 | (define ruby-rubocop-rspec-minimal | ||
| 2126 | (package | ||
| 2127 | (name "ruby-rubocop-rspec") | ||
| 2128 | (version "2.26.0") | ||
| 2129 | (source | ||
| 2130 | (origin | ||
| 2131 | (method git-fetch) | ||
| 2132 | (uri (git-reference | ||
| 2133 | (url "https://github.com/rubocop/rubocop-rspec") | ||
| 2134 | (commit (string-append "v" version)))) | ||
| 2135 | (file-name (git-file-name name version)) | ||
| 2136 | (sha256 | ||
| 2137 | (base32 | ||
| 2138 | "1w9whadx60kv4vlbnk77b5yyhhfcg717r9cr334zqznqr1bqr8mh")))) | ||
| 2139 | (build-system ruby-build-system) | ||
| 2140 | (arguments | ||
| 2141 | (list #:tests? #f ;avoid extra dependencies | ||
| 2142 | #:phases | ||
| 2143 | #~(modify-phases %standard-phases | ||
| 2144 | (add-after 'unpack 'relax-requirements | ||
| 2145 | (lambda _ | ||
| 2146 | (substitute* "Gemfile" | ||
| 2147 | (("gem 'danger'.*") ""))))))) | ||
| 2148 | (propagated-inputs (list ruby-rubocop-factory-bot)) | ||
| 2149 | (synopsis "Code style checking for RSpec files") | ||
| 2150 | (description "This package provides a plugin for the RuboCop code style | ||
| 2151 | enforcing & linting tool.") | ||
| 2152 | (home-page "https://github.com/rubocop/rubocop-rspec") | ||
| 2153 | (license license:expat))) | ||
| 2154 | |||
| 2155 | (define-public ruby-rubocop-rspec | ||
| 2156 | (package | ||
| 2157 | (inherit ruby-rubocop-rspec-minimal) | ||
| 2158 | (arguments | ||
| 2159 | (substitute-keyword-arguments | ||
| 2160 | (package-arguments ruby-rubocop-rspec-minimal) | ||
| 2161 | ((#:tests? _ #f) #t) | ||
| 2162 | ((#:test-target _ "test") "spec"))) | ||
| 2163 | (native-inputs | ||
| 2164 | (list ruby-bump | ||
| 2165 | ruby-rack | ||
| 2166 | ruby-rspec | ||
| 2167 | ruby-rubocop-performance-minimal | ||
| 2168 | ruby-rubocop-rake-minimal | ||
| 2169 | ruby-simplecov | ||
| 2170 | ruby-yard)) | ||
| 2171 | (propagated-inputs | ||
| 2172 | (list ruby-rubocop | ||
| 2173 | ruby-rubocop-ast | ||
| 2174 | ruby-rubocop-capybara | ||
| 2175 | ruby-rubocop-factory-bot)))) | ||
| 2176 | |||
| 2177 | (define-public ruby-rubocop-packaging | ||
| 2178 | (package | ||
| 2179 | (name "ruby-rubocop-packaging") | ||
| 2180 | (version "0.5.2") | ||
| 2181 | (source | ||
| 2182 | (origin | ||
| 2183 | (method git-fetch) | ||
| 2184 | (uri (git-reference | ||
| 2185 | (url "https://github.com/utkarsh2102/rubocop-packaging") | ||
| 2186 | (commit (string-append "v" version)))) | ||
| 2187 | (file-name (git-file-name name version)) | ||
| 2188 | (sha256 | ||
| 2189 | (base32 | ||
| 2190 | "08jsfp42z0aj32002z2hz8vkmza0jvnrqk9rk2v0xb8qdxkgbx3l")))) | ||
| 2191 | (build-system ruby-build-system) | ||
| 2192 | (arguments | ||
| 2193 | (list #:test-target "spec" | ||
| 2194 | #:phases | ||
| 2195 | #~(modify-phases %standard-phases | ||
| 2196 | (add-after 'unpack 'skip-problematic-tests | ||
| 2197 | (lambda _ | ||
| 2198 | ;; Tests are actually running fine, except for a prefix. | ||
| 2199 | ;; This doesn't impair functionality, ignored for now. | ||
| 2200 | (delete-file | ||
| 2201 | "spec/rubocop/cop/packaging/gemspec_git_spec.rb")))))) | ||
| 2202 | (propagated-inputs | ||
| 2203 | (list ruby-rubocop)) | ||
| 2204 | (native-inputs | ||
| 2205 | (list ruby-rspec | ||
| 2206 | ruby-yard | ||
| 2207 | ruby-bump)) | ||
| 2208 | (synopsis | ||
| 2209 | "Collection of RuboCop checks for downstream compatibility issues") | ||
| 2210 | (description | ||
| 2211 | "This package provides a collection of RuboCop cops to check for | ||
| 2212 | downstream compatibility issues in the Ruby code.") | ||
| 2213 | (home-page "https://github.com/utkarsh2102/rubocop-packaging") | ||
| 2214 | (license license:expat))) | ||
| 2215 | |||
| 2216 | (define-public ruby-rubocop-performance | ||
| 2217 | (package | ||
| 2218 | (name "ruby-rubocop-performance") | ||
| 2219 | (version "1.23.1") | ||
| 2220 | (source | ||
| 2221 | (origin | ||
| 2222 | (method git-fetch) | ||
| 2223 | (uri (git-reference | ||
| 2224 | (url "https://github.com/rubocop/rubocop-performance") | ||
| 2225 | (commit (string-append "v" version)))) | ||
| 2226 | (file-name (git-file-name name version)) | ||
| 2227 | (sha256 | ||
| 2228 | (base32 | ||
| 2229 | "0d1p6pgrcnj58q1g0np5j4vbk7wavj31b4bapi5p4gckqlnc7xjd")))) | ||
| 2230 | (build-system ruby-build-system) | ||
| 2231 | (arguments | ||
| 2232 | `(#:tests? #f ; tests require a git checkout of rubocop's source code. | ||
| 2233 | #:phases | ||
| 2234 | (modify-phases %standard-phases | ||
| 2235 | (replace 'replace-git-ls-files | ||
| 2236 | (lambda _ | ||
| 2237 | (substitute* "rubocop-performance.gemspec" | ||
| 2238 | (("`git ls-files -z config lib LICENSE.txt README.md`") | ||
| 2239 | "`find config lib LICENSE.txt README.md \ | ||
| 2240 | -type f -print0 |sort -z`")))) | ||
| 2241 | (add-before 'check 'set-HOME | ||
| 2242 | (lambda _ | ||
| 2243 | (setenv "HOME" "/tmp")))))) | ||
| 2244 | (propagated-inputs | ||
| 2245 | (list ruby-rubocop ruby-rubocop-ast)) | ||
| 2246 | (native-inputs | ||
| 2247 | (list ruby-bump ruby-yard)) | ||
| 2248 | (synopsis "Performance optimizations checkers for Ruby code") | ||
| 2249 | (description "This package provides a collection of RuboCop cops to check | ||
| 2250 | for performance optimizations in Ruby code.") | ||
| 2251 | (home-page "https://docs.rubocop.org/rubocop-performance/") | ||
| 2252 | (license license:expat))) | ||
| 2253 | |||
| 2254 | (define-public ruby-rubocop-performance-minimal | ||
| 2255 | (hidden-package | ||
| 2256 | (package | ||
| 2257 | (inherit ruby-rubocop-performance) | ||
| 2258 | (arguments | ||
| 2259 | (substitute-keyword-arguments (package-arguments ruby-rubocop-performance) | ||
| 2260 | ((#:tests? _ #f) #f))) | ||
| 2261 | (propagated-inputs '()) | ||
| 2262 | (native-inputs '())))) | ||
| 2263 | |||
| 2264 | (define-public ruby-stud | ||
| 2265 | (package | ||
| 2266 | (name "ruby-stud") | ||
| 2267 | (version "0.0.23") | ||
| 2268 | (source (origin | ||
| 2269 | (method url-fetch) | ||
| 2270 | (uri (rubygems-uri "stud" version)) | ||
| 2271 | (sha256 | ||
| 2272 | (base32 | ||
| 2273 | "0qpb57cbpm9rwgsygqxifca0zma87drnlacv49cqs2n5iyi6z8kb")))) | ||
| 2274 | (build-system ruby-build-system) | ||
| 2275 | (native-inputs (list ruby-rspec)) | ||
| 2276 | (arguments | ||
| 2277 | (list #:phases #~(modify-phases %standard-phases | ||
| 2278 | ;; No Rakefile is included, so run rspec directly. | ||
| 2279 | (replace 'check | ||
| 2280 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 2281 | (when tests? | ||
| 2282 | (invoke "rspec"))))))) | ||
| 2283 | (synopsis "Retries, worker supervision, resource pools and more for Ruby") | ||
| 2284 | (description "The Stud Ruby library adds a few things missing from the | ||
| 2285 | standard Ruby library such as: | ||
| 2286 | @table @code | ||
| 2287 | @item {Stud::Try} | ||
| 2288 | Retry on failure, with back-off, where failure is any exception. | ||
| 2289 | @item {Stud::Pool} | ||
| 2290 | Generic resource pools. | ||
| 2291 | @item {Stud::Task} | ||
| 2292 | Tasks (threads that can return values, exceptions, etc.) | ||
| 2293 | @item {Stud.interval} | ||
| 2294 | Interval execution (do X every N seconds). | ||
| 2295 | @item {Stud::Buffer} | ||
| 2296 | Batch and flush behavior. | ||
| 2297 | @end itemize") | ||
| 2298 | (home-page "https://github.com/jordansissel/ruby-stud") | ||
| 2299 | (license license:asl2.0))) | ||
| 2300 | |||
| 2301 | (define-public ruby-standard-custom | ||
| 2302 | (package | ||
| 2303 | (name "ruby-standard-custom") | ||
| 2304 | (version "1.0.2") | ||
| 2305 | (source | ||
| 2306 | (origin | ||
| 2307 | (method url-fetch) | ||
| 2308 | (uri (rubygems-uri "standard-custom" version)) | ||
| 2309 | (sha256 | ||
| 2310 | (base32 "0av55ai0nv23z5mhrwj1clmxpgyngk7vk6rh58d4y1ws2y2dqjj2")))) | ||
| 2311 | (build-system ruby-build-system) | ||
| 2312 | (arguments '(#:tests? #f)) ;Circular dependency on ruby-standard. | ||
| 2313 | (propagated-inputs (list ruby-lint-roller ruby-rubocop)) | ||
| 2314 | (synopsis "Plugin of custom cops for Standard Ruby") | ||
| 2315 | (description | ||
| 2316 | "This package provides a implementations of custom cops that are bundled | ||
| 2317 | as defaults in Standard Ruby.") | ||
| 2318 | (home-page "https://github.com/standardrb/standard-custom") | ||
| 2319 | (license license:expat))) | ||
| 2320 | |||
| 2321 | (define-public ruby-standard-performance | ||
| 2322 | (package | ||
| 2323 | (name "ruby-standard-performance") | ||
| 2324 | (version "1.6.0") | ||
| 2325 | (source | ||
| 2326 | (origin | ||
| 2327 | (method url-fetch) | ||
| 2328 | (uri (rubygems-uri "standard-performance" version)) | ||
| 2329 | (sha256 | ||
| 2330 | (base32 "1x298w3wmq8cavbsg903wc3arxp3xh2x8263brvy128436m732rd")))) | ||
| 2331 | (build-system ruby-build-system) | ||
| 2332 | (arguments '(#:tests? #f)) ;Circular dependency on ruby-standard. | ||
| 2333 | (propagated-inputs (list ruby-lint-roller ruby-rubocop-performance)) | ||
| 2334 | (synopsis "Standard Ruby Plugin for rubocop-performance") | ||
| 2335 | (description | ||
| 2336 | "This package is a Standard Ruby Plugin providing configuration for | ||
| 2337 | @code{rubocop-performance}.") | ||
| 2338 | (home-page "https://github.com/standardrb/standard-performance") | ||
| 2339 | (license license:expat))) | ||
| 2340 | |||
| 2341 | (define-public ruby-standard | ||
| 2342 | (package | ||
| 2343 | (name "ruby-standard") | ||
| 2344 | (version "1.37.0") | ||
| 2345 | (source | ||
| 2346 | (origin | ||
| 2347 | (method git-fetch) ;no test suite in distributed gem | ||
| 2348 | (uri (git-reference | ||
| 2349 | (url "https://github.com/testdouble/standard") | ||
| 2350 | (commit (string-append "v" version)))) | ||
| 2351 | (file-name (git-file-name name version)) | ||
| 2352 | (sha256 | ||
| 2353 | (base32 "0gm9fn6fz41aya34xz7kzda8xxs7h98n7cjx66qbcy2w0qhs40wc")))) | ||
| 2354 | (build-system ruby-build-system) | ||
| 2355 | (arguments | ||
| 2356 | (list | ||
| 2357 | #:phases | ||
| 2358 | #~(modify-phases %standard-phases | ||
| 2359 | (add-after 'unpack 'set-HOME | ||
| 2360 | (lambda _ | ||
| 2361 | ;; Some tests fail otherwise. | ||
| 2362 | (setenv "HOME" "/tmp"))) | ||
| 2363 | (add-after 'unpack 'relax-requirements | ||
| 2364 | (lambda _ | ||
| 2365 | (substitute* "standard.gemspec" | ||
| 2366 | (("\"rubocop\", \".*\"") | ||
| 2367 | (string-append | ||
| 2368 | "\"rubocop\", \"~> " | ||
| 2369 | #$(package-version | ||
| 2370 | (this-package-input "ruby-rubocop")) | ||
| 2371 | "\"")) | ||
| 2372 | (("\"rubocop-performance\", \".*\"") | ||
| 2373 | (string-append | ||
| 2374 | "\"rubocop-performance\", \"~> " | ||
| 2375 | #$(package-version | ||
| 2376 | (this-package-input "ruby-rubocop-performance")) | ||
| 2377 | "\""))))) | ||
| 2378 | (add-after 'unpack 'delete-problematic-tests | ||
| 2379 | ;; These tests fail for unknown reasons (see: | ||
| 2380 | ;; https://github.com/testdouble/standard/issues/532). | ||
| 2381 | (lambda _ | ||
| 2382 | (delete-file "test/standard_test.rb") | ||
| 2383 | (substitute* "test/standard/base_test.rb" | ||
| 2384 | ((".*test_configures_all_rubocop_cops.*" all) | ||
| 2385 | (string-append all | ||
| 2386 | " skip('fails on guix')\n")))))))) | ||
| 2387 | (native-inputs | ||
| 2388 | (list ruby-simplecov)) | ||
| 2389 | (propagated-inputs | ||
| 2390 | (list ruby-language-server-protocol | ||
| 2391 | ruby-lint-roller | ||
| 2392 | ruby-rubocop | ||
| 2393 | ruby-rubocop-performance | ||
| 2394 | ruby-standard-custom | ||
| 2395 | ruby-standard-performance)) | ||
| 2396 | (synopsis "Ruby Style Guide, with linter & automatic code fixer") | ||
| 2397 | (description "Standard is a port of StandardJS. Like StandardJS, it aims | ||
| 2398 | to save time in the following ways: | ||
| 2399 | @itemize | ||
| 2400 | @item No configuration. | ||
| 2401 | @item Automatically format code. | ||
| 2402 | @item Catch style issues and programmer errors early. | ||
| 2403 | @end itemize") | ||
| 2404 | (home-page "https://github.com/testdouble/standard") | ||
| 2405 | (license license:expat))) | ||
| 2406 | |||
| 2407 | (define-public ruby-chunky-png | ||
| 2408 | (package | ||
| 2409 | (name "ruby-chunky-png") | ||
| 2410 | (version "1.4.0") | ||
| 2411 | (source | ||
| 2412 | (origin | ||
| 2413 | (method git-fetch) | ||
| 2414 | (uri (git-reference | ||
| 2415 | (url "https://github.com/wvanbergen/chunky_png") | ||
| 2416 | (commit (string-append "v" version)))) | ||
| 2417 | (file-name (git-file-name name version)) | ||
| 2418 | (sha256 | ||
| 2419 | (base32 "05qwj72dy2fcy0n2jnf3bfriybfj36m7s6pv9xash6295dbcp901")))) | ||
| 2420 | (build-system ruby-build-system) | ||
| 2421 | (arguments | ||
| 2422 | (list | ||
| 2423 | #:ruby ruby-3.1 | ||
| 2424 | #:test-target "spec" | ||
| 2425 | #:phases | ||
| 2426 | #~(modify-phases %standard-phases | ||
| 2427 | (add-after 'unpack 'disable-bundler | ||
| 2428 | (lambda _ | ||
| 2429 | (substitute* (find-files "." "\\.rb$") | ||
| 2430 | (("require.*bundler/setup.*") ""))))))) | ||
| 2431 | (native-inputs | ||
| 2432 | (list bundler ruby-rspec ruby-standard ruby-yard)) | ||
| 2433 | (synopsis "Ruby library to handle PNG images") | ||
| 2434 | (description "ChunkyPNG is a pure Ruby library that can read and write | ||
| 2435 | Portable Network Graphics (PNG) images without depending on an external image | ||
| 2436 | library. It tries to be memory efficient and reasonably fast. It has | ||
| 2437 | features such as: | ||
| 2438 | @itemize | ||
| 2439 | @item | ||
| 2440 | Decoding support for any image that the PNG standard allows. This includes all | ||
| 2441 | standard color modes, all bit depths, all transparency, and interlacing and | ||
| 2442 | filtering options. | ||
| 2443 | @item | ||
| 2444 | Encoding support for images of all color modes (true color, grayscale, and | ||
| 2445 | indexed) and transparency for all these color modes. The best color mode is | ||
| 2446 | chosen automatically, based on the amount of used colors. | ||
| 2447 | @item Read/write access to the image's pixels. | ||
| 2448 | @item Read/write access to all image metadata that is stored in chunks. | ||
| 2449 | @item | ||
| 2450 | Memory efficiency: @code{fixnum} are used, i.e. 4 or 8 bytes of memory per | ||
| 2451 | pixel, depending on the hardware). | ||
| 2452 | @item | ||
| 2453 | Performance: ChunkyPNG is reasonably fast for Ruby standards, by only using | ||
| 2454 | integer math and a highly optimized saving routine. | ||
| 2455 | @item Interoperability with RMagick. | ||
| 2456 | @end itemize | ||
| 2457 | |||
| 2458 | ChunkyPNG is vulnerable to decompression bombs and can run out of memory when | ||
| 2459 | loading a specifically crafted PNG file. This is hard to fix in pure Ruby. | ||
| 2460 | Deal with untrusted images in a separate process, e.g., by using @code{fork} | ||
| 2461 | or a background processing library.") | ||
| 2462 | (home-page "https://github.com/wvanbergen/chunky_png/wiki") | ||
| 2463 | (license license:expat))) | ||
| 2464 | |||
| 2465 | (define-public ruby-text-hyphen | ||
| 2466 | (package | ||
| 2467 | (name "ruby-text-hyphen") | ||
| 2468 | (version "1.5.0") | ||
| 2469 | (source | ||
| 2470 | (origin | ||
| 2471 | (method url-fetch) | ||
| 2472 | (uri (rubygems-uri "text-hyphen" version)) | ||
| 2473 | (sha256 | ||
| 2474 | (base32 | ||
| 2475 | "01js0wxz84cc5hzxgqbcqnsa0y6crhdi6plmgkzyfm55p0rlajn4")))) | ||
| 2476 | (build-system ruby-build-system) | ||
| 2477 | (native-inputs | ||
| 2478 | (list ruby-hoe)) | ||
| 2479 | (synopsis "Ruby library to hyphenate words in various languages") | ||
| 2480 | (description "Text::Hyphen is a Ruby library to hyphenate words in various | ||
| 2481 | languages using Ruby-fied versions of TeX hyphenation patterns. It will | ||
| 2482 | properly hyphenate various words according to the rules of the language the | ||
| 2483 | word is written in. The algorithm is based on that of the TeX typesetting | ||
| 2484 | system by Donald E. Knuth.") | ||
| 2485 | (home-page "https://github.com/halostatue/text-hyphen") | ||
| 2486 | ;; The whole is licensed under the Expat license, but parts use various | ||
| 2487 | ;; versions of the LaTeX Project Public License. | ||
| 2488 | (license license:expat))) | ||
| 2489 | |||
| 2490 | (define-public ruby-open-uri-cached | ||
| 2491 | (package | ||
| 2492 | (name "ruby-open-uri-cached") | ||
| 2493 | (version "1.0.0") | ||
| 2494 | (source | ||
| 2495 | (origin | ||
| 2496 | (method url-fetch) | ||
| 2497 | (uri (rubygems-uri "open-uri-cached" version)) | ||
| 2498 | (sha256 | ||
| 2499 | (base32 | ||
| 2500 | "03v0if3jlvbclnd6jgjk94fbhf0h2fq1wxr0mbx7018sxzm0biwr")))) | ||
| 2501 | (build-system ruby-build-system) | ||
| 2502 | (arguments | ||
| 2503 | `(#:tests? #f)) ;no test suite | ||
| 2504 | (synopsis "OpenURI with transparent disk caching") | ||
| 2505 | (description "OpenURI with transparent disk caching, which is | ||
| 2506 | useful to avoid making excessive queries, for example when scraping | ||
| 2507 | web pages.") | ||
| 2508 | (home-page "https://github.com/tigris/open-uri-cached") | ||
| 2509 | (license license:expat))) | ||
| 2510 | |||
| 2511 | (define-public ruby-asciidoctor-pdf | ||
| 2512 | (package | ||
| 2513 | (name "ruby-asciidoctor-pdf") | ||
| 2514 | (version "2.3.19") | ||
| 2515 | (source | ||
| 2516 | (origin | ||
| 2517 | (method git-fetch) ;no test suite in the distributed gem | ||
| 2518 | (uri (git-reference | ||
| 2519 | (url "https://github.com/asciidoctor/asciidoctor-pdf") | ||
| 2520 | (commit (string-append "v" version)))) | ||
| 2521 | (file-name (git-file-name name version)) | ||
| 2522 | (sha256 | ||
| 2523 | (base32 | ||
| 2524 | "1l8my8jj4aww2yad80n6f7hs76lq5gicld8dy014pw90pk3x43mp")) | ||
| 2525 | (patches | ||
| 2526 | (search-patches | ||
| 2527 | "ruby-asciidoctor-pdf-support-prawn-svg-0_36.patch")))) | ||
| 2528 | (build-system ruby-build-system) | ||
| 2529 | (arguments | ||
| 2530 | (list | ||
| 2531 | #:test-target "spec" | ||
| 2532 | #:phases | ||
| 2533 | #~(modify-phases %standard-phases | ||
| 2534 | ;; The tests rely on the Gem being installed, so move the check | ||
| 2535 | ;; phase after the install phase. | ||
| 2536 | (delete 'check) | ||
| 2537 | (add-after 'install 'check | ||
| 2538 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 2539 | (setenv "GEM_PATH" (string-append | ||
| 2540 | (getenv "GEM_PATH") ":" | ||
| 2541 | #$output "/lib/ruby/vendor_ruby")) | ||
| 2542 | (when tests? | ||
| 2543 | (invoke "rspec" "-t" "~visual" "-t" "~cli" | ||
| 2544 | "-t" "~network"))))))) | ||
| 2545 | (native-inputs | ||
| 2546 | (list ruby-chunky-png | ||
| 2547 | ruby-coderay | ||
| 2548 | ruby-pdf-inspector | ||
| 2549 | ruby-rouge | ||
| 2550 | ruby-rspec)) | ||
| 2551 | (propagated-inputs | ||
| 2552 | (list ruby-asciidoctor | ||
| 2553 | ruby-concurrent | ||
| 2554 | ruby-prawn | ||
| 2555 | ruby-prawn-icon | ||
| 2556 | ruby-prawn-svg | ||
| 2557 | ruby-prawn-table | ||
| 2558 | ruby-prawn-templates | ||
| 2559 | ruby-text-hyphen | ||
| 2560 | ruby-treetop | ||
| 2561 | ruby-ttfunk)) | ||
| 2562 | (synopsis"AsciiDoc to Portable Document Format (PDF)} converter") | ||
| 2563 | (description "Asciidoctor PDF is an extension for Asciidoctor that | ||
| 2564 | converts AsciiDoc documents to Portable Document Format (PDF) using the Prawn | ||
| 2565 | PDF library. It has features such as: | ||
| 2566 | @itemize | ||
| 2567 | @item Direct AsciiDoc to PDF conversion | ||
| 2568 | @item Configuration-driven theme (style and layout) | ||
| 2569 | @item Scalable Vector Graphics (SVG) support | ||
| 2570 | @item PDF document outline (i.e., bookmarks) | ||
| 2571 | @item Table of contents page(s) | ||
| 2572 | @item Document metadata (title, authors, subject, keywords, etc.) | ||
| 2573 | @item Internal cross reference links | ||
| 2574 | @item Syntax highlighting with Rouge, Pygments, or CodeRay | ||
| 2575 | @item Page numbering | ||
| 2576 | @item Customizable running content (header and footer) | ||
| 2577 | @item | ||
| 2578 | “Keep together” blocks (i.e., page breaks avoided in certain block content) | ||
| 2579 | @item Orphaned section titles avoided | ||
| 2580 | @item Autofit verbatim blocks (as permitted by base_font_size_min setting) | ||
| 2581 | @item Table border settings honored | ||
| 2582 | @item Font-based icons | ||
| 2583 | @item Custom TrueType (TTF) fonts | ||
| 2584 | @item Double-sided printing mode (margins alternate on recto and verso pages) | ||
| 2585 | @end itemize") | ||
| 2586 | (home-page "https://asciidoctor.org/docs/asciidoctor-pdf") | ||
| 2587 | (license license:expat))) | ||
| 2588 | |||
| 2589 | (define-public ruby-ast | ||
| 2590 | (package | ||
| 2591 | (name "ruby-ast") | ||
| 2592 | (version "2.4.2") | ||
| 2593 | (source | ||
| 2594 | (origin | ||
| 2595 | (method git-fetch) ;no test included in gem from v2.4.1 | ||
| 2596 | (uri (git-reference | ||
| 2597 | (url "https://github.com/whitequark/ast") | ||
| 2598 | (commit (string-append "v" version)))) | ||
| 2599 | (file-name (git-file-name name version)) | ||
| 2600 | (sha256 | ||
| 2601 | (base32 | ||
| 2602 | "0vm94yml8rknr7z034vg6s3fpx6lml2prz9fn3hr67cx0143bb4h")))) | ||
| 2603 | (build-system ruby-build-system) | ||
| 2604 | (arguments | ||
| 2605 | '(#:phases | ||
| 2606 | (modify-phases %standard-phases | ||
| 2607 | (add-after 'unpack 'remove-coveralls-requirement | ||
| 2608 | (lambda _ | ||
| 2609 | (substitute* "test/helper.rb" | ||
| 2610 | (("require 'coveralls'") "") | ||
| 2611 | (("Coveralls::SimpleCov::Formatter") "")))) | ||
| 2612 | (add-after 'extract-gemspec 'remove-unnecessary-requirements | ||
| 2613 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 2614 | (substitute* "ast.gemspec" | ||
| 2615 | ((".*coveralls.*") "\n") | ||
| 2616 | (("%q<rest-client>.*") "%q<rest-client>.freeze, [\">= 0\"])\n") | ||
| 2617 | (("%q<mime-types>.*") "%q<mime-types>.freeze, [\">= 0\"])\n") | ||
| 2618 | (("%q<rake>.*") "%q<rake>.freeze, [\">= 0\"])\n") | ||
| 2619 | (("12\\.3") "13.0"))))))) | ||
| 2620 | (native-inputs | ||
| 2621 | (list bundler | ||
| 2622 | ruby-bacon | ||
| 2623 | ruby-bacon-colored-output | ||
| 2624 | ruby-json-pure | ||
| 2625 | ruby-kramdown | ||
| 2626 | ruby-mime-types | ||
| 2627 | ruby-racc | ||
| 2628 | ruby-rest-client | ||
| 2629 | ruby-simplecov | ||
| 2630 | ruby-yard)) | ||
| 2631 | (synopsis "Library for working with Abstract Syntax Trees") | ||
| 2632 | (description | ||
| 2633 | "@code{ast} is a Ruby library for working with Abstract Syntax Trees. | ||
| 2634 | It does this through immutable data structures.") | ||
| 2635 | (home-page "https://whitequark.github.io/ast/") | ||
| 2636 | (license license:expat))) | ||
| 2637 | |||
| 2638 | (define-public ruby-sporkmonger-rack-mount | ||
| 2639 | ;; Testing the addressable gem requires a newer commit than that released, so | ||
| 2640 | ;; use an up to date version. | ||
| 2641 | (let ((revision "1") | ||
| 2642 | (commit "076aa2c47d9a4c081f1e9bcb56a826a9e72bd5c3")) | ||
| 2643 | (package | ||
| 2644 | (name "ruby-sporkmonger-rack-mount") | ||
| 2645 | (version (git-version "0.8.3" revision commit)) | ||
| 2646 | (source (origin | ||
| 2647 | (method git-fetch) | ||
| 2648 | (uri (git-reference | ||
| 2649 | (url "https://github.com/sporkmonger/rack-mount") | ||
| 2650 | (commit commit))) | ||
| 2651 | (file-name (git-file-name name version)) | ||
| 2652 | (sha256 | ||
| 2653 | (base32 | ||
| 2654 | "1scx273g3xd93424x9lxc4zyvcp2niknbw5mkz6wkivpf7xsyxdq")))) | ||
| 2655 | (build-system ruby-build-system) | ||
| 2656 | (arguments | ||
| 2657 | ;; Tests currently fail so disable them. | ||
| 2658 | ;; https://github.com/sporkmonger/rack-mount/pull/1 | ||
| 2659 | `(#:tests? #f)) | ||
| 2660 | (propagated-inputs (list ruby-rack)) | ||
| 2661 | (synopsis "Stackable dynamic tree based Rack router") | ||
| 2662 | (description | ||
| 2663 | "@code{Rack::Mount} supports Rack's @code{X-Cascade} convention to | ||
| 2664 | continue trying routes if the response returns pass. This allows multiple | ||
| 2665 | routes to be nested or stacked on top of each other.") | ||
| 2666 | (home-page "https://github.com/sporkmonger/rack-mount") | ||
| 2667 | (license license:expat)))) | ||
| 2668 | |||
| 2669 | (define-public ruby-ci-reporter | ||
| 2670 | (package | ||
| 2671 | (name "ruby-ci-reporter") | ||
| 2672 | (version "2.1.0") | ||
| 2673 | (source (origin | ||
| 2674 | (method url-fetch) | ||
| 2675 | (uri (rubygems-uri "ci_reporter" version)) | ||
| 2676 | (sha256 | ||
| 2677 | (base32 | ||
| 2678 | "0qcafasmjjr8a5gzr4k92ncm6h2943skwllhjzwz8spawdwc7dla")))) | ||
| 2679 | (build-system ruby-build-system) | ||
| 2680 | (arguments | ||
| 2681 | `(#:test-target "rspec")) | ||
| 2682 | (propagated-inputs | ||
| 2683 | (list ruby-builder ruby-rexml)) | ||
| 2684 | (native-inputs | ||
| 2685 | (list bundler ruby-rspec)) | ||
| 2686 | (synopsis "Generate XML reports of runs test") | ||
| 2687 | (description | ||
| 2688 | "@code{CI::Reporter} is an add-on to Ruby testing frameworks that allows | ||
| 2689 | you to generate XML reports of your test runs. The resulting files can be | ||
| 2690 | read by a continuous integration system that understands Ant's JUnit report | ||
| 2691 | format.") | ||
| 2692 | (home-page "https://github.com/nicksieger/ci_reporter") | ||
| 2693 | (license license:expat))) | ||
| 2694 | |||
| 2695 | (define-public ruby-console | ||
| 2696 | (package | ||
| 2697 | (name "ruby-console") | ||
| 2698 | (version "1.16.2") | ||
| 2699 | (source (origin | ||
| 2700 | (method url-fetch) | ||
| 2701 | (uri (rubygems-uri "console" version)) | ||
| 2702 | (sha256 | ||
| 2703 | (base32 | ||
| 2704 | "0y1bv3kd1l9p0k5n3anvvjxdrcq113pyngz2g29i9mvdgbbx7kq2")))) | ||
| 2705 | (build-system ruby-build-system) | ||
| 2706 | ;; XXX: Disable test suite to avoid dependency cycles with ruby-samovar. | ||
| 2707 | (arguments (list #:tests? #f)) | ||
| 2708 | (propagated-inputs (list ruby-fiber-local)) | ||
| 2709 | (synopsis "Console logging library for Ruby") | ||
| 2710 | (description "This gem provides beautiful console logging for Ruby | ||
| 2711 | applications. It implements fast, buffered log output and has the following | ||
| 2712 | features: | ||
| 2713 | @itemize | ||
| 2714 | @item Thread safe global logger with per-fiber context | ||
| 2715 | @item Carry along context with nested loggers | ||
| 2716 | @item Enable/disable log levels per class | ||
| 2717 | @item Detailed logging of exceptions | ||
| 2718 | @item Beautiful logging to the terminal or structured logging using JSON. | ||
| 2719 | @end itemize") | ||
| 2720 | (home-page "https://github.com/socketry/console") | ||
| 2721 | (license license:expat))) | ||
| 2722 | |||
| 2723 | (define-public ruby-contracts | ||
| 2724 | (package | ||
| 2725 | (name "ruby-contracts") | ||
| 2726 | (version "0.17.2") | ||
| 2727 | (source | ||
| 2728 | (origin | ||
| 2729 | (method url-fetch) | ||
| 2730 | (uri (rubygems-uri "contracts" version)) | ||
| 2731 | (sha256 | ||
| 2732 | (base32 | ||
| 2733 | "1sclvlwnlxfaj1595xd0rn3x3w0ljic3vqgnx6476lr7x8xbpbiv")))) | ||
| 2734 | (build-system ruby-build-system) | ||
| 2735 | (arguments | ||
| 2736 | (list | ||
| 2737 | #:test-target "spec" | ||
| 2738 | #:phases | ||
| 2739 | #~(modify-phases %standard-phases | ||
| 2740 | ;; Don't run or require rubocop, the code linting tool, as this is a | ||
| 2741 | ;; bit unnecessary. | ||
| 2742 | (add-after 'unpack 'dont-run-rubocop | ||
| 2743 | (lambda _ | ||
| 2744 | (substitute* "Rakefile" | ||
| 2745 | ((".*rubocop.*") "") | ||
| 2746 | ((".*RuboCop.*") ""))))))) | ||
| 2747 | (native-inputs | ||
| 2748 | (list ruby-rspec)) | ||
| 2749 | (synopsis "Method contracts for Ruby") | ||
| 2750 | (description | ||
| 2751 | "This library provides contracts for Ruby. A contract describes the | ||
| 2752 | correct inputs and output for a method, and will raise an error if a incorrect | ||
| 2753 | value is found.") | ||
| 2754 | (home-page "https://github.com/egonSchiele/contracts.ruby") | ||
| 2755 | (license license:bsd-2))) | ||
| 2756 | |||
| 2757 | (define-public ruby-crack | ||
| 2758 | (package | ||
| 2759 | (name "ruby-crack") | ||
| 2760 | (version "0.4.5") | ||
| 2761 | (source | ||
| 2762 | (origin | ||
| 2763 | (method url-fetch) | ||
| 2764 | (uri (rubygems-uri "crack" version)) | ||
| 2765 | (sha256 | ||
| 2766 | (base32 | ||
| 2767 | "1cr1kfpw3vkhysvkk3wg7c54m75kd68mbm9rs5azdjdq57xid13r")))) | ||
| 2768 | (build-system ruby-build-system) | ||
| 2769 | (arguments | ||
| 2770 | `(#:phases | ||
| 2771 | (modify-phases %standard-phases | ||
| 2772 | (replace 'check | ||
| 2773 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 2774 | (when tests? | ||
| 2775 | (for-each (lambda (file) | ||
| 2776 | (display file)(display "\n") | ||
| 2777 | (invoke "ruby" "-Ilib" "-Itest" "-rrubygems" file)) | ||
| 2778 | (find-files "test" ".*rb$")))))))) | ||
| 2779 | (synopsis "Simple JSON and XML parsing for Ruby") | ||
| 2780 | (description | ||
| 2781 | "@code{crack} provides really simple JSON and XML parsing, extracted from | ||
| 2782 | code in Merb and Rails.") | ||
| 2783 | (home-page "https://github.com/jnunemaker/crack") | ||
| 2784 | (license license:expat))) | ||
| 2785 | |||
| 2786 | (define-public ruby-clamp | ||
| 2787 | (package | ||
| 2788 | (name "ruby-clamp") | ||
| 2789 | (version "1.3.2") | ||
| 2790 | (source (origin | ||
| 2791 | (method url-fetch) | ||
| 2792 | (uri (rubygems-uri "clamp" version)) | ||
| 2793 | (sha256 | ||
| 2794 | (base32 | ||
| 2795 | "08m0syh06bhx8dqn560ivjg96l5cs5s3l9jh2szsnlcdcyl9jsjg")))) | ||
| 2796 | (build-system ruby-build-system) | ||
| 2797 | (arguments | ||
| 2798 | (list #:test-target "spec" | ||
| 2799 | #:phases #~(modify-phases %standard-phases | ||
| 2800 | (add-after 'unpack 'do-not-require-rubocop | ||
| 2801 | (lambda _ | ||
| 2802 | (substitute* "Rakefile" | ||
| 2803 | (("require \"rubocop/rake_task\"") | ||
| 2804 | "") | ||
| 2805 | (("RuboCop::RakeTask.new") | ||
| 2806 | ""))))))) | ||
| 2807 | (native-inputs (list ruby-rspec)) | ||
| 2808 | (synopsis "Command-line parsing library for Ruby") | ||
| 2809 | (description "Clamp provides an object-model for command-line utilities. | ||
| 2810 | It handles parsing of command-line options, and generation of usage help.") | ||
| 2811 | (home-page "https://github.com/mdub/clamp") | ||
| 2812 | (license license:expat))) | ||
| 2813 | |||
| 2814 | (define-public ruby-cliver | ||
| 2815 | (package | ||
| 2816 | (name "ruby-cliver") | ||
| 2817 | (version "0.3.2") | ||
| 2818 | (source | ||
| 2819 | (origin | ||
| 2820 | (method url-fetch) | ||
| 2821 | (uri (rubygems-uri "cliver" version)) | ||
| 2822 | (sha256 | ||
| 2823 | (base32 | ||
| 2824 | "096f4rj7virwvqxhkavy0v55rax10r4jqf8cymbvn4n631948xc7")))) | ||
| 2825 | (build-system ruby-build-system) | ||
| 2826 | (arguments | ||
| 2827 | '(#:phases | ||
| 2828 | (modify-phases %standard-phases | ||
| 2829 | ;; Avoid a incompatibility between rspec@2 and rake. Using rspec@3 | ||
| 2830 | ;; would be nice, but the tests look to be incompatible: | ||
| 2831 | ;; | ||
| 2832 | ;; NoMethodError: undefined method `last_comment' | ||
| 2833 | (replace 'check | ||
| 2834 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 2835 | (when tests? | ||
| 2836 | (invoke "rspec"))))))) | ||
| 2837 | (native-inputs | ||
| 2838 | (list bundler ruby-rspec-2)) | ||
| 2839 | (synopsis "Assertions for command-line dependencies in Ruby") | ||
| 2840 | (description | ||
| 2841 | "@code{cliver} provides a way to detect missing command-line | ||
| 2842 | dependencies, including versions.") | ||
| 2843 | (home-page "https://github.com/yaauie/cliver") | ||
| 2844 | (license license:expat))) | ||
| 2845 | |||
| 2846 | (define-public ruby-czmq-ffi-gen | ||
| 2847 | (package | ||
| 2848 | (name "ruby-czmq-ffi-gen") | ||
| 2849 | (version "0.13.0") | ||
| 2850 | (source | ||
| 2851 | (origin | ||
| 2852 | (method url-fetch) | ||
| 2853 | (uri (rubygems-uri "czmq-ffi-gen" version)) | ||
| 2854 | (sha256 | ||
| 2855 | (base32 | ||
| 2856 | "1yf719dmf4mwks1hqdsy6i5kzfvlsha69sfnhb2fr2cgk2snbys3")))) | ||
| 2857 | (build-system ruby-build-system) | ||
| 2858 | (arguments | ||
| 2859 | '(#:tests? #f ;; Tests are not included in the release on rubygems.org | ||
| 2860 | #:phases | ||
| 2861 | (modify-phases %standard-phases | ||
| 2862 | (add-after 'unpack 'patch-lib_dirs | ||
| 2863 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 2864 | (substitute* "lib/czmq-ffi-gen/czmq/ffi.rb" | ||
| 2865 | (("lib\\_dirs = \\[.*\\]") | ||
| 2866 | (string-append "lib_dirs = ['" | ||
| 2867 | (assoc-ref inputs "czmq") "/lib" | ||
| 2868 | "']"))) | ||
| 2869 | (substitute* "lib/czmq-ffi-gen/libzmq.rb" | ||
| 2870 | (("lib\\_dirs = \\[.*\\]") | ||
| 2871 | (string-append "lib_dirs = ['" | ||
| 2872 | (assoc-ref inputs "zeromq") "/lib" | ||
| 2873 | "']")))))))) | ||
| 2874 | (inputs | ||
| 2875 | (list zeromq czmq)) | ||
| 2876 | (propagated-inputs (list ruby-ffi)) | ||
| 2877 | (synopsis "Low-level Ruby bindings for CZMQ (generated using zproject)") | ||
| 2878 | (description | ||
| 2879 | "These Ruby bindings are not intended to be directly used, but rather | ||
| 2880 | used by higher level bindings like those provided by CZTop.") | ||
| 2881 | (home-page | ||
| 2882 | "https://github.com/paddor/czmq-ffi-gen") | ||
| 2883 | (license license:isc))) | ||
| 2884 | |||
| 2885 | (define-public ruby-cztop | ||
| 2886 | (package | ||
| 2887 | (name "ruby-cztop") | ||
| 2888 | (version "0.12.2") | ||
| 2889 | (source | ||
| 2890 | (origin | ||
| 2891 | (method url-fetch) | ||
| 2892 | (uri (rubygems-uri "cztop" version)) | ||
| 2893 | (sha256 | ||
| 2894 | (base32 | ||
| 2895 | "0yqbpaiw5d7f271d73lyrsh8xpx6n4zi6xqwfgi00dacxrq3s3fa")))) | ||
| 2896 | (build-system ruby-build-system) | ||
| 2897 | (arguments | ||
| 2898 | '(#:test-target "spec" | ||
| 2899 | #:phases | ||
| 2900 | (modify-phases %standard-phases | ||
| 2901 | (add-after 'unpack 'patch-lib_paths | ||
| 2902 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 2903 | (substitute* "lib/cztop/poller/zmq.rb" | ||
| 2904 | (("lib\\_paths = \\[.*\\]") | ||
| 2905 | (string-append "lib_paths = ['" | ||
| 2906 | (assoc-ref inputs "zeromq") "/lib" | ||
| 2907 | "']")))))))) | ||
| 2908 | (native-inputs | ||
| 2909 | (list bundler ruby-rspec)) | ||
| 2910 | (inputs | ||
| 2911 | (list zeromq)) | ||
| 2912 | (propagated-inputs | ||
| 2913 | (list ruby-czmq-ffi-gen)) | ||
| 2914 | (synopsis "CZMQ Ruby bindings") | ||
| 2915 | (description | ||
| 2916 | "CZMQ Ruby bindings, based on the generated low-level FFI bindings of | ||
| 2917 | CZMQ. The focus of of CZTop is on being easy to use and providing first class | ||
| 2918 | support for security mechanisms.") | ||
| 2919 | (home-page "https://github.com/paddor/cztop") | ||
| 2920 | (license license:isc))) | ||
| 2921 | |||
| 2922 | (define-public ruby-saikuro-treemap | ||
| 2923 | (package | ||
| 2924 | (name "ruby-saikuro-treemap") | ||
| 2925 | (version "0.2.0") | ||
| 2926 | (source (origin | ||
| 2927 | (method url-fetch) | ||
| 2928 | (uri (rubygems-uri "saikuro_treemap" version)) | ||
| 2929 | (sha256 | ||
| 2930 | (base32 | ||
| 2931 | "0w70nmh43mwfbpq20iindl61siqqr8acmf7p3m7n5ipd61c24950")))) | ||
| 2932 | (build-system ruby-build-system) | ||
| 2933 | ;; Some of the tests fail because the generated JSON has keys in a | ||
| 2934 | ;; different order. This is a problem with the test suite rather than any | ||
| 2935 | ;; of the involved libraries. | ||
| 2936 | (arguments `(#:tests? #f)) | ||
| 2937 | (propagated-inputs | ||
| 2938 | (list ruby-json-pure ruby-atoulme-saikuro)) | ||
| 2939 | (synopsis "Generate complexity treemap based on saikuro analysis") | ||
| 2940 | (description | ||
| 2941 | "This gem generates a treemap showing the complexity of Ruby code on | ||
| 2942 | which it is run. It uses Saikuro under the covers to analyze Ruby code | ||
| 2943 | complexity.") | ||
| 2944 | (home-page "https://github.com/ThoughtWorksStudios/saikuro_treemap") | ||
| 2945 | (license license:expat))) | ||
| 2946 | |||
| 2947 | (define-public ruby-oauth2 | ||
| 2948 | (package | ||
| 2949 | (name "ruby-oauth2") | ||
| 2950 | (version "2.0.9") | ||
| 2951 | (source (origin | ||
| 2952 | (method git-fetch) ;for tests | ||
| 2953 | (uri (git-reference | ||
| 2954 | (url "https://gitlab.com/oauth-xx/oauth2") | ||
| 2955 | (commit (string-append "v" version)))) | ||
| 2956 | (file-name (git-file-name name version)) | ||
| 2957 | (sha256 | ||
| 2958 | (base32 | ||
| 2959 | "191j1f4gjw8wij1jy2fvddgi8cv1mm0ki7v0b0795clix1avnj29")))) | ||
| 2960 | (build-system ruby-build-system) | ||
| 2961 | (arguments | ||
| 2962 | (list #:modules '((guix build ruby-build-system) | ||
| 2963 | (guix build utils) | ||
| 2964 | (ice-9 regex) | ||
| 2965 | (ice-9 textual-ports)) | ||
| 2966 | #:phases | ||
| 2967 | #~(modify-phases %standard-phases | ||
| 2968 | (add-after 'unpack 'relax-requirements | ||
| 2969 | (lambda _ | ||
| 2970 | (substitute* "Gemfile" | ||
| 2971 | (("^linting = .*") | ||
| 2972 | "linting = false\n") | ||
| 2973 | (("^coverage = .*") | ||
| 2974 | "coverage = false\n") | ||
| 2975 | (("^debug = .*") | ||
| 2976 | "debug = false\n")) | ||
| 2977 | (substitute* "spec/spec_helper.rb" | ||
| 2978 | (("^RUN_COVERAGE = .*") | ||
| 2979 | "RUN_COVERAGE = false\n") | ||
| 2980 | (("^ALL_FORMATTERS = .*") | ||
| 2981 | "ALL_FORMATTERS = false\n")))) | ||
| 2982 | (add-after 'unpack 'skip-problematic-test | ||
| 2983 | (lambda _ | ||
| 2984 | ;; XXX: substitute* can't match 2 lines. | ||
| 2985 | (with-atomic-file-replacement | ||
| 2986 | "spec/oauth2/client_spec.rb" | ||
| 2987 | (lambda (in out) | ||
| 2988 | (let* ((pattern "\ | ||
| 2989 | context 'when parse: :xml but response is JSON' do\n\ | ||
| 2990 | it 'returns a configured AccessToken' do\n") | ||
| 2991 | (content (get-string-all in)) | ||
| 2992 | (matched (string-match pattern content))) | ||
| 2993 | (if matched | ||
| 2994 | (format out "~a skip('fails on guix')~%~a" | ||
| 2995 | (string-take content (match:end matched)) | ||
| 2996 | (string-drop content (match:end matched))) | ||
| 2997 | (display content out)))))))))) | ||
| 2998 | (native-inputs | ||
| 2999 | (list bundler | ||
| 3000 | ruby-addressable | ||
| 3001 | ruby-backports | ||
| 3002 | ruby-rexml | ||
| 3003 | ruby-rspec-block-is-expected | ||
| 3004 | ruby-rspec-pending-for | ||
| 3005 | ruby-rspec-stubbed-env | ||
| 3006 | ruby-silent-stream)) | ||
| 3007 | (propagated-inputs | ||
| 3008 | (list ruby-faraday | ||
| 3009 | ruby-jwt | ||
| 3010 | ruby-multi-xml | ||
| 3011 | ruby-rack | ||
| 3012 | ruby-snaky-hash | ||
| 3013 | ruby-version-gem)) | ||
| 3014 | (synopsis "Ruby wrapper for the OAuth 2.0") | ||
| 3015 | (description | ||
| 3016 | "This package provides a Ruby wrapper for the OAuth 2.0 protocol built | ||
| 3017 | with a similar style to the original OAuth spec.") | ||
| 3018 | (home-page "https://github.com/oauth-xx/oauth2") | ||
| 3019 | (license license:expat))) | ||
| 3020 | |||
| 3021 | (define-public ruby-omniauth | ||
| 3022 | (package | ||
| 3023 | (name "ruby-omniauth") | ||
| 3024 | (version "2.1.1") | ||
| 3025 | (source (origin | ||
| 3026 | (method git-fetch) ;for tests | ||
| 3027 | (uri (git-reference | ||
| 3028 | (url "https://github.com/omniauth/omniauth") | ||
| 3029 | (commit (string-append "v" version)))) | ||
| 3030 | (file-name (git-file-name name version)) | ||
| 3031 | (sha256 | ||
| 3032 | (base32 | ||
| 3033 | "1mm7a4ll7ymamrbsl63yi6i34qpwmh2nh5a9kj961gja1iz2gyd1")))) | ||
| 3034 | (build-system ruby-build-system) | ||
| 3035 | (arguments | ||
| 3036 | (list #:phases | ||
| 3037 | #~(modify-phases %standard-phases | ||
| 3038 | (add-after 'unpack 'relax-requirements | ||
| 3039 | (lambda _ | ||
| 3040 | (substitute* "spec/helper.rb" | ||
| 3041 | ;; This condition is used to require coveralls and | ||
| 3042 | ;; simplecov; override it to avoid these extraneous | ||
| 3043 | ;; requirements. | ||
| 3044 | (("RUBY_VERSION >= '1.9'") | ||
| 3045 | "false") | ||
| 3046 | (("require 'rack/freeze'") ""))))))) | ||
| 3047 | (native-inputs (list ruby-rspec)) | ||
| 3048 | (propagated-inputs (list ruby-hashie ruby-rack ruby-rack-test | ||
| 3049 | ruby-rack-protection)) | ||
| 3050 | (synopsis "Generalized Rack framework for multiple-provider authentication") | ||
| 3051 | (description | ||
| 3052 | "This package provides a generalized Rack framework for multiple-provider | ||
| 3053 | authentication.") | ||
| 3054 | (home-page "https://github.com/omniauth/omniauth") | ||
| 3055 | (license license:expat))) | ||
| 3056 | |||
| 3057 | (define-public ruby-omniauth-oauth2 | ||
| 3058 | (package | ||
| 3059 | (name "ruby-omniauth-oauth2") | ||
| 3060 | (version "1.8.0") | ||
| 3061 | (source | ||
| 3062 | (origin | ||
| 3063 | (method url-fetch) | ||
| 3064 | (uri (rubygems-uri "omniauth-oauth2" version)) | ||
| 3065 | (sha256 | ||
| 3066 | (base32 | ||
| 3067 | "0y4y122xm8zgrxn5nnzwg6w39dnjss8pcq2ppbpx9qn7kiayky5j")))) | ||
| 3068 | (build-system ruby-build-system) | ||
| 3069 | (arguments | ||
| 3070 | (list #:phases | ||
| 3071 | #~(modify-phases %standard-phases | ||
| 3072 | (add-after 'unpack 'relax-requirements | ||
| 3073 | (lambda _ | ||
| 3074 | (substitute* "spec/helper.rb" | ||
| 3075 | ;; This condition is used to require coveralls and | ||
| 3076 | ;; simplecov; override it to avoid these extraneous | ||
| 3077 | ;; requirements. | ||
| 3078 | (("RUBY_VERSION >= \"1.9\"") | ||
| 3079 | "false"))))))) | ||
| 3080 | (propagated-inputs (list ruby-oauth2 ruby-omniauth)) | ||
| 3081 | (native-inputs (list ruby-rspec ruby-rack-test ruby-webmock)) | ||
| 3082 | (synopsis "Abstract OAuth2 strategy for OmniAuth") | ||
| 3083 | (description | ||
| 3084 | "This library provides a generic OAuth2 strategy for OmniAuth. It | ||
| 3085 | doesn't provide a way to gather user information, so should be used as a | ||
| 3086 | building block for authentication strategies.") | ||
| 3087 | (home-page "https://github.com/omniauth/omniauth-oauth2") | ||
| 3088 | (license license:expat))) | ||
| 3089 | |||
| 3090 | (define-public ruby-open4 | ||
| 3091 | (package | ||
| 3092 | (name "ruby-open4") | ||
| 3093 | (version "1.3.4") | ||
| 3094 | (source | ||
| 3095 | (origin | ||
| 3096 | (method url-fetch) | ||
| 3097 | (uri (rubygems-uri "open4" version)) | ||
| 3098 | (sha256 | ||
| 3099 | (base32 | ||
| 3100 | "1cgls3f9dlrpil846q0w7h66vsc33jqn84nql4gcqkk221rh7px1")))) | ||
| 3101 | (build-system ruby-build-system) | ||
| 3102 | (arguments | ||
| 3103 | '(#:phases | ||
| 3104 | (modify-phases %standard-phases | ||
| 3105 | (add-after 'unpack 'patch | ||
| 3106 | (lambda _ | ||
| 3107 | (substitute* "rakefile" | ||
| 3108 | ;; Update the Rakefile so it works | ||
| 3109 | (("-rubygems") "-rrubygems") | ||
| 3110 | (("Config") "RbConfig")))) | ||
| 3111 | (add-before 'check 'set-LIB | ||
| 3112 | (lambda _ | ||
| 3113 | ;; This is used in the rakefile when running the tests | ||
| 3114 | (setenv "LIB" "open4")))))) | ||
| 3115 | (synopsis "Open child processes from Ruby and manage them easily") | ||
| 3116 | (description | ||
| 3117 | "@code{Open4} is a Ruby library to run child processes and manage their | ||
| 3118 | input and output.") | ||
| 3119 | (home-page "https://github.com/ahoward/open4") | ||
| 3120 | (license license:ruby))) | ||
| 3121 | |||
| 3122 | (define-public ruby-options | ||
| 3123 | (package | ||
| 3124 | (name "ruby-options") | ||
| 3125 | (version "2.3.2") | ||
| 3126 | (source | ||
| 3127 | (origin | ||
| 3128 | (method url-fetch) | ||
| 3129 | (uri (rubygems-uri "options" version)) | ||
| 3130 | (sha256 | ||
| 3131 | (base32 | ||
| 3132 | "1s650nwnabx66w584m1cyw82icyym6hv5kzfsbp38cinkr5klh9j")))) | ||
| 3133 | (build-system ruby-build-system) | ||
| 3134 | (arguments | ||
| 3135 | '(#:tests? #f ;; TODO: NameError: uninitialized constant Config | ||
| 3136 | #:phases | ||
| 3137 | (modify-phases %standard-phases | ||
| 3138 | (add-before 'check 'set-LIB | ||
| 3139 | (lambda _ | ||
| 3140 | ;; This is used in the Rakefile, and setting it avoids an issue | ||
| 3141 | ;; with running the tests. | ||
| 3142 | (setenv "LIB" "options")))))) | ||
| 3143 | (synopsis "Ruby library to parse options from *args cleanly") | ||
| 3144 | (description | ||
| 3145 | "The @code{options} library helps with parsing keyword options in Ruby | ||
| 3146 | functions.") | ||
| 3147 | (home-page "https://github.com/ahoward/options") | ||
| 3148 | (license license:ruby))) | ||
| 3149 | |||
| 3150 | (define-public ruby-erubi | ||
| 3151 | (package | ||
| 3152 | (name "ruby-erubi") | ||
| 3153 | (version "1.11.0") | ||
| 3154 | (source | ||
| 3155 | (origin | ||
| 3156 | (method git-fetch) | ||
| 3157 | (uri (git-reference | ||
| 3158 | (url "https://github.com/jeremyevans/erubi") | ||
| 3159 | (commit version))) | ||
| 3160 | (file-name (git-file-name name version)) | ||
| 3161 | (sha256 | ||
| 3162 | (base32 "0y4qskz260fjwbnjps5z5yygjwgh6ds0f97lfa9gsmh6zqa1lvvx")))) | ||
| 3163 | (build-system ruby-build-system) | ||
| 3164 | (arguments | ||
| 3165 | (list #:test-target "spec")) | ||
| 3166 | (native-inputs (list ruby-minitest | ||
| 3167 | ruby-minitest-global-expectations)) | ||
| 3168 | (synopsis "ERB template engine for Ruby") | ||
| 3169 | (description | ||
| 3170 | "Erubi is a ERB template engine for Ruby. It is a simplified fork of | ||
| 3171 | Erubis") | ||
| 3172 | (home-page "https://github.com/jeremyevans/erubi") | ||
| 3173 | (license license:expat))) | ||
| 3174 | |||
| 3175 | (define-public ruby-erubis | ||
| 3176 | (package | ||
| 3177 | (name "ruby-erubis") | ||
| 3178 | (version "2.7.0") | ||
| 3179 | (source | ||
| 3180 | (origin | ||
| 3181 | (method url-fetch) | ||
| 3182 | (uri (rubygems-uri "erubis" version)) | ||
| 3183 | (sha256 | ||
| 3184 | (base32 | ||
| 3185 | "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3")))) | ||
| 3186 | (build-system ruby-build-system) | ||
| 3187 | (arguments | ||
| 3188 | '(#:tests? #f)) ; tests do not run properly with Ruby 2.0 | ||
| 3189 | (synopsis "Implementation of embedded Ruby (eRuby)") | ||
| 3190 | (description | ||
| 3191 | "Erubis is a fast implementation of embedded Ruby (eRuby) with several | ||
| 3192 | features such as multi-language support, auto escaping, auto trimming spaces | ||
| 3193 | around @code{<% %>}, a changeable embedded pattern, and Ruby on Rails | ||
| 3194 | support.") | ||
| 3195 | (home-page "http://www.kuwata-lab.com/erubis/") | ||
| 3196 | (license license:expat))) | ||
| 3197 | |||
| 3198 | (define-public ruby-ethon | ||
| 3199 | (package | ||
| 3200 | (name "ruby-ethon") | ||
| 3201 | (version "0.12.0") | ||
| 3202 | (source | ||
| 3203 | (origin | ||
| 3204 | (method url-fetch) | ||
| 3205 | (uri (rubygems-uri "ethon" version)) | ||
| 3206 | (sha256 | ||
| 3207 | (base32 | ||
| 3208 | "0gggrgkcq839mamx7a8jbnp2h7x2ykfn34ixwskwb0lzx2ak17g9")))) | ||
| 3209 | (build-system ruby-build-system) | ||
| 3210 | (arguments | ||
| 3211 | (list | ||
| 3212 | #:tests? #f ; no included tests | ||
| 3213 | #:phases | ||
| 3214 | #~(modify-phases %standard-phases | ||
| 3215 | (add-after 'unpack 'libcurl-use-absolute-reference | ||
| 3216 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 3217 | (substitute* "lib/ethon/curls/settings.rb" | ||
| 3218 | (("libcurl', 'libcurl\\.so\\.4") | ||
| 3219 | (search-input-file inputs "/lib/libcurl.so")))))))) | ||
| 3220 | (inputs | ||
| 3221 | (list curl)) | ||
| 3222 | (propagated-inputs | ||
| 3223 | (list ruby-ffi)) | ||
| 3224 | (synopsis "Very lightweight @code{libcurl} wrapper") | ||
| 3225 | (description | ||
| 3226 | "Ethon is a very basic @code{libcurl} wrapper using ffi.") | ||
| 3227 | (home-page "https://github.com/typhoeus/ethon") | ||
| 3228 | (license license:expat))) | ||
| 3229 | |||
| 3230 | (define-public ruby-execjs | ||
| 3231 | (package | ||
| 3232 | (name "ruby-execjs") | ||
| 3233 | (version "2.7.0") | ||
| 3234 | (source | ||
| 3235 | (origin | ||
| 3236 | ;; fetch from github as the gem does not contain testing code | ||
| 3237 | (method git-fetch) | ||
| 3238 | (uri (git-reference | ||
| 3239 | (url "https://github.com/rails/execjs") | ||
| 3240 | (commit (string-append "v" version)))) | ||
| 3241 | (file-name (git-file-name name version)) | ||
| 3242 | (sha256 | ||
| 3243 | (base32 | ||
| 3244 | "0c0vd2mmqq3ar4plbwi2wsbr31vn4h45i19r5km66skydnnbp1y6")))) | ||
| 3245 | (build-system ruby-build-system) | ||
| 3246 | (native-inputs | ||
| 3247 | (list bundler | ||
| 3248 | ;; The test suite tests all the available backends. Currently, this just | ||
| 3249 | ;; means the node backend. | ||
| 3250 | ;; | ||
| 3251 | ;; PASSED: test:node | ||
| 3252 | ;; SKIPPED: test:duktape, ;; test:javascriptcore, test:jscript, | ||
| 3253 | ;; test:miniracer, test:rubyracer, ;; test:rubyrhino, test:v8 | ||
| 3254 | node-lts)) | ||
| 3255 | (synopsis "Run JavaScript code from Ruby") | ||
| 3256 | (description | ||
| 3257 | "ExecJS lets you run JavaScript code from Ruby. It automatically picks a | ||
| 3258 | runtime to evaluate your JavaScript program, then returns the result to you as | ||
| 3259 | a Ruby object.") | ||
| 3260 | (home-page "https://github.com/rails/execjs") | ||
| 3261 | (license license:expat))) | ||
| 3262 | |||
| 3263 | (define-public ruby-fakefs | ||
| 3264 | (package | ||
| 3265 | (name "ruby-fakefs") | ||
| 3266 | (version "2.8.0") | ||
| 3267 | (home-page "https://github.com/fakefs/fakefs") | ||
| 3268 | (source (origin | ||
| 3269 | ;; The Rubygems release does not contain tests. | ||
| 3270 | (method git-fetch) | ||
| 3271 | (uri (git-reference | ||
| 3272 | (url home-page) | ||
| 3273 | (commit (string-append "v" version)))) | ||
| 3274 | (file-name (git-file-name name version)) | ||
| 3275 | (sha256 | ||
| 3276 | (base32 | ||
| 3277 | "0a3vq6cllml279j77hxipmbln31pjw6di3zdgpzqvhqgazv55v10")))) | ||
| 3278 | (build-system ruby-build-system) | ||
| 3279 | (arguments | ||
| 3280 | '(#:phases (modify-phases %standard-phases | ||
| 3281 | (replace 'replace-git-ls-files | ||
| 3282 | (lambda _ | ||
| 3283 | (substitute* "fakefs.gemspec" | ||
| 3284 | (("`git ls-files lib README.md LICENSE`") | ||
| 3285 | "`find lib README.md LICENSE -type f | sort`")))) | ||
| 3286 | (add-before 'check 'remove-version-constraints | ||
| 3287 | (lambda _ | ||
| 3288 | ;; Drop hard version requirements for test dependencies. | ||
| 3289 | (substitute* "fakefs.gemspec" | ||
| 3290 | (("(.*add_development_dependency .*), .*" _ dep) | ||
| 3291 | (string-append dep "\n")))))))) | ||
| 3292 | (native-inputs | ||
| 3293 | (list ruby-bump ruby-maxitest ruby-pry ruby-rubocop ruby-rspec)) | ||
| 3294 | (synopsis "Fake file system for Ruby") | ||
| 3295 | (description | ||
| 3296 | "This package provides a fake file system for use in test suites. It | ||
| 3297 | avoids the need for manually creating temporary directories, or dealing | ||
| 3298 | with platform intricacies in @code{File} and @code{FileUtils}.") | ||
| 3299 | (license license:expat))) | ||
| 3300 | |||
| 3301 | (define-public ruby-orderedhash | ||
| 3302 | (package | ||
| 3303 | (name "ruby-orderedhash") | ||
| 3304 | (version "0.0.6") | ||
| 3305 | (source (origin | ||
| 3306 | (method url-fetch) | ||
| 3307 | (uri (rubygems-uri "orderedhash" version)) | ||
| 3308 | (sha256 | ||
| 3309 | (base32 | ||
| 3310 | "0fryy7f9jbpx33jq5m402yqj01zcg563k9fsxlqbhmq638p4bzd7")))) | ||
| 3311 | (build-system ruby-build-system) | ||
| 3312 | (arguments | ||
| 3313 | '(#:tests? #f)) ; no test suite | ||
| 3314 | (synopsis "Ruby library providing an order-preserving hash") | ||
| 3315 | (description "Orderedhash is a Ruby library providing a hash | ||
| 3316 | implementation that preserves the order of items and features some array-like | ||
| 3317 | extensions.") | ||
| 3318 | (home-page "http://codeforpeople.com/lib/ruby/orderedhash/") | ||
| 3319 | (license license:public-domain))) | ||
| 3320 | |||
| 3321 | (define-public ruby-libxml | ||
| 3322 | (package | ||
| 3323 | (name "ruby-libxml") | ||
| 3324 | (version "3.0.0") | ||
| 3325 | (source | ||
| 3326 | (origin | ||
| 3327 | (method url-fetch) | ||
| 3328 | (uri (rubygems-uri "libxml-ruby" version)) | ||
| 3329 | (sha256 | ||
| 3330 | (base32 | ||
| 3331 | "0xy8wmjwjcnv36zi042678ncjzpxvy351ccbv7mzkns2n3kxfp54")))) | ||
| 3332 | (build-system ruby-build-system) | ||
| 3333 | (inputs | ||
| 3334 | (list zlib libxml2)) | ||
| 3335 | (arguments | ||
| 3336 | '(#:tests? #f ; test suite hangs for unknown reason | ||
| 3337 | #:gem-flags | ||
| 3338 | (list "--no-document" ; TODO: Re-enable when documentation | ||
| 3339 | ; generation works | ||
| 3340 | "--" | ||
| 3341 | (string-append "--with-xml2-include=" | ||
| 3342 | (assoc-ref %build-inputs "libxml2") | ||
| 3343 | "/include/libxml2" )))) | ||
| 3344 | (synopsis "Ruby bindings for GNOME Libxml2") | ||
| 3345 | (description "The Libxml-Ruby project provides Ruby language bindings for | ||
| 3346 | the GNOME Libxml2 XML toolkit.") | ||
| 3347 | (home-page "https://xml4r.github.com/libxml-ruby") | ||
| 3348 | (license license:expat))) | ||
| 3349 | |||
| 3350 | (define-public ruby-lino | ||
| 3351 | (package | ||
| 3352 | (name "ruby-lino") | ||
| 3353 | (version "3.1.0") | ||
| 3354 | (source | ||
| 3355 | (origin | ||
| 3356 | (method url-fetch) | ||
| 3357 | (uri (rubygems-uri "lino" version)) | ||
| 3358 | (sha256 | ||
| 3359 | (base32 | ||
| 3360 | "1zq9dza040fgjvr9imh7z2lgxrcyc5ac100rqimsnsf9bpfz3fsm")))) | ||
| 3361 | (build-system ruby-build-system) | ||
| 3362 | (arguments | ||
| 3363 | '(#:tests? #f)) ; No included tests | ||
| 3364 | (propagated-inputs | ||
| 3365 | (list ruby-hamster ruby-open4)) | ||
| 3366 | (synopsis "Build and execute commands in Ruby") | ||
| 3367 | (description | ||
| 3368 | "@code{Lino} provides an interface to run external commands. It provides | ||
| 3369 | an interface to add options as well as managing the standard input, output and | ||
| 3370 | error streams.") | ||
| 3371 | (home-page "https://github.com/tobyclemson/lino") | ||
| 3372 | (license license:expat))) | ||
| 3373 | |||
| 3374 | (define-public ruby-x25519 | ||
| 3375 | (package | ||
| 3376 | (name "ruby-x25519") | ||
| 3377 | (version "1.0.10") | ||
| 3378 | (source (origin | ||
| 3379 | (method git-fetch) | ||
| 3380 | (uri (git-reference | ||
| 3381 | (url "https://github.com/RubyCrypto/x25519") | ||
| 3382 | (commit (string-append "v" version)))) | ||
| 3383 | (file-name (git-file-name name version)) | ||
| 3384 | (sha256 | ||
| 3385 | (base32 | ||
| 3386 | "1g0311ly32f6hfn4q5fvkbjbl2bhv1l9fx6s0kglxfsrwq51926y")) | ||
| 3387 | (patches | ||
| 3388 | (search-patches | ||
| 3389 | "ruby-x25519-automatic-fallback-non-x86_64.patch")))) | ||
| 3390 | (build-system ruby-build-system) | ||
| 3391 | (arguments | ||
| 3392 | (list #:test-target "spec" | ||
| 3393 | #:phases #~(modify-phases %standard-phases | ||
| 3394 | (add-after 'unpack 'remove-unnecessary-dependencies | ||
| 3395 | (lambda _ | ||
| 3396 | (substitute* "Gemfile" | ||
| 3397 | ((".*rubocop.*") | ||
| 3398 | "")) | ||
| 3399 | (substitute* "Rakefile" | ||
| 3400 | (("require \"rubocop/rake_task\"") | ||
| 3401 | "") | ||
| 3402 | (("RuboCop::RakeTask.new") | ||
| 3403 | "")))) | ||
| 3404 | (add-before 'build 'compile | ||
| 3405 | (lambda _ | ||
| 3406 | (invoke "rake" "compile")))))) | ||
| 3407 | (native-inputs (list ruby-rake-compiler ruby-rspec)) | ||
| 3408 | (synopsis "Cryptography library for Ruby providing the X25519 | ||
| 3409 | Diffie-Hellman function") | ||
| 3410 | (description | ||
| 3411 | "The x25519 gem is an efficient public key cryptography library for | ||
| 3412 | Ruby providing key exchange/agreement via the X25519 (as known as | ||
| 3413 | Curve25519) Elliptic Curve Diffie-Hellman function as described in | ||
| 3414 | @url{https://www.ietf.org/rfc/rfc7748.txt, RFC 7748}.") | ||
| 3415 | (home-page "https://github.com/RubyCrypto/x25519") | ||
| 3416 | (license license:bsd-3))) | ||
| 3417 | |||
| 3418 | (define-public ruby-xml-simple | ||
| 3419 | (package | ||
| 3420 | (name "ruby-xml-simple") | ||
| 3421 | (version "1.1.5") | ||
| 3422 | (source (origin | ||
| 3423 | (method url-fetch) | ||
| 3424 | (uri (rubygems-uri "xml-simple" version)) | ||
| 3425 | (sha256 | ||
| 3426 | (base32 | ||
| 3427 | "0xlqplda3fix5pcykzsyzwgnbamb3qrqkgbrhhfz2a2fxhrkvhw8")))) | ||
| 3428 | (build-system ruby-build-system) | ||
| 3429 | (arguments | ||
| 3430 | '(#:tests? #f)) ; no test suite | ||
| 3431 | (synopsis "Simple Ruby library for XML processing") | ||
| 3432 | (description "This library provides a simple API for XML processing in | ||
| 3433 | Ruby.") | ||
| 3434 | (home-page "https://github.com/maik/xml-simple") | ||
| 3435 | (license license:ruby))) | ||
| 3436 | |||
| 3437 | (define-public ruby-xpath | ||
| 3438 | (package | ||
| 3439 | (name "ruby-xpath") | ||
| 3440 | (version "3.2.0") | ||
| 3441 | (source (origin | ||
| 3442 | (method url-fetch) | ||
| 3443 | (uri (rubygems-uri "xpath" version)) | ||
| 3444 | (sha256 | ||
| 3445 | (base32 | ||
| 3446 | "0bh8lk9hvlpn7vmi6h4hkcwjzvs2y0cmkk3yjjdr8fxvj6fsgzbd")))) | ||
| 3447 | (build-system ruby-build-system) | ||
| 3448 | (arguments (list #:phases #~(modify-phases %standard-phases | ||
| 3449 | (replace 'check | ||
| 3450 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 3451 | (when tests? | ||
| 3452 | (invoke "rspec" "spec" ))))))) | ||
| 3453 | (native-inputs (list ruby-pry ruby-rspec)) | ||
| 3454 | (propagated-inputs (list ruby-nokogiri)) | ||
| 3455 | (synopsis "Ruby DSL for generating XPath expressions") | ||
| 3456 | (description "XPath is a Ruby domain-specific language (DSL) for | ||
| 3457 | generating XPath expressions.") | ||
| 3458 | (home-page "https://github.com/teamcapybara/xpath") | ||
| 3459 | (license license:expat))) | ||
| 3460 | |||
| 3461 | (define-public ruby-thor | ||
| 3462 | (package | ||
| 3463 | (name "ruby-thor") | ||
| 3464 | (version "1.2.2") | ||
| 3465 | (source (origin | ||
| 3466 | ;; Pull from git because the gem has no tests. | ||
| 3467 | (method git-fetch) | ||
| 3468 | (uri (git-reference | ||
| 3469 | (url "https://github.com/rails/thor") | ||
| 3470 | (commit (string-append "v" version)))) | ||
| 3471 | (file-name (git-file-name name version)) | ||
| 3472 | (sha256 | ||
| 3473 | (base32 | ||
| 3474 | "1k3z2mlhaig5ycapjxwybb19z7ca0q1876i6csfmv2j0hf1hnc0z")))) | ||
| 3475 | (build-system ruby-build-system) | ||
| 3476 | (arguments | ||
| 3477 | (list | ||
| 3478 | #:phases | ||
| 3479 | #~(modify-phases %standard-phases | ||
| 3480 | (add-after 'unpack 'remove-coveralls-dependency | ||
| 3481 | (lambda _ | ||
| 3482 | ;; Do not hook the test suite into the online coveralls service. | ||
| 3483 | (substitute* "Gemfile" | ||
| 3484 | ((".*coveralls.*") "")) | ||
| 3485 | (substitute* "spec/helper.rb" | ||
| 3486 | (("require \"coveralls\"") "") | ||
| 3487 | (("Coveralls::SimpleCov::Formatter") "")))) | ||
| 3488 | (add-after 'unpack 'disable-problematic-tests | ||
| 3489 | (lambda _ | ||
| 3490 | ;; These tests attempt to check the git repository for | ||
| 3491 | ;; tabs vs spaces, double vs single quotes, etc, and | ||
| 3492 | ;; depend on the git checkout. | ||
| 3493 | (delete-file "spec/quality_spec.rb") | ||
| 3494 | (substitute* "spec/parser/options_spec.rb" | ||
| 3495 | ;; This test fails for unknown reasons (see: | ||
| 3496 | ;; https://github.com/rails/thor/issues/814). | ||
| 3497 | (("it \"raises an error for unknown switches" all) | ||
| 3498 | (string-append "x" all))))) | ||
| 3499 | (replace 'check | ||
| 3500 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 3501 | (when tests? | ||
| 3502 | (invoke "rspec" "spec" ))))))) | ||
| 3503 | (native-inputs (list ruby-rspec ruby-simplecov ruby-webmock)) | ||
| 3504 | (synopsis "Ruby toolkit for building command-line interfaces") | ||
| 3505 | (description "Thor is a toolkit for building powerful command-line | ||
| 3506 | interfaces.") | ||
| 3507 | (home-page "http://whatisthor.com/") | ||
| 3508 | (license license:expat))) | ||
| 3509 | |||
| 3510 | (define-public ruby-lumberjack | ||
| 3511 | (package | ||
| 3512 | (name "ruby-lumberjack") | ||
| 3513 | (version "1.0.13") | ||
| 3514 | (source (origin | ||
| 3515 | (method url-fetch) | ||
| 3516 | (uri (rubygems-uri "lumberjack" version)) | ||
| 3517 | (sha256 | ||
| 3518 | (base32 | ||
| 3519 | "06im7gcg42x77yhz2w5da2ly9xz0n0c36y5ks7xs53v0l9g0vf5n")))) | ||
| 3520 | (build-system ruby-build-system) | ||
| 3521 | (native-inputs | ||
| 3522 | (list ruby-rspec ruby-timecop)) | ||
| 3523 | (synopsis "Logging utility library for Ruby") | ||
| 3524 | (description "Lumberjack is a simple logging utility that can be a drop in | ||
| 3525 | replacement for Logger or ActiveSupport::BufferedLogger. It provides support | ||
| 3526 | for automatically rolling log files even with multiple processes writing the | ||
| 3527 | same log file.") | ||
| 3528 | (home-page "https://github.com/bdurand/lumberjack") | ||
| 3529 | (license license:expat))) | ||
| 3530 | |||
| 3531 | (define-public ruby-rbnacl | ||
| 3532 | (package | ||
| 3533 | (name "ruby-rbnacl") | ||
| 3534 | (version "7.1.1") | ||
| 3535 | (source (origin | ||
| 3536 | (method url-fetch) | ||
| 3537 | (uri (rubygems-uri "rbnacl" version)) | ||
| 3538 | (sha256 | ||
| 3539 | (base32 | ||
| 3540 | "0y8yzianlkc9w6sbqy8iy8l0yym0y6x7p5rjflkfixq76fqmhvzk")))) | ||
| 3541 | (build-system ruby-build-system) | ||
| 3542 | (arguments | ||
| 3543 | (list | ||
| 3544 | #:phases | ||
| 3545 | #~(modify-phases %standard-phases | ||
| 3546 | (add-after 'unpack 'remove-unnecessary-dependencies | ||
| 3547 | (lambda _ | ||
| 3548 | ;; Coveralls relates to a network service, and Rubocop to code | ||
| 3549 | ;; linting and both are unnecessary to run the tests | ||
| 3550 | (substitute* "Gemfile" | ||
| 3551 | ((".*rubocop.*") | ||
| 3552 | "\n") | ||
| 3553 | ((".*guard-rspec.*") | ||
| 3554 | "\n") | ||
| 3555 | ((".*coveralls.*") | ||
| 3556 | "\n")) | ||
| 3557 | (substitute* "spec/spec_helper.rb" | ||
| 3558 | (("require \"coveralls\"") | ||
| 3559 | "") | ||
| 3560 | (("Coveralls.wear!") | ||
| 3561 | "")))) | ||
| 3562 | (add-after 'unpack 'use-libsodium-from-store | ||
| 3563 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 3564 | (substitute* '("lib/rbnacl/init.rb" | ||
| 3565 | "lib/rbnacl/sodium.rb") | ||
| 3566 | (("ffi_lib \\[.+\\]") | ||
| 3567 | (string-append "ffi_lib [\"" | ||
| 3568 | (assoc-ref inputs "libsodium") | ||
| 3569 | "/lib/libsodium.so" "\"]"))))) | ||
| 3570 | ;; Run Rspec directly to avoid the Rubocop dependency in the | ||
| 3571 | ;; Rakefile | ||
| 3572 | (replace 'check | ||
| 3573 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 3574 | (when tests? | ||
| 3575 | (invoke "rspec"))))))) | ||
| 3576 | (propagated-inputs (list ruby-ffi)) | ||
| 3577 | (inputs (list libsodium)) | ||
| 3578 | (native-inputs (list bundler ruby-rspec)) | ||
| 3579 | (synopsis "Ruby FFI binding to libsodium") | ||
| 3580 | (description | ||
| 3581 | "This package provides Ruby FFI bindings to the Networking and | ||
| 3582 | Cryptography (NaCl) library, also known as libsodium. This provides a | ||
| 3583 | high-level toolkit for building cryptographic systems and protocols.") | ||
| 3584 | (home-page "https://github.com/RubyCrypto/rbnacl") | ||
| 3585 | (license license:expat))) | ||
| 3586 | |||
| 3587 | (define-public ruby-rbtree | ||
| 3588 | (package | ||
| 3589 | (name "ruby-rbtree") | ||
| 3590 | (version "0.4.6") | ||
| 3591 | (source (origin | ||
| 3592 | (method url-fetch) | ||
| 3593 | (uri (rubygems-uri "rbtree" version)) | ||
| 3594 | (sha256 | ||
| 3595 | (base32 | ||
| 3596 | "1z0h1x7fpkzxamnvbw1nry64qd6n0nqkwprfair29z94kd3a9vhl")))) | ||
| 3597 | (build-system ruby-build-system) | ||
| 3598 | (arguments | ||
| 3599 | (list | ||
| 3600 | #:phases | ||
| 3601 | #~(modify-phases %standard-phases | ||
| 3602 | (add-before 'build 'extconf | ||
| 3603 | (lambda _ | ||
| 3604 | (invoke "ruby" "extconf.rb") | ||
| 3605 | (invoke "make" "install" (string-append "prefix=" #$output)))) | ||
| 3606 | (replace 'check | ||
| 3607 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 3608 | (when tests? | ||
| 3609 | (invoke "ruby" "-I." "test.rb"))))))) | ||
| 3610 | (synopsis "Ruby implementation of a sorted associative collection") | ||
| 3611 | (description | ||
| 3612 | "This package provides a RBTree is a sorted associative collection that | ||
| 3613 | is implemented with a Red-Black Tree. It maps keys to values like a Hash, but | ||
| 3614 | maintains its elements in ascending key order. The interface is the almost | ||
| 3615 | identical to that of Hash.") | ||
| 3616 | (home-page "http://rbtree.rubyforge.org/") | ||
| 3617 | (license license:expat))) | ||
| 3618 | |||
| 3619 | (define-public ruby-rgl | ||
| 3620 | (package | ||
| 3621 | (name "ruby-rgl") | ||
| 3622 | (version "0.6.6") | ||
| 3623 | (source (origin | ||
| 3624 | (method url-fetch) | ||
| 3625 | (uri (rubygems-uri "rgl" version)) | ||
| 3626 | (sha256 | ||
| 3627 | (base32 | ||
| 3628 | "0dji1k9knrf8cxm5psd3pgd9i8f7cfq182jwjpi1pwxw15axf496")))) | ||
| 3629 | (build-system ruby-build-system) | ||
| 3630 | (arguments | ||
| 3631 | (list | ||
| 3632 | #:phases | ||
| 3633 | #~(modify-phases %standard-phases | ||
| 3634 | (add-after 'unpack 'remove-unnecessary-dependencies | ||
| 3635 | (lambda _ | ||
| 3636 | (substitute* "Gemfile" | ||
| 3637 | ;; Caring about coverage is a not a packager's task but a | ||
| 3638 | ;; developer's | ||
| 3639 | ;;(("gem \"simplecov\"") "") | ||
| 3640 | ;; CodeClimate is an online service, and is unnecessary for | ||
| 3641 | ;; running the tests | ||
| 3642 | (("gem \"codeclimate-test-reporter\", .*") "\n"))))))) | ||
| 3643 | (native-inputs (list ruby-test-unit ruby-simplecov ruby-yard graphviz-minimal)) | ||
| 3644 | (propagated-inputs (list ruby-pairing-heap ruby-rexml ruby-stream)) | ||
| 3645 | (synopsis "Framework for graph data structures and algorithms") | ||
| 3646 | (description "RGL is a framework for graph data structures and algorithms. | ||
| 3647 | The design of the library is much influenced by the Boost Graph Library (BGL) | ||
| 3648 | which is written in C++.") | ||
| 3649 | (home-page "https://github.com/monora/rgl") | ||
| 3650 | (license license:bsd-2))) | ||
| 3651 | |||
| 3652 | (define-public ruby-hkdf | ||
| 3653 | (package | ||
| 3654 | (name "ruby-hkdf") | ||
| 3655 | (version "1.0.0") | ||
| 3656 | (source | ||
| 3657 | (origin | ||
| 3658 | (method git-fetch) | ||
| 3659 | (uri (git-reference | ||
| 3660 | (url "https://github.com/jtdowney/hkdf") | ||
| 3661 | (commit (string-append "v" version)))) | ||
| 3662 | (file-name (git-file-name name version)) | ||
| 3663 | (sha256 | ||
| 3664 | (base32 | ||
| 3665 | "1xqwdmxfnhagivwgb5v9ilwpb4jxlsqwj7pnj43d65zzg5m8p9r5")))) | ||
| 3666 | (build-system ruby-build-system) | ||
| 3667 | (arguments | ||
| 3668 | `(#:test-target "default")) | ||
| 3669 | (native-inputs | ||
| 3670 | (list ruby-rspec)) | ||
| 3671 | (synopsis "HMAC-based Key Derivation Function") | ||
| 3672 | (description | ||
| 3673 | "This package provides a Ruby implementation of RFC5869: @acronym{HKDF, | ||
| 3674 | HMAC-based Extract-and-Expand Key Derivation Function}. The goal of HKDF is to | ||
| 3675 | take some source key material and generate suitable cryptographic keys from it.") | ||
| 3676 | (home-page "https://github.com/jtdowney/hkdf") | ||
| 3677 | (license license:expat))) | ||
| 3678 | |||
| 3679 | (define-public ruby-nenv | ||
| 3680 | (package | ||
| 3681 | (name "ruby-nenv") | ||
| 3682 | (version "0.3.0") | ||
| 3683 | (source (origin | ||
| 3684 | (method url-fetch) | ||
| 3685 | (uri (rubygems-uri "nenv" version)) | ||
| 3686 | (sha256 | ||
| 3687 | (base32 | ||
| 3688 | "0r97jzknll9bhd8yyg2bngnnkj8rjhal667n7d32h8h7ny7nvpnr")))) | ||
| 3689 | (build-system ruby-build-system) | ||
| 3690 | (arguments | ||
| 3691 | `(#:tests? #f)) ; no tests included | ||
| 3692 | (native-inputs | ||
| 3693 | (list ruby-rspec bundler)) | ||
| 3694 | (synopsis "Ruby interface for modifying the environment") | ||
| 3695 | (description "Nenv provides a convenient wrapper for Ruby's ENV to modify | ||
| 3696 | and inspect the environment.") | ||
| 3697 | (home-page "https://github.com/e2/nenv") | ||
| 3698 | (license license:expat))) | ||
| 3699 | |||
| 3700 | (define-public ruby-ptools | ||
| 3701 | (package | ||
| 3702 | (name "ruby-ptools") | ||
| 3703 | (version "1.5.0") | ||
| 3704 | (source (origin | ||
| 3705 | (method url-fetch) | ||
| 3706 | (uri (rubygems-uri "ptools" version)) | ||
| 3707 | (sha256 | ||
| 3708 | (base32 | ||
| 3709 | "0damllbshkxycrwjv80sz78h76dw7r9z54d17mb5cbha1daq9q2d")))) | ||
| 3710 | (build-system ruby-build-system) | ||
| 3711 | (arguments | ||
| 3712 | (list | ||
| 3713 | #:test-target "spec:all" | ||
| 3714 | #:phases | ||
| 3715 | #~(modify-phases %standard-phases | ||
| 3716 | (add-after 'unpack 'patch | ||
| 3717 | (lambda _ | ||
| 3718 | (substitute* "Rakefile" | ||
| 3719 | ;; Don't require rubocop | ||
| 3720 | (("require 'rubocop/rake_task'") "") | ||
| 3721 | (("RuboCop::RakeTask.new") "") | ||
| 3722 | ;; Do not attempt to sign the gem. | ||
| 3723 | (("spec\\.signing_key = .*") "")) | ||
| 3724 | |||
| 3725 | (substitute* "spec/binary_spec.rb" | ||
| 3726 | (("/bin/ls") (which "ls")) | ||
| 3727 | (("/bin/cat") (which "cat")) | ||
| 3728 | (("/bin/chmod") (which "chmod")) | ||
| 3729 | (("/bin/df") (which "df")))))))) | ||
| 3730 | (native-inputs | ||
| 3731 | (list ruby-rspec)) | ||
| 3732 | (synopsis "Extra methods for Ruby's @code{File} class") | ||
| 3733 | (description | ||
| 3734 | "The @dfn{ptools} (power tools) library extends Ruby's core @code{File} | ||
| 3735 | class with many additional methods modelled after common POSIX tools, such as | ||
| 3736 | @code{File.which} for finding executables, @code{File.tail} to print the last | ||
| 3737 | lines of a file, @code{File.wc} to count words, and so on.") | ||
| 3738 | (home-page "https://github.com/djberg96/ptools") | ||
| 3739 | (license license:artistic2.0))) | ||
| 3740 | |||
| 3741 | (define-public ruby-permutation | ||
| 3742 | (package | ||
| 3743 | (name "ruby-permutation") | ||
| 3744 | (version "0.1.8") | ||
| 3745 | (source (origin | ||
| 3746 | (method url-fetch) | ||
| 3747 | (uri (rubygems-uri "permutation" version)) | ||
| 3748 | (sha256 | ||
| 3749 | (base32 | ||
| 3750 | "13crwk2vfbzv99czva7881027dbcnidihmvx2jc58z2vm3bp9sl8")))) | ||
| 3751 | (build-system ruby-build-system) | ||
| 3752 | (arguments | ||
| 3753 | `(#:phases | ||
| 3754 | (modify-phases %standard-phases | ||
| 3755 | (add-after 'unpack 'fix-rakefile | ||
| 3756 | (lambda _ | ||
| 3757 | (substitute* "Rakefile" | ||
| 3758 | (("require 'rake/gempackagetask'") | ||
| 3759 | "require 'rubygems/package_task'") | ||
| 3760 | (("include Config") "")))) | ||
| 3761 | (replace 'check | ||
| 3762 | (lambda _ | ||
| 3763 | (invoke "ruby" "-Ilib" "test/test.rb")))))) | ||
| 3764 | (synopsis "Library to perform operations with sequence permutations") | ||
| 3765 | (description "This package provides a Ruby library to perform different | ||
| 3766 | operations with permutations of sequences, such as strings and arrays.") | ||
| 3767 | (home-page "https://flori.github.io/permutation") | ||
| 3768 | (license license:gpl2))) ; GPL 2 only | ||
| 3769 | |||
| 3770 | (define-public ruby-shellany | ||
| 3771 | (package | ||
| 3772 | (name "ruby-shellany") | ||
| 3773 | (version "0.0.1") | ||
| 3774 | (source (origin | ||
| 3775 | (method url-fetch) | ||
| 3776 | (uri (rubygems-uri "shellany" version)) | ||
| 3777 | (sha256 | ||
| 3778 | (base32 | ||
| 3779 | "1ryyzrj1kxmnpdzhlv4ys3dnl2r5r3d2rs2jwzbnd1v96a8pl4hf")))) | ||
| 3780 | (build-system ruby-build-system) | ||
| 3781 | (arguments | ||
| 3782 | `(#:test-target "default" | ||
| 3783 | #:phases | ||
| 3784 | (modify-phases %standard-phases | ||
| 3785 | (add-after 'unpack 'fix-version-test | ||
| 3786 | (lambda _ | ||
| 3787 | (substitute* "spec/shellany_spec.rb" | ||
| 3788 | (("^RSpec") "require \"shellany\"\nRSpec"))))))) | ||
| 3789 | (native-inputs | ||
| 3790 | (list ruby-rspec ruby-nenv bundler)) | ||
| 3791 | (synopsis "Capture command output") | ||
| 3792 | (description "Shellany is a Ruby library providing functions to capture | ||
| 3793 | the output produced by running shell commands.") | ||
| 3794 | (home-page "https://rubygems.org/gems/shellany") | ||
| 3795 | (license license:expat))) | ||
| 3796 | |||
| 3797 | (define-public ruby-notiffany | ||
| 3798 | (package | ||
| 3799 | (name "ruby-notiffany") | ||
| 3800 | (version "0.1.3") | ||
| 3801 | (source (origin | ||
| 3802 | (method url-fetch) | ||
| 3803 | (uri (rubygems-uri "notiffany" version)) | ||
| 3804 | (sha256 | ||
| 3805 | (base32 | ||
| 3806 | "0f47h3bmg1apr4x51szqfv3rh2vq58z3grh4w02cp3bzbdh6jxnk")))) | ||
| 3807 | (build-system ruby-build-system) | ||
| 3808 | ;; Tests are not included in the gem. | ||
| 3809 | (arguments `(#:tests? #f)) | ||
| 3810 | (propagated-inputs | ||
| 3811 | (list ruby-shellany ruby-nenv)) | ||
| 3812 | (native-inputs | ||
| 3813 | (list bundler)) | ||
| 3814 | (synopsis "Wrapper library for notification libraries") | ||
| 3815 | (description "Notiffany is a Ruby wrapper library for notification | ||
| 3816 | libraries such as Libnotify.") | ||
| 3817 | (home-page "https://github.com/guard/notiffany") | ||
| 3818 | (license license:expat))) | ||
| 3819 | |||
| 3820 | (define-public ruby-forking-test-runner | ||
| 3821 | (package | ||
| 3822 | (name "ruby-forking-test-runner") | ||
| 3823 | (version "1.6.0") | ||
| 3824 | (home-page "https://github.com/grosser/forking_test_runner") | ||
| 3825 | (source (origin | ||
| 3826 | (method git-fetch) | ||
| 3827 | (uri (git-reference (url home-page) | ||
| 3828 | (commit (string-append "v" version)))) | ||
| 3829 | (file-name (git-file-name name version)) | ||
| 3830 | (sha256 | ||
| 3831 | (base32 | ||
| 3832 | "1mrglzkj2nrgisccf2f30zbfmcs0awv1g3lw994b2az90fl39x8m")))) | ||
| 3833 | (build-system ruby-build-system) | ||
| 3834 | (arguments | ||
| 3835 | '(#:test-target "spec" | ||
| 3836 | ;; FIXME: ActiveRecord depends on sqlite3 1.3.6, but Guix has | ||
| 3837 | ;; 1.4.1, which in turn breaks the tests that use ActiveRecord. | ||
| 3838 | #:tests? #f | ||
| 3839 | #:phases (modify-phases %standard-phases | ||
| 3840 | (replace 'replace-git-ls-files | ||
| 3841 | (lambda _ | ||
| 3842 | (substitute* "forking_test_runner.gemspec" | ||
| 3843 | (("`git ls-files lib/ bin/ MIT-LICENSE`") | ||
| 3844 | "`find lib/ bin/ MIT-LICENSE -type f | sort`")))) | ||
| 3845 | (add-before 'check 'remove-version-constraints | ||
| 3846 | (lambda _ | ||
| 3847 | ;; Ignore hard coded version constraints for the tests. | ||
| 3848 | (delete-file "Gemfile.lock"))) | ||
| 3849 | (add-before 'check 'set-HOME | ||
| 3850 | (lambda _ | ||
| 3851 | ;; Many tests invoke Bundler, and fails when Bundler | ||
| 3852 | ;; warns that /homeless-shelter does not exist. | ||
| 3853 | (setenv "HOME" "/tmp")))))) | ||
| 3854 | (native-inputs | ||
| 3855 | (list ruby-activerecord ruby-bump ruby-rspec ruby-sqlite3 ruby-wwtd)) | ||
| 3856 | (propagated-inputs | ||
| 3857 | (list ruby-parallel-tests)) | ||
| 3858 | (synopsis "Run every test in a fork") | ||
| 3859 | (description | ||
| 3860 | "This package is a wrapper around @code{parallel_tests} that runs every | ||
| 3861 | test in a fork to avoid pollution and get clean output per test.") | ||
| 3862 | (license license:expat))) | ||
| 3863 | |||
| 3864 | (define-public ruby-formatador | ||
| 3865 | (package | ||
| 3866 | (name "ruby-formatador") | ||
| 3867 | (version "0.2.5") | ||
| 3868 | (source (origin | ||
| 3869 | (method url-fetch) | ||
| 3870 | (uri (rubygems-uri "formatador" version)) | ||
| 3871 | (sha256 | ||
| 3872 | (base32 | ||
| 3873 | "1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0")))) | ||
| 3874 | (build-system ruby-build-system) | ||
| 3875 | ;; Circular dependency: Tests require ruby-shindo, which requires | ||
| 3876 | ;; ruby-formatador at runtime. | ||
| 3877 | (arguments `(#:tests? #f)) | ||
| 3878 | (synopsis "Ruby library to format text on stdout") | ||
| 3879 | (description "Formatador is a Ruby library to format text printed to the | ||
| 3880 | standard output stream.") | ||
| 3881 | (home-page "https://github.com/geemus/formatador") | ||
| 3882 | (license license:expat))) | ||
| 3883 | |||
| 3884 | (define-public ruby-fuubar | ||
| 3885 | (package | ||
| 3886 | (name "ruby-fuubar") | ||
| 3887 | (version "2.3.2") | ||
| 3888 | (source | ||
| 3889 | (origin | ||
| 3890 | ;; Fetch from the git repository, as the gem package doesn't include | ||
| 3891 | ;; the tests. | ||
| 3892 | (method git-fetch) | ||
| 3893 | (uri (git-reference | ||
| 3894 | (url "https://github.com/thekompanee/fuubar") | ||
| 3895 | (commit (string-append "releases/v" version)))) | ||
| 3896 | (file-name (git-file-name name version)) | ||
| 3897 | (sha256 | ||
| 3898 | (base32 | ||
| 3899 | "0jm1x2xp13csbnadixaikj7mlkp5yk4byx51npm56zi13izp7259")))) | ||
| 3900 | (build-system ruby-build-system) | ||
| 3901 | (arguments | ||
| 3902 | '(;; TODO: Some tests fail, unsure why. | ||
| 3903 | ;; 21 examples, 7 failures | ||
| 3904 | #:tests? #f | ||
| 3905 | #:phases | ||
| 3906 | (modify-phases %standard-phases | ||
| 3907 | (add-before 'build 'delete-certificate | ||
| 3908 | (lambda _ | ||
| 3909 | ;; Remove 's.cert_chain' as we do not build with a private key | ||
| 3910 | (substitute* "fuubar.gemspec" | ||
| 3911 | ((".*cert_chain.*") "") | ||
| 3912 | ((".*signing_key.*") "")))) | ||
| 3913 | (replace 'check | ||
| 3914 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 3915 | (when tests? | ||
| 3916 | (invoke "rspec"))))))) | ||
| 3917 | (native-inputs | ||
| 3918 | (list bundler)) | ||
| 3919 | (propagated-inputs | ||
| 3920 | (list ruby-rspec-core ruby-progressbar)) | ||
| 3921 | (synopsis "Fuubar is an RSpec formatter that uses a progress bar") | ||
| 3922 | (description | ||
| 3923 | "Fuubar is an RSpec formatter that uses a progress bar instead of a | ||
| 3924 | string of letters and dots as feedback. It also stops on the first test | ||
| 3925 | failure.") | ||
| 3926 | (home-page "https://github.com/thekompanee/fuubar") | ||
| 3927 | (license license:expat))) | ||
| 3928 | |||
| 3929 | (define-public ruby-haml | ||
| 3930 | (package | ||
| 3931 | (name "ruby-haml") | ||
| 3932 | (version "5.0.4") | ||
| 3933 | (source | ||
| 3934 | (origin | ||
| 3935 | (method url-fetch) | ||
| 3936 | (uri (rubygems-uri "haml" version)) | ||
| 3937 | (sha256 | ||
| 3938 | (base32 | ||
| 3939 | "1q0a9fvqh8kn6wm97fcks6qzbjd400bv8bx748w8v87m7p4klhac")))) | ||
| 3940 | (build-system ruby-build-system) | ||
| 3941 | (arguments | ||
| 3942 | '(#:tests? #f)) ; No included tests | ||
| 3943 | (propagated-inputs | ||
| 3944 | (list ruby-tilt ruby-temple)) | ||
| 3945 | (synopsis "Haml is a Ruby library to generate HTML documents") | ||
| 3946 | (description | ||
| 3947 | "@acronym{Haml, HTML Abstraction Markup Language} is a layer on top of | ||
| 3948 | HTML or XML that is designed to express the structure of documents using | ||
| 3949 | indentation rather than closing tags. It was originally envisioned as a | ||
| 3950 | plugin for Ruby on Rails, but it can function as a stand-alone templating | ||
| 3951 | engine.") | ||
| 3952 | (home-page "https://haml.info/") | ||
| 3953 | (license license:expat))) | ||
| 3954 | |||
| 3955 | (define-public ruby-hamster | ||
| 3956 | (package | ||
| 3957 | (name "ruby-hamster") | ||
| 3958 | (version "3.0.0") | ||
| 3959 | (source | ||
| 3960 | (origin | ||
| 3961 | (method url-fetch) | ||
| 3962 | (uri (rubygems-uri "hamster" version)) | ||
| 3963 | (sha256 | ||
| 3964 | (base32 | ||
| 3965 | "1n1lsh96vnyc1pnzyd30f9prcsclmvmkdb3nm5aahnyizyiy6lar")))) | ||
| 3966 | (build-system ruby-build-system) | ||
| 3967 | (arguments | ||
| 3968 | (list | ||
| 3969 | ;; Only supports Ruby 2 currently | ||
| 3970 | #:ruby ruby-2.7 | ||
| 3971 | #:phases | ||
| 3972 | #~(modify-phases %standard-phases | ||
| 3973 | (add-after 'unpack 'remove-unnecessary-dependencies | ||
| 3974 | (lambda _ | ||
| 3975 | ;; pry is a debugging tool, and is unnecessary when running the | ||
| 3976 | ;; tests | ||
| 3977 | (substitute* "spec/lib/hamster/vector/insert_spec.rb" | ||
| 3978 | (("require 'pry'") "")) | ||
| 3979 | (substitute* "spec/spec_helper.rb" | ||
| 3980 | (("require \"pry\"") "") | ||
| 3981 | ;; CodeClimate is an online service, and is unnecessary for | ||
| 3982 | ;; running the tests | ||
| 3983 | (("require \"codeclimate-test-reporter\"") "") | ||
| 3984 | (("CodeClimate.*\n") "")))) | ||
| 3985 | ;; No Rakefile is included, so run rspec directly. | ||
| 3986 | (replace 'check | ||
| 3987 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 3988 | (when tests? | ||
| 3989 | (invoke "ruby" (which "rspec")))))))) | ||
| 3990 | (propagated-inputs | ||
| 3991 | (list ruby-concurrent)) | ||
| 3992 | (native-inputs | ||
| 3993 | (list ruby-rspec)) | ||
| 3994 | (synopsis "Efficient, immutable, thread-safe collection classes for Ruby") | ||
| 3995 | (description | ||
| 3996 | "Hamster provides 6 persistent data structures: @code{Hash}, @code{Vector}, | ||
| 3997 | @code{Set}, @code{SortedSet}, @code{List}, and @code{Deque} (which works as an | ||
| 3998 | immutable queue or stack).") | ||
| 3999 | (home-page "https://github.com/hamstergem/hamster") | ||
| 4000 | (license license:expat))) | ||
| 4001 | |||
| 4002 | (define-public ruby-hashdiff | ||
| 4003 | (package | ||
| 4004 | (name "ruby-hashdiff") | ||
| 4005 | (version "1.0.1") | ||
| 4006 | (source | ||
| 4007 | (origin | ||
| 4008 | (method url-fetch) | ||
| 4009 | (uri (rubygems-uri "hashdiff" version)) | ||
| 4010 | (sha256 | ||
| 4011 | (base32 | ||
| 4012 | "1nynpl0xbj0nphqx1qlmyggq58ms1phf5i03hk64wcc0a17x1m1c")))) | ||
| 4013 | (build-system ruby-build-system) | ||
| 4014 | (arguments | ||
| 4015 | '(#:phases | ||
| 4016 | (modify-phases %standard-phases | ||
| 4017 | ;; Run tests directly via rspec to avoid depending on rubocop. | ||
| 4018 | (replace 'check | ||
| 4019 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 4020 | (when tests? | ||
| 4021 | (invoke "rspec"))))))) | ||
| 4022 | (native-inputs | ||
| 4023 | (list bundler ruby-rspec-2)) | ||
| 4024 | (synopsis "HashDiff computes the smallest difference between two hashes") | ||
| 4025 | (description | ||
| 4026 | "HashDiff is a Ruby library to compute the smallest difference between | ||
| 4027 | two hashes.") | ||
| 4028 | (home-page "https://github.com/liufengyun/hashdiff") | ||
| 4029 | (license license:expat))) | ||
| 4030 | |||
| 4031 | (define-public ruby-hydra-minimal | ||
| 4032 | ;; No releases yet. | ||
| 4033 | (let ((commit "a4cab705a8a281e4356cb6a05a1946443ad9d53b") | ||
| 4034 | (revision "1")) | ||
| 4035 | (package | ||
| 4036 | (name "ruby-hydra-minimal") | ||
| 4037 | (version (git-version "0.0.0" revision commit)) | ||
| 4038 | (home-page "https://github.com/hyphenation/hydra") | ||
| 4039 | (source (origin | ||
| 4040 | (method git-fetch) | ||
| 4041 | (uri (git-reference (url home-page) (commit commit))) | ||
| 4042 | (file-name (git-file-name name version)) | ||
| 4043 | ;; byebug is a non-essential debugging utility that brings in | ||
| 4044 | ;; many dependencies. | ||
| 4045 | (patches (search-patches "ruby-hydra-minimal-no-byebug.patch")) | ||
| 4046 | (sha256 | ||
| 4047 | (base32 | ||
| 4048 | "1swzab7i4cqk1bck7p5m3bh526jh0v6m9qq720r3270zbjc8x8z3")))) | ||
| 4049 | (build-system ruby-build-system) | ||
| 4050 | (arguments | ||
| 4051 | ;; Avoid rspec dependency. | ||
| 4052 | '(#:tests? #f)) | ||
| 4053 | (synopsis "Ruby hyphenation patterns") | ||
| 4054 | (description | ||
| 4055 | "ruby-hydra-minimal is a Ruby library for working with hyphenation patterns. | ||
| 4056 | It is a low-dependency variant of ruby-hydra.") | ||
| 4057 | (license license:expat)))) | ||
| 4058 | |||
| 4059 | ;; Pinned variant for use by texlive | ||
| 4060 | (define-public ruby-hydra-minimal/pinned | ||
| 4061 | (let ((commit "5abfa378743756ae4d9306cc134bcc482f5c9525") | ||
| 4062 | (revision "0")) | ||
| 4063 | (hidden-package | ||
| 4064 | (package | ||
| 4065 | (inherit ruby-hydra-minimal) | ||
| 4066 | (version (git-version "0.0" revision commit)) | ||
| 4067 | (source (origin | ||
| 4068 | (method git-fetch) | ||
| 4069 | (uri (git-reference | ||
| 4070 | (url "https://github.com/hyphenation/hydra") | ||
| 4071 | (commit commit))) | ||
| 4072 | (file-name (git-file-name "ruby-hydra-minimal" version)) | ||
| 4073 | ;; byebug is a non-essential debugging utility that brings in | ||
| 4074 | ;; many dependencies. | ||
| 4075 | (patches (search-patches "ruby-hydra-minimal-no-byebug.patch")) | ||
| 4076 | (sha256 | ||
| 4077 | (base32 | ||
| 4078 | "1cik398l2765y3d9sdhjzki3303hkry58ac6jlkiy7iy62nm529f")))) | ||
| 4079 | (arguments | ||
| 4080 | (list | ||
| 4081 | #:ruby ruby-2.7 | ||
| 4082 | #:tests? #f)))))) | ||
| 4083 | |||
| 4084 | (define-public ruby-hydra | ||
| 4085 | (package | ||
| 4086 | (inherit ruby-hydra-minimal) | ||
| 4087 | (name "ruby-hydra") | ||
| 4088 | (arguments | ||
| 4089 | (list | ||
| 4090 | #:phases | ||
| 4091 | #~(modify-phases %standard-phases | ||
| 4092 | (add-after 'unpack 'make-files-writable | ||
| 4093 | (lambda _ | ||
| 4094 | (for-each make-file-writable (find-files ".")))) | ||
| 4095 | (replace 'check | ||
| 4096 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 4097 | (when tests? | ||
| 4098 | (invoke "rspec"))))))) | ||
| 4099 | (native-inputs | ||
| 4100 | (list ruby-rspec)) | ||
| 4101 | (description | ||
| 4102 | "ruby-hydra is a Ruby library for working with hyphenation patterns."))) | ||
| 4103 | |||
| 4104 | (define-public ruby-shindo | ||
| 4105 | (package | ||
| 4106 | (name "ruby-shindo") | ||
| 4107 | (version "0.3.11") | ||
| 4108 | (source (origin | ||
| 4109 | (method url-fetch) | ||
| 4110 | (uri (rubygems-uri "shindo" version)) | ||
| 4111 | (sha256 | ||
| 4112 | (base32 | ||
| 4113 | "1wccg3a4g3agfyszipkdnbcgsazcfwdbz1gv51q8m17m9plvpzdp")))) | ||
| 4114 | (build-system ruby-build-system) | ||
| 4115 | (arguments | ||
| 4116 | (list | ||
| 4117 | #:test-target "tests" | ||
| 4118 | #:phases | ||
| 4119 | #~(modify-phases %standard-phases | ||
| 4120 | (add-after 'unpack 'fix-tests | ||
| 4121 | (lambda _ | ||
| 4122 | (substitute* "tests/tests_helper.rb" | ||
| 4123 | (("-rrubygems") "")))) | ||
| 4124 | ;; Move the 'check phase to after 'install, to use installed shindo. | ||
| 4125 | (delete 'check) | ||
| 4126 | (add-after 'install 'configure-tests | ||
| 4127 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 4128 | (when tests? | ||
| 4129 | (setenv "GEM_PATH" | ||
| 4130 | (string-append | ||
| 4131 | (getenv "GEM_PATH") ":" | ||
| 4132 | #$output "/lib/ruby/vendor_ruby")) | ||
| 4133 | (setenv "PATH" | ||
| 4134 | (string-append | ||
| 4135 | (getenv "PATH") ":" #$output "/bin"))))) | ||
| 4136 | (add-after 'configure-tests 'check | ||
| 4137 | (assoc-ref %standard-phases 'check))))) | ||
| 4138 | (propagated-inputs | ||
| 4139 | (list ruby-formatador)) | ||
| 4140 | (synopsis "Simple depth first Ruby testing") | ||
| 4141 | (description "Shindo is a simple depth first testing library for Ruby.") | ||
| 4142 | (home-page "https://github.com/geemus/shindo") | ||
| 4143 | (license license:expat))) | ||
| 4144 | |||
| 4145 | (define-public ruby-rubygems-tasks | ||
| 4146 | (package | ||
| 4147 | (name "ruby-rubygems-tasks") | ||
| 4148 | (version "0.2.5") | ||
| 4149 | (source (origin | ||
| 4150 | (method url-fetch) | ||
| 4151 | (uri (rubygems-uri "rubygems-tasks" version)) | ||
| 4152 | (sha256 | ||
| 4153 | (base32 | ||
| 4154 | "1x3sz3n2dlknd3v7w1mrq6f0ag6pwzhjvg7z29p75w3p42ma1gbx")))) | ||
| 4155 | (build-system ruby-build-system) | ||
| 4156 | ;; Tests need Internet access. | ||
| 4157 | (arguments `(#:tests? #f)) | ||
| 4158 | (synopsis "Rake tasks for managing and releasing Ruby Gems") | ||
| 4159 | (description "Rubygems-task provides Rake tasks for managing and releasing | ||
| 4160 | Ruby Gems.") | ||
| 4161 | (home-page "https://github.com/postmodern/rubygems-tasks") | ||
| 4162 | (license license:expat))) | ||
| 4163 | |||
| 4164 | (define-public ruby-rubyzip | ||
| 4165 | (package | ||
| 4166 | (name "ruby-rubyzip") | ||
| 4167 | (version "2.3.2") | ||
| 4168 | (source (origin | ||
| 4169 | (method git-fetch) | ||
| 4170 | (uri (git-reference | ||
| 4171 | (url "https://github.com/rubyzip/rubyzip") | ||
| 4172 | (commit (string-append "v" version)))) | ||
| 4173 | (file-name (git-file-name name version)) | ||
| 4174 | (sha256 | ||
| 4175 | (base32 | ||
| 4176 | "03p8c990n6c1r4g64w0vv7z2iaswisl07l2f1lbh1s78cvmlmfxx")))) | ||
| 4177 | (build-system ruby-build-system) | ||
| 4178 | (arguments | ||
| 4179 | '(#:phases | ||
| 4180 | (modify-phases %standard-phases | ||
| 4181 | (add-after 'unpack 'disable-rubocop | ||
| 4182 | (lambda _ | ||
| 4183 | (substitute* "Rakefile" | ||
| 4184 | (("require 'rubocop/rake_task'") "") | ||
| 4185 | (("RuboCop::RakeTask.new") "")))) | ||
| 4186 | (add-before 'check 'patch-tests | ||
| 4187 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 4188 | (substitute* "test/gentestfiles.rb" | ||
| 4189 | (("/usr/bin/zip") (which "zip"))))) | ||
| 4190 | (add-after 'patch-source-shebangs 'unpatch-some-source-shebangs | ||
| 4191 | (lambda _ | ||
| 4192 | ;; The tests compare zipped files with data test files; since the | ||
| 4193 | ;; zip files do not have their shebangs patched, the data files | ||
| 4194 | ;; compared with their extracted version must also be left | ||
| 4195 | ;; un-patched. | ||
| 4196 | (substitute* (find-files "test/data" "\\.(txt|rb)$") | ||
| 4197 | (((which "ruby")) | ||
| 4198 | "/usr/bin/env ruby"))))))) | ||
| 4199 | (native-inputs | ||
| 4200 | (list bundler ruby-simplecov zip unzip)) | ||
| 4201 | (synopsis "Ruby module is for reading and writing zip files") | ||
| 4202 | (description | ||
| 4203 | "The rubyzip module provides ways to read from and create zip files.") | ||
| 4204 | (home-page "https://github.com/rubyzip/rubyzip") | ||
| 4205 | (license license:bsd-2))) | ||
| 4206 | |||
| 4207 | (define-public ruby-silent-stream | ||
| 4208 | (package | ||
| 4209 | (name "ruby-silent-stream") | ||
| 4210 | (version "1.0.6") | ||
| 4211 | (source (origin | ||
| 4212 | (method url-fetch) | ||
| 4213 | (uri (rubygems-uri "silent_stream" version)) | ||
| 4214 | (sha256 | ||
| 4215 | (base32 | ||
| 4216 | "10381fpvjzfjvhgfyv700607fpa29firgf52w5w5536m4fh6x63m")))) | ||
| 4217 | (build-system ruby-build-system) | ||
| 4218 | (synopsis "ActiveSupport stream silencing without ActiveSupport") | ||
| 4219 | (description "SilentStream is an extraction of some parts of | ||
| 4220 | ActiveSupport's Kernel Reporting Core Extensions around silencing IO | ||
| 4221 | streams.") | ||
| 4222 | (home-page "https://github.com/pboling/silent_stream") | ||
| 4223 | (license license:expat))) | ||
| 4224 | |||
| 4225 | (define-public ruby-simplecov-html | ||
| 4226 | (package | ||
| 4227 | (name "ruby-simplecov-html") | ||
| 4228 | (version "0.12.3") | ||
| 4229 | (source (origin | ||
| 4230 | (method url-fetch) | ||
| 4231 | (uri (rubygems-uri "simplecov-html" version)) | ||
| 4232 | (sha256 | ||
| 4233 | (base32 | ||
| 4234 | "0yx01bxa8pbf9ip4hagqkp5m0mqfnwnw2xk8kjraiywz4lrss6jb")))) | ||
| 4235 | (build-system ruby-build-system) | ||
| 4236 | (arguments `(#:tests? #f)) ; there are no tests | ||
| 4237 | (native-inputs | ||
| 4238 | (list bundler)) | ||
| 4239 | (synopsis "Default HTML formatter for SimpleCov code coverage tool") | ||
| 4240 | (description "This package provides the default HTML formatter for | ||
| 4241 | the SimpleCov code coverage tool for Ruby version 1.9 and above.") | ||
| 4242 | (home-page "https://github.com/simplecov-ruby/simplecov-html") | ||
| 4243 | (license license:expat))) | ||
| 4244 | |||
| 4245 | (define-public ruby-simplecov-json-formatter | ||
| 4246 | (package | ||
| 4247 | (name "ruby-simplecov-json-formatter") | ||
| 4248 | (version "0.1.4") | ||
| 4249 | (source (origin | ||
| 4250 | (method url-fetch) | ||
| 4251 | (uri (rubygems-uri "simplecov_json_formatter" version)) | ||
| 4252 | (sha256 | ||
| 4253 | (base32 | ||
| 4254 | "0a5l0733hj7sk51j81ykfmlk2vd5vaijlq9d5fn165yyx3xii52j")))) | ||
| 4255 | (build-system ruby-build-system) | ||
| 4256 | ;; The test suite is disabled because it requires simplecov, which | ||
| 4257 | ;; requires this, introducing a dependency cycle. | ||
| 4258 | (arguments (list #:tests? #f)) | ||
| 4259 | (synopsis "JSON formatter for SimpleCov") | ||
| 4260 | (description "This package provides a JSON formatter for SimpleCov, the | ||
| 4261 | Ruby code coverage tool.") | ||
| 4262 | (home-page | ||
| 4263 | "https://github.com/codeclimate-community/simplecov_json_formatter") | ||
| 4264 | (license license:expat))) | ||
| 4265 | |||
| 4266 | (define-public ruby-simplecov | ||
| 4267 | (package | ||
| 4268 | (name "ruby-simplecov") | ||
| 4269 | (version "0.22.0") | ||
| 4270 | (source (origin | ||
| 4271 | (method url-fetch) | ||
| 4272 | (uri (rubygems-uri "simplecov" version)) | ||
| 4273 | (sha256 | ||
| 4274 | (base32 | ||
| 4275 | "198kcbrjxhhzca19yrdcd6jjj9sb51aaic3b0sc3pwjghg3j49py")))) | ||
| 4276 | (build-system ruby-build-system) | ||
| 4277 | ;; Simplecov depends on rubocop for code style checking at build time. | ||
| 4278 | ;; Rubocop needs simplecov at build time. | ||
| 4279 | (arguments `(#:tests? #f)) | ||
| 4280 | (propagated-inputs | ||
| 4281 | (list ruby-json | ||
| 4282 | ruby-docile | ||
| 4283 | ruby-simplecov-html | ||
| 4284 | ruby-simplecov-json-formatter)) | ||
| 4285 | (synopsis "Code coverage framework for Ruby") | ||
| 4286 | (description "SimpleCov is a code coverage framework for Ruby with a | ||
| 4287 | powerful configuration library and automatic merging of coverage across test | ||
| 4288 | suites.") | ||
| 4289 | (home-page "https://github.com/simplecov-ruby/simplecov") | ||
| 4290 | (license license:expat))) | ||
| 4291 | |||
| 4292 | (define-public ruby-simplecov-lcov | ||
| 4293 | (package | ||
| 4294 | (name "ruby-simplecov-lcov") | ||
| 4295 | (version "0.8.0") | ||
| 4296 | (source (origin | ||
| 4297 | (method url-fetch) | ||
| 4298 | (uri (rubygems-uri "simplecov-lcov" version)) | ||
| 4299 | (sha256 | ||
| 4300 | (base32 | ||
| 4301 | "1h8kswnshgb9zidvc88f4zjy4gflgz3854sx9wrw8ppgnwfg6581")))) | ||
| 4302 | (build-system ruby-build-system) | ||
| 4303 | ;; The test suite fails half of its tests; it seems to rely on older | ||
| 4304 | ;; versions of simplecov, rspec, possibly others (see: | ||
| 4305 | ;; https://github.com/fortissimo1997/simplecov-lcov/issues/29). | ||
| 4306 | (arguments (list #:tests? #f | ||
| 4307 | #:test-target "spec")) | ||
| 4308 | (native-inputs | ||
| 4309 | (list ruby-activesupport | ||
| 4310 | ruby-coveralls | ||
| 4311 | ruby-rspec | ||
| 4312 | ruby-simplecov)) | ||
| 4313 | (synopsis "SimpleCov formatter to generate a lcov style coverage") | ||
| 4314 | (description "This package provides a SimpleCov formatter to generate a | ||
| 4315 | lcov-style coverage report.") | ||
| 4316 | (home-page "https://github.com/fortissimo1997/simplecov-lcov") | ||
| 4317 | (license license:expat))) | ||
| 4318 | |||
| 4319 | (define-public ruby-snaky-hash | ||
| 4320 | (package | ||
| 4321 | (name "ruby-snaky-hash") | ||
| 4322 | (version "2.0.1") | ||
| 4323 | (source (origin | ||
| 4324 | (method git-fetch) | ||
| 4325 | (uri (git-reference ;for tests | ||
| 4326 | (url "https://gitlab.com/oauth-xx/snaky_hash") | ||
| 4327 | (commit (string-append "v" version)))) | ||
| 4328 | (file-name (git-file-name name version)) | ||
| 4329 | (sha256 | ||
| 4330 | (base32 | ||
| 4331 | "0zmixxzi2g2d75zii65bq037j4g67p25l6aqddbmmwizspsp5az6")))) | ||
| 4332 | (build-system ruby-build-system) | ||
| 4333 | (arguments | ||
| 4334 | (list #:phases #~(modify-phases %standard-phases | ||
| 4335 | (add-after 'unpack 'relax-requirements | ||
| 4336 | (lambda _ | ||
| 4337 | (substitute* "Gemfile" | ||
| 4338 | (("^linting = .*") | ||
| 4339 | "linting = false\n") | ||
| 4340 | (("^coverage = .*") | ||
| 4341 | "coverage = false\n") | ||
| 4342 | (("^debug = .*") | ||
| 4343 | "debug = false\n")) | ||
| 4344 | (substitute* "spec/spec_helper.rb" | ||
| 4345 | (("^RUN_COVERAGE = .*") | ||
| 4346 | "RUN_COVERAGE = false\n") | ||
| 4347 | (("^ALL_FORMATTERS = .*") | ||
| 4348 | "ALL_FORMATTERS = false\n")))) | ||
| 4349 | (add-before 'build 'drop-signing-key-requirement | ||
| 4350 | (lambda _ | ||
| 4351 | (substitute* "snaky_hash.gemspec" | ||
| 4352 | (("spec.signing_key =.*") | ||
| 4353 | "spec.signing_key = nil"))))))) | ||
| 4354 | (native-inputs (list ruby-rspec ruby-rspec-block-is-expected)) | ||
| 4355 | (propagated-inputs (list ruby-hashie ruby-version-gem)) | ||
| 4356 | (synopsis "Hash keys and look-ups normalization Ruby library") | ||
| 4357 | (description "The SnakyHash Ruby library provides classes for normalizing | ||
| 4358 | hash keys and look-ups, and a pseudo-object interface.") | ||
| 4359 | (home-page "https://gitlab.com/oauth-xx/snaky_hash") | ||
| 4360 | (license license:expat))) | ||
| 4361 | |||
| 4362 | (define-public ruby-useragent | ||
| 4363 | (package | ||
| 4364 | (name "ruby-useragent") | ||
| 4365 | (version "0.16.10") | ||
| 4366 | (source (origin | ||
| 4367 | (method url-fetch) | ||
| 4368 | (uri (rubygems-uri "useragent" version)) | ||
| 4369 | (sha256 | ||
| 4370 | (base32 | ||
| 4371 | "1fv5kvq494swy0p17h9qya9r50w15xsi9zmvhzb8gh55kq6ki50p")))) | ||
| 4372 | (build-system ruby-build-system) | ||
| 4373 | (arguments | ||
| 4374 | '(#:tests? #f)) ; no test suite | ||
| 4375 | (synopsis "HTTP user agent parser for Ruby") | ||
| 4376 | (description "UserAgent is a Ruby library that parses and compares HTTP | ||
| 4377 | User Agents.") | ||
| 4378 | (home-page "https://github.com/gshutler/useragent") | ||
| 4379 | (license license:expat))) | ||
| 4380 | |||
| 4381 | (define-public ruby-backports | ||
| 4382 | (package | ||
| 4383 | (name "ruby-backports") | ||
| 4384 | (version "3.11.4") | ||
| 4385 | (source | ||
| 4386 | (origin | ||
| 4387 | (method url-fetch) | ||
| 4388 | (uri (rubygems-uri "backports" version)) | ||
| 4389 | (sha256 | ||
| 4390 | (base32 | ||
| 4391 | "1hshjxww2h7s0dk57njrygq4zpp0nlqrjfya7zwm27iq3rhc3y8g")))) | ||
| 4392 | (build-system ruby-build-system) | ||
| 4393 | (arguments | ||
| 4394 | '(;; TODO: This should be default, but there is one test failure | ||
| 4395 | #:test-target "all_spec")) | ||
| 4396 | (native-inputs | ||
| 4397 | (list ruby-mspec ruby-activesupport)) | ||
| 4398 | (synopsis "Backports of the features in newer Ruby versions") | ||
| 4399 | (description | ||
| 4400 | "Backports enables more compatibility across Ruby versions by providing | ||
| 4401 | backports of some features.") | ||
| 4402 | (home-page "https://github.com/marcandre/backports") | ||
| 4403 | (license license:expat))) | ||
| 4404 | |||
| 4405 | (define-public ruby-bacon | ||
| 4406 | (package | ||
| 4407 | (name "ruby-bacon") | ||
| 4408 | (version "1.2.0") | ||
| 4409 | (source (origin | ||
| 4410 | (method url-fetch) | ||
| 4411 | (uri (rubygems-uri "bacon" version)) | ||
| 4412 | (sha256 | ||
| 4413 | (base32 | ||
| 4414 | "1f06gdj77bmwzc1k5iragl1595hbn67yc7sqvs56ca8plrr2vmai")))) | ||
| 4415 | (build-system ruby-build-system) | ||
| 4416 | (synopsis "Small RSpec clone") | ||
| 4417 | (description "Bacon is a small RSpec clone providing all essential | ||
| 4418 | features.") | ||
| 4419 | (home-page "https://github.com/chneukirchen/bacon") | ||
| 4420 | (license license:expat))) | ||
| 4421 | |||
| 4422 | (define-public ruby-bacon-bits | ||
| 4423 | (package | ||
| 4424 | (name "ruby-bacon-bits") | ||
| 4425 | (version "0.1.0") | ||
| 4426 | (source | ||
| 4427 | (origin | ||
| 4428 | (method url-fetch) | ||
| 4429 | (uri (rubygems-uri "bacon-bits" version)) | ||
| 4430 | (sha256 | ||
| 4431 | (base32 | ||
| 4432 | "1ghpj8ja94lhi8rgi872hqk4fd2amz2k7g9znd64z5dj7v6l0dmx")))) | ||
| 4433 | (build-system ruby-build-system) | ||
| 4434 | (arguments | ||
| 4435 | ;; No tests | ||
| 4436 | '(#:tests? #f)) | ||
| 4437 | (propagated-inputs (list ruby-bacon)) | ||
| 4438 | (synopsis "Extensions to Bacon, for disabling tests, before and after | ||
| 4439 | blocks and more") | ||
| 4440 | (description | ||
| 4441 | "This extends the bacon testing framework with useful extensions to | ||
| 4442 | disable tests, have before and after blocks that run once and more.") | ||
| 4443 | (home-page "https://github.com/cldwalker/bacon-bits") | ||
| 4444 | (license license:expat))) | ||
| 4445 | |||
| 4446 | (define-public ruby-bacon-colored-output | ||
| 4447 | (package | ||
| 4448 | (name "ruby-bacon-colored-output") | ||
| 4449 | (version "1.1.1") | ||
| 4450 | (source | ||
| 4451 | (origin | ||
| 4452 | (method url-fetch) | ||
| 4453 | (uri (rubygems-uri "bacon-colored_output" version)) | ||
| 4454 | (sha256 | ||
| 4455 | (base32 | ||
| 4456 | "1znyh3vkfdlmf19p3k4zip88ibym41dn5g4p4n5hmks2iznb7qpx")))) | ||
| 4457 | (build-system ruby-build-system) | ||
| 4458 | (arguments | ||
| 4459 | '(;; No included tests | ||
| 4460 | #:tests? #f)) | ||
| 4461 | (propagated-inputs | ||
| 4462 | (list ruby-bacon)) | ||
| 4463 | (synopsis "Colored output for Bacon test framework") | ||
| 4464 | (description | ||
| 4465 | "This package adds color through ANSI escape codes to Bacon test | ||
| 4466 | output.") | ||
| 4467 | (home-page "https://github.com/whitequark/bacon-colored_output") | ||
| 4468 | (license license:expat))) | ||
| 4469 | |||
| 4470 | (define-public ruby-bake | ||
| 4471 | (package | ||
| 4472 | (name "ruby-bake") | ||
| 4473 | (version "0.18.2") | ||
| 4474 | (source (origin | ||
| 4475 | (method git-fetch) ;for tests | ||
| 4476 | (uri (git-reference | ||
| 4477 | (url "https://github.com/ioquatix/bake") | ||
| 4478 | (commit (string-append "v" version)))) | ||
| 4479 | (file-name (git-file-name name version)) | ||
| 4480 | (sha256 | ||
| 4481 | (base32 | ||
| 4482 | "19yi1fxzz9n580gig3p3j6nxbgcfcassa6b0q07jkqrzxdqn7xhn")))) | ||
| 4483 | (build-system ruby-build-system) | ||
| 4484 | (arguments | ||
| 4485 | (list #:phases | ||
| 4486 | #~(modify-phases %standard-phases | ||
| 4487 | (add-after 'unpack 'sanitize-dependencies | ||
| 4488 | (lambda _ | ||
| 4489 | ;; These dependencies are not needed to build and run tests | ||
| 4490 | ;; and contain circular dependencies. | ||
| 4491 | (substitute* "gems.rb" | ||
| 4492 | ((".*'bake-modernize'.*") "") | ||
| 4493 | ((".*'bake-gem'.*") "") | ||
| 4494 | ((".*'bake-github-pages'.*") "") | ||
| 4495 | ((".*'utopia-project'.*") "")))) | ||
| 4496 | (add-before 'build 'drop-signing-key-requirement | ||
| 4497 | (lambda _ | ||
| 4498 | (substitute* "bake.gemspec" | ||
| 4499 | (("spec.signing_key =.*") | ||
| 4500 | "spec.signing_key = nil")))) | ||
| 4501 | (replace 'check | ||
| 4502 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 4503 | (when tests? | ||
| 4504 | (invoke "rspec"))))))) | ||
| 4505 | (native-inputs (list ruby-covered ruby-rspec)) | ||
| 4506 | (propagated-inputs (list ruby-samovar)) | ||
| 4507 | (synopsis "Replacement for rake with a simpler syntax") | ||
| 4508 | (description "Bake is a task execution tool, inspired by Rake, but | ||
| 4509 | codifying many of the use cases which are typically implemented in an ad-hoc | ||
| 4510 | manner.") | ||
| 4511 | (home-page "https://github.com/ioquatix/bake") | ||
| 4512 | (license license:expat))) | ||
| 4513 | |||
| 4514 | (define-public ruby-bake-test | ||
| 4515 | (package | ||
| 4516 | (name "ruby-bake-test") | ||
| 4517 | (version "0.2.0") | ||
| 4518 | (source (origin | ||
| 4519 | (method url-fetch) | ||
| 4520 | (uri (rubygems-uri "bake-test" version)) | ||
| 4521 | (sha256 | ||
| 4522 | (base32 | ||
| 4523 | "1p6kfpncj0s4zyynrrq6c735jvh0dnwyv7kfqym4rpyka4f85qdp")))) | ||
| 4524 | (build-system ruby-build-system) | ||
| 4525 | ;; XXX: Disable the test suite to avoid a circular dependency with | ||
| 4526 | ;; ruby-sus. | ||
| 4527 | (arguments (list #:tests? #f)) | ||
| 4528 | (propagated-inputs (list ruby-bake)) | ||
| 4529 | (synopsis "Test suite automatic runner for Ruby") | ||
| 4530 | (description "@command{bake-test} automatically discovers how to run local | ||
| 4531 | test suites for Ruby projects. It supports @command{rspec}, @command{sus}, as | ||
| 4532 | well as @samp{rake}.") | ||
| 4533 | (home-page "https://github.com/ioquatix/bake-test") | ||
| 4534 | (license license:expat))) | ||
| 4535 | |||
| 4536 | (define-public ruby-bake-test-external | ||
| 4537 | (package | ||
| 4538 | (name "ruby-bake-test-external") | ||
| 4539 | (version "0.3.2") | ||
| 4540 | (source (origin | ||
| 4541 | (method url-fetch) | ||
| 4542 | (uri (rubygems-uri "bake-test-external" version)) | ||
| 4543 | (sha256 | ||
| 4544 | (base32 | ||
| 4545 | "0749xc7jkz1c5gsq1giwhrqy6s6xqm48bdvs414372881wki2jmh")))) | ||
| 4546 | (build-system ruby-build-system) | ||
| 4547 | ;; The test suite relies on git and network access to clone external | ||
| 4548 | ;; repositories. | ||
| 4549 | (arguments (list #:tests? #f)) | ||
| 4550 | (propagated-inputs (list ruby-bake)) | ||
| 4551 | (synopsis "Continuous integration extension for Bake") | ||
| 4552 | (description "Bake Test External adds a @samp{test:external} action to the | ||
| 4553 | @command{bake} command to run the test suites of dependent projects to check | ||
| 4554 | for breakage.") | ||
| 4555 | (home-page "https://github.com/ioquatix/bake-test-external") | ||
| 4556 | (license license:expat))) | ||
| 4557 | |||
| 4558 | (define-public ruby-connection-pool | ||
| 4559 | (package | ||
| 4560 | (name "ruby-connection-pool") | ||
| 4561 | (version "2.4.1") | ||
| 4562 | (source (origin | ||
| 4563 | (method git-fetch) | ||
| 4564 | (uri (git-reference | ||
| 4565 | (url "https://github.com/mperham/connection_pool") | ||
| 4566 | (commit (string-append "v" version)))) | ||
| 4567 | (file-name (git-file-name name version)) | ||
| 4568 | (sha256 | ||
| 4569 | (base32 | ||
| 4570 | "1iijshb1n9xl5knvpzzx0vqlw7v7mskiw1cpfj1cmdmssavyhsx5")))) | ||
| 4571 | (build-system ruby-build-system) | ||
| 4572 | (arguments | ||
| 4573 | (list | ||
| 4574 | #:phases | ||
| 4575 | #~(modify-phases %standard-phases | ||
| 4576 | (add-after 'unpack 'patch | ||
| 4577 | (lambda _ | ||
| 4578 | (substitute* "Rakefile" | ||
| 4579 | (("require \"standard/rake\"") "") | ||
| 4580 | ((":\"standard:fix\",") ""))))))) | ||
| 4581 | (native-inputs | ||
| 4582 | (list bundler)) | ||
| 4583 | (synopsis "Generic connection pool for Ruby") | ||
| 4584 | (description "Connection_pool provides a generic connection pooling | ||
| 4585 | interface for Ruby programs.") | ||
| 4586 | (home-page "https://github.com/mperham/connection_pool") | ||
| 4587 | (license license:expat))) | ||
| 4588 | |||
| 4589 | (define-public ruby-fast-gettext | ||
| 4590 | (package | ||
| 4591 | (name "ruby-fast-gettext") | ||
| 4592 | (version "4.1.0") | ||
| 4593 | (home-page "https://github.com/grosser/fast_gettext") | ||
| 4594 | (source (origin | ||
| 4595 | (method git-fetch) | ||
| 4596 | (uri (git-reference (url home-page) | ||
| 4597 | (commit (string-append "v" version)))) | ||
| 4598 | (file-name (git-file-name name version)) | ||
| 4599 | (sha256 | ||
| 4600 | (base32 | ||
| 4601 | "04p9s0r67xgvckab9ydb3fbnrc7g20p5c05z2zsacynlkp9x5jp9")))) | ||
| 4602 | (build-system ruby-build-system) | ||
| 4603 | (arguments | ||
| 4604 | (list | ||
| 4605 | #:test-target "spec" | ||
| 4606 | #:phases | ||
| 4607 | #~(modify-phases %standard-phases | ||
| 4608 | (add-before 'check 'remove-version-constraints | ||
| 4609 | (lambda _ | ||
| 4610 | (delete-file "Gemfile.lock")))))) | ||
| 4611 | (native-inputs | ||
| 4612 | (list ;; For tests. | ||
| 4613 | ruby-activerecord | ||
| 4614 | ruby-activesupport | ||
| 4615 | ruby-bump | ||
| 4616 | ruby-forking-test-runner | ||
| 4617 | ruby-i18n | ||
| 4618 | ruby-rubocop | ||
| 4619 | ruby-rubocop-packaging | ||
| 4620 | ruby-rspec | ||
| 4621 | ruby-single-cov | ||
| 4622 | ruby-sqlite3 | ||
| 4623 | ruby-wwtd)) | ||
| 4624 | (synopsis "Fast implementation of @code{GetText}") | ||
| 4625 | (description | ||
| 4626 | "This package provides an alternative implementation of the Ruby | ||
| 4627 | @code{GetText} library that is approximately 12x faster yet thread safe.") | ||
| 4628 | ;; Some parts are covered by the Ruby license, see file headers. | ||
| 4629 | (license (list license:expat license:ruby)))) | ||
| 4630 | |||
| 4631 | (define-public ruby-fiber-local | ||
| 4632 | (package | ||
| 4633 | (name "ruby-fiber-local") | ||
| 4634 | (version "1.0.0") | ||
| 4635 | (source (origin | ||
| 4636 | (method git-fetch) | ||
| 4637 | (uri (git-reference | ||
| 4638 | (url "https://github.com/socketry/fiber-local") | ||
| 4639 | (commit (string-append "v" version)))) | ||
| 4640 | (file-name (git-file-name name version)) | ||
| 4641 | (sha256 | ||
| 4642 | (base32 | ||
| 4643 | "0pp5b81h0lysdnphgprkixh1az0fkrgir5sbcp0mm8arxf3f8m90")))) | ||
| 4644 | (build-system ruby-build-system) | ||
| 4645 | (arguments | ||
| 4646 | (list #:phases | ||
| 4647 | #~(modify-phases %standard-phases | ||
| 4648 | (add-after 'extract-gemspec 'sanitize-dependencies | ||
| 4649 | (lambda _ | ||
| 4650 | ;; This pulls in extraneous maintenance dependencies. | ||
| 4651 | (delete-file "gems.rb") | ||
| 4652 | ;; Depending on ruby-covered would introduce a dependency | ||
| 4653 | ;; cycle with it. | ||
| 4654 | (substitute* '("fiber-local.gemspec" "spec/spec_helper.rb") | ||
| 4655 | ((".*covered.*") "")))) | ||
| 4656 | (replace 'check | ||
| 4657 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 4658 | (when tests? | ||
| 4659 | (invoke "rspec"))))))) | ||
| 4660 | (native-inputs (list ruby-rspec)) | ||
| 4661 | (synopsis "Ruby module to simplify fiber-local state management") | ||
| 4662 | (description "This package provides a class-level mixin to make managing | ||
| 4663 | fiber-local state easy. It provides easy access to a fiber-local state from a | ||
| 4664 | fiber, and defaults to a shared thread-local state.") | ||
| 4665 | (home-page "https://github.com/socketry/fiber-local") | ||
| 4666 | (license license:expat))) | ||
| 4667 | |||
| 4668 | (define-public ruby-flores | ||
| 4669 | (let ((commit "92fded00b04b1e3d308edb7440d7b7ab2c89ab5e") | ||
| 4670 | (revision "0")) | ||
| 4671 | (package | ||
| 4672 | (name "ruby-flores") | ||
| 4673 | (version (git-version "0.0.8" revision commit)) | ||
| 4674 | (source | ||
| 4675 | (origin | ||
| 4676 | (method git-fetch) | ||
| 4677 | (uri (git-reference | ||
| 4678 | (url "https://github.com/jordansissel/ruby-flores") | ||
| 4679 | (commit commit))) | ||
| 4680 | (sha256 | ||
| 4681 | (base32 "0jvnw0jli2zzxklfk751vfbi4acf9lijppk67346j3b2qxqi8xms")) | ||
| 4682 | (patches | ||
| 4683 | (search-patches "ruby-flores-fix-deprecations.patch")))) | ||
| 4684 | (build-system ruby-build-system) | ||
| 4685 | (arguments | ||
| 4686 | (list #:phases | ||
| 4687 | #~(modify-phases %standard-phases | ||
| 4688 | (add-after 'unpack 'fix-gemspec | ||
| 4689 | (lambda _ | ||
| 4690 | (substitute* "flores.gemspec" | ||
| 4691 | ;; Since this is not a git repository, do not call 'git'. | ||
| 4692 | (("git ls-files") "find . -type f |sort")))) | ||
| 4693 | (replace 'check | ||
| 4694 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 4695 | (when tests? | ||
| 4696 | (invoke "ruby" (which "rspec")))))))) | ||
| 4697 | (native-inputs (list ruby-rspec ruby-simplecov)) | ||
| 4698 | (synopsis "Fuzzing, randomization, and stress testing library") | ||
| 4699 | (description "Flores is a fuzzing, randomization, and stress library to | ||
| 4700 | help tests uncover more bugs.") | ||
| 4701 | (home-page "https://github.com/jordansissel/ruby-flores") | ||
| 4702 | (license license:asl2.0)))) | ||
| 4703 | |||
| 4704 | (define-public ruby-ipaddr | ||
| 4705 | (package | ||
| 4706 | (name "ruby-ipaddr") | ||
| 4707 | (version "1.2.6") | ||
| 4708 | (source (origin | ||
| 4709 | (method git-fetch) ;for tests | ||
| 4710 | (uri (git-reference | ||
| 4711 | (url "https://github.com/ruby/ipaddr") | ||
| 4712 | (commit (string-append "v" version)))) | ||
| 4713 | (file-name (git-file-name name version)) | ||
| 4714 | (sha256 | ||
| 4715 | (base32 | ||
| 4716 | "0h3z8i1fa8s4gx48322fflhpkzghd4bmd9109hglsgdkic7b0dyp")))) | ||
| 4717 | (build-system ruby-build-system) | ||
| 4718 | (native-inputs (list ruby-test-unit-ruby-core)) | ||
| 4719 | (synopsis "Manipulate IP addresses") | ||
| 4720 | (description "This package provides a set of methods to manipulate an IP | ||
| 4721 | address. Both IPv4 and IPv6 are supported.") | ||
| 4722 | (home-page "https://github.com/ruby/ipaddr") | ||
| 4723 | (license license:bsd-2))) | ||
| 4724 | |||
| 4725 | (define-public ruby-fake-ftp | ||
| 4726 | (package | ||
| 4727 | (name "ruby-fake-ftp") | ||
| 4728 | (version "0.3.0") | ||
| 4729 | (source (origin | ||
| 4730 | (method url-fetch) | ||
| 4731 | (uri (rubygems-uri "fake_ftp" version)) | ||
| 4732 | (sha256 | ||
| 4733 | (base32 | ||
| 4734 | "1zl9q9m4x7lz9890g0h1qqj7hcxnwzpjfnfbxadjblps7b5054q4")))) | ||
| 4735 | (build-system ruby-build-system) | ||
| 4736 | (native-inputs (list ruby-rspec ruby-rubocop ruby-simplecov)) | ||
| 4737 | (arguments | ||
| 4738 | '(#:test-target "spec")) | ||
| 4739 | (synopsis "Fake FTP server for use with ruby tests") | ||
| 4740 | (description "This package allows you to test FTP implementations in ruby. | ||
| 4741 | It is a minimal single-client FTP server that can be bound to any arbitrary | ||
| 4742 | port on localhost.") | ||
| 4743 | (home-page "https://rubygems.org/gems/fake_ftp") | ||
| 4744 | (license license:expat))) | ||
| 4745 | |||
| 4746 | (define-public ruby-net-telnet | ||
| 4747 | (package | ||
| 4748 | (name "ruby-net-telnet") | ||
| 4749 | (version "0.2.0") | ||
| 4750 | (source (origin | ||
| 4751 | (method url-fetch) | ||
| 4752 | (uri (rubygems-uri "net-telnet" version)) | ||
| 4753 | (sha256 | ||
| 4754 | (base32 | ||
| 4755 | "16nkxc79nqm7fd6w1fba4kb98vpgwnyfnlwxarpdcgywz300fc15")))) | ||
| 4756 | (build-system ruby-build-system) | ||
| 4757 | (synopsis "Telnet client functionality") | ||
| 4758 | (description "This package provides telnet client functionality.") | ||
| 4759 | (home-page "https://github.com/ruby/net-telnet") | ||
| 4760 | (license license:bsd-2))) | ||
| 4761 | |||
| 4762 | (define-public ruby-net-ftp | ||
| 4763 | (package | ||
| 4764 | (name "ruby-net-ftp") | ||
| 4765 | (version "0.3.4") | ||
| 4766 | (source (origin | ||
| 4767 | (method git-fetch) ;for tests | ||
| 4768 | (uri (git-reference | ||
| 4769 | (url "https://github.com/ruby/net-ftp") | ||
| 4770 | (commit (string-append "v" version)))) | ||
| 4771 | (file-name (git-file-name name version)) | ||
| 4772 | (sha256 | ||
| 4773 | (base32 | ||
| 4774 | "11b1sw7c4c7xrhn5li5m0wylw42hp52jp6pqacyb43hkw1m5zr36")))) | ||
| 4775 | (build-system ruby-build-system) | ||
| 4776 | (propagated-inputs (list ruby-net-protocol ruby-time)) | ||
| 4777 | (synopsis "File Transfer Protocol client library") | ||
| 4778 | (description "This class implements the File Transfer Protocol. If you | ||
| 4779 | have used a command-line FTP program, and are familiar with the commands, you | ||
| 4780 | will be able to use this class easily. Some extra features are included to | ||
| 4781 | take advantage of Ruby's style and strengths.") | ||
| 4782 | (home-page "https://github.com/ruby/net-ftp") | ||
| 4783 | (license license:bsd-2))) | ||
| 4784 | |||
| 4785 | (define-public ruby-net-http-persistent | ||
| 4786 | (package | ||
| 4787 | (name "ruby-net-http-persistent") | ||
| 4788 | (version "4.0.2") | ||
| 4789 | (source (origin | ||
| 4790 | (method url-fetch) | ||
| 4791 | (uri (rubygems-uri "net-http-persistent" version)) | ||
| 4792 | (sha256 | ||
| 4793 | (base32 | ||
| 4794 | "0i1as2lgnw7b4jid0gw5glv5hnxz36nmfsbr9rmxbcap72ijgy03")))) | ||
| 4795 | (build-system ruby-build-system) | ||
| 4796 | (native-inputs | ||
| 4797 | (list ruby-connection-pool | ||
| 4798 | ruby-hoe | ||
| 4799 | ruby-rake-manifest)) | ||
| 4800 | (synopsis "Persistent HTTP connection manager") | ||
| 4801 | (description "Net::HTTP::Persistent manages persistent HTTP connections | ||
| 4802 | using Net::HTTP, supporting reconnection and retry according to RFC 2616.") | ||
| 4803 | (home-page "https://github.com/drbrain/net-http-persistent") | ||
| 4804 | (license license:expat))) | ||
| 4805 | |||
| 4806 | (define-public ruby-net-imap | ||
| 4807 | (package | ||
| 4808 | (name "ruby-net-imap") | ||
| 4809 | (version "0.3.4") | ||
| 4810 | (source (origin | ||
| 4811 | (method git-fetch) ;for tests | ||
| 4812 | (uri (git-reference | ||
| 4813 | (url "https://github.com/ruby/net-imap") | ||
| 4814 | (commit (string-append "v" version)))) | ||
| 4815 | (file-name (git-file-name name version)) | ||
| 4816 | (sha256 | ||
| 4817 | (base32 | ||
| 4818 | "0nx49i1n9q1wpancqaac2srrpb8mb43mc8wryyqyhpgki2grwyxw")))) | ||
| 4819 | (build-system ruby-build-system) | ||
| 4820 | (arguments | ||
| 4821 | ;; The test suite appears to rely on RFCs it tries fetching from the | ||
| 4822 | ;; network (see: https://github.com/ruby/net-imap/issues/136). | ||
| 4823 | (list #:tests? #f | ||
| 4824 | #:phases | ||
| 4825 | #~(modify-phases %standard-phases | ||
| 4826 | (add-before 'replace-git-ls-files 'adjust-for-git-ls-files | ||
| 4827 | (lambda _ | ||
| 4828 | ;; Adjust the git ls-files invocation so that it matches | ||
| 4829 | ;; the expected pattern. | ||
| 4830 | (substitute* "net-imap.gemspec" | ||
| 4831 | (("`git ls-files -z 2>/dev/null`") | ||
| 4832 | "`git ls-files -z`"))))))) | ||
| 4833 | (propagated-inputs (list ruby-date ruby-net-protocol)) | ||
| 4834 | (synopsis "Ruby client api for Internet Message Access Protocol") | ||
| 4835 | (description "@code{Net::IMAP} implements Internet Message Access | ||
| 4836 | Protocol (IMAP) client functionality. The protocol is described in | ||
| 4837 | @url{https://tools.ietf.org/html/rfc3501, IMAP}.") | ||
| 4838 | (home-page "https://github.com/ruby/net-imap") | ||
| 4839 | (license license:bsd-2))) | ||
| 4840 | |||
| 4841 | (define-public ruby-net-pop | ||
| 4842 | (package | ||
| 4843 | (name "ruby-net-pop") | ||
| 4844 | (version "0.1.2") | ||
| 4845 | (source (origin | ||
| 4846 | (method git-fetch) | ||
| 4847 | (uri (git-reference | ||
| 4848 | (url "https://github.com/ruby/net-pop") | ||
| 4849 | (commit (string-append "v" version)))) | ||
| 4850 | (file-name (git-file-name name version)) | ||
| 4851 | (sha256 | ||
| 4852 | (base32 | ||
| 4853 | "05vz6a56va2rbr7ld78gdzwy1j5mzs98cz82ax5aqa83pzzk6jld")))) | ||
| 4854 | (build-system ruby-build-system) | ||
| 4855 | (propagated-inputs (list ruby-net-protocol)) | ||
| 4856 | (synopsis "Ruby client library for POP3") | ||
| 4857 | (description "This library provides functionality for retrieving email via | ||
| 4858 | POP3, the Post Office Protocol version 3, as specified by | ||
| 4859 | @url{http://www.ietf.org/rfc/rfc1939.txt, RFC1939}.") | ||
| 4860 | (home-page "https://github.com/ruby/net-pop") | ||
| 4861 | (license license:bsd-2))) | ||
| 4862 | |||
| 4863 | (define-public ruby-net-smtp | ||
| 4864 | (package | ||
| 4865 | (name "ruby-net-smtp") | ||
| 4866 | (version "0.3.3") | ||
| 4867 | (source (origin | ||
| 4868 | (method git-fetch) ;for tests | ||
| 4869 | (uri (git-reference | ||
| 4870 | (url "https://github.com/ruby/net-smtp") | ||
| 4871 | (commit (string-append "v" version)))) | ||
| 4872 | (file-name (git-file-name name version)) | ||
| 4873 | (sha256 | ||
| 4874 | (base32 | ||
| 4875 | "0ca2wh45xvc09rv6v6sz3vbnkzrjzk5c4l6dk50zk4dwxvghma8r")))) | ||
| 4876 | (build-system ruby-build-system) | ||
| 4877 | (arguments | ||
| 4878 | (list | ||
| 4879 | #:phases | ||
| 4880 | #~(modify-phases %standard-phases | ||
| 4881 | (add-before 'check 'regenerate-certificate | ||
| 4882 | ;; On version 0.5.0 a Makefile was introduced to regenerated | ||
| 4883 | ;; the certificates, and instead of calling openssl directory | ||
| 4884 | ;; we could do (with-directory-excursion "test/net/fixtures" | ||
| 4885 | ;; (invoke "make" "regen_certs"). However the certificate is | ||
| 4886 | ;; expired versions before 0.5.0 as well. | ||
| 4887 | (lambda _ | ||
| 4888 | (with-directory-excursion "test/net/fixtures" | ||
| 4889 | (invoke | ||
| 4890 | "openssl" "req" "-new" "-key" "server.key" "-out" | ||
| 4891 | "server.csr" "-subj" | ||
| 4892 | "/C=JP/ST=Shimane/O=Ruby Core Team/OU=Ruby Test/CN=localhost") | ||
| 4893 | (invoke "openssl" "req" "-new" "-x509" "-days" "3650" | ||
| 4894 | "-key" "server.key" "-out" "cacert.pem" "-subj" | ||
| 4895 | (string-append | ||
| 4896 | "/C=JP/ST=Shimane/L=Matz-e city/O=Ruby " | ||
| 4897 | "Core Team/CN=Ruby Test " | ||
| 4898 | "CA/emailAddress=security@ruby-lang.org")) | ||
| 4899 | (invoke "openssl" "x509" "-days" "3650" "-CA" "cacert.pem" | ||
| 4900 | "-CAkey" "server.key" "-set_serial" "00" "-in" | ||
| 4901 | "server.csr" "-req" "-out" "server.crt"))))))) | ||
| 4902 | (native-inputs (list openssl)) | ||
| 4903 | (propagated-inputs (list ruby-net-protocol)) | ||
| 4904 | (synopsis "Simple Mail Transfer Protocol client library for Ruby") | ||
| 4905 | (description "This library provides functionality to send Internet mail | ||
| 4906 | via SMTP, the Simple Mail Transfer Protocol. The SMTP protocol specification | ||
| 4907 | is known as @url{http://www.ietf.org/rfc/rfc2821.txt, RFC2821}.") | ||
| 4908 | (home-page "https://github.com/ruby/net-smtp") | ||
| 4909 | (license license:bsd-2))) | ||
| 4910 | |||
| 4911 | (define-public ruby-pleaserun | ||
| 4912 | (package | ||
| 4913 | (name "ruby-pleaserun") | ||
| 4914 | (version "0.0.32") | ||
| 4915 | (source (origin | ||
| 4916 | (method url-fetch) | ||
| 4917 | (uri (rubygems-uri "pleaserun" version)) | ||
| 4918 | (sha256 | ||
| 4919 | (base32 | ||
| 4920 | "1aykf0l8327bqkkf5xd9jcglsib973zpy37cfnlf4j0vp0cdpn2d")))) | ||
| 4921 | (build-system ruby-build-system) | ||
| 4922 | (arguments | ||
| 4923 | (list #:phases | ||
| 4924 | #~(modify-phases %standard-phases | ||
| 4925 | (add-after 'extract-gemspec 'relax-requirements | ||
| 4926 | (lambda _ | ||
| 4927 | (substitute* "pleaserun.gemspec" | ||
| 4928 | ;; Mustache is pinned at 0.99.8, for portability with | ||
| 4929 | ;; older Rubies. | ||
| 4930 | (("dependency\\(%q<mustache>.freeze.*") | ||
| 4931 | "dependency(%q<mustache>.freeze)\n")))) | ||
| 4932 | (replace 'check | ||
| 4933 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 4934 | (when tests? | ||
| 4935 | ;; The cli_spec.rb test fails non-deterministically with | ||
| 4936 | ;; a Errno::EISDIR error (see: | ||
| 4937 | ;; https://github.com/jordansissel/pleaserun/issues/155) | ||
| 4938 | (invoke "rspec" "--exclude-pattern" | ||
| 4939 | "spec/pleaserun/cli_spec.rb"))))))) | ||
| 4940 | (native-inputs (list ruby-flores ruby-rspec)) | ||
| 4941 | (propagated-inputs (list ruby-cabin | ||
| 4942 | ruby-clamp | ||
| 4943 | ruby-dotenv | ||
| 4944 | ruby-insist | ||
| 4945 | ruby-mustache | ||
| 4946 | ruby-stud)) | ||
| 4947 | (synopsis "Init scripts and service definitions generation tool") | ||
| 4948 | (description "Pleaserun is a tool to generate startup scripts and service | ||
| 4949 | definitions. It targets service managers such as systemd, Upstart, launchd, | ||
| 4950 | sysv init, and runit.") | ||
| 4951 | (home-page "https://github.com/jordansissel/pleaserun") | ||
| 4952 | (license license:asl2.0))) | ||
| 4953 | |||
| 4954 | (define-public ruby-power-assert | ||
| 4955 | (package | ||
| 4956 | (name "ruby-power-assert") | ||
| 4957 | (version "1.1.5") | ||
| 4958 | (source (origin | ||
| 4959 | (method url-fetch) | ||
| 4960 | (uri (rubygems-uri "power_assert" version)) | ||
| 4961 | (sha256 | ||
| 4962 | (base32 | ||
| 4963 | "1dii0wkfa0jm8sk9b20zl1z4980dmrjh0zqnii058485pp3ws10s")))) | ||
| 4964 | (build-system ruby-build-system) | ||
| 4965 | (arguments | ||
| 4966 | '(#:tests? #f)) ; No included tests | ||
| 4967 | (native-inputs | ||
| 4968 | (list bundler)) | ||
| 4969 | (synopsis "Assert library with descriptive assertion messages") | ||
| 4970 | (description "Power-assert is an assertion library providing descriptive | ||
| 4971 | assertion messages for tests.") | ||
| 4972 | (home-page "https://github.com/k-tsj/power_assert") | ||
| 4973 | (license (list license:bsd-2 license:ruby)))) | ||
| 4974 | |||
| 4975 | (define-public ruby-powerpack | ||
| 4976 | (package | ||
| 4977 | (name "ruby-powerpack") | ||
| 4978 | (version "0.1.3") | ||
| 4979 | (source | ||
| 4980 | (origin | ||
| 4981 | (method url-fetch) | ||
| 4982 | (uri (rubygems-uri "powerpack" version)) | ||
| 4983 | (sha256 | ||
| 4984 | (base32 | ||
| 4985 | "1f71axvlhnxja0k17qqxdi4qh5ck807hqg4i3j6cgy8fgzmyg7rg")))) | ||
| 4986 | (build-system ruby-build-system) | ||
| 4987 | (arguments | ||
| 4988 | (list #:test-target "spec")) | ||
| 4989 | (native-inputs | ||
| 4990 | (list bundler ruby-rspec ruby-yard)) | ||
| 4991 | (synopsis "Useful extensions to core Ruby classes") | ||
| 4992 | (description | ||
| 4993 | "This package provides a few useful extensions to core Ruby classes, | ||
| 4994 | including @code{Array}, @code{Enumerable}, @code{Hash}, @code{Numeric}, and | ||
| 4995 | @code{String}.") | ||
| 4996 | (home-page "https://github.com/bbatsov/powerpack") | ||
| 4997 | (license license:expat))) | ||
| 4998 | |||
| 4999 | (define-public ruby-locale | ||
| 5000 | (package | ||
| 5001 | (name "ruby-locale") | ||
| 5002 | (version "2.1.2") | ||
| 5003 | (source (origin | ||
| 5004 | (method url-fetch) | ||
| 5005 | (uri (rubygems-uri "locale" version)) | ||
| 5006 | (sha256 | ||
| 5007 | (base32 | ||
| 5008 | "1sls9bq4krx0fmnzmlbn64dw23c4d6pz46ynjzrn9k8zyassdd0x")))) | ||
| 5009 | (build-system ruby-build-system) | ||
| 5010 | ;; ruby-test-unit is required to run tests, but that needs ruby-packnga, | ||
| 5011 | ;; which needs ruby-gettext, which needs ruby-locale. To break the | ||
| 5012 | ;; dependency cycle we disable tests. | ||
| 5013 | (arguments `(#:tests? #f)) | ||
| 5014 | (native-inputs | ||
| 5015 | (list bundler ruby-yard/minimal)) | ||
| 5016 | (synopsis "Ruby library providing basic localization APIs") | ||
| 5017 | (description | ||
| 5018 | "Ruby-Locale is the pure ruby library which provides basic APIs for | ||
| 5019 | localization.") | ||
| 5020 | (home-page "https://github.com/ruby-gettext/locale") | ||
| 5021 | (license (list license:lgpl3+ license:ruby)))) | ||
| 5022 | |||
| 5023 | (define-public ruby-temple | ||
| 5024 | (package | ||
| 5025 | (name "ruby-temple") | ||
| 5026 | (version "0.10.0") | ||
| 5027 | (source (origin | ||
| 5028 | (method git-fetch) ;for tests | ||
| 5029 | (uri (git-reference | ||
| 5030 | (url "https://github.com/judofyr/temple") | ||
| 5031 | (commit (string-append "v" version)))) | ||
| 5032 | (file-name (git-file-name name version)) | ||
| 5033 | (sha256 | ||
| 5034 | (base32 | ||
| 5035 | "0rr9fnlcgj9nm3b6hzzjsvcw8x3y7z48j7slk7xxff2mh8s7y3y0")))) | ||
| 5036 | (build-system ruby-build-system) | ||
| 5037 | (arguments | ||
| 5038 | (list #:phases | ||
| 5039 | #~(modify-phases %standard-phases | ||
| 5040 | (add-after 'replace-git-ls-files 'replace-more-git-ls-files | ||
| 5041 | (lambda _ | ||
| 5042 | (substitute* "temple.gemspec" | ||
| 5043 | ;; There no longer are test, spec or features | ||
| 5044 | ;; directories. | ||
| 5045 | ((".*`git ls-files -- \\{test,spec,features}/\\*`.*") | ||
| 5046 | "") | ||
| 5047 | ;; There isn't any bin directory either. | ||
| 5048 | ((".*`git ls-files -- bin/\\*`.*") | ||
| 5049 | "")))) | ||
| 5050 | (replace 'check | ||
| 5051 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 5052 | (when tests? | ||
| 5053 | (invoke "rspec"))))))) | ||
| 5054 | (native-inputs (list ruby-bacon ruby-erubi ruby-rspec ruby-tilt)) | ||
| 5055 | (synopsis "Template compilation framework in Ruby") | ||
| 5056 | (description "Temple is an abstraction and framework for compiling | ||
| 5057 | templates to pure Ruby.") | ||
| 5058 | (home-page "https://github.com/judofyr/temple") | ||
| 5059 | (license license:expat))) | ||
| 5060 | |||
| 5061 | (define-public ruby-text | ||
| 5062 | (package | ||
| 5063 | (name "ruby-text") | ||
| 5064 | (version "1.3.1") | ||
| 5065 | (source (origin | ||
| 5066 | (method url-fetch) | ||
| 5067 | (uri (rubygems-uri "text" version)) | ||
| 5068 | (sha256 | ||
| 5069 | (base32 | ||
| 5070 | "1x6kkmsr49y3rnrin91rv8mpc3dhrf3ql08kbccw8yffq61brfrg")))) | ||
| 5071 | (build-system ruby-build-system) | ||
| 5072 | (synopsis "Collection of text algorithms for Ruby") | ||
| 5073 | (description | ||
| 5074 | "This package provides a collection of text algorithms: Levenshtein, | ||
| 5075 | Soundex, Metaphone, Double Metaphone, Porter Stemming.") | ||
| 5076 | (home-page "https://github.com/threedaymonk/text") | ||
| 5077 | (license license:expat))) | ||
| 5078 | |||
| 5079 | (define-public ruby-gdbm | ||
| 5080 | (package | ||
| 5081 | (name "ruby-gdbm") | ||
| 5082 | (version "2.1.0") | ||
| 5083 | (source | ||
| 5084 | (origin | ||
| 5085 | (method url-fetch) | ||
| 5086 | (uri (rubygems-uri "gdbm" version)) | ||
| 5087 | (sha256 | ||
| 5088 | (base32 "0xxygf50b2fvy8lcn2vip27vq32p607d3lwd1diplvkajijq8q8b")))) | ||
| 5089 | (build-system ruby-build-system) | ||
| 5090 | (arguments '(#:tests? #f)) ; No bundled tests. | ||
| 5091 | (inputs (list gdbm)) | ||
| 5092 | (synopsis "Ruby extension for GNU dbm") | ||
| 5093 | (description "This package provides a Ruby extension for GNU dbm.") | ||
| 5094 | (home-page "https://github.com/ruby/gdbm") | ||
| 5095 | (license license:bsd-2))) | ||
| 5096 | |||
| 5097 | (define-public ruby-gettext | ||
| 5098 | (package | ||
| 5099 | (name "ruby-gettext") | ||
| 5100 | (version "3.4.4") | ||
| 5101 | (source (origin | ||
| 5102 | (method url-fetch) | ||
| 5103 | (uri (rubygems-uri "gettext" version)) | ||
| 5104 | (sha256 | ||
| 5105 | (base32 | ||
| 5106 | "11hlxkk2yr9wjwd3nf8kgmsjcd8wf35yqlxi9wpvrgmvrk9n9a2k")))) | ||
| 5107 | (build-system ruby-build-system) | ||
| 5108 | ;; ruby-test-unit is required to run tests, but that needs ruby-packnga, | ||
| 5109 | ;; which needs ruby-gettext. To break the dependency cycle we disable | ||
| 5110 | ;; tests. | ||
| 5111 | (arguments `(#:tests? #f)) | ||
| 5112 | (propagated-inputs | ||
| 5113 | (list ruby-locale ruby-text ruby-erubi)) | ||
| 5114 | (native-inputs | ||
| 5115 | (list bundler ruby-yard/minimal)) | ||
| 5116 | (synopsis "GNU gettext-like program for Ruby") | ||
| 5117 | (description | ||
| 5118 | "Gettext is a GNU gettext-like program for Ruby. The catalog | ||
| 5119 | file (po-file) used is the same as that used by GNU gettext, allowing you to | ||
| 5120 | use GNU gettext tools for maintenance.") | ||
| 5121 | (home-page "https://ruby-gettext.github.com/") | ||
| 5122 | (license (list license:lgpl3+ license:ruby)))) | ||
| 5123 | |||
| 5124 | (define-public ruby-packnga | ||
| 5125 | (package | ||
| 5126 | (name "ruby-packnga") | ||
| 5127 | (version "1.0.4") | ||
| 5128 | (source (origin | ||
| 5129 | (method url-fetch) | ||
| 5130 | (uri (rubygems-uri "packnga" version)) | ||
| 5131 | (sha256 | ||
| 5132 | (base32 | ||
| 5133 | "1vv2j0i43s4xid2km5hgrrxqlqpwgq8nlm8kaxfg2531c1vwfsd4")))) | ||
| 5134 | (build-system ruby-build-system) | ||
| 5135 | ;; ruby-test-unit is required to run tests, but that needs ruby-packnga. | ||
| 5136 | ;; To break the dependency cycle we disable tests. | ||
| 5137 | (arguments `(#:tests? #f)) | ||
| 5138 | (propagated-inputs | ||
| 5139 | (list ruby-gettext ruby-yard)) | ||
| 5140 | (native-inputs | ||
| 5141 | (list bundler)) | ||
| 5142 | (synopsis "Utility library to package internationalized libraries") | ||
| 5143 | (description | ||
| 5144 | "Packnga is a library to translate to many languages using YARD.") | ||
| 5145 | (home-page "https://ranguba.org/packnga/") | ||
| 5146 | (license license:lgpl2.0+))) | ||
| 5147 | |||
| 5148 | (define-public ruby-test-construct | ||
| 5149 | (package | ||
| 5150 | (name "ruby-test-construct") | ||
| 5151 | (version "2.0.2") | ||
| 5152 | (source | ||
| 5153 | (origin | ||
| 5154 | (method url-fetch) | ||
| 5155 | (uri (rubygems-uri "test_construct" version)) | ||
| 5156 | (sha256 | ||
| 5157 | (base32 | ||
| 5158 | "17q7rw92l7r4zh6rkvzrn4dyl8p8p77217vaa1wf7nsv8k5541vy")))) | ||
| 5159 | (build-system ruby-build-system) | ||
| 5160 | (native-inputs | ||
| 5161 | (list bundler ruby-mocha-1 ruby-rspec)) | ||
| 5162 | (synopsis "Creates temporary files and directories for testing") | ||
| 5163 | (description | ||
| 5164 | "TestConstruct is a @acronym{DSL, Domain Specific Language} for creating | ||
| 5165 | temporary files and directories during tests.") | ||
| 5166 | (home-page "https://github.com/bhb/test_construct") | ||
| 5167 | (license license:expat))) | ||
| 5168 | |||
| 5169 | (define-public ruby-test-unit | ||
| 5170 | (package | ||
| 5171 | (name "ruby-test-unit") | ||
| 5172 | (version "3.6.0") | ||
| 5173 | (source (origin | ||
| 5174 | (method git-fetch) ;for tests | ||
| 5175 | (uri (git-reference | ||
| 5176 | (url "https://github.com/test-unit/test-unit") | ||
| 5177 | (commit version))) | ||
| 5178 | (file-name (git-file-name name version)) | ||
| 5179 | (sha256 | ||
| 5180 | (base32 | ||
| 5181 | "0w1m432q3y5v9lkak8yyxadak3z17bsp6afni97i4zjdgfz7niz2")))) | ||
| 5182 | (build-system ruby-build-system) | ||
| 5183 | (propagated-inputs | ||
| 5184 | (list ruby-power-assert)) | ||
| 5185 | (native-inputs | ||
| 5186 | (list bundler ruby-packnga ruby-yard)) | ||
| 5187 | (synopsis "Unit testing framework for Ruby") | ||
| 5188 | (description "@code{Test::Unit} is unit testing framework for Ruby, based | ||
| 5189 | on xUnit principles. These were originally designed by Kent Beck, creator of | ||
| 5190 | extreme programming software development methodology, for Smalltalk's SUnit. | ||
| 5191 | It allows writing tests, checking results and automated testing in Ruby.") | ||
| 5192 | (home-page "https://test-unit.github.io/") | ||
| 5193 | (license (list license:psfl license:ruby)))) | ||
| 5194 | |||
| 5195 | (define-public ruby-test-unit/minimal | ||
| 5196 | (hidden-package | ||
| 5197 | (package | ||
| 5198 | (inherit ruby-test-unit) | ||
| 5199 | (arguments | ||
| 5200 | (ensure-keyword-arguments | ||
| 5201 | (package-arguments ruby-test-unit) | ||
| 5202 | (list #:tests? #f))) | ||
| 5203 | (native-inputs '())))) | ||
| 5204 | |||
| 5205 | (define-public ruby-test-unit-ruby-core | ||
| 5206 | (package | ||
| 5207 | (name "ruby-test-unit-ruby-core") | ||
| 5208 | (version "1.0.5") | ||
| 5209 | (source | ||
| 5210 | (origin | ||
| 5211 | (method url-fetch) | ||
| 5212 | (uri (rubygems-uri "test-unit-ruby-core" version)) | ||
| 5213 | (sha256 | ||
| 5214 | (base32 "1i7fa4hlj6xiqvjaikagwrmiyc21jzyswvd4grjbfqysziwsxygc")))) | ||
| 5215 | (build-system ruby-build-system) | ||
| 5216 | (arguments | ||
| 5217 | (list #:tests? #f)) ; contains no tests | ||
| 5218 | (synopsis "Additional test assertions for Ruby standard libraries") | ||
| 5219 | (description "This package provides additional test assertions for Ruby | ||
| 5220 | standard libraries.") | ||
| 5221 | (home-page "https://github.com/ruby/test-unit-ruby-core") | ||
| 5222 | (license license:ruby))) | ||
| 5223 | |||
| 5224 | (define-public ruby-mapping | ||
| 5225 | (package | ||
| 5226 | (name "ruby-mapping") | ||
| 5227 | (version "1.1.1") | ||
| 5228 | (source (origin | ||
| 5229 | (method git-fetch) ;for tests | ||
| 5230 | (uri (git-reference | ||
| 5231 | (url "https://github.com/ioquatix/mapping") | ||
| 5232 | (commit (string-append "v" version)))) | ||
| 5233 | (file-name (git-file-name name version)) | ||
| 5234 | (sha256 | ||
| 5235 | (base32 | ||
| 5236 | "0yhmqp8mprjqf9m7wzc4hhi50qbfax86r89w852csns0ijaffjjs")))) | ||
| 5237 | (build-system ruby-build-system) | ||
| 5238 | (arguments | ||
| 5239 | (list | ||
| 5240 | #:test-target "spec" | ||
| 5241 | #:phases | ||
| 5242 | #~(modify-phases %standard-phases | ||
| 5243 | (add-after 'unpack 'patch | ||
| 5244 | (lambda _ | ||
| 5245 | (substitute* "spec/mapping/model_spec.rb" | ||
| 5246 | ;; From https://github.com/ioquatix/mapping/pull/2 | ||
| 5247 | (("offset:") "offset ="))))))) | ||
| 5248 | (native-inputs (list ruby-rspec)) | ||
| 5249 | (synopsis "Map model objects based on their class to a given output model") | ||
| 5250 | (description "The @code{mapping} gem maps model objects based on their | ||
| 5251 | class to a given output model. It is useful for versioning external | ||
| 5252 | interfaces (e.g. JSON APIs) or processing structured data from one format to | ||
| 5253 | another.") | ||
| 5254 | (home-page "https://github.com/ioquatix/mapping") | ||
| 5255 | (license license:expat))) | ||
| 5256 | |||
| 5257 | (define-public ruby-markaby | ||
| 5258 | (package | ||
| 5259 | (name "ruby-markaby") | ||
| 5260 | (version "0.9.0") | ||
| 5261 | (source | ||
| 5262 | (origin | ||
| 5263 | (method url-fetch) | ||
| 5264 | (uri (rubygems-uri "markaby" version)) | ||
| 5265 | (sha256 | ||
| 5266 | (base32 | ||
| 5267 | "1j4jc31ycydbkh5h3q6zwidzpavg3g5mbb5lqyaczd3jrq78rd7i")))) | ||
| 5268 | (build-system ruby-build-system) | ||
| 5269 | (arguments | ||
| 5270 | (list | ||
| 5271 | #:phases | ||
| 5272 | #~(modify-phases %standard-phases | ||
| 5273 | ;; Run rspec manually without using the Rakefile, as the versions of | ||
| 5274 | ;; Rake and RSpec 2 are incompatible: | ||
| 5275 | ;; | ||
| 5276 | ;; NoMethodError: undefined method `last_comment' | ||
| 5277 | (replace 'check | ||
| 5278 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 5279 | ;; Skip some broken tests, this should be redundant with the | ||
| 5280 | ;; next release | ||
| 5281 | (delete-file "spec/markaby/markaby_test_unit_spec.rb") | ||
| 5282 | (substitute* "spec/markaby/markaby_spec.rb" | ||
| 5283 | (("generated.should == str") | ||
| 5284 | "# Test broken: generated.should == str")) | ||
| 5285 | |||
| 5286 | (when tests? | ||
| 5287 | (invoke "rspec"))))))) | ||
| 5288 | (propagated-inputs | ||
| 5289 | (list ruby-builder)) | ||
| 5290 | (native-inputs | ||
| 5291 | (list bundler ruby-rspec-2)) | ||
| 5292 | (synopsis "Write HTML pages in pure Ruby") | ||
| 5293 | (description | ||
| 5294 | "Markaby allows writing HTML packages in pure Ruby. This is similar to | ||
| 5295 | the functionality provided by @acronym{ERB, Embedded Ruby}, but without the | ||
| 5296 | mixture of HTML and additional ERB syntax.") | ||
| 5297 | (home-page "https://markaby.github.io/") | ||
| 5298 | (license license:expat))) | ||
| 5299 | |||
| 5300 | (define-public ruby-maruku | ||
| 5301 | (package | ||
| 5302 | (name "ruby-maruku") | ||
| 5303 | (version "0.7.3") | ||
| 5304 | (source | ||
| 5305 | (origin | ||
| 5306 | (method url-fetch) | ||
| 5307 | (uri (rubygems-uri "maruku" version)) | ||
| 5308 | (sha256 | ||
| 5309 | (base32 | ||
| 5310 | "1r7bxpgnx2hp3g12bjrmdrpv663dfqxsdp0af69kjhxmaxpia56x")))) | ||
| 5311 | (build-system ruby-build-system) | ||
| 5312 | (arguments | ||
| 5313 | '(;; TODO: 3 tests seem to fail due to HTML encoding issues | ||
| 5314 | #:tests? #f | ||
| 5315 | #:phases | ||
| 5316 | (modify-phases %standard-phases | ||
| 5317 | (replace 'check | ||
| 5318 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 5319 | (when tests? | ||
| 5320 | (invoke "rspec"))))))) | ||
| 5321 | (native-inputs | ||
| 5322 | (list ruby-rspec ruby-simplecov ruby-nokogiri-diff)) | ||
| 5323 | (synopsis "Markdown interpreter in Ruby") | ||
| 5324 | (description | ||
| 5325 | "Maruku is a Markdown interpreter in Ruby. It can export Markdown to | ||
| 5326 | HTML, and PDF through LaTeX.") | ||
| 5327 | (home-page "https://github.com/bhollis/maruku") | ||
| 5328 | (license license:expat))) | ||
| 5329 | |||
| 5330 | (define-public ruby-metaclass | ||
| 5331 | (package | ||
| 5332 | (name "ruby-metaclass") | ||
| 5333 | (version "0.0.4") | ||
| 5334 | (source (origin | ||
| 5335 | (method url-fetch) | ||
| 5336 | (uri (rubygems-uri "metaclass" version)) | ||
| 5337 | (sha256 | ||
| 5338 | (base32 | ||
| 5339 | "0hp99y2b1nh0nr8pc398n3f8lakgci6pkrg4bf2b2211j1f6hsc5")))) | ||
| 5340 | (build-system ruby-build-system) | ||
| 5341 | (arguments | ||
| 5342 | `(#:phases | ||
| 5343 | (modify-phases %standard-phases | ||
| 5344 | (add-after 'unpack 'add-test-unit-to-search-path | ||
| 5345 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 5346 | (let* ((test-unit (assoc-ref inputs "ruby-test-unit"))) | ||
| 5347 | (substitute* "Rakefile" | ||
| 5348 | (("t\\.libs << \"test\"" line) | ||
| 5349 | (string-append line "; t.libs << \"" | ||
| 5350 | test-unit "/lib/ruby/vendor_ruby" | ||
| 5351 | "/gems/test-unit-" | ||
| 5352 | ,(package-version ruby-test-unit) | ||
| 5353 | "/lib\""))))))))) | ||
| 5354 | (native-inputs | ||
| 5355 | (list bundler ruby-test-unit/minimal)) | ||
| 5356 | (synopsis "Ruby library adding metaclass method to all objects") | ||
| 5357 | (description | ||
| 5358 | "Metaclass is a Ruby library adding a @code{metaclass} method to all Ruby | ||
| 5359 | objects.") | ||
| 5360 | (home-page "https://github.com/floehopper/metaclass") | ||
| 5361 | (license license:expat))) | ||
| 5362 | |||
| 5363 | (define-public ruby-mkmf-lite | ||
| 5364 | (package | ||
| 5365 | (name "ruby-mkmf-lite") | ||
| 5366 | (version "0.5.2") | ||
| 5367 | (source (origin | ||
| 5368 | (method url-fetch) | ||
| 5369 | (uri (rubygems-uri "mkmf-lite" version)) | ||
| 5370 | (sha256 | ||
| 5371 | (base32 | ||
| 5372 | "0rqa5kzswhqkj7r9mqrqz4mjd2vdxsblgybb52gj3mwr1gwvl4c5")))) | ||
| 5373 | (build-system ruby-build-system) | ||
| 5374 | (arguments | ||
| 5375 | (list | ||
| 5376 | #:phases | ||
| 5377 | #~(modify-phases %standard-phases | ||
| 5378 | ;; Avoid rubocop dependency | ||
| 5379 | (replace 'check | ||
| 5380 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 5381 | (when tests? | ||
| 5382 | (invoke "rspec"))))))) | ||
| 5383 | (propagated-inputs | ||
| 5384 | (list ruby-ptools)) | ||
| 5385 | (native-inputs | ||
| 5386 | (list ruby-rspec)) | ||
| 5387 | (synopsis "Lightweight alternative to @code{mkmf}") | ||
| 5388 | (description | ||
| 5389 | "@code{mkmf-lite} is a light version of Ruby's @code{mkmf.rb} designed | ||
| 5390 | for use as a library. It does not create packages, builds, or log files of | ||
| 5391 | any kind. Instead, it provides mixin methods that you can use in FFI or tests | ||
| 5392 | to check for the presence of header files, constants, and so on.") | ||
| 5393 | (home-page "https://github.com/djberg96/mkmf-lite") | ||
| 5394 | (license license:asl2.0))) | ||
| 5395 | |||
| 5396 | (define-public ruby-msgpack | ||
| 5397 | (package | ||
| 5398 | (name "ruby-msgpack") | ||
| 5399 | (version "1.7.5") | ||
| 5400 | (source (origin | ||
| 5401 | (method git-fetch) ;for tests | ||
| 5402 | (uri (git-reference | ||
| 5403 | (url "https://github.com/msgpack/msgpack-ruby") | ||
| 5404 | (commit (string-append "v" version)))) | ||
| 5405 | (file-name (git-file-name name version)) | ||
| 5406 | (sha256 | ||
| 5407 | (base32 | ||
| 5408 | "0d759pjgxgrxw18kmk81yv9brc141b4d8gszlp4vdnpvwvb96nln")))) | ||
| 5409 | (build-system ruby-build-system) | ||
| 5410 | (arguments (list #:test-target "spec")) | ||
| 5411 | (native-inputs | ||
| 5412 | (list ruby-rake-compiler | ||
| 5413 | ruby-ruby-memcheck | ||
| 5414 | ruby-rspec | ||
| 5415 | ruby-yard)) | ||
| 5416 | (synopsis "Efficient object serialization library for Ruby") | ||
| 5417 | (description "MessagePack is a binary-based efficient object serialization | ||
| 5418 | library. It enables to exchange structured objects between many languages | ||
| 5419 | like JSON. Unlike JSON, it is very fast and small.") | ||
| 5420 | (home-page "https://msgpack.org/") | ||
| 5421 | (license license:asl2.0))) | ||
| 5422 | |||
| 5423 | (define-public ruby-mspec | ||
| 5424 | (package | ||
| 5425 | (name "ruby-mspec") | ||
| 5426 | (version "1.9.1") | ||
| 5427 | (source | ||
| 5428 | (origin | ||
| 5429 | (method url-fetch) | ||
| 5430 | (uri (rubygems-uri "mspec" version)) | ||
| 5431 | (sha256 | ||
| 5432 | (base32 | ||
| 5433 | "0wmyh2n40m4srwdx9z6h6g6p46k02pzyhcsja3hqcw5h5b0hfmhd")))) | ||
| 5434 | (build-system ruby-build-system) | ||
| 5435 | (arguments | ||
| 5436 | '(;; TODO: 3 test failures | ||
| 5437 | ;; ./spec/mocks/mock_spec.rb:82 | ||
| 5438 | ;; ./spec/utils/name_map_spec.rb:151 | ||
| 5439 | ;; ./spec/utils/name_map_spec.rb:155 | ||
| 5440 | #:tests? #f | ||
| 5441 | #:phases | ||
| 5442 | (modify-phases %standard-phases | ||
| 5443 | (add-after 'extract-gemspec 'change-dependency-constraints | ||
| 5444 | (lambda _ | ||
| 5445 | (substitute* "mspec.gemspec" | ||
| 5446 | (("rake.*") "rake>)\n") | ||
| 5447 | (("rspec.*") "rspec>)\n")))) | ||
| 5448 | (replace 'check | ||
| 5449 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 5450 | (when tests? | ||
| 5451 | (invoke "rspec" "spec"))))))) | ||
| 5452 | (native-inputs | ||
| 5453 | (list bundler ruby-rake ruby-rspec)) | ||
| 5454 | (synopsis "MSpec is a specialized framework for RubySpec") | ||
| 5455 | (description | ||
| 5456 | "MSpec is a specialized framework that is syntax-compatible with RSpec 2 | ||
| 5457 | for basic features. MSpec contains additional features that assist in writing | ||
| 5458 | specs for Ruby implementations in ruby/spec.") | ||
| 5459 | (home-page "http://rubyspec.org") | ||
| 5460 | (license license:expat))) | ||
| 5461 | |||
| 5462 | (define-public ruby-mysql2 | ||
| 5463 | (package | ||
| 5464 | (name "ruby-mysql2") | ||
| 5465 | (version "0.5.2") | ||
| 5466 | (source | ||
| 5467 | (origin | ||
| 5468 | (method git-fetch) | ||
| 5469 | (uri (git-reference | ||
| 5470 | (url "https://github.com/brianmario/mysql2") | ||
| 5471 | (commit version))) | ||
| 5472 | (file-name (git-file-name name version)) | ||
| 5473 | (sha256 | ||
| 5474 | (base32 | ||
| 5475 | "11lvfgc2rmvkm52jp0nbi6pvhk06klznghr7llldfw8basl9n5wv")))) | ||
| 5476 | (build-system ruby-build-system) | ||
| 5477 | (arguments | ||
| 5478 | '(;; TODO: Tests require a running MySQL/MariaDB service | ||
| 5479 | #:tests? #f | ||
| 5480 | #:phases | ||
| 5481 | (modify-phases %standard-phases | ||
| 5482 | (replace 'replace-git-ls-files | ||
| 5483 | (lambda _ | ||
| 5484 | (substitute* "mysql2.gemspec" | ||
| 5485 | (("git ls-files .*`") "find . -type f |sort`")))) | ||
| 5486 | (add-before 'install 'set-MAKEFLAGS | ||
| 5487 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 5488 | (setenv "MAKEFLAGS" | ||
| 5489 | (string-append | ||
| 5490 | "V=1 " | ||
| 5491 | "prefix=" (assoc-ref outputs "out"))))) | ||
| 5492 | ;; Move the 'check phase to after 'install, as then you can test | ||
| 5493 | ;; using the installed mysql2 gem in the store. | ||
| 5494 | (delete 'check) | ||
| 5495 | (add-after 'install 'check | ||
| 5496 | (lambda* (#:key outputs tests? #:allow-other-keys) | ||
| 5497 | (setenv "GEM_PATH" | ||
| 5498 | (string-append | ||
| 5499 | (getenv "GEM_PATH") | ||
| 5500 | ":" | ||
| 5501 | (assoc-ref outputs "out") "/lib/ruby/vendor_ruby")) | ||
| 5502 | (when tests? | ||
| 5503 | (invoke "rspec"))))))) | ||
| 5504 | (inputs | ||
| 5505 | `(("mariadb-dev" ,mariadb "dev") | ||
| 5506 | ("zlib" ,zlib))) | ||
| 5507 | (native-inputs | ||
| 5508 | (list ruby-rspec ruby-rake-compiler)) | ||
| 5509 | (synopsis "MySQL library for Ruby, binding to libmysql") | ||
| 5510 | (description | ||
| 5511 | "This package provides a simple, fast MySQL library for Ruby, binding to | ||
| 5512 | libmysql.") | ||
| 5513 | (home-page "https://github.com/brianmario/mysql2") | ||
| 5514 | (license license:expat))) | ||
| 5515 | |||
| 5516 | (define-public ruby-blankslate | ||
| 5517 | (package | ||
| 5518 | (name "ruby-blankslate") | ||
| 5519 | (version "3.1.3") | ||
| 5520 | (source (origin | ||
| 5521 | (method url-fetch) | ||
| 5522 | (uri (rubygems-uri "blankslate" version)) | ||
| 5523 | (sha256 | ||
| 5524 | (base32 | ||
| 5525 | "0fwkb4d1j9gc7vdwn2nxvwgy2g5wlag4c4bp7bl85jvq0kgp6cyx")))) | ||
| 5526 | (build-system ruby-build-system) | ||
| 5527 | (arguments | ||
| 5528 | `(#:phases | ||
| 5529 | (modify-phases %standard-phases | ||
| 5530 | (replace 'check | ||
| 5531 | (lambda _ (invoke "rspec" "spec/")))))) | ||
| 5532 | (native-inputs | ||
| 5533 | (list bundler ruby-rspec)) | ||
| 5534 | (synopsis "Abstract base class with no predefined methods") | ||
| 5535 | (description | ||
| 5536 | "BlankSlate provides an abstract base class with no predefined | ||
| 5537 | methods (except for @code{__send__} and @code{__id__}). BlankSlate is useful | ||
| 5538 | as a base class when writing classes that depend upon | ||
| 5539 | @code{method_missing} (e.g. dynamic proxies).") | ||
| 5540 | (home-page "https://github.com/masover/blankslate") | ||
| 5541 | (license license:expat))) | ||
| 5542 | |||
| 5543 | (define-public ruby-bond | ||
| 5544 | (package | ||
| 5545 | (name "ruby-bond") | ||
| 5546 | (version "0.5.1") | ||
| 5547 | (source | ||
| 5548 | (origin | ||
| 5549 | (method url-fetch) | ||
| 5550 | (uri (rubygems-uri "bond" version)) | ||
| 5551 | (sha256 | ||
| 5552 | (base32 | ||
| 5553 | "1r19ifc4skyl2gxnifrxa5jvbbay9fb2in79ppgv02b6n4bhsw90")))) | ||
| 5554 | (build-system ruby-build-system) | ||
| 5555 | (arguments | ||
| 5556 | ;; The test suite fails (see: | ||
| 5557 | ;; https://github.com/cldwalker/bond/issues/46). | ||
| 5558 | `(#:tests? #f)) | ||
| 5559 | (native-inputs | ||
| 5560 | (list ruby-bacon ruby-bacon-bits ruby-mocha-on-bacon)) | ||
| 5561 | (synopsis "Bond can provide custom autocompletion for arguments, methods | ||
| 5562 | and more") | ||
| 5563 | (description | ||
| 5564 | "Bond can autocomplete argument(s) to methods, uniquely completing per | ||
| 5565 | module, per method and per argument. Bond provides a configuration system and | ||
| 5566 | a DSL for creating custom completions and completion rules. Bond can also | ||
| 5567 | load completions that ship with gems. Bond is able to offer more than irb's | ||
| 5568 | completion since it uses the full line of input when completing as opposed to | ||
| 5569 | irb's last-word approach.") | ||
| 5570 | (home-page "http://tagaholic.me/bond/") | ||
| 5571 | (license license:expat))) | ||
| 5572 | |||
| 5573 | (define-public ruby-idn-ruby | ||
| 5574 | (package | ||
| 5575 | (name "ruby-idn-ruby") | ||
| 5576 | (version "0.1.0") | ||
| 5577 | (source | ||
| 5578 | (origin | ||
| 5579 | (method url-fetch) | ||
| 5580 | (uri (rubygems-uri "idn-ruby" version)) | ||
| 5581 | (sha256 | ||
| 5582 | (base32 | ||
| 5583 | "07vblcyk3g72sbq12xz7xj28snpxnh3sbcnxy8bglqbfqqhvmawr")))) | ||
| 5584 | (build-system ruby-build-system) | ||
| 5585 | (arguments | ||
| 5586 | '(#:phases | ||
| 5587 | (modify-phases %standard-phases | ||
| 5588 | (delete 'check) | ||
| 5589 | (add-after 'install 'check | ||
| 5590 | (lambda* (#:key tests? outputs #:allow-other-keys) | ||
| 5591 | (when tests? | ||
| 5592 | (let* ((gem-file (cadr (find-files "." "\\.gem"))) | ||
| 5593 | (name-and-version (basename gem-file ".gem"))) | ||
| 5594 | (apply invoke | ||
| 5595 | "ruby" "--verbose" | ||
| 5596 | (string-append "-I" | ||
| 5597 | (assoc-ref outputs "out") | ||
| 5598 | "/lib/ruby/vendor_ruby/gems/" | ||
| 5599 | name-and-version | ||
| 5600 | "/lib") | ||
| 5601 | (find-files "./test" ".*\\.rb"))))))))) | ||
| 5602 | (inputs | ||
| 5603 | (list libidn)) | ||
| 5604 | (synopsis "Ruby Bindings for the GNU LibIDN library") | ||
| 5605 | (description | ||
| 5606 | "Ruby Bindings for the GNU LibIDN library, an implementation of the | ||
| 5607 | Stringprep, Punycode and IDNA specifications. These are used to encode and | ||
| 5608 | decode internationalized domain + names according to the IDNA2003 | ||
| 5609 | specifications. | ||
| 5610 | |||
| 5611 | Included are the most important parts of the Stringprep, Punycode and IDNA | ||
| 5612 | APIs like performing Stringprep processings, encoding to and decoding from | ||
| 5613 | Punycode strings and converting entire domain names to and from the ACE | ||
| 5614 | encoded form.") | ||
| 5615 | (home-page "https://github.com/deepfryed/idn-ruby") | ||
| 5616 | (license license:asl2.0))) | ||
| 5617 | |||
| 5618 | (define-public ruby-insist | ||
| 5619 | (package | ||
| 5620 | (name "ruby-insist") | ||
| 5621 | (version "1.0.0") | ||
| 5622 | (source (origin | ||
| 5623 | (method url-fetch) | ||
| 5624 | (uri (rubygems-uri "insist" version)) | ||
| 5625 | (sha256 | ||
| 5626 | (base32 | ||
| 5627 | "0bw3bdwns14mapbgb8cbjmr0amvwz8y72gyclq04xp43wpp5jrvg")))) | ||
| 5628 | (build-system ruby-build-system) | ||
| 5629 | (arguments (list #:phases #~(modify-phases %standard-phases | ||
| 5630 | (replace 'check | ||
| 5631 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 5632 | (when tests? | ||
| 5633 | (invoke "ruby" "test/testing.rb"))))))) | ||
| 5634 | (synopsis "Testing tool for Ruby") | ||
| 5635 | (description "This package provides a simple block-driven assertion | ||
| 5636 | library for both testing and for production code that attempts to make test | ||
| 5637 | definitions more readable.") | ||
| 5638 | (home-page "https://github.com/jordansissel/ruby-insist/") | ||
| 5639 | (license license:asl2.0))) | ||
| 5640 | |||
| 5641 | (define-public ruby-introspection | ||
| 5642 | (package | ||
| 5643 | (name "ruby-introspection") | ||
| 5644 | (version "0.0.4") | ||
| 5645 | (source (origin | ||
| 5646 | (method url-fetch) | ||
| 5647 | (uri (rubygems-uri "introspection" version)) | ||
| 5648 | (sha256 | ||
| 5649 | (base32 | ||
| 5650 | "1y2nbijkc0zlfmn9ss6588ilarq2kbn2i7w7pwwsli66dj84zgca")))) | ||
| 5651 | (build-system ruby-build-system) | ||
| 5652 | (propagated-inputs | ||
| 5653 | (list ruby-metaclass)) | ||
| 5654 | (native-inputs | ||
| 5655 | (list bundler | ||
| 5656 | ruby-blankslate)) | ||
| 5657 | (synopsis "Dynamic inspection of the method hierarchy on a Ruby object") | ||
| 5658 | (description | ||
| 5659 | "Introspection provides tools to inspect the hierarchy of method | ||
| 5660 | definitions on a Ruby object.") | ||
| 5661 | (home-page "https://github.com/floehopper/introspection") | ||
| 5662 | (license license:expat))) | ||
| 5663 | |||
| 5664 | (define-public ruby-redcarpet | ||
| 5665 | (package | ||
| 5666 | (name "ruby-redcarpet") | ||
| 5667 | (version "3.5.0") | ||
| 5668 | (source (origin | ||
| 5669 | (method url-fetch) | ||
| 5670 | (uri (rubygems-uri "redcarpet" version)) | ||
| 5671 | (sha256 | ||
| 5672 | (base32 | ||
| 5673 | "0skcyx1h8b5ms0rp2zm3ql6g322b8c1adnkwkqyv7z3kypb4bm7k")))) | ||
| 5674 | (build-system ruby-build-system) | ||
| 5675 | (arguments | ||
| 5676 | `(#:phases | ||
| 5677 | (modify-phases %standard-phases | ||
| 5678 | ;; The gem archive does not include the conformance tests. | ||
| 5679 | (add-after 'unpack 'disable-conformance-tests | ||
| 5680 | (lambda _ | ||
| 5681 | (substitute* "Rakefile" | ||
| 5682 | (("task :test => %w\\[test:unit test:conformance\\]") | ||
| 5683 | "task :test => %w[test:unit]"))))))) | ||
| 5684 | (native-inputs | ||
| 5685 | (list bundler ruby-test-unit ruby-rake-compiler)) | ||
| 5686 | (synopsis "Extensible Markdown to (X)HTML converter") | ||
| 5687 | (description | ||
| 5688 | "Redcarpet is an extensible Ruby library for Markdown processing and | ||
| 5689 | conversion to (X)HTML.") | ||
| 5690 | (home-page "https://github.com/vmg/redcarpet") | ||
| 5691 | (license license:expat))) | ||
| 5692 | |||
| 5693 | (define-public ruby-reline | ||
| 5694 | (package | ||
| 5695 | (name "ruby-reline") | ||
| 5696 | (version "0.3.3") | ||
| 5697 | (source (origin | ||
| 5698 | (method git-fetch) ;for tests | ||
| 5699 | (uri (git-reference | ||
| 5700 | (url "https://github.com/ruby/reline") | ||
| 5701 | (commit (string-append "v" version)))) | ||
| 5702 | (file-name (git-file-name name version)) | ||
| 5703 | (sha256 | ||
| 5704 | (base32 | ||
| 5705 | "1papa4f4prjml9qk6yydi4k5a4zgbzmxmbhd8fz9kfg1i34s35cw")))) | ||
| 5706 | (build-system ruby-build-system) | ||
| 5707 | (propagated-inputs (list ruby-io-console)) | ||
| 5708 | (synopsis "GNU Readline or Editline implementation in Ruby") | ||
| 5709 | (description "Reline is a pure Ruby alternative GNU Readline or Editline | ||
| 5710 | implementation.") | ||
| 5711 | (home-page "https://github.com/ruby/reline") | ||
| 5712 | (license (list license:bsd-2 license:ruby)))) ;dual license | ||
| 5713 | |||
| 5714 | (define-public ruby-rerun | ||
| 5715 | (package | ||
| 5716 | (name "ruby-rerun") | ||
| 5717 | (version "0.13.0") | ||
| 5718 | (source | ||
| 5719 | (origin | ||
| 5720 | (method url-fetch) | ||
| 5721 | (uri (rubygems-uri "rerun" version)) | ||
| 5722 | (sha256 | ||
| 5723 | (base32 | ||
| 5724 | "1cskvxk8z8vmfail8na7hj91hs0qnvds9nydj04zi3dbddgnbmvz")))) | ||
| 5725 | (build-system ruby-build-system) | ||
| 5726 | (arguments | ||
| 5727 | '(#:tests? #f)) ; No included tests | ||
| 5728 | (propagated-inputs | ||
| 5729 | (list ruby-listen)) | ||
| 5730 | (synopsis "Run a process, and restart when some monitored files change") | ||
| 5731 | (description | ||
| 5732 | "Rerun is a tool to launch programs, then monitor the file system, and | ||
| 5733 | restart the program when any of the monitored files change. It's written in | ||
| 5734 | Ruby, but can be used for all programs.") | ||
| 5735 | (home-page "https://github.com/alexch/rerun/") | ||
| 5736 | (license license:expat))) | ||
| 5737 | |||
| 5738 | (define-public ruby-maxitest | ||
| 5739 | (package | ||
| 5740 | (name "ruby-maxitest") | ||
| 5741 | (version "5.1.0") | ||
| 5742 | (home-page "https://github.com/grosser/maxitest") | ||
| 5743 | (source (origin | ||
| 5744 | ;; Pull from git because the gem does not contain tests. | ||
| 5745 | (method git-fetch) | ||
| 5746 | (uri (git-reference | ||
| 5747 | (url home-page) | ||
| 5748 | (commit (string-append "v" version)))) | ||
| 5749 | (file-name (git-file-name name version)) | ||
| 5750 | (sha256 | ||
| 5751 | (base32 | ||
| 5752 | "0qj410krfm497ggmf71xpnabbb6814y0585by4nlzyjvg9hpgg3m")))) | ||
| 5753 | (build-system ruby-build-system) | ||
| 5754 | (arguments | ||
| 5755 | (list | ||
| 5756 | #:test-target "default" | ||
| 5757 | #:phases | ||
| 5758 | #~(modify-phases %standard-phases | ||
| 5759 | (replace 'replace-git-ls-files | ||
| 5760 | (lambda _ | ||
| 5761 | (substitute* "maxitest.gemspec" | ||
| 5762 | (("`git ls-files lib/ bin/ MIT-LICENSE Readme.md`") | ||
| 5763 | "`find lib/ bin/ MIT-LICENSE Readme.md -type f | sort`")))) | ||
| 5764 | (add-before 'check 'remove-version-constraints | ||
| 5765 | (lambda _ | ||
| 5766 | ;; Don't use specific versions of dependencies, instead | ||
| 5767 | ;; take whatever is available in Guix. | ||
| 5768 | (delete-file "Gemfile.lock"))) | ||
| 5769 | (add-before 'check 'add-mtest-on-PATH | ||
| 5770 | (lambda _ | ||
| 5771 | ;; Tests use 'mtest' which is not automatically added on | ||
| 5772 | ;; PATH. | ||
| 5773 | (setenv "PATH" (string-append (getcwd) "/bin:" | ||
| 5774 | (getenv "PATH")))))))) | ||
| 5775 | (native-inputs | ||
| 5776 | (list procps | ||
| 5777 | ruby-bump | ||
| 5778 | ruby-rspec | ||
| 5779 | ruby-wwtd)) | ||
| 5780 | (propagated-inputs | ||
| 5781 | (list ruby-minitest)) | ||
| 5782 | (synopsis "Minitest with extra features") | ||
| 5783 | (description | ||
| 5784 | "Maxitest is a wrapper around Minitest with extra functionality such | ||
| 5785 | as timeouts, an @command{mtest} executable that can run tests by line | ||
| 5786 | number, support for interrupted tests, better backtraces, and more.") | ||
| 5787 | (license license:expat))) | ||
| 5788 | |||
| 5789 | (define-public ruby-mocha | ||
| 5790 | (package | ||
| 5791 | (name "ruby-mocha") | ||
| 5792 | (version "2.0.4") | ||
| 5793 | (source (origin | ||
| 5794 | (method url-fetch) | ||
| 5795 | (uri (rubygems-uri "mocha" version)) | ||
| 5796 | (sha256 | ||
| 5797 | (base32 | ||
| 5798 | "18xn9gm9yypavy9yck71fplan19hy5697mwd1rwzz7vizh3ip7bd")))) | ||
| 5799 | (build-system ruby-build-system) | ||
| 5800 | (arguments | ||
| 5801 | (list | ||
| 5802 | #:phases | ||
| 5803 | #~(modify-phases %standard-phases | ||
| 5804 | (add-before 'check 'remove-rubocop-dependency | ||
| 5805 | (lambda _ | ||
| 5806 | ;; Disable dependency on Rubocop, which is just a linter, | ||
| 5807 | ;; and would introduce a circular dependency. | ||
| 5808 | (substitute* "Gemfile" | ||
| 5809 | ((".*rubocop.*") ""))))))) | ||
| 5810 | (propagated-inputs | ||
| 5811 | (list ruby-ruby2-keywords)) | ||
| 5812 | (native-inputs | ||
| 5813 | (list ruby-psych-3 | ||
| 5814 | ruby-introspection)) | ||
| 5815 | (synopsis "Mocking and stubbing library for Ruby") | ||
| 5816 | (description | ||
| 5817 | "Mocha is a mocking and stubbing library with JMock/SchMock syntax, which | ||
| 5818 | allows mocking and stubbing of methods on real (non-mock) classes.") | ||
| 5819 | (home-page "https://mocha.jamesmead.org/") | ||
| 5820 | ;; Mocha can be used with either license at the users choice. | ||
| 5821 | (license (list license:expat license:ruby)))) | ||
| 5822 | |||
| 5823 | (define-public ruby-mocha-1 | ||
| 5824 | (package | ||
| 5825 | (inherit ruby-mocha) | ||
| 5826 | (version "1.13.0") | ||
| 5827 | (source (origin | ||
| 5828 | (method url-fetch) | ||
| 5829 | (uri (rubygems-uri "mocha" version)) | ||
| 5830 | (sha256 | ||
| 5831 | (base32 | ||
| 5832 | "15s53ggsykk69kxqvs4416s8yxdhz6caggva55n8sjgy4ixzwp10")))) | ||
| 5833 | (arguments | ||
| 5834 | '(#:tests? #f)))) | ||
| 5835 | |||
| 5836 | (define-public ruby-mocha-on-bacon | ||
| 5837 | (package | ||
| 5838 | (name "ruby-mocha-on-bacon") | ||
| 5839 | (version "0.2.3") | ||
| 5840 | (source | ||
| 5841 | (origin | ||
| 5842 | (method url-fetch) | ||
| 5843 | (uri (rubygems-uri "mocha-on-bacon" version)) | ||
| 5844 | (sha256 | ||
| 5845 | (base32 | ||
| 5846 | "1h49b33rq889hn8x3wp9byczl91va16jh1w4d2wyy4yj23icdrcp")))) | ||
| 5847 | (build-system ruby-build-system) | ||
| 5848 | (arguments | ||
| 5849 | ;; rubygems.org release missing tests | ||
| 5850 | '(#:tests? #f)) | ||
| 5851 | (propagated-inputs (list ruby-mocha)) | ||
| 5852 | (synopsis "Mocha adapter for Bacon") | ||
| 5853 | (description | ||
| 5854 | "This package provides a Mocha adapter for Bacon, allowing you to use the | ||
| 5855 | Mocha stubbing and mocking library with Bacon, a small RSpec clone.") | ||
| 5856 | (home-page | ||
| 5857 | "https://github.com/alloy/mocha-on-bacon") | ||
| 5858 | (license license:expat))) | ||
| 5859 | |||
| 5860 | (define-public ruby-net-ssh | ||
| 5861 | (package | ||
| 5862 | (name "ruby-net-ssh") | ||
| 5863 | (version "7.1.0") | ||
| 5864 | (source (origin | ||
| 5865 | (method git-fetch) ;for tests | ||
| 5866 | (uri (git-reference | ||
| 5867 | (url "https://github.com/net-ssh/net-ssh") | ||
| 5868 | (commit (string-append "v" version)))) | ||
| 5869 | (file-name (git-file-name name version)) | ||
| 5870 | (sha256 | ||
| 5871 | (base32 | ||
| 5872 | "1dkbyzpl31jygnnva5sa754vk42q1fih4qz5ipqw5gqiafrrlb91")))) | ||
| 5873 | (build-system ruby-build-system) | ||
| 5874 | (native-inputs | ||
| 5875 | (list bundler | ||
| 5876 | ruby-bcrypt-pbkdf | ||
| 5877 | ruby-ed25519 | ||
| 5878 | ruby-mocha | ||
| 5879 | ruby-rbnacl | ||
| 5880 | ruby-test-unit | ||
| 5881 | ruby-x25519)) | ||
| 5882 | (synopsis "Ruby implementation of the SSH2 client protocol") | ||
| 5883 | (description "@code{Net::SSH} is a pure-Ruby implementation of the SSH2 | ||
| 5884 | client protocol. It allows you to write programs that invoke and interact | ||
| 5885 | with processes on remote servers, via SSH2.") | ||
| 5886 | (home-page "https://github.com/net-ssh/net-ssh") | ||
| 5887 | (license license:expat))) | ||
| 5888 | |||
| 5889 | (define-public ruby-net-scp | ||
| 5890 | (package | ||
| 5891 | (name "ruby-net-scp") | ||
| 5892 | (version "4.0.1.rc3") | ||
| 5893 | (source | ||
| 5894 | (origin | ||
| 5895 | (method git-fetch) | ||
| 5896 | (uri (git-reference | ||
| 5897 | (url "https://github.com/net-ssh/net-scp") | ||
| 5898 | (commit (string-append "v" version)))) | ||
| 5899 | (file-name (git-file-name name version)) | ||
| 5900 | (sha256 | ||
| 5901 | (base32 "136mb8idxdkxkadx827027nyxcsvvv2wivz5dnjqy8g6ic0h9dzn")))) | ||
| 5902 | (build-system ruby-build-system) | ||
| 5903 | (native-inputs | ||
| 5904 | (list bundler ruby-test-unit ruby-mocha-1)) | ||
| 5905 | (propagated-inputs | ||
| 5906 | (list ruby-net-ssh)) | ||
| 5907 | (synopsis "Pure-Ruby SCP client library") | ||
| 5908 | (description "@code{Net::SCP} is a pure-Ruby implementation of the SCP | ||
| 5909 | client protocol.") | ||
| 5910 | (home-page "https://github.com/net-ssh/net-scp") | ||
| 5911 | (license license:expat))) | ||
| 5912 | |||
| 5913 | (define-public ruby-net-sftp | ||
| 5914 | (package | ||
| 5915 | (name "ruby-net-sftp") | ||
| 5916 | (version "4.0.0") | ||
| 5917 | (source (origin | ||
| 5918 | (method url-fetch) | ||
| 5919 | (uri (rubygems-uri "net-sftp" version)) | ||
| 5920 | (sha256 | ||
| 5921 | (base32 | ||
| 5922 | "0r33aa2d61hv1psm0l0mm6ik3ycsnq8symv7h84kpyf2b7493fv5")))) | ||
| 5923 | (build-system ruby-build-system) | ||
| 5924 | (propagated-inputs (list ruby-net-ssh)) | ||
| 5925 | (synopsis "Pure Ruby implementation of the SFTP client protocol") | ||
| 5926 | (description | ||
| 5927 | "@code{Net::SFTP} is a pure Ruby implementation of the SFTP | ||
| 5928 | protocol (specifically, versions 1 through 6 of the SFTP protocol). Note that | ||
| 5929 | this is the “Secure File Transfer Protocol”, typically run over an SSH | ||
| 5930 | connection, and has nothing to do with the FTP protocol.") | ||
| 5931 | (home-page "https://github.com/net-ssh/net-sftp") | ||
| 5932 | (license license:expat))) | ||
| 5933 | |||
| 5934 | (define-public ruby-minima | ||
| 5935 | (package | ||
| 5936 | (name "ruby-minima") | ||
| 5937 | (version "2.5.1") | ||
| 5938 | (source (origin | ||
| 5939 | (method url-fetch) | ||
| 5940 | (uri (rubygems-uri "minima" version)) | ||
| 5941 | (sha256 | ||
| 5942 | (base32 | ||
| 5943 | "1gk7jmriiswda1ykjzpsw9cpiya4m9n0yrh0h6xnrc8zcfy543jj")))) | ||
| 5944 | (arguments | ||
| 5945 | (list #:phases #~(modify-phases %standard-phases | ||
| 5946 | (replace 'check | ||
| 5947 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 5948 | (when tests? | ||
| 5949 | (invoke "jekyll" "build")) | ||
| 5950 | ;; Without the following, an attempt to remove | ||
| 5951 | ;; minima-<version>.gem is made during installation, | ||
| 5952 | ;; which will fail. | ||
| 5953 | (delete-file #$(string-append "_site/minima-" | ||
| 5954 | version ".gem"))))))) | ||
| 5955 | (build-system ruby-build-system) | ||
| 5956 | (propagated-inputs (list jekyll ruby-jekyll-feed ruby-jekyll-seo-tag)) | ||
| 5957 | (synopsis "Beautiful, minimal theme for Jekyll") | ||
| 5958 | (description | ||
| 5959 | "Minima is a one-size-fits-all Jekyll theme for writers. It's Jekyll's | ||
| 5960 | default (and first) theme. It's what you get when you run @code{jekyll new}.") | ||
| 5961 | (home-page "https://github.com/jekyll/minima") | ||
| 5962 | (license license:expat))) | ||
| 5963 | |||
| 5964 | (define-public ruby-minitest | ||
| 5965 | (package | ||
| 5966 | (name "ruby-minitest") | ||
| 5967 | (version "5.18.1") | ||
| 5968 | (source (origin | ||
| 5969 | (method url-fetch) | ||
| 5970 | (uri (rubygems-uri "minitest" version)) | ||
| 5971 | (sha256 | ||
| 5972 | (base32 | ||
| 5973 | "1kg9wh7jlc9zsr3hkhpzkbn0ynf4np5ap9m2d8xdrb8shy0y6pmb")))) | ||
| 5974 | (build-system ruby-build-system) | ||
| 5975 | (native-inputs (list ruby-hoe)) | ||
| 5976 | (home-page "https://github.com/minitest/minitest") | ||
| 5977 | (synopsis "Small test suite library for Ruby") | ||
| 5978 | (description "Minitest provides a complete suite of Ruby testing | ||
| 5979 | facilities supporting TDD, BDD, mocking, and benchmarking.") | ||
| 5980 | (license license:expat))) | ||
| 5981 | |||
| 5982 | (define-public ruby-minitest-around | ||
| 5983 | (package | ||
| 5984 | (name "ruby-minitest-around") | ||
| 5985 | (version "0.5.0") | ||
| 5986 | (source | ||
| 5987 | (origin | ||
| 5988 | (method url-fetch) | ||
| 5989 | (uri (rubygems-uri "minitest-around" version)) | ||
| 5990 | (sha256 | ||
| 5991 | (base32 | ||
| 5992 | "15ywnqx0719jl9c25yqfshmwcir57i5f4hr1ra9v9vay9ylcwndr")))) | ||
| 5993 | (build-system ruby-build-system) | ||
| 5994 | (arguments | ||
| 5995 | '(#:phases | ||
| 5996 | (modify-phases %standard-phases | ||
| 5997 | (add-after 'extract-gemspec 'remove-unnecessary-dependency-versions | ||
| 5998 | (lambda _ | ||
| 5999 | (substitute* "minitest-around.gemspec" | ||
| 6000 | (("%q<cucumber>.*") "%q<cucumber>, [\">= 0\"])\n"))))))) | ||
| 6001 | (propagated-inputs | ||
| 6002 | (list ruby-minitest)) | ||
| 6003 | (native-inputs | ||
| 6004 | (list bundler ruby-cucumber ruby-bump ruby-test-construct)) | ||
| 6005 | (synopsis "Run code around tests in Minitest") | ||
| 6006 | (description | ||
| 6007 | "This library provides a way to run code around tests in Minitest, | ||
| 6008 | written using either the unit test or spec style.") | ||
| 6009 | (home-page "https://github.com/splattael/minitest-around") | ||
| 6010 | (license license:expat))) | ||
| 6011 | |||
| 6012 | (define-public ruby-minitest-retry | ||
| 6013 | (package | ||
| 6014 | (name "ruby-minitest-retry") | ||
| 6015 | (version "0.2.2") | ||
| 6016 | (source (origin | ||
| 6017 | (method url-fetch) | ||
| 6018 | (uri (rubygems-uri "minitest-retry" version)) | ||
| 6019 | (sha256 | ||
| 6020 | (base32 | ||
| 6021 | "1c1zq0b1a9y0hbqphq4ybijnjldlis1g6kyhx92q2ynnqfmzhfga")))) | ||
| 6022 | (build-system ruby-build-system) | ||
| 6023 | (propagated-inputs (list ruby-minitest)) | ||
| 6024 | (synopsis "Minitest extension to re-run failing tests") | ||
| 6025 | (description "This package provides the @code{Minitest::Retry} class, | ||
| 6026 | which extends Minitest to allow retrying tests when they fail.") | ||
| 6027 | (home-page "https://github.com/y-yagi/minitest-retry") | ||
| 6028 | (license license:expat))) | ||
| 6029 | |||
| 6030 | (define-public ruby-minitest-sprint | ||
| 6031 | (package | ||
| 6032 | (name "ruby-minitest-sprint") | ||
| 6033 | (version "1.1.0") | ||
| 6034 | (source (origin | ||
| 6035 | (method url-fetch) | ||
| 6036 | (uri (rubygems-uri "minitest-sprint" version)) | ||
| 6037 | (sha256 | ||
| 6038 | (base32 | ||
| 6039 | "179d6pj56l9xzm46fqsqj10mzjkr1f9fv4cxa8wvchs97hqz33w1")))) | ||
| 6040 | (build-system ruby-build-system) | ||
| 6041 | (native-inputs | ||
| 6042 | (list ruby-hoe ruby-minitest)) | ||
| 6043 | (synopsis "Fast test suite runner for minitest") | ||
| 6044 | (description "Minitest-sprint is a test runner for minitest that makes it | ||
| 6045 | easier to re-run individual failing tests.") | ||
| 6046 | (home-page "https://github.com/seattlerb/minitest-sprint") | ||
| 6047 | (license license:expat))) | ||
| 6048 | |||
| 6049 | (define-public ruby-minitest-stub-const | ||
| 6050 | (package | ||
| 6051 | (name "ruby-minitest-stub-const") | ||
| 6052 | (version "0.6") ;for Rakefile | ||
| 6053 | (source (origin | ||
| 6054 | (method git-fetch) | ||
| 6055 | (uri (git-reference | ||
| 6056 | (url "https://github.com/adammck/minitest-stub-const") | ||
| 6057 | (commit (string-append "v" version)))) | ||
| 6058 | (file-name (git-file-name name version)) | ||
| 6059 | (sha256 | ||
| 6060 | (base32 | ||
| 6061 | "0cz4r9fxplx94c7wakx0998n2gv7l21prn8pfpw6z2c33k3g2xar")))) | ||
| 6062 | (build-system ruby-build-system) | ||
| 6063 | (synopsis "Stub constants for the duration of a block in MiniTest") | ||
| 6064 | (description "This package provides a MiniTest extension to stub constants | ||
| 6065 | for the duration of a block in MiniTest.") | ||
| 6066 | (home-page "https://github.com/adammck/minitest-stub-const") | ||
| 6067 | (license license:expat))) | ||
| 6068 | |||
| 6069 | (define-public ruby-minitest-bacon | ||
| 6070 | (package | ||
| 6071 | (name "ruby-minitest-bacon") | ||
| 6072 | (version "1.0.3") | ||
| 6073 | (source (origin | ||
| 6074 | (method url-fetch) | ||
| 6075 | (uri (rubygems-uri "minitest-bacon" version)) | ||
| 6076 | (sha256 | ||
| 6077 | (base32 | ||
| 6078 | "0zhdwcl6bgha61qiyfvr7zs7ywaxc33wmj9xhxl8jdmpdvifvfaj")))) | ||
| 6079 | (build-system ruby-build-system) | ||
| 6080 | (native-inputs | ||
| 6081 | (list ruby-hoe)) | ||
| 6082 | (inputs | ||
| 6083 | (list ruby-minitest)) | ||
| 6084 | (synopsis "Bacon compatibility library for minitest") | ||
| 6085 | (description "Minitest-bacon extends minitest with bacon-like | ||
| 6086 | functionality, making it easier to migrate test suites from bacon to minitest.") | ||
| 6087 | (home-page "https://github.com/seattlerb/minitest-bacon") | ||
| 6088 | (license license:expat))) | ||
| 6089 | |||
| 6090 | (define-public ruby-minitest-focus | ||
| 6091 | (package | ||
| 6092 | (name "ruby-minitest-focus") | ||
| 6093 | (version "1.3.1") | ||
| 6094 | (source | ||
| 6095 | (origin | ||
| 6096 | (method url-fetch) | ||
| 6097 | (uri (rubygems-uri "minitest-focus" version)) | ||
| 6098 | (sha256 | ||
| 6099 | (base32 | ||
| 6100 | "13kd2dkd9akfb99ziqndz9mir5iynyfyj2l45mcibab6mq5k8g67")))) | ||
| 6101 | (build-system ruby-build-system) | ||
| 6102 | (propagated-inputs | ||
| 6103 | (list ruby-minitest)) | ||
| 6104 | (native-inputs | ||
| 6105 | (list ruby-hoe)) | ||
| 6106 | (synopsis "Allows a few specific tests to be focused on") | ||
| 6107 | (description | ||
| 6108 | "@code{minitest-focus} gives the ability focus on a few tests with ease | ||
| 6109 | without having to use command-line arguments. It introduces a @code{focus} | ||
| 6110 | class method for use in testing classes, specifying that the next defined test | ||
| 6111 | is to be run.") | ||
| 6112 | (home-page "https://github.com/seattlerb/minitest-focus") | ||
| 6113 | (license license:expat))) | ||
| 6114 | |||
| 6115 | (define-public ruby-minitest-power-assert | ||
| 6116 | (package | ||
| 6117 | (name "ruby-minitest-power-assert") | ||
| 6118 | (version "0.3.1") | ||
| 6119 | (source (origin | ||
| 6120 | (method url-fetch) | ||
| 6121 | (uri (rubygems-uri "minitest-power_assert" version)) | ||
| 6122 | (sha256 | ||
| 6123 | (base32 | ||
| 6124 | "1dazl6nbxjvvmi5jamrsygkz396s29b7cd841ni6qy4izk8jd9b7")))) | ||
| 6125 | (build-system ruby-build-system) | ||
| 6126 | (propagated-inputs (list ruby-minitest ruby-power-assert)) | ||
| 6127 | (synopsis "Power Assert implementation for Minitest") | ||
| 6128 | (description "This gem provides a Power Assert implementation for | ||
| 6129 | Minitest. It is inspired by the @code{test-unit-power_assert} gem.") | ||
| 6130 | (home-page "https://github.com/hsbt/minitest-power_assert") | ||
| 6131 | (license license:bsd-2))) | ||
| 6132 | |||
| 6133 | (define-public ruby-minitest-profile | ||
| 6134 | (package | ||
| 6135 | (name "ruby-minitest-profile") | ||
| 6136 | (version "0.0.2") | ||
| 6137 | (source (origin | ||
| 6138 | (method url-fetch) | ||
| 6139 | (uri (rubygems-uri "minitest-profile" version)) | ||
| 6140 | (sha256 | ||
| 6141 | (base32 | ||
| 6142 | "13h4nwbq6yv7hsaa7dpj90lry4rc5qqnpzvm9n2s57mm2xi31xfa")))) | ||
| 6143 | (build-system ruby-build-system) | ||
| 6144 | (synopsis "Display the slowest tests in a MiniTest suite") | ||
| 6145 | (description "This package provides a MiniTest plugin for displaying the | ||
| 6146 | slowest tests in a minitest suite.") | ||
| 6147 | (home-page "https://github.com/nmeans/minitest-profile") | ||
| 6148 | (license license:expat))) | ||
| 6149 | |||
| 6150 | (define-public ruby-minitest-proveit | ||
| 6151 | (package | ||
| 6152 | (name "ruby-minitest-proveit") | ||
| 6153 | (version "1.0.0") | ||
| 6154 | (source (origin | ||
| 6155 | (method url-fetch) | ||
| 6156 | (uri (rubygems-uri "minitest-proveit" version)) | ||
| 6157 | (sha256 | ||
| 6158 | (base32 | ||
| 6159 | "0k1hpr8lgkgygfivgcsnnib7xjlf9ribgpn7yidvb4q0l0q2yfmr")))) | ||
| 6160 | (build-system ruby-build-system) | ||
| 6161 | (native-inputs (list ruby-hoe)) | ||
| 6162 | (propagated-inputs (list ruby-minitest)) | ||
| 6163 | (synopsis "Assertion-based tests extension for MiniTest") | ||
| 6164 | (description "The @code{minitest-proveit} MiniTest extension ensures all | ||
| 6165 | tests to prove success (via at least one assertion) rather than rely on the | ||
| 6166 | absence of failure.") | ||
| 6167 | (home-page "https://github.com/seattlerb/minitest-proveit") | ||
| 6168 | (license license:expat))) | ||
| 6169 | |||
| 6170 | (define-public ruby-minitest-moar | ||
| 6171 | (package | ||
| 6172 | (name "ruby-minitest-moar") | ||
| 6173 | (version "0.0.4") | ||
| 6174 | (source | ||
| 6175 | (origin | ||
| 6176 | (method url-fetch) | ||
| 6177 | (uri (rubygems-uri "minitest-moar" version)) | ||
| 6178 | (sha256 | ||
| 6179 | (base32 | ||
| 6180 | "0nb83blrsab92gcy6nfpw39njys7zisia8pw4igzzfzfl51cis0x")))) | ||
| 6181 | (build-system ruby-build-system) | ||
| 6182 | (arguments | ||
| 6183 | `(#:phases | ||
| 6184 | (modify-phases %standard-phases | ||
| 6185 | (add-before 'check 'clean-dependencies | ||
| 6186 | (lambda _ | ||
| 6187 | ;; Remove all gems defined in the Gemfile because these are not | ||
| 6188 | ;; truly needed. | ||
| 6189 | (substitute* "Gemfile" | ||
| 6190 | (("gem .*") "")) | ||
| 6191 | ;; Remove byebug as not needed to run tests. | ||
| 6192 | (substitute* "test/test_helper.rb" | ||
| 6193 | (("require 'byebug'") ""))))))) | ||
| 6194 | (native-inputs | ||
| 6195 | (list bundler ruby-minitest)) | ||
| 6196 | (synopsis "Extra features and changes to MiniTest") | ||
| 6197 | (description "@code{MiniTest Moar} add some additional features and | ||
| 6198 | changes some default behaviours in MiniTest. For instance, Moar replaces the | ||
| 6199 | MiniTest @code{Object#stub} with a global @code{stub} method.") | ||
| 6200 | (home-page "https://github.com/dockyard/minitest-moar") | ||
| 6201 | (license license:expat))) | ||
| 6202 | |||
| 6203 | (define-public ruby-minitest-bonus-assertions | ||
| 6204 | (package | ||
| 6205 | (name "ruby-minitest-bonus-assertions") | ||
| 6206 | (version "3.0") | ||
| 6207 | (source | ||
| 6208 | (origin | ||
| 6209 | (method url-fetch) | ||
| 6210 | (uri (rubygems-uri "minitest-bonus-assertions" version)) | ||
| 6211 | (sha256 | ||
| 6212 | (base32 | ||
| 6213 | "1hbq9jk904xkz868yha1bqcm6azm7kmjsll2k4pn2nrcib508h2a")))) | ||
| 6214 | (build-system ruby-build-system) | ||
| 6215 | (arguments | ||
| 6216 | (list | ||
| 6217 | #:tests? #f ; Test suite has bitrotted. | ||
| 6218 | #:phases | ||
| 6219 | #~(modify-phases %standard-phases | ||
| 6220 | (add-before 'check 'clean-dependencies | ||
| 6221 | (lambda _ | ||
| 6222 | ;; Remove unneeded require statement that would entail another | ||
| 6223 | ;; dependency. | ||
| 6224 | (substitute* "test/minitest_config.rb" | ||
| 6225 | (("require 'minitest/bisect'") ""))))))) | ||
| 6226 | (native-inputs | ||
| 6227 | (list ruby-hoe | ||
| 6228 | ruby-minitest-focus | ||
| 6229 | ruby-minitest-moar)) | ||
| 6230 | (synopsis "Bonus assertions for @code{Minitest}") | ||
| 6231 | (description | ||
| 6232 | "Minitest bonus assertions provides extra MiniTest assertions. For | ||
| 6233 | instance, it provides @code{assert_true}, @code{assert_false} and | ||
| 6234 | @code{assert_set_equal}.") | ||
| 6235 | (home-page "https://github.com/halostatue/minitest-bonus-assertions") | ||
| 6236 | (license license:expat))) | ||
| 6237 | |||
| 6238 | (define-public ruby-minitest-reporters | ||
| 6239 | (package | ||
| 6240 | (name "ruby-minitest-reporters") | ||
| 6241 | (version "1.3.6") | ||
| 6242 | (source | ||
| 6243 | (origin | ||
| 6244 | (method url-fetch) | ||
| 6245 | (uri (rubygems-uri "minitest-reporters" version)) | ||
| 6246 | (sha256 | ||
| 6247 | (base32 | ||
| 6248 | "1a3das80rwgys5rj48i5ly144nvszyqyi748bk9bss74jblcf5ay")))) | ||
| 6249 | (build-system ruby-build-system) | ||
| 6250 | (arguments | ||
| 6251 | '(#:phases | ||
| 6252 | (modify-phases %standard-phases | ||
| 6253 | ;; Remove the requirement on Rubocop, as it isn't useful to run, and | ||
| 6254 | ;; including it as an input can lead to circular dependencies. | ||
| 6255 | (add-after 'unpack 'remove-rubocop-from-Rakefile | ||
| 6256 | (lambda _ | ||
| 6257 | (substitute* "Rakefile" | ||
| 6258 | (("require 'rubocop/rake\\_task'") "") | ||
| 6259 | (("RuboCop::RakeTask\\.new\\(:rubocop\\)") "[].each")))) | ||
| 6260 | (add-after 'extract-gemspec 'remove-rubocop-from-gemspec | ||
| 6261 | (lambda _ | ||
| 6262 | (substitute* "minitest-reporters.gemspec" | ||
| 6263 | ((".*%q<rubocop>.*") "\n"))))))) | ||
| 6264 | (propagated-inputs | ||
| 6265 | (list ruby-ansi ruby-builder ruby-minitest ruby-progressbar)) | ||
| 6266 | (native-inputs | ||
| 6267 | (list bundler ruby-maruku)) | ||
| 6268 | (synopsis "Enhanced reporting for Minitest tests") | ||
| 6269 | (description | ||
| 6270 | "@code{minitest/reporters} provides a custom Minitest runner to improve | ||
| 6271 | how the test state is reported. A number of different reporters are | ||
| 6272 | available, including a spec reporter, progress bar reporter, a HTML | ||
| 6273 | reporter.") | ||
| 6274 | (home-page "https://github.com/kern/minitest-reporters") | ||
| 6275 | (license license:expat))) | ||
| 6276 | |||
| 6277 | (define-public ruby-minitest-rg | ||
| 6278 | (package | ||
| 6279 | (name "ruby-minitest-rg") | ||
| 6280 | (version "5.2.0") | ||
| 6281 | (source | ||
| 6282 | (origin | ||
| 6283 | (method url-fetch) | ||
| 6284 | (uri (rubygems-uri "minitest-rg" version)) | ||
| 6285 | (sha256 | ||
| 6286 | (base32 | ||
| 6287 | "0sq509ax1x62rd0w10b0hcydcxyk5bxxr3fwrgxv02r8drq2r354")))) | ||
| 6288 | (build-system ruby-build-system) | ||
| 6289 | (arguments | ||
| 6290 | ;; Some tests fail even outside Guix, so disable tests. | ||
| 6291 | ;; https://github.com/blowmage/minitest-rg/issues/12 | ||
| 6292 | ;; https://github.com/blowmage/minitest-rg/pull/13 | ||
| 6293 | `(#:tests? #f)) | ||
| 6294 | (propagated-inputs | ||
| 6295 | (list ruby-minitest)) | ||
| 6296 | (synopsis "Coloured output for Minitest") | ||
| 6297 | (description | ||
| 6298 | "@code{minitest-rg} changes the colour of the output from Minitest.") | ||
| 6299 | (home-page "https://blowmage.com/minitest-rg/") | ||
| 6300 | (license license:expat))) | ||
| 6301 | |||
| 6302 | (define-public ruby-minitest-global-expectations | ||
| 6303 | (package | ||
| 6304 | (name "ruby-minitest-global-expectations") | ||
| 6305 | (version "1.0.1") | ||
| 6306 | (source | ||
| 6307 | (origin | ||
| 6308 | (method url-fetch) | ||
| 6309 | (uri (rubygems-uri "minitest-global_expectations" | ||
| 6310 | version)) | ||
| 6311 | (sha256 | ||
| 6312 | (base32 | ||
| 6313 | "1pp3k2608spj4kvqy2y16hs18an917g6vwgvphrfhjviac83090x")))) | ||
| 6314 | (build-system ruby-build-system) | ||
| 6315 | (propagated-inputs | ||
| 6316 | (list ruby-minitest)) | ||
| 6317 | (synopsis "Adjust minitest behaviour for calling expectation methods") | ||
| 6318 | (description | ||
| 6319 | "Minitest-global_expectations allows continued use of expectation methods | ||
| 6320 | on all objects. Calling expectation methods on all objects was deprecated in | ||
| 6321 | minitest 5.12, and is planned to be removed from minitest 6.") | ||
| 6322 | (home-page "https://github.com/jeremyevans/minitest-global_expectations") | ||
| 6323 | (license license:expat))) | ||
| 6324 | |||
| 6325 | (define-public ruby-minitest-hooks | ||
| 6326 | (package | ||
| 6327 | (name "ruby-minitest-hooks") | ||
| 6328 | (version "1.5.2") | ||
| 6329 | (source | ||
| 6330 | (origin | ||
| 6331 | (method url-fetch) | ||
| 6332 | (uri (rubygems-uri "minitest-hooks" version)) | ||
| 6333 | (sha256 | ||
| 6334 | (base32 "11jb31dl5kbpyl3kgxql0p7da9066r2aqw54y5q6cni9nmld3zf5")))) | ||
| 6335 | (build-system ruby-build-system) | ||
| 6336 | (arguments | ||
| 6337 | '(#:tests? #f)) ; No tests bundled. | ||
| 6338 | (native-inputs | ||
| 6339 | (list ruby-sequel ruby-sqlite3)) | ||
| 6340 | (synopsis "Hooks for the minitest framework") | ||
| 6341 | (description | ||
| 6342 | "Minitest-hooks adds @code{around}, @code{before_all}, @code{after_all}, | ||
| 6343 | @code{around_all} hooks for Minitest. This allows, for instance, running each | ||
| 6344 | suite of specs inside a database transaction, running each spec inside its own | ||
| 6345 | savepoint inside that transaction. This can significantly speed up testing | ||
| 6346 | for specs that share expensive database setup code.") | ||
| 6347 | (home-page "https://github.com/jeremyevans/minitest-hooks") | ||
| 6348 | (license license:expat))) | ||
| 6349 | |||
| 6350 | (define-public ruby-daemons | ||
| 6351 | (package | ||
| 6352 | (name "ruby-daemons") | ||
| 6353 | (version "1.2.5") | ||
| 6354 | (source (origin | ||
| 6355 | (method url-fetch) | ||
| 6356 | (uri (rubygems-uri "daemons" version)) | ||
| 6357 | (sha256 | ||
| 6358 | (base32 | ||
| 6359 | "15smbsg0gxb7nf0nrlnplc68y0cdy13dm6fviavpmw7c630sring")))) | ||
| 6360 | (build-system ruby-build-system) | ||
| 6361 | (arguments | ||
| 6362 | `(#:tests? #f)) ; no test suite | ||
| 6363 | (synopsis "Daemonize Ruby programs") | ||
| 6364 | (description "Daemons provides a way to wrap existing Ruby scripts to be | ||
| 6365 | run as a daemon and to be controlled by simple start/stop/restart commands.") | ||
| 6366 | (home-page "https://github.com/thuehlinger/daemons") | ||
| 6367 | (license license:expat))) | ||
| 6368 | |||
| 6369 | (define-public ruby-dalli | ||
| 6370 | (package | ||
| 6371 | (name "ruby-dalli") | ||
| 6372 | (version "3.2.4") | ||
| 6373 | (source (origin | ||
| 6374 | (method git-fetch) ;for tests | ||
| 6375 | (uri (git-reference | ||
| 6376 | (url "https://github.com/petergoldstein/dalli") | ||
| 6377 | (commit (string-append "v" version)))) | ||
| 6378 | (file-name (git-file-name name version)) | ||
| 6379 | (sha256 | ||
| 6380 | (base32 | ||
| 6381 | "1hhqqv1j3zd2y0vr6maaabsflrvkf1x0i6z8n725mhqydp3f9gwp")))) | ||
| 6382 | (build-system ruby-build-system) | ||
| 6383 | ;; Disable tests to avoid a dependency cycle with ruby-activesupport, | ||
| 6384 | ;; through ruby-ruby-prof. | ||
| 6385 | (arguments (list #:tests? #f)) | ||
| 6386 | (synopsis "High performance memcached client for Ruby") | ||
| 6387 | (description "Dalli is a high performance pure Ruby client for accessing | ||
| 6388 | memcached servers. Dalli supports: | ||
| 6389 | |||
| 6390 | @itemize | ||
| 6391 | @item Simple and complex memcached configurations | ||
| 6392 | @item Fail-over between memcached instances | ||
| 6393 | @item Fine-grained control of data serialization and compression | ||
| 6394 | @item Thread-safe operation | ||
| 6395 | @item SSL/TLS connections to memcached | ||
| 6396 | @item SASL authentication. | ||
| 6397 | @end itemize | ||
| 6398 | |||
| 6399 | The name is a variant of Salvador Dali for his famous painting The Persistence | ||
| 6400 | of Memory.") | ||
| 6401 | (home-page "https://github.com/petergoldstein/dalli") | ||
| 6402 | (license license:expat))) | ||
| 6403 | |||
| 6404 | (define-public ruby-data_uri | ||
| 6405 | (package | ||
| 6406 | (name "ruby-data_uri") | ||
| 6407 | (version "0.1.0") | ||
| 6408 | (source | ||
| 6409 | (origin | ||
| 6410 | (method url-fetch) | ||
| 6411 | (uri (rubygems-uri "data_uri" version)) | ||
| 6412 | (sha256 | ||
| 6413 | (base32 | ||
| 6414 | "0fzkxgdxrlbfl4537y3n9mjxbm28kir639gcw3x47ffchwsgdcky")))) | ||
| 6415 | (build-system ruby-build-system) | ||
| 6416 | (synopsis "URI class for parsing data URIs") | ||
| 6417 | (description | ||
| 6418 | "Data @acronym{URI, universal resource identifier}s allow resources to be | ||
| 6419 | embedded inside a URI. The URI::Data class provides support for parsing these | ||
| 6420 | URIs using the normal URI.parse method.") | ||
| 6421 | (home-page "https://github.com/dball/data_uri") | ||
| 6422 | (license license:expat))) | ||
| 6423 | |||
| 6424 | (define-public ruby-debug | ||
| 6425 | (package | ||
| 6426 | (name "ruby-debug") | ||
| 6427 | (version "1.7.2") | ||
| 6428 | (source (origin | ||
| 6429 | (method url-fetch) | ||
| 6430 | (uri (rubygems-uri "debug" version)) | ||
| 6431 | (sha256 | ||
| 6432 | (base32 | ||
| 6433 | "0x59508j69w9p275gabysv521n210pd3n060gqfgsiqjms1h0ldf")))) | ||
| 6434 | (build-system ruby-build-system) | ||
| 6435 | (arguments (list #:test-target "test_all")) | ||
| 6436 | (propagated-inputs (list ruby-irb ruby-reline)) | ||
| 6437 | (synopsis "Debugging functionality for Ruby") | ||
| 6438 | (description "Debugging functionality for Ruby. This is completely | ||
| 6439 | rewritten debug.rb which was contained by the ancient Ruby versions. It is | ||
| 6440 | included with Ruby itself, but this package is made available so that the | ||
| 6441 | latest version can be made available independently from Ruby.") | ||
| 6442 | (home-page "https://github.com/ruby/debug") | ||
| 6443 | (license license:bsd-2))) | ||
| 6444 | |||
| 6445 | (define-public ruby-deep-merge | ||
| 6446 | (package | ||
| 6447 | (name "ruby-deep-merge") | ||
| 6448 | (version "1.2.1") | ||
| 6449 | (home-page "https://github.com/danielsdeleo/deep_merge") | ||
| 6450 | ;; The Rubygem source does not contain the gemspec required for tests. | ||
| 6451 | (source (origin | ||
| 6452 | (method git-fetch) | ||
| 6453 | (uri (git-reference (url home-page) (commit version))) | ||
| 6454 | (file-name (git-file-name name version)) | ||
| 6455 | (sha256 | ||
| 6456 | (base32 | ||
| 6457 | "0c9rk23ilhc0n4489y6lda2wzphpzh6ish6fahlbpjhxn82wb931")))) | ||
| 6458 | (build-system ruby-build-system) | ||
| 6459 | (native-inputs | ||
| 6460 | (list ruby-minitest)) | ||
| 6461 | (synopsis "Recursively merge hashes") | ||
| 6462 | (description | ||
| 6463 | "Deep Merge is a set of utility functions for @code{Hash}. It permits | ||
| 6464 | you to merge elements inside a hash together recursively.") | ||
| 6465 | (license license:expat))) | ||
| 6466 | |||
| 6467 | (define-public ruby-delayed-job | ||
| 6468 | (package | ||
| 6469 | (name "ruby-delayed-job") | ||
| 6470 | (version "4.1.11") | ||
| 6471 | (source (origin | ||
| 6472 | (method url-fetch) | ||
| 6473 | (uri (rubygems-uri "delayed_job" version)) | ||
| 6474 | (sha256 | ||
| 6475 | (base32 | ||
| 6476 | "0s2xg72ljg4cwmr05zi67vcyz8zib46gvvf7rmrdhsyq387m2qcq")))) | ||
| 6477 | (build-system ruby-build-system) | ||
| 6478 | (arguments | ||
| 6479 | (list #:phases | ||
| 6480 | #~(modify-phases %standard-phases | ||
| 6481 | (add-after 'unpack 'disable-bundler | ||
| 6482 | (lambda _ | ||
| 6483 | (substitute* "Rakefile" | ||
| 6484 | (("require 'bundler/setup'") "") | ||
| 6485 | (("Bundler::GemHelper\\.install_tasks") "")))) | ||
| 6486 | (add-after 'unpack 'disable-rubocop | ||
| 6487 | (lambda _ | ||
| 6488 | (substitute* "Rakefile" | ||
| 6489 | (("require 'rubocop/rake_task'") "") | ||
| 6490 | (("RuboCop::RakeTask.new") "")))) | ||
| 6491 | (add-after 'extract-gemspec 'remove-dependency-on-actionmailer | ||
| 6492 | (lambda _ | ||
| 6493 | (substitute* "spec/helper.rb" | ||
| 6494 | (("require 'action_mailer'") "")) | ||
| 6495 | (substitute* "delayed_job.gemspec" | ||
| 6496 | (("\"spec/performable_mailer_spec.rb\".freeze, ") "")) | ||
| 6497 | (delete-file "spec/performable_mailer_spec.rb")))))) | ||
| 6498 | (native-inputs | ||
| 6499 | (list ruby-activerecord | ||
| 6500 | ruby-rspec | ||
| 6501 | ruby-simplecov | ||
| 6502 | ruby-simplecov-lcov | ||
| 6503 | ruby-zeitwerk | ||
| 6504 | ruby-mini-portile-2)) | ||
| 6505 | (propagated-inputs | ||
| 6506 | (list ruby-activesupport)) | ||
| 6507 | (synopsis "Asynchronous background tasks execution library") | ||
| 6508 | (description "Delayed_job (or DJ) encapsulates the common pattern of | ||
| 6509 | asynchronously executing longer tasks in the background. It is a direct | ||
| 6510 | extraction from Shopify where the job table is responsible for a multitude of | ||
| 6511 | core tasks.") | ||
| 6512 | (home-page "https://github.com/collectiveidea/delayed_job") | ||
| 6513 | (license license:expat))) | ||
| 6514 | |||
| 6515 | (define-public ruby-git | ||
| 6516 | (package | ||
| 6517 | (name "ruby-git") | ||
| 6518 | (version "1.3.0") | ||
| 6519 | (source (origin | ||
| 6520 | (method url-fetch) | ||
| 6521 | (uri (rubygems-uri "git" version)) | ||
| 6522 | (sha256 | ||
| 6523 | (base32 | ||
| 6524 | "1waikaggw7a1d24nw0sh8fd419gbf7awh000qhsf411valycj6q3")))) | ||
| 6525 | (build-system ruby-build-system) | ||
| 6526 | (arguments | ||
| 6527 | `(#:tests? #f ; no tests | ||
| 6528 | #:phases (modify-phases %standard-phases | ||
| 6529 | (add-after 'install 'patch-git-binary | ||
| 6530 | (lambda* (#:key inputs outputs #:allow-other-keys) | ||
| 6531 | ;; Make the default git binary an absolute path to the | ||
| 6532 | ;; store. | ||
| 6533 | (let ((git (search-input-file inputs "/bin/git")) | ||
| 6534 | (config (string-append | ||
| 6535 | (assoc-ref outputs "out") | ||
| 6536 | "/lib/ruby/vendor_ruby/gems/git-" | ||
| 6537 | ,version "/lib/git/config.rb"))) | ||
| 6538 | (substitute* (list config) | ||
| 6539 | (("'git'") | ||
| 6540 | (string-append "'" git "'"))))))))) | ||
| 6541 | (inputs | ||
| 6542 | (list git)) | ||
| 6543 | (synopsis "Ruby wrappers for Git") | ||
| 6544 | (description "Ruby/Git is a Ruby library that can be used to create, read | ||
| 6545 | and manipulate Git repositories by wrapping system calls to the git binary.") | ||
| 6546 | (home-page "https://github.com/schacon/ruby-git") | ||
| 6547 | (license license:expat))) | ||
| 6548 | |||
| 6549 | (define-public ruby-hocon | ||
| 6550 | (package | ||
| 6551 | (name "ruby-hocon") | ||
| 6552 | (version "1.4.0") | ||
| 6553 | (home-page "https://github.com/puppetlabs/ruby-hocon") | ||
| 6554 | (source (origin | ||
| 6555 | (method git-fetch) | ||
| 6556 | (uri (git-reference (url home-page) (commit version))) | ||
| 6557 | (file-name (git-file-name name version)) | ||
| 6558 | (sha256 | ||
| 6559 | (base32 | ||
| 6560 | "04wgv0pwrghawnl6qp346z59fvp9v37jymq8p0lsrzxa6nvrykmk")))) | ||
| 6561 | (build-system ruby-build-system) | ||
| 6562 | (arguments | ||
| 6563 | (list | ||
| 6564 | #:phases | ||
| 6565 | #~(modify-phases %standard-phases | ||
| 6566 | (replace 'check | ||
| 6567 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 6568 | (if tests? | ||
| 6569 | (invoke "rspec") | ||
| 6570 | (format #t "test suite not run~%"))))))) | ||
| 6571 | (native-inputs | ||
| 6572 | (list bundler ruby-rspec)) | ||
| 6573 | (synopsis "HOCON config library") | ||
| 6574 | (description | ||
| 6575 | "This package provides Ruby support for the @acronym{HOCON, | ||
| 6576 | Human-Optimized Config Object Notation} configuration file format. It | ||
| 6577 | supports parsing and modifying HOCON and JSON files, and rendering parsed | ||
| 6578 | objects back to a @code{String}.") | ||
| 6579 | (license license:asl2.0))) | ||
| 6580 | |||
| 6581 | (define-public ruby-slop | ||
| 6582 | (package | ||
| 6583 | (name "ruby-slop") | ||
| 6584 | (version "4.10.1") | ||
| 6585 | (source (origin | ||
| 6586 | (method url-fetch) | ||
| 6587 | (uri (rubygems-uri "slop" version)) | ||
| 6588 | (sha256 | ||
| 6589 | (base32 | ||
| 6590 | "1iyrjskgxyn8i1679qwkzns85p909aq77cgx2m4fs5ygzysj4hw4")))) | ||
| 6591 | (build-system ruby-build-system) | ||
| 6592 | (synopsis "Ruby command line option parser") | ||
| 6593 | (description "Slop provides a Ruby domain specific language for gathering | ||
| 6594 | options and parsing command line flags.") | ||
| 6595 | (home-page "https://github.com/leejarvis/slop") | ||
| 6596 | (license license:expat))) | ||
| 6597 | |||
| 6598 | (define-public ruby-slop-3 | ||
| 6599 | (package (inherit ruby-slop) | ||
| 6600 | (version "3.6.0") | ||
| 6601 | (source (origin | ||
| 6602 | (method url-fetch) | ||
| 6603 | (uri (rubygems-uri "slop" version)) | ||
| 6604 | (sha256 | ||
| 6605 | (base32 | ||
| 6606 | "00w8g3j7k7kl8ri2cf1m58ckxk8rn350gp4chfscmgv6pq1spk3n")))))) | ||
| 6607 | |||
| 6608 | (define-public ruby-multi-xml | ||
| 6609 | (package | ||
| 6610 | (name "ruby-multi-xml") | ||
| 6611 | (version "0.6.0") | ||
| 6612 | (source | ||
| 6613 | (origin | ||
| 6614 | (method url-fetch) | ||
| 6615 | (uri (rubygems-uri "multi_xml" version)) | ||
| 6616 | (sha256 | ||
| 6617 | (base32 | ||
| 6618 | "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj")))) | ||
| 6619 | (build-system ruby-build-system) | ||
| 6620 | (arguments | ||
| 6621 | '(#:tests? #f)) ; No included tests | ||
| 6622 | (synopsis "Swappable XML backends for Ruby") | ||
| 6623 | (description | ||
| 6624 | "@code{MultiXml} provides swappable XML backends utilizing either LibXML, | ||
| 6625 | Nokogiri, Ox, or REXML.") | ||
| 6626 | (home-page "https://github.com/sferik/multi_xml") | ||
| 6627 | (license license:expat))) | ||
| 6628 | |||
| 6629 | (define-public ruby-multipart-parser | ||
| 6630 | (package | ||
| 6631 | (name "ruby-multipart-parser") | ||
| 6632 | (version "0.1.1") | ||
| 6633 | (source (origin | ||
| 6634 | (method url-fetch) | ||
| 6635 | (uri (rubygems-uri "multipart-parser" version)) | ||
| 6636 | (sha256 | ||
| 6637 | (base32 | ||
| 6638 | "0xb4p475yrfm883h9kn80a021myn17dvs50wpa1djzcmlq7p0882")))) | ||
| 6639 | (build-system ruby-build-system) | ||
| 6640 | (arguments | ||
| 6641 | (list | ||
| 6642 | #:phases #~(modify-phases %standard-phases | ||
| 6643 | (add-after 'unpack 'skip-failing-test | ||
| 6644 | ;; One test fails for unknown reasons (see: | ||
| 6645 | ;; https://github.com/danabr/multipart-parser/issues/7). | ||
| 6646 | (lambda _ | ||
| 6647 | (substitute* "test/multipart_parser/reader_test.rb" | ||
| 6648 | (("def test_long" all) | ||
| 6649 | (string-append all "\n return true")))))))) | ||
| 6650 | (synopsis "Parser for multipart MIME messages") | ||
| 6651 | (description "@code{multipart-parser} is a simple parser for multipart | ||
| 6652 | MIME messages, written in Ruby, based on felixge/node-formidable's parser. It | ||
| 6653 | has the following characteristics: | ||
| 6654 | @itemize | ||
| 6655 | @item Pure Ruby | ||
| 6656 | @item Event-driven API | ||
| 6657 | @item Only supports one level of multipart parsing | ||
| 6658 | @item Does not perform I/O | ||
| 6659 | @item Does not depend on any other library. | ||
| 6660 | @end itemize") | ||
| 6661 | (home-page "https://github.com/danabr/multipart-parser") | ||
| 6662 | (license license:expat))) | ||
| 6663 | |||
| 6664 | (define-public ruby-multipart-post | ||
| 6665 | (package | ||
| 6666 | (name "ruby-multipart-post") | ||
| 6667 | (version "2.0.0") | ||
| 6668 | (source (origin | ||
| 6669 | (method url-fetch) | ||
| 6670 | (uri (rubygems-uri "multipart-post" version)) | ||
| 6671 | (sha256 | ||
| 6672 | (base32 | ||
| 6673 | "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x")))) | ||
| 6674 | (build-system ruby-build-system) | ||
| 6675 | (native-inputs | ||
| 6676 | (list bundler)) | ||
| 6677 | (synopsis "Multipart POST library for Ruby") | ||
| 6678 | (description "Multipart-Post Adds multipart POST capability to Ruby's | ||
| 6679 | net/http library.") | ||
| 6680 | (home-page "https://github.com/nicksieger/multipart-post") | ||
| 6681 | (license license:expat))) | ||
| 6682 | |||
| 6683 | (define-public ruby-multi-json | ||
| 6684 | (package | ||
| 6685 | (name "ruby-multi-json") | ||
| 6686 | (version "1.15.0") | ||
| 6687 | (source | ||
| 6688 | (origin | ||
| 6689 | (method git-fetch) | ||
| 6690 | ;; Tests are not distributed at rubygems.org so download from GitHub | ||
| 6691 | ;; instead. | ||
| 6692 | (uri (git-reference | ||
| 6693 | (url "https://github.com/intridea/multi_json") | ||
| 6694 | (commit (string-append "v" version)))) | ||
| 6695 | (file-name (git-file-name name version)) | ||
| 6696 | (sha256 | ||
| 6697 | (base32 | ||
| 6698 | "0mkdvy6i00yyksjvnv6znh7wf89j9506qzzjq6bsbmbkyqrszp4d")))) | ||
| 6699 | (build-system ruby-build-system) | ||
| 6700 | (arguments | ||
| 6701 | (list | ||
| 6702 | ;; TODO Tests don't currently work with Ruby 3 | ||
| 6703 | #:tests? #f | ||
| 6704 | #:phases | ||
| 6705 | #~(modify-phases %standard-phases | ||
| 6706 | (add-before 'check 'pre-check | ||
| 6707 | (lambda _ | ||
| 6708 | ;; As seen in the .travis.yml file. | ||
| 6709 | (setenv "SKIP_ADAPTERS" "gson,jr_jackson,nsjsonserialization")))))) | ||
| 6710 | (native-inputs | ||
| 6711 | (list ruby-rspec ruby-json-pure ruby-oj ruby-yajl-ruby)) | ||
| 6712 | (synopsis "Common interface to multiple JSON libraries for Ruby") | ||
| 6713 | (description | ||
| 6714 | "This package provides a common interface to multiple JSON libraries, | ||
| 6715 | including Oj, Yajl, the JSON gem (with C-extensions), the pure-Ruby JSON gem, | ||
| 6716 | NSJSONSerialization, gson.rb, JrJackson, and OkJson.") | ||
| 6717 | (home-page "https://github.com/intridea/multi_json") | ||
| 6718 | (license license:expat))) | ||
| 6719 | |||
| 6720 | (define-public ruby-multi-test | ||
| 6721 | (package | ||
| 6722 | (name "ruby-multi-test") | ||
| 6723 | (version "0.1.2") | ||
| 6724 | (source | ||
| 6725 | (origin | ||
| 6726 | (method url-fetch) | ||
| 6727 | (uri (rubygems-uri "multi_test" version)) | ||
| 6728 | (sha256 | ||
| 6729 | (base32 | ||
| 6730 | "1sx356q81plr67hg16jfwz9hcqvnk03bd9n75pmdw8pfxjfy1yxd")))) | ||
| 6731 | (build-system ruby-build-system) | ||
| 6732 | (arguments | ||
| 6733 | '(;; Tests require different sets of specific gem versions to be available, | ||
| 6734 | ;; and there is no gemfile that specifies the newest versions of | ||
| 6735 | ;; dependencies to be tested. | ||
| 6736 | #:tests? #f)) | ||
| 6737 | (synopsis | ||
| 6738 | "Interface to testing libraries loaded into a running Ruby process") | ||
| 6739 | (description | ||
| 6740 | "@code{multi_test} provides a uniform interface onto whatever testing | ||
| 6741 | libraries that have been loaded into a running Ruby process to help control | ||
| 6742 | rogue test/unit/autorun requires.") | ||
| 6743 | (home-page "https://github.com/cucumber/multi_test") | ||
| 6744 | (license license:expat))) | ||
| 6745 | |||
| 6746 | (define-public ruby-arr-pm | ||
| 6747 | (package | ||
| 6748 | (name "ruby-arr-pm") | ||
| 6749 | (version "0.0.12") | ||
| 6750 | (source (origin | ||
| 6751 | (method url-fetch) | ||
| 6752 | (uri (rubygems-uri "arr-pm" version)) | ||
| 6753 | (sha256 | ||
| 6754 | (base32 | ||
| 6755 | "0fddw0vwdrr7v3a0lfqbmnd664j48a9psrjd3wh3k4i3flplizzx")))) | ||
| 6756 | (build-system ruby-build-system) | ||
| 6757 | (arguments | ||
| 6758 | (list #:phases | ||
| 6759 | #~(modify-phases %standard-phases | ||
| 6760 | (replace 'check | ||
| 6761 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 6762 | (when tests? | ||
| 6763 | (invoke "rspec"))))))) | ||
| 6764 | (native-inputs (list ruby-flores ruby-insist ruby-rspec ruby-stud)) | ||
| 6765 | (synopsis "RPM reader/writer library written in Ruby") | ||
| 6766 | (description "This library allows reading and writing RPM packages. It is | ||
| 6767 | used by the @command{fpm} tool. It is written in pure Ruby because | ||
| 6768 | @code{librpm} is not available on all systems and requires many | ||
| 6769 | dependencies.") | ||
| 6770 | (home-page "https://github.com/jordansissel/ruby-arr-pm") | ||
| 6771 | (license license:asl2.0))) | ||
| 6772 | |||
| 6773 | (define-public ruby-arel | ||
| 6774 | (package | ||
| 6775 | (name "ruby-arel") | ||
| 6776 | (version "9.0.0") | ||
| 6777 | (source (origin | ||
| 6778 | (method url-fetch) | ||
| 6779 | (uri (rubygems-uri "arel" version)) | ||
| 6780 | (sha256 | ||
| 6781 | (base32 | ||
| 6782 | "1jk7wlmkr61f6g36w9s2sn46nmdg6wn2jfssrhbhirv5x9n95nk0")))) | ||
| 6783 | (build-system ruby-build-system) | ||
| 6784 | (arguments '(#:tests? #f)) ; no tests | ||
| 6785 | (home-page "https://github.com/rails/arel") | ||
| 6786 | (synopsis "SQL AST manager for Ruby") | ||
| 6787 | (description "Arel is an SQL @dfn{Abstract Syntax Tree} (AST) manager for | ||
| 6788 | Ruby. It simplifies the generation of complex SQL queries and adapts to | ||
| 6789 | various relational database implementations.") | ||
| 6790 | (license license:expat))) | ||
| 6791 | |||
| 6792 | (define-public ruby-minitar | ||
| 6793 | ;; We package from the GitHub source to fix the security issue reported at | ||
| 6794 | ;; https://github.com/halostatue/minitar/issues/16. | ||
| 6795 | (let ((commit "e25205ecbb6277ae8a3df1e6a306d7ed4458b6e4")) | ||
| 6796 | (package | ||
| 6797 | (name "ruby-minitar") | ||
| 6798 | (version (string-append "0.5.4-1." (string-take commit 8))) | ||
| 6799 | (source | ||
| 6800 | (origin | ||
| 6801 | (method git-fetch) | ||
| 6802 | (uri (git-reference | ||
| 6803 | (url "https://github.com/halostatue/minitar") | ||
| 6804 | (commit commit))) | ||
| 6805 | (file-name (string-append name "-" version "-checkout")) | ||
| 6806 | (sha256 | ||
| 6807 | (base32 | ||
| 6808 | "1iywfx07jgjqcmixzkxk9zdwfmij1fyg1z2jlwzj15cj7s99qlfv")))) | ||
| 6809 | (build-system ruby-build-system) | ||
| 6810 | (arguments | ||
| 6811 | '(#:tests? #f)) ; missing a gemspec | ||
| 6812 | (synopsis "Ruby library and utility for handling tar archives") | ||
| 6813 | (description | ||
| 6814 | "Archive::Tar::Minitar is a pure-Ruby library and command-line utility | ||
| 6815 | that provides the ability to deal with POSIX tar archive files.") | ||
| 6816 | (home-page "http://www.github.com/atoulme/minitar") | ||
| 6817 | (license (list license:gpl2+ license:ruby))))) | ||
| 6818 | |||
| 6819 | (define-public ruby-mini-portile | ||
| 6820 | (package | ||
| 6821 | (name "ruby-mini-portile") | ||
| 6822 | (version "0.6.2") | ||
| 6823 | (source | ||
| 6824 | (origin | ||
| 6825 | (method url-fetch) | ||
| 6826 | (uri (rubygems-uri "mini_portile" version)) | ||
| 6827 | (sha256 | ||
| 6828 | (base32 | ||
| 6829 | "0h3xinmacscrnkczq44s6pnhrp4nqma7k056x5wv5xixvf2wsq2w")))) | ||
| 6830 | (build-system ruby-build-system) | ||
| 6831 | (arguments | ||
| 6832 | '(#:tests? #f)) ; tests require network access | ||
| 6833 | (synopsis "Ports system for Ruby developers") | ||
| 6834 | (description "Mini-portile is a port/recipe system for Ruby developers. | ||
| 6835 | It provides a standard way to compile against specific versions of libraries | ||
| 6836 | to reproduce user environments.") | ||
| 6837 | (home-page "https://github.com/flavorjones/mini_portile") | ||
| 6838 | (license license:expat))) | ||
| 6839 | |||
| 6840 | (define-public ruby-mini-portile-2 | ||
| 6841 | (package | ||
| 6842 | (inherit ruby-mini-portile) | ||
| 6843 | (version "2.8.2") | ||
| 6844 | (source (origin | ||
| 6845 | (method url-fetch) | ||
| 6846 | (uri (rubygems-uri "mini_portile2" version)) | ||
| 6847 | (sha256 | ||
| 6848 | (base32 | ||
| 6849 | "0z7f38iq37h376n9xbl4gajdrnwzq284c9v1py4imw3gri2d5cj6")))))) | ||
| 6850 | |||
| 6851 | (define-public ruby-nokogiri | ||
| 6852 | (package | ||
| 6853 | (name "ruby-nokogiri") | ||
| 6854 | (version "1.15.2") | ||
| 6855 | (source (origin | ||
| 6856 | (method git-fetch) | ||
| 6857 | (uri (git-reference | ||
| 6858 | (url "https://github.com/sparklemotion/nokogiri") | ||
| 6859 | (commit "a6ad20b3edc8f020043ccfe5d9ec6ae9af103720"))) | ||
| 6860 | (file-name (git-file-name name version)) | ||
| 6861 | (sha256 | ||
| 6862 | (base32 | ||
| 6863 | "1n0vlg6v58jw3qzgyihz1dh5fvp4js1qgdh75j0kn47nvyiw3jxj")) | ||
| 6864 | (patches (search-patches "ruby-nokogiri.patch")))) | ||
| 6865 | (build-system ruby-build-system) | ||
| 6866 | (arguments | ||
| 6867 | (list #:gem-flags #~(list "--" "--use-system-libraries" | ||
| 6868 | (string-append "--with-xml2-include=" | ||
| 6869 | #$(this-package-input "libxml2") | ||
| 6870 | "/include/libxml2")) | ||
| 6871 | #:phases #~(modify-phases %standard-phases | ||
| 6872 | (add-after 'install 'delete-mkmf.log | ||
| 6873 | (lambda _ | ||
| 6874 | ;; Rubygems installs build log files that embed volatile file | ||
| 6875 | ;; names (see: | ||
| 6876 | ;; https://github.com/rubygems/rubygems/issues/6259). | ||
| 6877 | (for-each delete-file | ||
| 6878 | (find-files #$output "^mkmf\\.log$")))) | ||
| 6879 | (delete 'check) | ||
| 6880 | (add-after 'install 'check | ||
| 6881 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 6882 | (setenv "GEM_PATH" (string-append | ||
| 6883 | (getenv "GEM_PATH") ":" | ||
| 6884 | #$output "/lib/ruby/vendor_ruby")) | ||
| 6885 | (when tests? | ||
| 6886 | (for-each (lambda (file) | ||
| 6887 | (invoke "ruby" "-Itest" file)) | ||
| 6888 | (find-files "test" "^test_.*\\.rb")))))))) | ||
| 6889 | (native-inputs (list ruby-hoe ruby-rubyzip)) | ||
| 6890 | (inputs (list zlib libxml2 libxslt)) | ||
| 6891 | (propagated-inputs (list ruby-mini-portile-2 ruby-pkg-config)) | ||
| 6892 | (synopsis "HTML, XML, SAX, and Reader parser for Ruby") | ||
| 6893 | (description "Nokogiri (鋸) parses and searches XML/HTML, and features | ||
| 6894 | both CSS3 selector and XPath 1.0 support.") | ||
| 6895 | (home-page "https://nokogiri.org/") | ||
| 6896 | (license license:expat))) | ||
| 6897 | |||
| 6898 | (define-public ruby-method-source | ||
| 6899 | (package | ||
| 6900 | (name "ruby-method-source") | ||
| 6901 | (version "1.0.0") | ||
| 6902 | (source | ||
| 6903 | (origin | ||
| 6904 | (method url-fetch) | ||
| 6905 | (uri (rubygems-uri "method_source" version)) | ||
| 6906 | (sha256 | ||
| 6907 | (base32 | ||
| 6908 | "1pnyh44qycnf9mzi1j6fywd5fkskv3x7nmsqrrws0rjn5dd4ayfp")))) | ||
| 6909 | (build-system ruby-build-system) | ||
| 6910 | (arguments | ||
| 6911 | `(#:test-target "spec" | ||
| 6912 | #:phases | ||
| 6913 | (modify-phases %standard-phases | ||
| 6914 | (add-after 'unpack 'remove-git-ls-files | ||
| 6915 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 6916 | (substitute* "Rakefile" | ||
| 6917 | (("git ls-files") "find . -type f"))))))) | ||
| 6918 | (native-inputs | ||
| 6919 | (list ruby-rspec)) | ||
| 6920 | (synopsis "Retrieve the source code for Ruby methods") | ||
| 6921 | (description "Method_source retrieves the source code for Ruby methods. | ||
| 6922 | Additionally, it can extract source code from Proc and Lambda objects or just | ||
| 6923 | extract comments.") | ||
| 6924 | (home-page "https://github.com/banister/method_source") | ||
| 6925 | (license license:expat))) | ||
| 6926 | |||
| 6927 | (define-public ruby-coderay | ||
| 6928 | (package | ||
| 6929 | (name "ruby-coderay") | ||
| 6930 | (version "1.1.2") | ||
| 6931 | (source | ||
| 6932 | (origin | ||
| 6933 | (method url-fetch) | ||
| 6934 | (uri (rubygems-uri "coderay" version)) | ||
| 6935 | (sha256 | ||
| 6936 | (base32 | ||
| 6937 | "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y")))) | ||
| 6938 | (build-system ruby-build-system) | ||
| 6939 | (arguments | ||
| 6940 | '(#:tests? #f)) ; missing test files | ||
| 6941 | (synopsis "Ruby syntax highlighting library") | ||
| 6942 | (description "Coderay is a Ruby library that provides syntax highlighting | ||
| 6943 | for select languages.") | ||
| 6944 | (home-page "http://coderay.rubychan.de") | ||
| 6945 | (license license:expat))) | ||
| 6946 | |||
| 6947 | (define-public ruby-cuke-modeler | ||
| 6948 | (package | ||
| 6949 | (name "ruby-cuke-modeler") | ||
| 6950 | (version "3.20.1") | ||
| 6951 | (source (origin | ||
| 6952 | (method git-fetch) | ||
| 6953 | (uri (git-reference | ||
| 6954 | (url "https://github.com/enkessler/cuke_modeler") | ||
| 6955 | (commit (string-append "v" version)))) | ||
| 6956 | (file-name (git-file-name name version)) | ||
| 6957 | (sha256 | ||
| 6958 | (base32 | ||
| 6959 | "0xbnx1blxm4kfhfwfh58n2ja40p2kfw8hbbz60dlzvghz25vcwy6")))) | ||
| 6960 | (build-system ruby-build-system) | ||
| 6961 | (arguments | ||
| 6962 | (list #:test-target "default" | ||
| 6963 | #:phases | ||
| 6964 | #~(modify-phases %standard-phases | ||
| 6965 | (add-after 'unpack 'improve-reproducibility | ||
| 6966 | (lambda _ | ||
| 6967 | (substitute* | ||
| 6968 | "testing/rspec/spec/unit/cuke_modeler_unit_spec.rb" | ||
| 6969 | (("#\\{Time.now.year\\}") "")))) | ||
| 6970 | (add-after 'unpack 'relax-requirements | ||
| 6971 | (lambda _ | ||
| 6972 | (substitute* "Gemfile" | ||
| 6973 | ;; Cucumber appears pinned to an older version for no | ||
| 6974 | ;; particular reason (see: | ||
| 6975 | ;; https://github.com/enkessler/cuke_modeler/issues/14). | ||
| 6976 | (("'cucumber', '2.2.0'") | ||
| 6977 | "'cucumber', '>= 2.2.0'") | ||
| 6978 | (("^gherkin_major_version_used = .*") | ||
| 6979 | (string-append | ||
| 6980 | "gherkin_major_version_used = " | ||
| 6981 | #$(car | ||
| 6982 | (string-split | ||
| 6983 | (package-version | ||
| 6984 | (this-package-input "ruby-cucumber-gherkin")) #\.)) | ||
| 6985 | "\n"))) | ||
| 6986 | ;; Disable Bundler. | ||
| 6987 | (substitute* "bin/console" | ||
| 6988 | (("require 'bundler/setup'") "")) | ||
| 6989 | (substitute* "rakefiles/testing_tasks.rb" | ||
| 6990 | (("'bundle', 'exec', ") "")) | ||
| 6991 | ;; Remove extraneous dependencies. | ||
| 6992 | (substitute* "cuke_modeler.gemspec" | ||
| 6993 | ((".*bundler.*") "") | ||
| 6994 | ((".*rubocop.*") "") | ||
| 6995 | ((".*yard.*") "")) | ||
| 6996 | (substitute* "Rakefile" | ||
| 6997 | (("Rainbow.enabled = true") "") | ||
| 6998 | (("require_relative 'rakefiles/documentation_tasks'") "") | ||
| 6999 | (("require_relative 'rakefiles/other_tasks'") "") | ||
| 7000 | (("require_relative 'rakefiles/release_tasks'") ""))))))) | ||
| 7001 | (native-inputs | ||
| 7002 | (list ruby-childprocess | ||
| 7003 | ruby-cucumber | ||
| 7004 | ruby-rainbow | ||
| 7005 | ruby-rspec | ||
| 7006 | ruby-simplecov | ||
| 7007 | ruby-simplecov-lcov)) | ||
| 7008 | (propagated-inputs (list ruby-cucumber-gherkin)) | ||
| 7009 | (synopsis "Gherkin test suite analysis tool") | ||
| 7010 | (description "CukeModeler facilitates modeling a test suite that is | ||
| 7011 | written in Gherkin (e.g. Cucumber, SpecFlow, Lettuce, etc.). It does this by | ||
| 7012 | providing an abstraction layer on top of the Abstract Syntax Tree (AST) that | ||
| 7013 | the @code{cucumber-gherkin} generates when parsing features, as well as | ||
| 7014 | providing models for feature files and directories in order to be able to have | ||
| 7015 | a fully traversable model tree of a test suite's structure. These models can | ||
| 7016 | then be analyzed or manipulated more easily than the underlying AST layer.") | ||
| 7017 | (home-page "https://github.com/enkessler/cuke_modeler") | ||
| 7018 | (license license:expat))) | ||
| 7019 | |||
| 7020 | (define-public ruby-parallel-tests | ||
| 7021 | (package | ||
| 7022 | (name "ruby-parallel-tests") | ||
| 7023 | (version "4.9.0") | ||
| 7024 | (home-page "https://github.com/grosser/parallel_tests") | ||
| 7025 | (source (origin | ||
| 7026 | (method git-fetch) | ||
| 7027 | (uri (git-reference | ||
| 7028 | (url home-page) | ||
| 7029 | (commit (string-append "v" version)))) | ||
| 7030 | (file-name (string-append name version)) | ||
| 7031 | (sha256 | ||
| 7032 | (base32 | ||
| 7033 | "0ljb17i1bvlr0y1avwishcrg60h48bj6iwgkp8yrck08wcs7b338")))) | ||
| 7034 | (build-system ruby-build-system) | ||
| 7035 | (arguments | ||
| 7036 | '(#:test-target "spec" ;avoid rubocop dependency | ||
| 7037 | #:phases (modify-phases %standard-phases | ||
| 7038 | (add-after 'patch-source-shebangs 'patch-shell-invocations | ||
| 7039 | (lambda _ | ||
| 7040 | (substitute* '("lib/parallel_tests/tasks.rb" | ||
| 7041 | "spec/parallel_tests/tasks_spec.rb") | ||
| 7042 | (("/bin/sh") (which "sh")) | ||
| 7043 | (("/bin/bash") (which "bash"))))) | ||
| 7044 | (add-before 'check 'relax-requirements | ||
| 7045 | (lambda _ | ||
| 7046 | ;; Remove hard coded version constraints, instead just | ||
| 7047 | ;; use whatever versions are available in Guix. | ||
| 7048 | (delete-file "Gemfile.lock") | ||
| 7049 | (substitute* "Gemfile" | ||
| 7050 | (("'minitest',.*") | ||
| 7051 | "'minitest'\n") | ||
| 7052 | (("'cucumber',.*") | ||
| 7053 | "'cucumber'\n") | ||
| 7054 | ;; Do not depend on a git-fetched spinach version. | ||
| 7055 | (("gem 'spinach',.*") | ||
| 7056 | "gem 'spinach'\n") | ||
| 7057 | ((".*rubocop.*") "")))) | ||
| 7058 | (add-before 'check 'disable-rails-test | ||
| 7059 | (lambda _ | ||
| 7060 | ;; XXX: This test attempts to download and run the test | ||
| 7061 | ;; suites of multiple Rails versions(!) directly. | ||
| 7062 | (delete-file "spec/rails_spec.rb"))) | ||
| 7063 | (add-before 'check 'disable-problematic-tests | ||
| 7064 | (lambda _ | ||
| 7065 | ;; This test fails, probably because of the newer | ||
| 7066 | ;; Cucumber version used here. | ||
| 7067 | (delete-file "spec/parallel_tests/cucumber/\ | ||
| 7068 | failure_logger_spec.rb") )) | ||
| 7069 | (add-before 'check 'set-HOME | ||
| 7070 | (lambda _ | ||
| 7071 | ;; Some tests check the output of Bundler, and fail when | ||
| 7072 | ;; Bundler warns that /homeless-shelter does not exist. | ||
| 7073 | (setenv "HOME" "/tmp")))))) | ||
| 7074 | (native-inputs | ||
| 7075 | (list ruby-bump | ||
| 7076 | ruby-cucumber | ||
| 7077 | ruby-cuke-modeler | ||
| 7078 | ruby-minitest | ||
| 7079 | ruby-rake | ||
| 7080 | ruby-rspec | ||
| 7081 | ruby-spinach)) | ||
| 7082 | (propagated-inputs | ||
| 7083 | (list ruby-parallel)) | ||
| 7084 | (synopsis "Run tests in parallel") | ||
| 7085 | (description | ||
| 7086 | "This package can speed up @code{Test::Unit}, @code{RSpec}, | ||
| 7087 | @code{Cucumber}, and @code{Spinach} tests by running them concurrently | ||
| 7088 | across multiple CPU cores.") | ||
| 7089 | (license license:expat))) | ||
| 7090 | |||
| 7091 | (define-public ruby-parser | ||
| 7092 | (package | ||
| 7093 | (name "ruby-parser") | ||
| 7094 | (version "3.3.7.0") | ||
| 7095 | (source | ||
| 7096 | (origin | ||
| 7097 | (method url-fetch) | ||
| 7098 | (uri (rubygems-uri "parser" version)) | ||
| 7099 | (sha256 | ||
| 7100 | (base32 | ||
| 7101 | "16qi2qhpszm842awxghmsp64yvvawafq96w5jw98irz3f4bh2jbl")))) | ||
| 7102 | (build-system ruby-build-system) | ||
| 7103 | (arguments '(#:tests? #f)) ; tests not included in gem | ||
| 7104 | (native-inputs (list bundler ruby-cliver ruby-simplecov)) | ||
| 7105 | (inputs (list ragel)) | ||
| 7106 | (propagated-inputs (list ruby-ast ruby-racc)) | ||
| 7107 | (synopsis "Ruby parser written in pure Ruby") | ||
| 7108 | (description | ||
| 7109 | "This package provides a Ruby parser written in pure Ruby.") | ||
| 7110 | (home-page "https://github.com/whitequark/parser") | ||
| 7111 | (license license:expat))) | ||
| 7112 | |||
| 7113 | (define-public ruby-set | ||
| 7114 | (package | ||
| 7115 | (name "ruby-set") | ||
| 7116 | (version "1.0.3") | ||
| 7117 | (source (origin | ||
| 7118 | (method url-fetch) | ||
| 7119 | (uri (rubygems-uri "set" version)) | ||
| 7120 | (sha256 | ||
| 7121 | (base32 | ||
| 7122 | "07kc057nrkddrybqmlbmgf9x7nsmbc3ni6gy1z6xjx5b838vlj33")))) | ||
| 7123 | (build-system ruby-build-system) | ||
| 7124 | (synopsis | ||
| 7125 | "Ruby class to deal with collections of unordered, unique values") | ||
| 7126 | (description | ||
| 7127 | "This package provides a class to deal with collections of unordered, | ||
| 7128 | unique values") | ||
| 7129 | (home-page "https://github.com/ruby/set") | ||
| 7130 | (license license:bsd-2))) | ||
| 7131 | |||
| 7132 | (define-public ruby-sexp-processor | ||
| 7133 | (package | ||
| 7134 | (name "ruby-sexp-processor") | ||
| 7135 | (version "4.17.0") | ||
| 7136 | (source | ||
| 7137 | (origin | ||
| 7138 | (method url-fetch) | ||
| 7139 | (uri (rubygems-uri "sexp_processor" version)) | ||
| 7140 | (sha256 | ||
| 7141 | (base32 | ||
| 7142 | "0vzz9mhg4kkdqf179pm30i204h7iskanxrk53j0csf0qrrs4iajd")))) | ||
| 7143 | (build-system ruby-build-system) | ||
| 7144 | (native-inputs | ||
| 7145 | (list ruby-hoe | ||
| 7146 | ruby-minitest | ||
| 7147 | ruby-minitest-proveit)) | ||
| 7148 | (synopsis "ParseTree fork which includes generic S-exp processing tools") | ||
| 7149 | (description "The sexp_processor package is derived from ParseTree, but | ||
| 7150 | contrary to ParseTree, it includes all the generic S-exp processing tools. | ||
| 7151 | Amongst the included tools are @code{Sexp}, @code{SexpProcessor} and | ||
| 7152 | @code{Environment}") | ||
| 7153 | (home-page "https://github.com/seattlerb/sexp_processor") | ||
| 7154 | (license license:expat))) | ||
| 7155 | |||
| 7156 | (define-public ruby-ruby-parser | ||
| 7157 | (package | ||
| 7158 | (name "ruby-ruby-parser") | ||
| 7159 | (version "3.20.2") | ||
| 7160 | (source | ||
| 7161 | (origin | ||
| 7162 | (method url-fetch) | ||
| 7163 | (uri (rubygems-uri "ruby_parser" version)) | ||
| 7164 | (sha256 | ||
| 7165 | (base32 | ||
| 7166 | "0q851n8654wkjrq8jawq8vi5yhr1y9vpyr2vj7cnn3sa4ikg6d3z")))) | ||
| 7167 | (build-system ruby-build-system) | ||
| 7168 | (arguments | ||
| 7169 | (list | ||
| 7170 | #:phases | ||
| 7171 | #~(modify-phases %standard-phases | ||
| 7172 | (add-after 'unpack 'patch | ||
| 7173 | (lambda _ | ||
| 7174 | (substitute* "Rakefile" | ||
| 7175 | (("`which bison`") | ||
| 7176 | (string-append "\"" (which "bison") "\"")) | ||
| 7177 | (("which unifdef") | ||
| 7178 | (which "unifdef")))))))) | ||
| 7179 | (native-inputs | ||
| 7180 | (list ruby-hoe | ||
| 7181 | ruby-racc | ||
| 7182 | unifdef | ||
| 7183 | bison | ||
| 7184 | ruby-minitest)) | ||
| 7185 | (propagated-inputs | ||
| 7186 | (list ruby-sexp-processor)) | ||
| 7187 | (home-page "https://github.com/seattlerb/ruby_parser/") | ||
| 7188 | (synopsis "Ruby parser written in pure Ruby") | ||
| 7189 | (description "The ruby_parser (RP) package provides a Ruby parser written | ||
| 7190 | in pure Ruby. It outputs S-expressions which can be manipulated and converted | ||
| 7191 | back to Ruby via the @code{ruby2ruby} library.") | ||
| 7192 | (license license:expat))) | ||
| 7193 | |||
| 7194 | (define-public ruby-ruby-version | ||
| 7195 | (package | ||
| 7196 | (name "ruby-ruby-version") | ||
| 7197 | (version "1.0.2") | ||
| 7198 | (source (origin | ||
| 7199 | (method url-fetch) | ||
| 7200 | (uri (rubygems-uri "ruby_version" version)) | ||
| 7201 | (sha256 | ||
| 7202 | (base32 | ||
| 7203 | "0lvc7bd5ps3w2vq2wb02i0pi3vfcx2rnckx2ix4rjym1qf52kb2j")))) | ||
| 7204 | (build-system ruby-build-system) | ||
| 7205 | (arguments | ||
| 7206 | (list #:phases | ||
| 7207 | #~(modify-phases %standard-phases | ||
| 7208 | (add-after 'extract-gemspec 'delete-gem-files | ||
| 7209 | ;; There are some pre-built files in the source, and | ||
| 7210 | ;; registered in the .gemspec (see: | ||
| 7211 | ;; https://github.com/janlelis/ruby_version/issues/1). | ||
| 7212 | (lambda _ | ||
| 7213 | (delete-file-recursively "pkg") | ||
| 7214 | (substitute* "ruby_version.gemspec" | ||
| 7215 | (("\"pkg/ruby_version-1.0.0.gem\".freeze, ") | ||
| 7216 | "") | ||
| 7217 | (("\"pkg/ruby_version-1.0.1.gem\".freeze, ") | ||
| 7218 | "")))) | ||
| 7219 | (add-after 'extract-gemspec 'relax-requirements | ||
| 7220 | (lambda _ | ||
| 7221 | (delete-file "Gemfile.lock") | ||
| 7222 | (substitute* "ruby_version.gemspec" | ||
| 7223 | (("\"Gemfile.lock\".freeze, ") "") | ||
| 7224 | ;; Allow a newers versions of development dependencies. | ||
| 7225 | (("~>") ">="))))))) | ||
| 7226 | (native-inputs (list ruby-rdoc ruby-rubygems-tasks ruby-rspec)) | ||
| 7227 | (synopsis "Ruby class for checking the Ruby version") | ||
| 7228 | (description "This package provides a @code{RubyVersion} class which | ||
| 7229 | offers a convenient Domain Specific Language (DSL) for checking for the right | ||
| 7230 | Ruby version.") | ||
| 7231 | (home-page "https://github.com/janlelis/ruby_version") | ||
| 7232 | (license license:expat))) | ||
| 7233 | |||
| 7234 | (define-public ruby-prawn-manual-builder | ||
| 7235 | (package | ||
| 7236 | (name "ruby-prawn-manual-builder") | ||
| 7237 | (version "0.3.1") | ||
| 7238 | (source | ||
| 7239 | (origin | ||
| 7240 | (method url-fetch) | ||
| 7241 | (uri (rubygems-uri "prawn-manual_builder" version)) | ||
| 7242 | (sha256 | ||
| 7243 | (base32 "1vlg5w7wq43g2hgpgra2nrcxj1kb4ayqliz4gmja2rhs037j2vzs")))) | ||
| 7244 | (build-system ruby-build-system) | ||
| 7245 | (arguments | ||
| 7246 | '(#:tests? #f ; no included tests | ||
| 7247 | #:phases | ||
| 7248 | (modify-phases %standard-phases | ||
| 7249 | (add-after 'extract-gemspec 'patch-gemspec | ||
| 7250 | (lambda _ | ||
| 7251 | (substitute* ".gemspec" | ||
| 7252 | ;; Loosen the requirement for pdf-inspector | ||
| 7253 | (("~> 1\\.0\\.7") ">= 0"))))))) | ||
| 7254 | (propagated-inputs | ||
| 7255 | (list ruby-coderay)) | ||
| 7256 | (synopsis "Tool for writing manuals for Prawn and Prawn accessories") | ||
| 7257 | (description | ||
| 7258 | "This package provides a tool for writing manuals for Prawn and Prawn | ||
| 7259 | accessories") | ||
| 7260 | (home-page "https://github.com/prawnpdf/prawn-manual_builder") | ||
| 7261 | (license %prawn-project-licenses))) | ||
| 7262 | |||
| 7263 | (define-public ruby-progress_bar | ||
| 7264 | (package | ||
| 7265 | (name "ruby-progress_bar") | ||
| 7266 | (version "1.1.0") | ||
| 7267 | (source | ||
| 7268 | (origin | ||
| 7269 | (method url-fetch) | ||
| 7270 | (uri (rubygems-uri "progress_bar" version)) | ||
| 7271 | (sha256 | ||
| 7272 | (base32 | ||
| 7273 | "1qc40mr6p1z9a3vlpnsg1zfgk1qswviql2a31y63wpv3vr6b5f48")))) | ||
| 7274 | (build-system ruby-build-system) | ||
| 7275 | (arguments | ||
| 7276 | '(#:test-target "spec")) | ||
| 7277 | (propagated-inputs | ||
| 7278 | (list ruby-highline ruby-options)) | ||
| 7279 | (native-inputs | ||
| 7280 | (list bundler ruby-rspec ruby-timecop)) | ||
| 7281 | (synopsis | ||
| 7282 | "Ruby library for displaying progress bars") | ||
| 7283 | (description | ||
| 7284 | "ProgressBar is a simple library for displaying progress bars. The | ||
| 7285 | maximum value is configurable, and additional information can be displayed | ||
| 7286 | like the percentage completion, estimated time remaining, elapsed time and | ||
| 7287 | rate.") | ||
| 7288 | (home-page "https://github.com/paul/progress_bar") | ||
| 7289 | (license license:wtfpl2))) | ||
| 7290 | |||
| 7291 | (define-public ruby-progressbar | ||
| 7292 | (package | ||
| 7293 | (name "ruby-progressbar") | ||
| 7294 | (version "1.10.1") | ||
| 7295 | (source | ||
| 7296 | (origin | ||
| 7297 | (method url-fetch) | ||
| 7298 | (uri (rubygems-uri "ruby-progressbar" version)) | ||
| 7299 | (sha256 | ||
| 7300 | (base32 "1k77i0d4wsn23ggdd2msrcwfy0i376cglfqypkk2q77r2l3408zf")))) | ||
| 7301 | (build-system ruby-build-system) | ||
| 7302 | (arguments | ||
| 7303 | '(;; TODO: There looks to be a circular dependency with ruby-fuubar. | ||
| 7304 | #:tests? #f)) | ||
| 7305 | (synopsis "Text progress bar library for Ruby") | ||
| 7306 | (description | ||
| 7307 | "Ruby/ProgressBar is an flexible text progress bar library for Ruby. | ||
| 7308 | The output can be customized with a formatting system.") | ||
| 7309 | (home-page "https://github.com/jfelchner/ruby-progressbar") | ||
| 7310 | (license license:expat))) | ||
| 7311 | |||
| 7312 | (define-public ruby-latest-ruby | ||
| 7313 | (package | ||
| 7314 | (name "ruby-latest-ruby") | ||
| 7315 | (version "3.1.0") | ||
| 7316 | (source (origin | ||
| 7317 | (method url-fetch) | ||
| 7318 | (uri (rubygems-uri "latest_ruby" version)) | ||
| 7319 | (sha256 | ||
| 7320 | (base32 | ||
| 7321 | "15rqwgxzpnkzdiz8m02jra0zq5sx0fiz61vkfrj1ls6slqfhnzqg")))) | ||
| 7322 | (build-system ruby-build-system) | ||
| 7323 | (arguments | ||
| 7324 | '(#:tests? #f)) ; No Rakefile | ||
| 7325 | (synopsis "Answers the question of what the latest Ruby version is") | ||
| 7326 | (description "Knows about MRI, Rubinius, JRuby, MagLev and MacRuby.") | ||
| 7327 | (home-page "https://github.com/kyrylo/latest_ruby") | ||
| 7328 | (license license:zlib))) | ||
| 7329 | |||
| 7330 | (define-public ruby-pry | ||
| 7331 | (package | ||
| 7332 | (name "ruby-pry") | ||
| 7333 | (version "0.14.2") | ||
| 7334 | (source | ||
| 7335 | (origin | ||
| 7336 | (method url-fetch) | ||
| 7337 | (uri (rubygems-uri "pry" version)) | ||
| 7338 | (sha256 | ||
| 7339 | (base32 | ||
| 7340 | "0k9kqkd9nps1w1r1rb7wjr31hqzkka2bhi8b518x78dcxppm9zn4")))) | ||
| 7341 | (build-system ruby-build-system) | ||
| 7342 | (arguments | ||
| 7343 | '(#:tests? #f)) ; no tests | ||
| 7344 | (propagated-inputs | ||
| 7345 | (list ruby-coderay ruby-method-source)) | ||
| 7346 | (synopsis "Ruby REPL") | ||
| 7347 | (description "Pry is an IRB alternative and runtime developer console for | ||
| 7348 | Ruby. It features syntax highlighting, a plugin architecture, runtime | ||
| 7349 | invocation, and source and documentation browsing.") | ||
| 7350 | (home-page "https://cobaltbluemedia.com/pryrepl/") | ||
| 7351 | (license license:expat))) | ||
| 7352 | |||
| 7353 | (define-public ruby-pry-doc | ||
| 7354 | (package | ||
| 7355 | (name "ruby-pry-doc") | ||
| 7356 | (version "1.4.0") | ||
| 7357 | (source (origin | ||
| 7358 | (method url-fetch) | ||
| 7359 | (uri (rubygems-uri "pry-doc" version)) | ||
| 7360 | (sha256 | ||
| 7361 | (base32 | ||
| 7362 | "1pp43n69p6bjvc640wgcz295w1q2v9awcqgbwcqn082dbvq5xvnx")))) | ||
| 7363 | (build-system ruby-build-system) | ||
| 7364 | (propagated-inputs (list ruby-pry ruby-yard)) | ||
| 7365 | (native-inputs (list ruby-latest-ruby ruby-rspec ruby-rake)) ;for tests | ||
| 7366 | (synopsis "Provides YARD and extended documentation support for Pry") | ||
| 7367 | (description | ||
| 7368 | "Pry Doc is a Pry REPL plugin. It provides extended documentation | ||
| 7369 | support for the REPL by means of improving the @code{show-doc} and | ||
| 7370 | @code{show-source} commands. With help of the plugin the commands are | ||
| 7371 | be able to display the source code and the docs of Ruby methods and | ||
| 7372 | classes implemented in C.") | ||
| 7373 | (home-page "https://github.com/pry/pry-doc") | ||
| 7374 | (license license:expat))) | ||
| 7375 | |||
| 7376 | (define-public ruby-single-cov | ||
| 7377 | (package | ||
| 7378 | (name "ruby-single-cov") | ||
| 7379 | (version "1.9.1") | ||
| 7380 | (home-page "https://github.com/grosser/single_cov") | ||
| 7381 | (source (origin | ||
| 7382 | (method git-fetch) | ||
| 7383 | (uri (git-reference (url home-page) | ||
| 7384 | (commit (string-append "v" version)))) | ||
| 7385 | (file-name (git-file-name name version)) | ||
| 7386 | (sha256 | ||
| 7387 | (base32 | ||
| 7388 | "1w4k81f2mdg620m6pwkrqayddnz9mr8qx0myqn33mw8k6imfip05")))) | ||
| 7389 | (build-system ruby-build-system) | ||
| 7390 | (arguments | ||
| 7391 | '(#:test-target "spec" ;to avoid rubocop requirement | ||
| 7392 | #:phases (modify-phases %standard-phases | ||
| 7393 | (replace 'replace-git-ls-files | ||
| 7394 | (lambda _ | ||
| 7395 | (substitute* "single_cov.gemspec" | ||
| 7396 | (("`git ls-files lib/ bin/ MIT-LICENSE`") | ||
| 7397 | ;; There no longer appear to be a 'bin' | ||
| 7398 | ;; sub-directory. | ||
| 7399 | "`find lib/ MIT-LICENSE -type f | sort`")))) | ||
| 7400 | (add-before 'check 'remove-version-constraints | ||
| 7401 | (lambda _ | ||
| 7402 | (delete-file "Gemfile.lock"))) | ||
| 7403 | (add-before 'check 'relax-requirements | ||
| 7404 | (lambda _ | ||
| 7405 | ;; Remove extraneous requirements. | ||
| 7406 | (substitute* "Rakefile" | ||
| 7407 | ((".*require.*bump.*") "")) | ||
| 7408 | (substitute* "Gemfile" | ||
| 7409 | ((".*gem \"bump\".*") "") | ||
| 7410 | ((".*gem \"rubocop\".*") "")))) | ||
| 7411 | (add-before 'check 'disable-failing-test | ||
| 7412 | (lambda _ | ||
| 7413 | ;; XXX: This test copies assets from minitest, but can | ||
| 7414 | ;; not cope with the files being read-only. Just skip | ||
| 7415 | ;; it for now. | ||
| 7416 | (substitute* "specs/single_cov_spec.rb" | ||
| 7417 | (("it \"complains when coverage is bad\"") | ||
| 7418 | "xit \"complains when coverage is bad\""))))))) | ||
| 7419 | (native-inputs (list ruby-minitest ruby-rspec ruby-simplecov)) | ||
| 7420 | (synopsis "Code coverage reporting tool") | ||
| 7421 | (description | ||
| 7422 | "This package provides actionable code coverage reports for Ruby | ||
| 7423 | projects. It has very little overhead and can be easily integrated with | ||
| 7424 | development tools to catch coverage problems early.") | ||
| 7425 | (license license:expat))) | ||
| 7426 | |||
| 7427 | (define-public ruby-oedipus-lex | ||
| 7428 | (package | ||
| 7429 | (name "ruby-oedipus-lex") | ||
| 7430 | (version "2.6.1") | ||
| 7431 | (source | ||
| 7432 | (origin | ||
| 7433 | (method url-fetch) | ||
| 7434 | (uri (rubygems-uri "oedipus_lex" version)) | ||
| 7435 | (sha256 | ||
| 7436 | (base32 | ||
| 7437 | "06l4d3l75vhdcmnavnkzr7bd39rb0njxhkbmwrw6ni64z2hlj7w7")))) | ||
| 7438 | (build-system ruby-build-system) | ||
| 7439 | (native-inputs | ||
| 7440 | (list ruby-hoe | ||
| 7441 | ruby-minitest)) | ||
| 7442 | (synopsis "Ruby lexer") | ||
| 7443 | (description | ||
| 7444 | "Oedipus Lex is a lexer generator in the same family as Rexical and Rex. | ||
| 7445 | It is based primarily on generating code much like you would a hand-written | ||
| 7446 | lexer. It uses StrScanner within a multi-level case statement. As such, | ||
| 7447 | Oedipus matches on the first match, not the longest.") | ||
| 7448 | (home-page "https://github.com/seattlerb/oedipus_lex") | ||
| 7449 | (license license:expat))) | ||
| 7450 | |||
| 7451 | (define-public ruby-guard | ||
| 7452 | (package | ||
| 7453 | (name "ruby-guard") | ||
| 7454 | (version "2.13.0") | ||
| 7455 | (source (origin | ||
| 7456 | (method git-fetch) | ||
| 7457 | ;; The gem does not include a Rakefile, nor does it contain a | ||
| 7458 | ;; gemspec file, nor does it come with the tests. This is why | ||
| 7459 | ;; we fetch the tarball from Github. | ||
| 7460 | (uri (git-reference | ||
| 7461 | (url "https://github.com/guard/guard") | ||
| 7462 | (commit (string-append "v" version)))) | ||
| 7463 | (file-name (git-file-name name version)) | ||
| 7464 | (sha256 | ||
| 7465 | (base32 | ||
| 7466 | "16pxcszr0g2jnl3090didxh1d8z5m2mly14m3w4rspb8fmclsnjs")))) | ||
| 7467 | (build-system ruby-build-system) | ||
| 7468 | (arguments | ||
| 7469 | `(#:tests? #f ; tests require cucumber | ||
| 7470 | #:phases | ||
| 7471 | (modify-phases %standard-phases | ||
| 7472 | (add-after 'unpack 'remove-git-ls-files | ||
| 7473 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 7474 | (substitute* "guard.gemspec" | ||
| 7475 | (("git ls-files -z") "find . -type f -print0")))) | ||
| 7476 | (replace 'build | ||
| 7477 | (lambda _ | ||
| 7478 | (invoke "gem" "build" "guard.gemspec")))))) | ||
| 7479 | (propagated-inputs | ||
| 7480 | (list ruby-formatador | ||
| 7481 | ruby-listen | ||
| 7482 | ruby-lumberjack | ||
| 7483 | ruby-nenv | ||
| 7484 | ruby-notiffany | ||
| 7485 | ruby-pry | ||
| 7486 | ruby-shellany | ||
| 7487 | ruby-thor)) | ||
| 7488 | (native-inputs | ||
| 7489 | (list bundler ruby-rspec)) | ||
| 7490 | (synopsis "Tool to handle events on file system modifications") | ||
| 7491 | (description | ||
| 7492 | "Guard is a command line tool to easily handle events on file system | ||
| 7493 | modifications. Guard automates various tasks by running custom rules whenever | ||
| 7494 | file or directories are modified.") | ||
| 7495 | (home-page "https://guardgem.org/") | ||
| 7496 | (license license:expat))) | ||
| 7497 | |||
| 7498 | (define-public ruby-spinach | ||
| 7499 | (package | ||
| 7500 | (name "ruby-spinach") | ||
| 7501 | (version "0.12.0") | ||
| 7502 | (home-page "https://github.com/codegram/spinach") | ||
| 7503 | (source (origin | ||
| 7504 | (method url-fetch) | ||
| 7505 | (uri (rubygems-uri "spinach" version)) | ||
| 7506 | (sha256 | ||
| 7507 | (base32 | ||
| 7508 | "1v9nvpvlgjx698dc4q2p1l45sxm5fjjzfxayrkyzb9nv0q0xfjsp")))) | ||
| 7509 | (build-system ruby-build-system) | ||
| 7510 | (arguments | ||
| 7511 | ;; FIXME: Disable tests altogether because they depend on 'capybara' | ||
| 7512 | ;; which in turn depends on many other unpackaged gems. Enable once | ||
| 7513 | ;; capybara is available. | ||
| 7514 | '(#:tests? #f)) | ||
| 7515 | (propagated-inputs | ||
| 7516 | (list ruby-colorize ruby-gherkin-ruby)) | ||
| 7517 | (synopsis "Gherkin-based BDD framework") | ||
| 7518 | (description | ||
| 7519 | "Spinach is a high-level @acronym{BDD, Behavior-driven development} | ||
| 7520 | framework that leverages the expressive @code{Gherkin} language to help you | ||
| 7521 | define executable specifications of your code.") | ||
| 7522 | (license license:expat))) | ||
| 7523 | |||
| 7524 | (define-public ruby-timers | ||
| 7525 | (package | ||
| 7526 | (name "ruby-timers") | ||
| 7527 | (version "4.3.5") | ||
| 7528 | (source (origin | ||
| 7529 | (method git-fetch) | ||
| 7530 | (uri (git-reference | ||
| 7531 | (url "https://github.com/socketry/timers") | ||
| 7532 | (commit (string-append "v" version)))) | ||
| 7533 | (file-name (git-file-name name version)) | ||
| 7534 | (sha256 | ||
| 7535 | (base32 | ||
| 7536 | "1vvahlhk6i1xks1bsha6s64pjjxhagmzvvf1q9h6z3lpcba43rpx")))) | ||
| 7537 | (build-system ruby-build-system) | ||
| 7538 | (arguments | ||
| 7539 | (list #:phases | ||
| 7540 | #~(modify-phases %standard-phases | ||
| 7541 | (add-before 'build 'prune-gems.rb | ||
| 7542 | (lambda _ | ||
| 7543 | (substitute* "gems.rb" | ||
| 7544 | ;; These are only required for maintenance. | ||
| 7545 | ((".*gem \"bake-modernize\".*") "") | ||
| 7546 | ((".*gem \"bake-gem\".*") "") | ||
| 7547 | ;; Not actually required by the tests. | ||
| 7548 | ((".*gem 'benchmark-ips'.*") "") | ||
| 7549 | ((".*gem \"ruby-prof\".*") "")))) | ||
| 7550 | (add-before 'build 'remove-missing-signing-key | ||
| 7551 | (lambda _ | ||
| 7552 | ;; Otherwise, the build fails with ENOENT. | ||
| 7553 | (substitute* "timers.gemspec" | ||
| 7554 | ((".*spec.signing_key.*") "")))) | ||
| 7555 | (replace 'check | ||
| 7556 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 7557 | (when tests? | ||
| 7558 | (invoke "bake" "test"))))))) | ||
| 7559 | (native-inputs | ||
| 7560 | (list ruby-covered | ||
| 7561 | ruby-bake-test | ||
| 7562 | ruby-bake-test-external | ||
| 7563 | ruby-sus)) | ||
| 7564 | (synopsis "Collection of Ruby timer classes") | ||
| 7565 | (description "Timers offers a collections of one-shot and periodic timers, | ||
| 7566 | intended for use with event loops such as async.") | ||
| 7567 | (home-page "https://github.com/socketry/timers") | ||
| 7568 | (license license:expat))) | ||
| 7569 | |||
| 7570 | (define-public ruby-tilt | ||
| 7571 | (package | ||
| 7572 | (name "ruby-tilt") | ||
| 7573 | (version "2.2.0") | ||
| 7574 | (source | ||
| 7575 | (origin | ||
| 7576 | (method git-fetch) ;the distributed gem lacks tests | ||
| 7577 | (uri (git-reference | ||
| 7578 | (url "https://github.com/jeremyevans/tilt") | ||
| 7579 | (commit (string-append "v" version)))) | ||
| 7580 | (file-name (git-file-name name version)) | ||
| 7581 | (sha256 | ||
| 7582 | (base32 "056zm4vzx9xjwl7zgmb17hzb91qx5cvzk60wvsxchfybvl03gn5d")))) | ||
| 7583 | (build-system ruby-build-system) | ||
| 7584 | (arguments | ||
| 7585 | (list | ||
| 7586 | #:phases | ||
| 7587 | #~(modify-phases %standard-phases | ||
| 7588 | (add-before 'check 'set-SASS_IMPLEMENTATION | ||
| 7589 | (lambda _ | ||
| 7590 | (setenv "SASS_IMPLEMENTATION" "sassc")))))) | ||
| 7591 | (propagated-inputs | ||
| 7592 | (list ruby-pandoc-ruby ruby-sassc)) | ||
| 7593 | (native-inputs | ||
| 7594 | (list bundler ruby-yard ruby-builder ruby-erubis ruby-markaby)) | ||
| 7595 | (synopsis "Generic interface to multiple Ruby template engines") | ||
| 7596 | (description | ||
| 7597 | "Tilt is a thin interface over a number of different Ruby template | ||
| 7598 | engines in an attempt to make their usage as generic as possible.") | ||
| 7599 | (home-page "https://github.com/rtomayko/tilt/") | ||
| 7600 | (license license:expat))) | ||
| 7601 | |||
| 7602 | (define-public ruby-thread-safe | ||
| 7603 | (package | ||
| 7604 | (name "ruby-thread-safe") | ||
| 7605 | (version "0.3.6") | ||
| 7606 | (source | ||
| 7607 | (origin | ||
| 7608 | (method url-fetch) | ||
| 7609 | (uri (rubygems-uri "thread_safe" version)) | ||
| 7610 | (sha256 | ||
| 7611 | (base32 | ||
| 7612 | "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy")))) | ||
| 7613 | (build-system ruby-build-system) | ||
| 7614 | (arguments | ||
| 7615 | '(#:tests? #f)) ; needs simplecov, among others | ||
| 7616 | (synopsis "Thread-safe utilities for Ruby") | ||
| 7617 | (description "The thread_safe library provides thread-safe collections and | ||
| 7618 | utilities for Ruby.") | ||
| 7619 | (home-page "https://github.com/ruby-concurrency/thread_safe") | ||
| 7620 | (license license:asl2.0))) | ||
| 7621 | |||
| 7622 | (define-public ruby-tzinfo | ||
| 7623 | (package | ||
| 7624 | (name "ruby-tzinfo") | ||
| 7625 | (version "2.0.6") | ||
| 7626 | (source | ||
| 7627 | (origin | ||
| 7628 | (method git-fetch) | ||
| 7629 | (uri (git-reference | ||
| 7630 | ;; Pull from git because the gem has no tests. | ||
| 7631 | (url "https://github.com/tzinfo/tzinfo") | ||
| 7632 | (commit (string-append "v" version)))) | ||
| 7633 | (file-name (git-file-name name version)) | ||
| 7634 | (sha256 | ||
| 7635 | (base32 | ||
| 7636 | "1n1gzjqwwnx209h8d054miva0y7x17db2ahy7jav5r25ibhh7rgm")))) | ||
| 7637 | (build-system ruby-build-system) | ||
| 7638 | (arguments | ||
| 7639 | (list | ||
| 7640 | #:phases | ||
| 7641 | #~(modify-phases %standard-phases | ||
| 7642 | (add-after 'unpack 'skip-safe-tests | ||
| 7643 | (lambda _ | ||
| 7644 | (substitute* "test/test_utils.rb" | ||
| 7645 | (("def safe_test\\(options = \\{\\}\\)") | ||
| 7646 | "def safe_test(options = {}) | ||
| 7647 | skip('The Guix build environment has an unsafe load path')")))) | ||
| 7648 | (add-before 'check 'pre-check | ||
| 7649 | (lambda _ | ||
| 7650 | (setenv "HOME" (getcwd)) | ||
| 7651 | (substitute* "Gemfile" | ||
| 7652 | (("simplecov.*") "simplecov'\n")))) | ||
| 7653 | (replace 'check | ||
| 7654 | (lambda* (#:key tests? test-target #:allow-other-keys) | ||
| 7655 | (when tests? | ||
| 7656 | (invoke "bundler" "exec" "rake" test-target))))))) | ||
| 7657 | (propagated-inputs | ||
| 7658 | (list ruby-concurrent)) | ||
| 7659 | (native-inputs | ||
| 7660 | (list ruby-simplecov)) | ||
| 7661 | (synopsis "Time zone library for Ruby") | ||
| 7662 | (description "TZInfo is a Ruby library that provides daylight savings | ||
| 7663 | aware transformations between times in different time zones.") | ||
| 7664 | (home-page "https://tzinfo.github.io") | ||
| 7665 | (license license:expat))) | ||
| 7666 | |||
| 7667 | (define-public ruby-tzinfo-data | ||
| 7668 | (package | ||
| 7669 | (name "ruby-tzinfo-data") | ||
| 7670 | (version "1.2023.3") | ||
| 7671 | (source | ||
| 7672 | (origin | ||
| 7673 | (method git-fetch) | ||
| 7674 | ;; Download from GitHub because the rubygems version does not contain | ||
| 7675 | ;; Rakefile or tests. | ||
| 7676 | (uri (git-reference | ||
| 7677 | (url "https://github.com/tzinfo/tzinfo-data") | ||
| 7678 | (commit (string-append "v" version)))) | ||
| 7679 | (file-name (git-file-name name version)) | ||
| 7680 | (sha256 | ||
| 7681 | (base32 | ||
| 7682 | "1v3fpfmw485lsc9bfqfcasb9j25g9ywfpmmk648l2vdsh7nipilf")))) | ||
| 7683 | (build-system ruby-build-system) | ||
| 7684 | (arguments | ||
| 7685 | (list | ||
| 7686 | #:phases | ||
| 7687 | #~(modify-phases %standard-phases | ||
| 7688 | (add-after 'unpack 'patch-source | ||
| 7689 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 7690 | (substitute* "Rakefile" | ||
| 7691 | (("URI\\.parse\\(url\\)\\.open") | ||
| 7692 | "URI.open(url)") | ||
| 7693 | (("https://data.iana.org/time-zones/releases") | ||
| 7694 | (assoc-ref inputs "tzdata"))))) | ||
| 7695 | (add-before 'check 'pre-check | ||
| 7696 | (lambda _ | ||
| 7697 | (setenv "HOME" (getcwd)) | ||
| 7698 | (substitute* "Rakefile" | ||
| 7699 | ;; Don't need gpg, and it may break after a time. | ||
| 7700 | (("gpg ") "echo ") | ||
| 7701 | ((" sh\\(\\\"make -C" text) | ||
| 7702 | (string-append " sh(\"sed -i 's@/bin/sh@sh@' #{tzdb_combined_path}/Makefile \")\n" | ||
| 7703 | " sh(\"sed -i 's@cc=@cc?=@' #{tzdb_combined_path}/Makefile \")\n" text))) | ||
| 7704 | (setenv "cc" #$(cc-for-target))))))) | ||
| 7705 | (propagated-inputs | ||
| 7706 | (list ruby-tzinfo)) | ||
| 7707 | (native-inputs | ||
| 7708 | `(("tzdata" | ||
| 7709 | ,(file-union "tzdata-for-ruby-tzdata-info" | ||
| 7710 | `(("tzdata2023c.tar.gz" | ||
| 7711 | ,(origin | ||
| 7712 | (method url-fetch) | ||
| 7713 | (uri "https://data.iana.org/time-zones/releases/tzdata2023c.tar.gz") | ||
| 7714 | (sha256 | ||
| 7715 | (base32 | ||
| 7716 | "0p4nvp5bdxxdqh269nvvcfrpycbbfwm31al5whwbpsaa3dfhnl9z")))) | ||
| 7717 | ("tzdata2023c.tar.gz.asc" | ||
| 7718 | ,(origin | ||
| 7719 | (method url-fetch) | ||
| 7720 | (uri "https://data.iana.org/time-zones/releases/tzdata2023c.tar.gz.asc") | ||
| 7721 | (sha256 | ||
| 7722 | (base32 | ||
| 7723 | "0mrmhczs5qnj1zp6gh4pg6fm0iblr2jmzy0fgh9slinwxmn7pv6m")))) | ||
| 7724 | ("tzcode2023c.tar.gz" | ||
| 7725 | ,(origin | ||
| 7726 | (method url-fetch) | ||
| 7727 | (uri "https://data.iana.org/time-zones/releases/tzcode2023c.tar.gz") | ||
| 7728 | (sha256 | ||
| 7729 | (base32 | ||
| 7730 | "1rqln88ki0jagi372nqyn7bs03rf2l33081sy2835mwsn4mpzla6")))) | ||
| 7731 | ("tzcode2023c.tar.gz.asc" | ||
| 7732 | ,(origin | ||
| 7733 | (method url-fetch) | ||
| 7734 | (uri "https://data.iana.org/time-zones/releases/tzcode2023c.tar.gz.asc") | ||
| 7735 | (sha256 | ||
| 7736 | (base32 | ||
| 7737 | "0jbx8xjv75qfh7bxa2xmrf97r37057y89rhmrq1gz8s6b8qlzb2i"))))))))) | ||
| 7738 | (synopsis "Data from the IANA Time Zone database") | ||
| 7739 | (description | ||
| 7740 | "This library provides @code{TZInfo::Data}, which contains data from the | ||
| 7741 | IANA Time Zone database packaged as Ruby modules for use with @code{TZInfo}.") | ||
| 7742 | (home-page "https://tzinfo.github.io") | ||
| 7743 | (license license:expat))) | ||
| 7744 | |||
| 7745 | (define-public ruby-rb-inotify | ||
| 7746 | (package | ||
| 7747 | (name "ruby-rb-inotify") | ||
| 7748 | (version "0.10.1") | ||
| 7749 | (source | ||
| 7750 | (origin | ||
| 7751 | (method url-fetch) | ||
| 7752 | (uri (rubygems-uri "rb-inotify" version)) | ||
| 7753 | (sha256 | ||
| 7754 | (base32 | ||
| 7755 | "1jm76h8f8hji38z3ggf4bzi8vps6p7sagxn3ab57qc0xyga64005")))) | ||
| 7756 | (build-system ruby-build-system) | ||
| 7757 | (arguments | ||
| 7758 | (list | ||
| 7759 | #:tests? #f ; there are no tests | ||
| 7760 | #:phases | ||
| 7761 | #~(modify-phases %standard-phases | ||
| 7762 | ;; Building the gemspec with rake is not working here since it is | ||
| 7763 | ;; generated with Jeweler. It is also unnecessary because the | ||
| 7764 | ;; existing gemspec does not use any development tools to generate a | ||
| 7765 | ;; list of files. | ||
| 7766 | (replace 'build | ||
| 7767 | (lambda _ | ||
| 7768 | (invoke "gem" "build" "rb-inotify.gemspec")))))) | ||
| 7769 | (propagated-inputs | ||
| 7770 | (list ruby-ffi)) | ||
| 7771 | (native-inputs | ||
| 7772 | (list ruby-yard)) | ||
| 7773 | (synopsis "Ruby wrapper for Linux's inotify") | ||
| 7774 | (description "rb-inotify is a simple wrapper over the @code{inotify} Linux | ||
| 7775 | kernel subsystem for monitoring changes to files and directories.") | ||
| 7776 | (home-page "https://github.com/nex3/rb-inotify") | ||
| 7777 | (license license:expat))) | ||
| 7778 | |||
| 7779 | (define-public ruby-pry-editline | ||
| 7780 | (package | ||
| 7781 | (name "ruby-pry-editline") | ||
| 7782 | (version "1.1.2") | ||
| 7783 | (source (origin | ||
| 7784 | (method url-fetch) | ||
| 7785 | (uri (rubygems-uri "pry-editline" version)) | ||
| 7786 | (sha256 | ||
| 7787 | (base32 | ||
| 7788 | "1pjxyvdxvw41xw3yyl18pwzix8hbvn6lgics7qcfhjfsf1zs8x1z")))) | ||
| 7789 | (build-system ruby-build-system) | ||
| 7790 | (arguments `(#:tests? #f)) ; no tests included | ||
| 7791 | (native-inputs | ||
| 7792 | (list bundler)) | ||
| 7793 | (synopsis "Open the current REPL line in an editor") | ||
| 7794 | (description | ||
| 7795 | "This gem provides a plugin for the Ruby REPL to enable opening the | ||
| 7796 | current line in an external editor.") | ||
| 7797 | (home-page "https://github.com/tpope/pry-editline") | ||
| 7798 | (license license:expat))) | ||
| 7799 | |||
| 7800 | (define-public ruby-sdoc | ||
| 7801 | (package | ||
| 7802 | (name "ruby-sdoc") | ||
| 7803 | (version "1.1.0") | ||
| 7804 | (source (origin | ||
| 7805 | (method url-fetch) | ||
| 7806 | (uri (rubygems-uri "sdoc" version)) | ||
| 7807 | (sha256 | ||
| 7808 | (base32 | ||
| 7809 | "1am73dldx1fqlw2xny5vyk00pgkisg6bvs0pa8jjd7c19drjczrd")))) | ||
| 7810 | (build-system ruby-build-system) | ||
| 7811 | (arguments | ||
| 7812 | `(#:phases | ||
| 7813 | (modify-phases %standard-phases | ||
| 7814 | (add-before 'check 'set-rubylib-and-patch-gemfile | ||
| 7815 | (lambda _ | ||
| 7816 | (setenv "RUBYLIB" "lib") | ||
| 7817 | (substitute* "sdoc.gemspec" | ||
| 7818 | (("s.add_runtime_dependency.*") "\n") | ||
| 7819 | (("s.add_dependency.*") "\n")) | ||
| 7820 | (substitute* "Gemfile" | ||
| 7821 | (("gem \"rake\".*") | ||
| 7822 | "gem 'rake'\ngem 'rdoc'\ngem 'json'\n"))))))) | ||
| 7823 | (propagated-inputs | ||
| 7824 | (list ruby-json)) | ||
| 7825 | (native-inputs | ||
| 7826 | (list bundler ruby-minitest ruby-hoe)) | ||
| 7827 | (synopsis "Generate searchable RDoc documentation") | ||
| 7828 | (description | ||
| 7829 | "SDoc is an RDoc documentation generator to build searchable HTML | ||
| 7830 | documentation for Ruby code.") | ||
| 7831 | (home-page "https://github.com/voloko/sdoc") | ||
| 7832 | (license license:expat))) | ||
| 7833 | |||
| 7834 | (define-public ruby-tins | ||
| 7835 | (package | ||
| 7836 | (name "ruby-tins") | ||
| 7837 | (version "1.29.1") | ||
| 7838 | (source (origin | ||
| 7839 | (method url-fetch) | ||
| 7840 | (uri (rubygems-uri "tins" version)) | ||
| 7841 | (sha256 | ||
| 7842 | (base32 | ||
| 7843 | "0nzp88y19rqlcizp1nw8m44fvfxs9g3bhjpscz44dwfawfrmr0cb")))) | ||
| 7844 | (build-system ruby-build-system) | ||
| 7845 | ;; This gem needs gem-hadar at development time, but gem-hadar needs tins | ||
| 7846 | ;; at runtime. To avoid the dependency on gem-hadar we disable rebuilding | ||
| 7847 | ;; the gemspec. | ||
| 7848 | (arguments | ||
| 7849 | `(#:tests? #f ; there are no tests | ||
| 7850 | #:phases | ||
| 7851 | (modify-phases %standard-phases | ||
| 7852 | (replace 'build | ||
| 7853 | (lambda _ | ||
| 7854 | ;; "lib/spruz" is a symlink. Leaving it in the gemspec file | ||
| 7855 | ;; causes an error. | ||
| 7856 | (substitute* "tins.gemspec" | ||
| 7857 | (("\"lib/spruz\", ") "")) | ||
| 7858 | (invoke "gem" "build" "tins.gemspec")))))) | ||
| 7859 | (propagated-inputs | ||
| 7860 | (list ruby-sync)) | ||
| 7861 | (synopsis "Assorted tools for Ruby") | ||
| 7862 | (description "Tins is a Ruby library providing assorted tools.") | ||
| 7863 | (home-page "https://github.com/flori/tins") | ||
| 7864 | (license license:expat))) | ||
| 7865 | |||
| 7866 | (define-public ruby-gemtext | ||
| 7867 | (package | ||
| 7868 | (name "ruby-gemtext") | ||
| 7869 | (version "1.0.3") | ||
| 7870 | (source | ||
| 7871 | (origin | ||
| 7872 | (method url-fetch) | ||
| 7873 | (uri (rubygems-uri "gemtext" version)) | ||
| 7874 | (sha256 | ||
| 7875 | (base32 "1z559f5z0zvwnqgnny0zf4mppiary020ljxwpw3bdxi2hr9aj3gp")))) | ||
| 7876 | (build-system ruby-build-system) | ||
| 7877 | (synopsis "Gemtext parser for Ruby") | ||
| 7878 | (description | ||
| 7879 | "This package is a Ruby parser library for Gemtext (hypertext format | ||
| 7880 | which is intended to serve as the native response format of the Gemini | ||
| 7881 | file transfer protocol) and produces a document object of various | ||
| 7882 | nodes.") | ||
| 7883 | (home-page "https://github.com/exastencil/gemtext") | ||
| 7884 | (license license:expat))) | ||
| 7885 | |||
| 7886 | (define-public ruby-gem-hadar | ||
| 7887 | (package | ||
| 7888 | (name "ruby-gem-hadar") | ||
| 7889 | (version "1.11.0") | ||
| 7890 | (source (origin | ||
| 7891 | (method url-fetch) | ||
| 7892 | (uri (rubygems-uri "gem_hadar" version)) | ||
| 7893 | (sha256 | ||
| 7894 | (base32 | ||
| 7895 | "160abb3l4n3gkhd86f22n981bhqxkbf5ym6fhsk796pix6696pd5")))) | ||
| 7896 | (build-system ruby-build-system) | ||
| 7897 | ;; This gem needs itself at development time. We disable rebuilding of the | ||
| 7898 | ;; gemspec to avoid this loop. | ||
| 7899 | (arguments | ||
| 7900 | `(#:tests? #f ; there are no tests | ||
| 7901 | #:phases | ||
| 7902 | (modify-phases %standard-phases | ||
| 7903 | (replace 'build | ||
| 7904 | (lambda _ | ||
| 7905 | (invoke "gem" "build" "gem_hadar.gemspec")))))) | ||
| 7906 | (propagated-inputs | ||
| 7907 | (list git-minimal/pinned ruby-tins ruby-yard)) | ||
| 7908 | (synopsis "Library for the development of Ruby gems") | ||
| 7909 | (description | ||
| 7910 | "This library contains some useful functionality to support the | ||
| 7911 | development of Ruby gems.") | ||
| 7912 | (home-page "https://github.com/flori/gem_hadar") | ||
| 7913 | (license license:expat))) | ||
| 7914 | |||
| 7915 | (define-public ruby-term-ansicolor | ||
| 7916 | (package | ||
| 7917 | (name "ruby-term-ansicolor") | ||
| 7918 | (version "1.7.1") | ||
| 7919 | (source (origin | ||
| 7920 | (method url-fetch) | ||
| 7921 | (uri (rubygems-uri "term-ansicolor" version)) | ||
| 7922 | (sha256 | ||
| 7923 | (base32 | ||
| 7924 | "1xq5kci9215skdh27npyd3y55p812v4qb4x2hv3xsjvwqzz9ycwj")))) | ||
| 7925 | (build-system ruby-build-system) | ||
| 7926 | ;; Rebuilding the gemspec seems to require git, even though this is not a | ||
| 7927 | ;; git repository, so we just build the gem from the existing gemspec. | ||
| 7928 | (arguments | ||
| 7929 | (list | ||
| 7930 | #:phases | ||
| 7931 | #~(modify-phases %standard-phases | ||
| 7932 | (add-after 'unpack 'fix-test | ||
| 7933 | (lambda - | ||
| 7934 | (substitute* "tests/hsl_triple_test.rb" | ||
| 7935 | (("0\\\\\\.0%") | ||
| 7936 | "0\\.?0?%")))) | ||
| 7937 | (replace 'build | ||
| 7938 | (lambda _ | ||
| 7939 | (invoke "gem" "build" "term-ansicolor.gemspec")))))) | ||
| 7940 | (propagated-inputs | ||
| 7941 | (list ruby-tins)) | ||
| 7942 | (native-inputs | ||
| 7943 | (list ruby-gem-hadar)) | ||
| 7944 | (synopsis "Ruby library to control the attributes of terminal output") | ||
| 7945 | (description | ||
| 7946 | "This Ruby library uses ANSI escape sequences to control the attributes | ||
| 7947 | of terminal output.") | ||
| 7948 | (home-page "https://flori.github.io/term-ansicolor/") | ||
| 7949 | ;; There is no mention of the "or later" clause. | ||
| 7950 | (license license:gpl2))) | ||
| 7951 | |||
| 7952 | (define-public ruby-immutable-struct | ||
| 7953 | (let ((commit "bb67ad8fa2117e8031c3f4333b4c25c8bcd3afff") | ||
| 7954 | (revision "0")) | ||
| 7955 | (package | ||
| 7956 | (name "ruby-immutable-struct") | ||
| 7957 | (version (git-version "2.4.1" revision commit)) | ||
| 7958 | (source | ||
| 7959 | (origin | ||
| 7960 | (method git-fetch) | ||
| 7961 | (uri (git-reference | ||
| 7962 | (url "https://github.com/stitchfix/immutable-struct") | ||
| 7963 | (commit commit))) | ||
| 7964 | (file-name (git-file-name name version)) | ||
| 7965 | (sha256 | ||
| 7966 | (base32 | ||
| 7967 | "0vsr2spypjf0i7ppg2a0gj3mjj5k3dyqsx224cbsxw51p6cc11c1")))) | ||
| 7968 | (build-system ruby-build-system) | ||
| 7969 | (arguments | ||
| 7970 | (list | ||
| 7971 | #:phases | ||
| 7972 | #~(modify-phases %standard-phases | ||
| 7973 | (replace 'check | ||
| 7974 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 7975 | (when tests? | ||
| 7976 | (invoke "ruby" (which "rspec")))))))) | ||
| 7977 | (native-inputs | ||
| 7978 | (list ruby-rspec)) | ||
| 7979 | (synopsis "Ruby library for creating immutable struct classes") | ||
| 7980 | (description | ||
| 7981 | "This package provides a library to help create value objects without | ||
| 7982 | the pain of Ruby's Struct (or its setters).") | ||
| 7983 | (home-page "https://stitchfix.github.io/immutable-struct/") | ||
| 7984 | (license license:expat)))) | ||
| 7985 | |||
| 7986 | (define-public ruby-faker | ||
| 7987 | (package | ||
| 7988 | (name "ruby-faker") | ||
| 7989 | (version "3.2.0") | ||
| 7990 | (source | ||
| 7991 | (origin | ||
| 7992 | (method git-fetch) | ||
| 7993 | (uri (git-reference | ||
| 7994 | (url "https://github.com/faker-ruby/faker") | ||
| 7995 | (commit (string-append "v" version)))) | ||
| 7996 | (file-name (git-file-name name version)) | ||
| 7997 | (sha256 | ||
| 7998 | (base32 | ||
| 7999 | "1wwdwh5qwaxnd9dl6732mj6b953l5r32r4936pj5680963iagq59")))) | ||
| 8000 | (build-system ruby-build-system) | ||
| 8001 | (arguments | ||
| 8002 | (list | ||
| 8003 | #:phases | ||
| 8004 | #~(modify-phases %standard-phases | ||
| 8005 | (add-after 'unpack 'remove-rubocop-from-rakefile | ||
| 8006 | (lambda _ | ||
| 8007 | (substitute* "Rakefile" | ||
| 8008 | (("require 'rubocop/rake_task'") "") | ||
| 8009 | (("RuboCop::RakeTask\\.new") ""))))))) | ||
| 8010 | (native-inputs (list ruby-yard ruby-simplecov ruby-timecop)) | ||
| 8011 | (propagated-inputs (list ruby-i18n)) | ||
| 8012 | (synopsis "Library for generating fake data") | ||
| 8013 | (description "Faker is a port of Data::Faker from Perl. It is used to | ||
| 8014 | easily generate fake data: names, addresses, phone numbers, etc.") | ||
| 8015 | (home-page "https://github.com/faker-ruby/faker") | ||
| 8016 | (license license:expat))) | ||
| 8017 | |||
| 8018 | (define-public ruby-terraform | ||
| 8019 | (package | ||
| 8020 | (name "ruby-terraform") | ||
| 8021 | (version "1.7.0") | ||
| 8022 | (source | ||
| 8023 | (origin | ||
| 8024 | (method git-fetch) | ||
| 8025 | (uri (git-reference | ||
| 8026 | (url "https://github.com/infrablocks/ruby_terraform") | ||
| 8027 | (commit (string-append "v" version)))) | ||
| 8028 | (file-name (git-file-name name version)) | ||
| 8029 | (sha256 | ||
| 8030 | (base32 | ||
| 8031 | "18d1qkf2rbbvc2f0dxni85i2l2g8zn5kzh0v8zr1b86r1wjy6rvd")))) | ||
| 8032 | (build-system ruby-build-system) | ||
| 8033 | (arguments | ||
| 8034 | (list | ||
| 8035 | #:test-target "spec" | ||
| 8036 | #:phases | ||
| 8037 | #~(modify-phases %standard-phases | ||
| 8038 | (add-after 'unpack 'disable-bundler | ||
| 8039 | (lambda _ | ||
| 8040 | (substitute* "spec/spec_helper.rb" | ||
| 8041 | (("require 'bundler/setup'") "")))) | ||
| 8042 | (add-before 'check 'disable-falinig-tests | ||
| 8043 | (lambda _ | ||
| 8044 | (substitute* "spec/ruby_terraform/commands/plan_spec.rb" | ||
| 8045 | (("it 'logs an error raised when running the command'") | ||
| 8046 | "xit 'logs an error raised when running the command'") | ||
| 8047 | (("it 'raises execution error when an error occurs running the command'") | ||
| 8048 | "xit 'raises execution error when an error occurs running the command'")))) | ||
| 8049 | (replace 'check | ||
| 8050 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 8051 | (when tests? | ||
| 8052 | (invoke "rspec"))))))) | ||
| 8053 | (native-inputs | ||
| 8054 | (list ruby-rspec | ||
| 8055 | ruby-faker | ||
| 8056 | ruby-simplecov)) | ||
| 8057 | (propagated-inputs | ||
| 8058 | (list ruby-lino ruby-immutable-struct)) | ||
| 8059 | (synopsis "Ruby wrapper around the Terraform command line interface") | ||
| 8060 | (description | ||
| 8061 | "This package provides a Ruby wrapper around the Terraform command line | ||
| 8062 | interface so that Terraform can be more easily invoked from Ruby code.") | ||
| 8063 | (home-page "https://github.com/infrablocks/ruby_terraform") | ||
| 8064 | (license license:expat))) | ||
| 8065 | |||
| 8066 | (define-public ruby-pstree | ||
| 8067 | (package | ||
| 8068 | (name "ruby-pstree") | ||
| 8069 | (version "0.3.0") | ||
| 8070 | (source (origin | ||
| 8071 | (method url-fetch) | ||
| 8072 | (uri (rubygems-uri "pstree" version)) | ||
| 8073 | (sha256 | ||
| 8074 | (base32 | ||
| 8075 | "0ld3ng37y92kv9vqnachw1l3n07hsc8hrnjs9d840liw0mysf1vp")))) | ||
| 8076 | (build-system ruby-build-system) | ||
| 8077 | (native-inputs | ||
| 8078 | (list ruby-gem-hadar bundler)) | ||
| 8079 | (synopsis "Create a process tree data structure") | ||
| 8080 | (description | ||
| 8081 | "This library uses the output of the @code{ps} command to create a | ||
| 8082 | process tree data structure for the current host.") | ||
| 8083 | (home-page "https://github.com/flori/pstree") | ||
| 8084 | ;; There is no mention of the "or later" clause. | ||
| 8085 | (license license:gpl2))) | ||
| 8086 | |||
| 8087 | (define-public ruby-psych | ||
| 8088 | (package | ||
| 8089 | (name "ruby-psych") | ||
| 8090 | (version "5.1.0") | ||
| 8091 | (source (origin | ||
| 8092 | (method git-fetch) ;for tests | ||
| 8093 | (uri (git-reference | ||
| 8094 | (url "https://github.com/ruby/psych") | ||
| 8095 | (commit (string-append "v" version)))) | ||
| 8096 | (file-name (git-file-name name version)) | ||
| 8097 | (sha256 | ||
| 8098 | (base32 | ||
| 8099 | "0m3668y79jcv2h9p7w74awwdyz13rpfr24w4nzh3iz96kxwssz83")))) | ||
| 8100 | (build-system ruby-build-system) | ||
| 8101 | (inputs | ||
| 8102 | (list libyaml)) | ||
| 8103 | (native-inputs | ||
| 8104 | (list ruby-rake-compiler)) | ||
| 8105 | (synopsis "Ruby YAML parser and emitter") | ||
| 8106 | (description | ||
| 8107 | "Psych is a YAML parser and emitter. Psych leverages libyaml for its | ||
| 8108 | YAML parsing and emitting capabilities. In addition to wrapping libyaml, | ||
| 8109 | Psych also knows how to serialize and de-serialize most Ruby objects to and | ||
| 8110 | from the YAML format.") | ||
| 8111 | (home-page "https://github.com/ruby/psych") | ||
| 8112 | (license license:expat))) | ||
| 8113 | |||
| 8114 | (define-public ruby-psych-3 | ||
| 8115 | (package | ||
| 8116 | (inherit ruby-psych) | ||
| 8117 | (version "3.3.4") | ||
| 8118 | (source (origin | ||
| 8119 | (method git-fetch) ;for tests | ||
| 8120 | (uri (git-reference | ||
| 8121 | (url "https://github.com/ruby/psych") | ||
| 8122 | (commit (string-append "v" version)))) | ||
| 8123 | (file-name (git-file-name "ruby-psych" version)) | ||
| 8124 | (sha256 | ||
| 8125 | (base32 | ||
| 8126 | "11f7bxbhaj5697izap7hfbiln6lfk5cks78a498mkyhs2ylhl0fc")))) | ||
| 8127 | (arguments | ||
| 8128 | (list | ||
| 8129 | #:phases | ||
| 8130 | #~(modify-phases %standard-phases | ||
| 8131 | (replace 'check | ||
| 8132 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 8133 | (when tests? | ||
| 8134 | (invoke "bundle" "exec" "rake" "default"))))))))) | ||
| 8135 | |||
| 8136 | (define-public ruby-utils | ||
| 8137 | (package | ||
| 8138 | (name "ruby-utils") | ||
| 8139 | (version "0.9.0") | ||
| 8140 | (source (origin | ||
| 8141 | (method url-fetch) | ||
| 8142 | (uri (rubygems-uri "utils" version)) | ||
| 8143 | (sha256 | ||
| 8144 | (base32 | ||
| 8145 | "196zhgcygrnx09bb9mh22qas03rl9avzx8qs0wnxznpin4pffwcl")))) | ||
| 8146 | (build-system ruby-build-system) | ||
| 8147 | (propagated-inputs | ||
| 8148 | (list ruby-tins ruby-term-ansicolor ruby-pstree ruby-pry-editline)) | ||
| 8149 | (native-inputs | ||
| 8150 | (list ruby-gem-hadar bundler)) | ||
| 8151 | (synopsis "Command line tools for working with Ruby") | ||
| 8152 | (description | ||
| 8153 | "This package provides assorted command line tools that may be useful | ||
| 8154 | when working with Ruby code.") | ||
| 8155 | (home-page "https://github.com/flori/utils") | ||
| 8156 | ;; There is no mention of the "or later" clause. | ||
| 8157 | (license license:gpl2))) | ||
| 8158 | |||
| 8159 | (define-public ruby-jaro-winkler | ||
| 8160 | (package | ||
| 8161 | (name "ruby-jaro-winkler") | ||
| 8162 | (version "1.5.4") | ||
| 8163 | (source | ||
| 8164 | (origin | ||
| 8165 | (method url-fetch) | ||
| 8166 | (uri (rubygems-uri "jaro_winkler" version)) | ||
| 8167 | (sha256 | ||
| 8168 | (base32 "1y8l6k34svmdyqxya3iahpwbpvmn3fswhwsvrz0nk1wyb8yfihsh")))) | ||
| 8169 | (build-system ruby-build-system) | ||
| 8170 | (arguments | ||
| 8171 | '(#:tests? #f)) ; no included tests | ||
| 8172 | (synopsis "Ruby implementation of Jaro-Winkler distance algorithm") | ||
| 8173 | (description | ||
| 8174 | "@code{jaro_winkler} is an implementation of Jaro-Winkler distance | ||
| 8175 | algorithm. It is written as a C extension and will fallback to a pure Ruby | ||
| 8176 | implementation on platforms where this is unsupported.") | ||
| 8177 | (home-page "https://github.com/tonytonyjan/jaro_winkler") | ||
| 8178 | (license license:expat))) | ||
| 8179 | |||
| 8180 | (define-public ruby-json | ||
| 8181 | (package | ||
| 8182 | (name "ruby-json") | ||
| 8183 | (version "2.1.0") | ||
| 8184 | (source | ||
| 8185 | (origin | ||
| 8186 | (method url-fetch) | ||
| 8187 | (uri (rubygems-uri "json" version)) | ||
| 8188 | (sha256 | ||
| 8189 | (base32 | ||
| 8190 | "01v6jjpvh3gnq6sgllpfqahlgxzj50ailwhj9b3cd20hi2dx0vxp")))) | ||
| 8191 | (build-system ruby-build-system) | ||
| 8192 | (arguments '(#:tests? #f)) ; dependency cycle with sdoc | ||
| 8193 | (synopsis "JSON library for Ruby") | ||
| 8194 | (description "This Ruby library provides a JSON implementation written as | ||
| 8195 | a native C extension.") | ||
| 8196 | (home-page "http://json-jruby.rubyforge.org/") | ||
| 8197 | (license (list license:ruby license:gpl2)))) ; GPL2 only | ||
| 8198 | |||
| 8199 | (define-public ruby-json-pure | ||
| 8200 | (package | ||
| 8201 | (name "ruby-json-pure") | ||
| 8202 | (version "2.6.3") | ||
| 8203 | (source | ||
| 8204 | (origin | ||
| 8205 | ;; For tests | ||
| 8206 | (method git-fetch) | ||
| 8207 | (uri (git-reference | ||
| 8208 | (url "https://github.com/flori/json.git") | ||
| 8209 | (commit (string-append "v" version)))) | ||
| 8210 | (file-name (git-file-name name version)) | ||
| 8211 | (sha256 | ||
| 8212 | (base32 | ||
| 8213 | "0551269c98a07m6bl594syh5vknrm3c636a4dxis9jpsb7vf7lfx")))) | ||
| 8214 | (build-system ruby-build-system) | ||
| 8215 | (arguments | ||
| 8216 | (list | ||
| 8217 | #:phases | ||
| 8218 | #~(modify-phases %standard-phases | ||
| 8219 | (add-after 'unpack 'fix-rakefile | ||
| 8220 | (lambda _ | ||
| 8221 | (substitute* "Rakefile" | ||
| 8222 | ;; Since this is not a git repository, do not call 'git'. | ||
| 8223 | (("`git ls-files`") "`find . -type f |sort`"))))))) | ||
| 8224 | (native-inputs | ||
| 8225 | (list bundler ragel ruby-simplecov ruby-test-unit which)) | ||
| 8226 | (synopsis "JSON implementation in pure Ruby") | ||
| 8227 | (description | ||
| 8228 | "This package provides a JSON implementation written in pure Ruby.") | ||
| 8229 | (home-page "https://flori.github.io/json/") | ||
| 8230 | (license license:ruby))) | ||
| 8231 | |||
| 8232 | (define-public ruby-jwt | ||
| 8233 | (package | ||
| 8234 | (name "ruby-jwt") | ||
| 8235 | (version "2.7.1") | ||
| 8236 | (source | ||
| 8237 | (origin | ||
| 8238 | ;; For tests | ||
| 8239 | (method git-fetch) | ||
| 8240 | (uri (git-reference | ||
| 8241 | (url "https://github.com/jwt/ruby-jwt") | ||
| 8242 | (commit (string-append "v" version)))) | ||
| 8243 | (file-name (git-file-name name version)) | ||
| 8244 | (sha256 | ||
| 8245 | (base32 | ||
| 8246 | "12ss6knfis6a6a41qndalnlvq3yykhpg6igzll8qyssnnwi9zdw7")))) | ||
| 8247 | (build-system ruby-build-system) | ||
| 8248 | (arguments | ||
| 8249 | (list | ||
| 8250 | #:test-target "test" | ||
| 8251 | #:phases | ||
| 8252 | #~(modify-phases %standard-phases | ||
| 8253 | (add-after 'unpack 'remove-unnecessary-dependencies | ||
| 8254 | (lambda _ | ||
| 8255 | (substitute* "ruby-jwt.gemspec" | ||
| 8256 | (("spec\\.add_development_dependency 'appraisal'") "") | ||
| 8257 | (("spec\\.add_development_dependency 'simplecov'") "")) | ||
| 8258 | (substitute* "Gemfile" | ||
| 8259 | (("gem 'rubocop'.*") "")) | ||
| 8260 | (substitute* "Rakefile" | ||
| 8261 | (("require 'rubocop/rake_task'") "") | ||
| 8262 | (("RuboCop::RakeTask\\.new\\(:rubocop\\)") "")) | ||
| 8263 | (substitute* "spec/spec_helper.rb" | ||
| 8264 | (("require 'simplecov.*") "\n") | ||
| 8265 | ;; Use [].each to disable running the SimpleCov configuration | ||
| 8266 | ;; block | ||
| 8267 | (("SimpleCov\\.configure") "[].each") | ||
| 8268 | (("require 'codeclimate-test-reporter'") "") | ||
| 8269 | (("require 'codacy-coverage'") "") | ||
| 8270 | (("Codacy::Reporter\\.start") ""))))))) | ||
| 8271 | (native-inputs | ||
| 8272 | (list bundler ruby-rspec ruby-rbnacl)) | ||
| 8273 | (synopsis "Ruby implementation of the JSON Web Token standard") | ||
| 8274 | (description | ||
| 8275 | "This package provides a pure Ruby implementation of the RFC 7519 OAuth | ||
| 8276 | @acronym{JWT, JSON Web Token} standard.") | ||
| 8277 | (home-page "https://github.com/jwt/ruby-jwt") | ||
| 8278 | (license license:expat))) | ||
| 8279 | |||
| 8280 | ;; Even though this package only provides bindings for a Mac OSX API it is | ||
| 8281 | ;; required by "ruby-listen" at runtime. | ||
| 8282 | (define-public ruby-rb-fsevent | ||
| 8283 | (package | ||
| 8284 | (name "ruby-rb-fsevent") | ||
| 8285 | (version "0.10.3") | ||
| 8286 | (source (origin | ||
| 8287 | (method url-fetch) | ||
| 8288 | (uri (rubygems-uri "rb-fsevent" version)) | ||
| 8289 | (sha256 | ||
| 8290 | (base32 | ||
| 8291 | "1lm1k7wpz69jx7jrc92w3ggczkjyjbfziq5mg62vjnxmzs383xx8")))) | ||
| 8292 | (build-system ruby-build-system) | ||
| 8293 | ;; Tests need "guard-rspec", which needs "guard". However, "guard" needs | ||
| 8294 | ;; "listen", which needs "rb-fsevent" at runtime. | ||
| 8295 | (arguments `(#:tests? #f)) | ||
| 8296 | (synopsis "FSEvents API with signals catching") | ||
| 8297 | (description | ||
| 8298 | "This library provides Ruby bindings for the Mac OSX FSEvents API.") | ||
| 8299 | (home-page "https://rubygems.org/gems/rb-fsevent") | ||
| 8300 | (license license:expat))) | ||
| 8301 | |||
| 8302 | (define-public ruby-listen | ||
| 8303 | (package | ||
| 8304 | (name "ruby-listen") | ||
| 8305 | (version "3.8.0") | ||
| 8306 | (source | ||
| 8307 | (origin | ||
| 8308 | ;; The gem does not include a Rakefile, so fetch from the Git | ||
| 8309 | ;; repository. | ||
| 8310 | (method git-fetch) | ||
| 8311 | (uri (git-reference | ||
| 8312 | (url "https://github.com/guard/listen") | ||
| 8313 | (commit (string-append "v" version)))) | ||
| 8314 | (file-name (git-file-name name version)) | ||
| 8315 | (sha256 | ||
| 8316 | (base32 | ||
| 8317 | "1skkglml094dw1xr4742in1rwwa84ld0mz4nkw6qa8pwhx48x2n5")))) | ||
| 8318 | (build-system ruby-build-system) | ||
| 8319 | (arguments | ||
| 8320 | (list | ||
| 8321 | #:test-target "spec" | ||
| 8322 | #:phases | ||
| 8323 | #~(modify-phases %standard-phases | ||
| 8324 | (add-after 'unpack 'fix-files-in-gemspec | ||
| 8325 | (lambda _ | ||
| 8326 | (substitute* "listen.gemspec" | ||
| 8327 | (("`git ls-files -z`") | ||
| 8328 | "`find . -type f -printf '%P\\\\0' |sort -z`")))) | ||
| 8329 | (add-before 'check 'remove-unnecessary-dependencies' | ||
| 8330 | (lambda _ | ||
| 8331 | (substitute* "Rakefile" | ||
| 8332 | ;; Rubocop is for code linting, and is unnecessary for running | ||
| 8333 | ;; the tests. | ||
| 8334 | ((".*rubocop.*") ""))))))) | ||
| 8335 | (native-inputs | ||
| 8336 | (list bundler ruby-rspec)) | ||
| 8337 | (inputs | ||
| 8338 | (list ;; ruby-thor is used for the command line interface, and is referenced | ||
| 8339 | ;; in the wrapper, and therefore just needs to be an input. | ||
| 8340 | ruby-thor)) | ||
| 8341 | (propagated-inputs | ||
| 8342 | (list ruby-rb-fsevent ruby-rb-inotify)) | ||
| 8343 | (synopsis "Listen to file modifications") | ||
| 8344 | (description "The Listen gem listens to file modifications and notifies | ||
| 8345 | you about the changes.") | ||
| 8346 | (home-page "https://github.com/guard/listen") | ||
| 8347 | (license license:expat))) | ||
| 8348 | |||
| 8349 | (define-public ruby-loofah | ||
| 8350 | (package | ||
| 8351 | (name "ruby-loofah") | ||
| 8352 | (version "2.21.3") | ||
| 8353 | (home-page "https://github.com/flavorjones/loofah") | ||
| 8354 | (source | ||
| 8355 | (origin | ||
| 8356 | ;; Build from git because the gem lacks tests. | ||
| 8357 | (method git-fetch) | ||
| 8358 | (uri (git-reference (url home-page) | ||
| 8359 | (commit (string-append "v" version)))) | ||
| 8360 | (file-name (git-file-name name version)) | ||
| 8361 | (sha256 | ||
| 8362 | (base32 | ||
| 8363 | "1lh7cf56y1b0h090ahphvz7grq581phsamdl0rq59y0q9bqwrhg0")))) | ||
| 8364 | (build-system ruby-build-system) | ||
| 8365 | (native-inputs | ||
| 8366 | (list ruby-hoe ruby-hoe-markdown ruby-rr)) | ||
| 8367 | (propagated-inputs | ||
| 8368 | (list ruby-nokogiri ruby-crass)) | ||
| 8369 | (synopsis "Ruby library for manipulating and transforming HTML/XML") | ||
| 8370 | (description | ||
| 8371 | "Loofah is a general library for manipulating and transforming HTML/XML | ||
| 8372 | documents and fragments. It's built on top of Nokogiri and libxml2.") | ||
| 8373 | (license license:expat))) | ||
| 8374 | |||
| 8375 | (define-public ruby-crass | ||
| 8376 | (package | ||
| 8377 | (name "ruby-crass") | ||
| 8378 | (version "1.0.6") | ||
| 8379 | (home-page "https://github.com/rgrove/crass") | ||
| 8380 | (source (origin | ||
| 8381 | ;; The gem does not contain tests, so pull from git. | ||
| 8382 | (method git-fetch) | ||
| 8383 | (uri (git-reference | ||
| 8384 | (url home-page) | ||
| 8385 | (commit (string-append "v" version)))) | ||
| 8386 | (file-name (git-file-name name version)) | ||
| 8387 | (sha256 | ||
| 8388 | (base32 | ||
| 8389 | "1gbsb81psgb6xhnwpx4s409jc0mk0gijh039sy5xyi8jpaaadp40")))) | ||
| 8390 | (build-system ruby-build-system) | ||
| 8391 | (synopsis "Pure Ruby CSS parser") | ||
| 8392 | (description | ||
| 8393 | "Crass is a pure Ruby CSS parser based on the CSS Syntax Level 3 spec.") | ||
| 8394 | (license license:expat))) | ||
| 8395 | |||
| 8396 | ;;; The ruby-nokogumbo package has been absorbed into ruby-nokogiri. | ||
| 8397 | (define-public ruby-nokogumbo | ||
| 8398 | (deprecated-package "ruby-nokogumbo" ruby-nokogiri)) | ||
| 8399 | |||
| 8400 | (define-public ruby-samovar | ||
| 8401 | (package | ||
| 8402 | (name "ruby-samovar") | ||
| 8403 | (version "2.1.4") | ||
| 8404 | (source (origin | ||
| 8405 | (method git-fetch) ;for tests | ||
| 8406 | (uri (git-reference | ||
| 8407 | (url "https://github.com/ioquatix/samovar") | ||
| 8408 | (commit (string-append "v" version)))) | ||
| 8409 | (file-name (git-file-name name version)) | ||
| 8410 | (sha256 | ||
| 8411 | (base32 | ||
| 8412 | "05pc5xlbv44anx0sfqssh0xhxg297bvl5slsl7k1vnka4k5fhax6")))) | ||
| 8413 | (build-system ruby-build-system) | ||
| 8414 | (native-inputs (list ruby-covered ruby-rspec)) | ||
| 8415 | (propagated-inputs (list ruby-console ruby-mapping)) | ||
| 8416 | (synopsis "Flexible option parser for Ruby") | ||
| 8417 | (description "Samovar is a modern framework for building command-line | ||
| 8418 | tools and applications. It provides a declarative class-based DSL for | ||
| 8419 | building command-line parsers that include automatic documentation generation. | ||
| 8420 | It helps you keep your functionality clean and isolated where possible.") | ||
| 8421 | (home-page "https://github.com/ioquatix/samovar") | ||
| 8422 | (license license:expat))) | ||
| 8423 | |||
| 8424 | (define-public ruby-sanitize | ||
| 8425 | (package | ||
| 8426 | (name "ruby-sanitize") | ||
| 8427 | (version "6.0.0") | ||
| 8428 | (home-page "https://github.com/rgrove/sanitize") | ||
| 8429 | (source (origin | ||
| 8430 | (method git-fetch) | ||
| 8431 | ;; The gem does not include the Rakefile, so we download the | ||
| 8432 | ;; source from Github. | ||
| 8433 | (uri (git-reference | ||
| 8434 | (url home-page) | ||
| 8435 | (commit (string-append "v" version)))) | ||
| 8436 | (file-name (git-file-name name version)) | ||
| 8437 | (sha256 | ||
| 8438 | (base32 | ||
| 8439 | "0p1a28vx95vscy9xzzyyddzgb9496x42a5i2ka39cpxbl5f3gkl0")))) | ||
| 8440 | (build-system ruby-build-system) | ||
| 8441 | (propagated-inputs (list ruby-crass ruby-nokogiri)) | ||
| 8442 | (native-inputs (list ruby-minitest)) | ||
| 8443 | (synopsis "Whitelist-based HTML and CSS sanitizer") | ||
| 8444 | (description | ||
| 8445 | "Sanitize is a whitelist-based HTML and CSS sanitizer. Given a list of | ||
| 8446 | acceptable elements, attributes, and CSS properties, Sanitize will remove all | ||
| 8447 | unacceptable HTML and/or CSS from a string.") | ||
| 8448 | (license license:expat))) | ||
| 8449 | |||
| 8450 | (define-public ruby-sync | ||
| 8451 | (package | ||
| 8452 | (name "ruby-sync") | ||
| 8453 | (version "0.5.0") | ||
| 8454 | (source | ||
| 8455 | (origin | ||
| 8456 | (method url-fetch) | ||
| 8457 | (uri (rubygems-uri "sync" version)) | ||
| 8458 | (sha256 | ||
| 8459 | (base32 | ||
| 8460 | "1z9qlq4icyiv3hz1znvsq1wz2ccqjb1zwd6gkvnwg6n50z65d0v6")))) | ||
| 8461 | (build-system ruby-build-system) | ||
| 8462 | (synopsis "Ruby module with a two-phase lock and counter") | ||
| 8463 | (description "This package provides a Ruby module that provides a two-phase | ||
| 8464 | lock with a counter.") | ||
| 8465 | (home-page "https://github.com/ruby/sync") | ||
| 8466 | (license license:bsd-2))) | ||
| 8467 | |||
| 8468 | (define-public ruby-oj | ||
| 8469 | (package | ||
| 8470 | (name "ruby-oj") | ||
| 8471 | (version "3.13.9") | ||
| 8472 | (source | ||
| 8473 | (origin | ||
| 8474 | (method git-fetch) | ||
| 8475 | ;; Version on rubygems.org does not contain Rakefile, so download from | ||
| 8476 | ;; GitHub instead. | ||
| 8477 | (uri (git-reference | ||
| 8478 | (url "https://github.com/ohler55/oj") | ||
| 8479 | (commit (string-append "v" version)))) | ||
| 8480 | (file-name (git-file-name name version)) | ||
| 8481 | (sha256 | ||
| 8482 | (base32 | ||
| 8483 | "0a24zd28y58nyhjxgrpn2k9p72vzj3zbmdrcsbhwbdycj7nn9fpd")))) | ||
| 8484 | (build-system ruby-build-system) | ||
| 8485 | (arguments | ||
| 8486 | '(#:test-target "test_all" | ||
| 8487 | #:phases | ||
| 8488 | (modify-phases %standard-phases | ||
| 8489 | (add-before 'check 'disable-bundler | ||
| 8490 | (lambda _ | ||
| 8491 | (substitute* "Rakefile" | ||
| 8492 | (("Bundler\\.with_clean_env") "1.times") | ||
| 8493 | (("bundle exec ") ""))))))) | ||
| 8494 | (native-inputs | ||
| 8495 | (list bundler ruby-rspec ruby-rake-compiler)) | ||
| 8496 | (synopsis "JSON parser for Ruby optimized for speed") | ||
| 8497 | (description | ||
| 8498 | "Oj is a JSON parser and generator for Ruby, where the encoding and | ||
| 8499 | decoding of JSON is implemented as a C extension to Ruby.") | ||
| 8500 | (home-page "https://www.ohler.com/oj/") | ||
| 8501 | (license (list license:expat ; Ruby code | ||
| 8502 | license:bsd-3)))) ; extension code | ||
| 8503 | |||
| 8504 | (define-public ruby-ox | ||
| 8505 | (package | ||
| 8506 | (name "ruby-ox") | ||
| 8507 | (version "2.6.0") | ||
| 8508 | (source | ||
| 8509 | (origin | ||
| 8510 | (method url-fetch) | ||
| 8511 | (uri (rubygems-uri "ox" version)) | ||
| 8512 | (sha256 | ||
| 8513 | (base32 | ||
| 8514 | "0fmk62b1h2i79dfzjj8wmf8qid1rv5nhwfc17l489ywnga91xl83")))) | ||
| 8515 | (build-system ruby-build-system) | ||
| 8516 | (arguments | ||
| 8517 | '(#:tests? #f)) ; no tests | ||
| 8518 | (synopsis "Optimized XML library for Ruby") | ||
| 8519 | (description | ||
| 8520 | "Optimized XML (Ox) is a fast XML parser and object serializer for Ruby | ||
| 8521 | written as a native C extension. It was designed to be an alternative to | ||
| 8522 | Nokogiri and other Ruby XML parsers for generic XML parsing and as an | ||
| 8523 | alternative to Marshal for Object serialization.") | ||
| 8524 | (home-page "https://www.ohler.com/ox") | ||
| 8525 | (license license:expat))) | ||
| 8526 | |||
| 8527 | (define-public ruby-redcloth | ||
| 8528 | (package | ||
| 8529 | (name "ruby-redcloth") | ||
| 8530 | (version "4.3.2") | ||
| 8531 | (source (origin | ||
| 8532 | (method url-fetch) | ||
| 8533 | (uri (rubygems-uri "RedCloth" version)) | ||
| 8534 | (sha256 | ||
| 8535 | (base32 | ||
| 8536 | "0m9dv7ya9q93r8x1pg2gi15rxlbck8m178j1fz7r5v6wr1avrrqy")))) | ||
| 8537 | (build-system ruby-build-system) | ||
| 8538 | (arguments | ||
| 8539 | `(#:tests? #f ; no tests | ||
| 8540 | #:phases | ||
| 8541 | (modify-phases %standard-phases | ||
| 8542 | ;; Redcloth has complicated rake tasks to build various versions for | ||
| 8543 | ;; multiple targets using RVM. We don't want this so we just use the | ||
| 8544 | ;; existing gemspec. | ||
| 8545 | (replace 'build | ||
| 8546 | (lambda _ | ||
| 8547 | (invoke "gem" "build" "redcloth.gemspec")))))) | ||
| 8548 | (native-inputs | ||
| 8549 | `(("bundler" ,bundler) | ||
| 8550 | ("ruby-diff-lcs" ,ruby-diff-lcs) | ||
| 8551 | ("ruby-rspec-2" ,ruby-rspec-2))) | ||
| 8552 | (synopsis "Textile markup language parser for Ruby") | ||
| 8553 | (description | ||
| 8554 | "RedCloth is a Ruby parser for the Textile markup language.") | ||
| 8555 | (home-page "http://redcloth.org") | ||
| 8556 | (license license:expat))) | ||
| 8557 | |||
| 8558 | (define-public ruby-pg | ||
| 8559 | (let ((commit "378b7a35c12292625460ef2f33373de7114bf255") | ||
| 8560 | (revision "0")) | ||
| 8561 | (package | ||
| 8562 | (name "ruby-pg") | ||
| 8563 | (version (git-version "1.5.9" revision commit)) | ||
| 8564 | (home-page "https://github.com/ged/ruby-pg") | ||
| 8565 | (source | ||
| 8566 | (origin | ||
| 8567 | (method git-fetch) | ||
| 8568 | (uri (git-reference | ||
| 8569 | (url home-page) | ||
| 8570 | (commit commit))) | ||
| 8571 | (file-name (git-file-name name version)) | ||
| 8572 | (sha256 | ||
| 8573 | (base32 "1aq6kakyghgbb4yykxxl9ziaaa7jbdbyc7vz6avyxhlby1jkj0m8")) | ||
| 8574 | (patches | ||
| 8575 | (search-patches "ruby-pg-fix-connect-timeout.patch")))) | ||
| 8576 | (build-system ruby-build-system) | ||
| 8577 | (arguments | ||
| 8578 | (list | ||
| 8579 | #:test-target "spec" | ||
| 8580 | #:phases | ||
| 8581 | #~(modify-phases %standard-phases | ||
| 8582 | (add-before 'build 'compile | ||
| 8583 | (lambda _ | ||
| 8584 | (invoke "rake" "compile"))) | ||
| 8585 | ;; Some tests rely on postgresql_lib_path.rb, but it is not | ||
| 8586 | ;; available until the gem is installed. Run tests after | ||
| 8587 | ;; installing to work around it. | ||
| 8588 | (delete 'check) | ||
| 8589 | (add-after 'install 'check | ||
| 8590 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 8591 | (let ((new-gem (string-append #$output | ||
| 8592 | "/lib/ruby/vendor_ruby"))) | ||
| 8593 | (setenv "GEM_PATH" | ||
| 8594 | (string-append (getenv "GEM_PATH") ":" new-gem)) | ||
| 8595 | (when tests? | ||
| 8596 | (invoke "rspec")))))))) | ||
| 8597 | (native-inputs (list ruby-rake-compiler ruby-hoe ruby-rspec)) | ||
| 8598 | (inputs (list postgresql)) | ||
| 8599 | (synopsis "Ruby interface to PostgreSQL") | ||
| 8600 | (description "Pg is the Ruby interface to the PostgreSQL RDBMS. It works | ||
| 8601 | with PostgreSQL 9.3 and later.") | ||
| 8602 | (license license:ruby)))) | ||
| 8603 | |||
| 8604 | (define-public ruby-byebug | ||
| 8605 | (package | ||
| 8606 | (name "ruby-byebug") | ||
| 8607 | (version "11.1.3") | ||
| 8608 | (source | ||
| 8609 | (origin | ||
| 8610 | (method git-fetch) | ||
| 8611 | (uri (git-reference | ||
| 8612 | (url "https://github.com/deivid-rodriguez/byebug") | ||
| 8613 | (commit (string-append "v" version)))) | ||
| 8614 | (file-name (git-file-name name version)) | ||
| 8615 | (sha256 | ||
| 8616 | (base32 | ||
| 8617 | "0vyy3k2s7dcndngj6m8kxhs1vxc2c93dw8b3yyand3srsg9ffpij")) | ||
| 8618 | (modules '((guix build utils))) | ||
| 8619 | (snippet | ||
| 8620 | '(begin | ||
| 8621 | ;; Remove wrappers that try to setup a bundle environment. | ||
| 8622 | (with-directory-excursion "bin" | ||
| 8623 | (for-each delete-file '("bundle" "rake" "rubocop")) | ||
| 8624 | ;; ruby-minitest doesn't come with a launcher, so fix the one | ||
| 8625 | ;; provided. | ||
| 8626 | (substitute* "minitest" | ||
| 8627 | (("load File\\.expand_path\\(\"bundle\".*") "") | ||
| 8628 | (("require \"bundler/setup\".*") ""))))))) | ||
| 8629 | (build-system ruby-build-system) | ||
| 8630 | (arguments | ||
| 8631 | (list | ||
| 8632 | #:phases | ||
| 8633 | #~(modify-phases %standard-phases | ||
| 8634 | (add-after 'unpack 'sanitize-dependencies | ||
| 8635 | (lambda _ | ||
| 8636 | (substitute* "Rakefile" | ||
| 8637 | ((".*chandler/tasks.*") "")))) | ||
| 8638 | (add-after 'unpack 'skip-tmp-path-sensitive-test | ||
| 8639 | (lambda _ | ||
| 8640 | (substitute* "test/commands/where_test.rb" | ||
| 8641 | (("unless /cygwin\\|mswin\\|mingw\\|darwin/.*") | ||
| 8642 | "unless true\n")))) | ||
| 8643 | (add-before 'build 'compile | ||
| 8644 | (lambda _ | ||
| 8645 | (invoke "rake" "compile"))) | ||
| 8646 | (add-before 'check 'patch-tests | ||
| 8647 | (lambda _ | ||
| 8648 | ;; srand': no implicit conversion of nil into Integer (TypeError) | ||
| 8649 | (delete-file "test/minitest_runner_test.rb") | ||
| 8650 | ;; Expects 5, gets 162. From a file containing ~10 lines. | ||
| 8651 | (substitute* "test/commands/finish_test.rb" | ||
| 8652 | (("test_finish_inside_autoloaded_files") | ||
| 8653 | "finish_inside_autoloaded_files")))) | ||
| 8654 | (add-before 'check 'set-home | ||
| 8655 | (lambda _ | ||
| 8656 | (setenv "HOME" (getcwd))))))) | ||
| 8657 | (native-inputs | ||
| 8658 | (list bundler | ||
| 8659 | ruby-minitest | ||
| 8660 | ruby-pry | ||
| 8661 | ruby-rake-compiler | ||
| 8662 | ruby-rubocop | ||
| 8663 | ruby-yard)) | ||
| 8664 | (synopsis "Debugger for Ruby 2") | ||
| 8665 | (description "Byebug is a Ruby 2 debugger implemented using the Ruby 2 | ||
| 8666 | TracePoint C API for execution control and the Debug Inspector C API for call | ||
| 8667 | stack navigation. The core component provides support that front-ends can | ||
| 8668 | build on. It provides breakpoint handling and bindings for stack frames among | ||
| 8669 | other things and it comes with a command line interface.") | ||
| 8670 | (home-page "https://github.com/deivid-rodriguez/byebug") | ||
| 8671 | (license license:bsd-2))) | ||
| 8672 | |||
| 8673 | (define-public ruby-netrc | ||
| 8674 | (package | ||
| 8675 | (name "ruby-netrc") | ||
| 8676 | (version "0.11.0") | ||
| 8677 | (source (origin | ||
| 8678 | (method url-fetch) | ||
| 8679 | (uri (rubygems-uri "netrc" version)) | ||
| 8680 | (sha256 | ||
| 8681 | (base32 | ||
| 8682 | "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y")))) | ||
| 8683 | (build-system ruby-build-system) | ||
| 8684 | (arguments | ||
| 8685 | `(#:phases | ||
| 8686 | (modify-phases %standard-phases | ||
| 8687 | (replace 'check | ||
| 8688 | ;; There is no Rakefile and minitest can only run one file at once, | ||
| 8689 | ;; so we have to iterate over all test files. | ||
| 8690 | (lambda _ | ||
| 8691 | (for-each (lambda (file) | ||
| 8692 | (invoke "ruby" "-Itest" file)) | ||
| 8693 | (find-files "./test" "test_.*\\.rb")))) | ||
| 8694 | (add-before 'check 'patch-tests-for-newer-ruby | ||
| 8695 | (lambda _ | ||
| 8696 | (substitute* "test/test_netrc.rb" | ||
| 8697 | (("Dir.pwd, '.netrc'") "Netrc.home_path, '.netrc'"))))))) | ||
| 8698 | (native-inputs | ||
| 8699 | (list ruby-minitest)) | ||
| 8700 | (synopsis "Library to read and update netrc files") | ||
| 8701 | (description | ||
| 8702 | "This library can read and update netrc files, preserving formatting | ||
| 8703 | including comments and whitespace.") | ||
| 8704 | (home-page "https://github.com/geemus/netrc") | ||
| 8705 | (license license:expat))) | ||
| 8706 | |||
| 8707 | (define-public ruby-unf-ext | ||
| 8708 | (package | ||
| 8709 | (name "ruby-unf-ext") | ||
| 8710 | (version "0.0.8.2") | ||
| 8711 | (source (origin | ||
| 8712 | (method url-fetch) | ||
| 8713 | (uri (rubygems-uri "unf_ext" version)) | ||
| 8714 | (sha256 | ||
| 8715 | (base32 | ||
| 8716 | "1yj2nz2l101vr1x9w2k83a0fag1xgnmjwp8w8rw4ik2rwcz65fch")))) | ||
| 8717 | (build-system ruby-build-system) | ||
| 8718 | (arguments | ||
| 8719 | `(#:phases | ||
| 8720 | (modify-phases %standard-phases | ||
| 8721 | (add-after 'build 'build-ext | ||
| 8722 | (lambda _ (invoke "rake" "compile:unf_ext"))) | ||
| 8723 | (add-before 'check 'lose-rake-compiler-dock-dependency | ||
| 8724 | (lambda _ | ||
| 8725 | ;; rake-compiler-dock is listed in the gemspec, but only | ||
| 8726 | ;; required when cross-compiling. | ||
| 8727 | (substitute* "unf_ext.gemspec" | ||
| 8728 | ((".*rake-compiler-dock.*") ""))))))) | ||
| 8729 | (native-inputs | ||
| 8730 | (list bundler ruby-rake-compiler ruby-test-unit)) | ||
| 8731 | (synopsis "Unicode normalization form support library") | ||
| 8732 | (description | ||
| 8733 | "This package provides unicode normalization form support for Ruby.") | ||
| 8734 | (home-page "https://github.com/knu/ruby-unf_ext") | ||
| 8735 | (license license:expat))) | ||
| 8736 | |||
| 8737 | (define-public ruby-tdiff | ||
| 8738 | ;; Use a newer than released snapshot so that rspec-2 is not required. | ||
| 8739 | (let ((commit "b662a6048f08abc45c1a834e5f34dd1c662935e2")) | ||
| 8740 | (package | ||
| 8741 | (name "ruby-tdiff") | ||
| 8742 | (version (string-append "0.3.3-1." (string-take commit 8))) | ||
| 8743 | (source (origin | ||
| 8744 | (method git-fetch) | ||
| 8745 | (uri (git-reference | ||
| 8746 | (url "https://github.com/postmodern/tdiff") | ||
| 8747 | (commit commit))) | ||
| 8748 | (file-name (string-append name "-" version "-checkout")) | ||
| 8749 | (sha256 | ||
| 8750 | (base32 | ||
| 8751 | "0n3gq8rx49f7ln6zqlshqfg2mgqyy30rsdjlnki5mv307ykc7ad4")))) | ||
| 8752 | (build-system ruby-build-system) | ||
| 8753 | (native-inputs | ||
| 8754 | (list ruby-rspec ruby-yard/minimal ruby-rubygems-tasks)) | ||
| 8755 | (synopsis "Calculate the differences between two tree-like structures") | ||
| 8756 | (description | ||
| 8757 | "This library provides functions to calculate the differences between two | ||
| 8758 | tree-like structures. It is similar to Ruby's built-in @code{TSort} module.") | ||
| 8759 | (home-page "https://github.com/postmodern/tdiff") | ||
| 8760 | (license license:expat)))) | ||
| 8761 | |||
| 8762 | (define-public ruby-nokogiri-diff | ||
| 8763 | ;; Use a newer than released snapshot so that rspec-2 is not required. | ||
| 8764 | (let ((commit "a38491e4d8709b7406f2cae11a50226d927d06f5")) | ||
| 8765 | (package | ||
| 8766 | (name "ruby-nokogiri-diff") | ||
| 8767 | (version (string-append "0.2.0-1." (string-take commit 8))) | ||
| 8768 | (source (origin | ||
| 8769 | (method git-fetch) | ||
| 8770 | (uri (git-reference | ||
| 8771 | (url "https://github.com/postmodern/nokogiri-diff") | ||
| 8772 | (commit commit))) | ||
| 8773 | (file-name (string-append name "-" version "-checkout")) | ||
| 8774 | (sha256 | ||
| 8775 | (base32 | ||
| 8776 | "1ah2sfjh9n1p0ln2wkqzfl448ml7j4zfy6dhp1qgzq2m41php6rf")))) | ||
| 8777 | (build-system ruby-build-system) | ||
| 8778 | (propagated-inputs | ||
| 8779 | (list ruby-tdiff | ||
| 8780 | ruby-nokogiri)) | ||
| 8781 | (native-inputs | ||
| 8782 | (list ruby-rspec ruby-yard/minimal ruby-rubygems-tasks)) | ||
| 8783 | (synopsis "Calculate the differences between two XML/HTML documents") | ||
| 8784 | (description | ||
| 8785 | "@code{Nokogiri::Diff} adds the ability to calculate the | ||
| 8786 | differences (added or removed nodes) between two XML/HTML documents.") | ||
| 8787 | (home-page "https://github.com/postmodern/nokogiri-diff") | ||
| 8788 | (license license:expat)))) | ||
| 8789 | |||
| 8790 | (define-public ruby-racc | ||
| 8791 | (package | ||
| 8792 | (name "ruby-racc") | ||
| 8793 | (version "1.5.2") | ||
| 8794 | (source | ||
| 8795 | (origin | ||
| 8796 | (method url-fetch) | ||
| 8797 | (uri (rubygems-uri "racc" version)) | ||
| 8798 | (sha256 | ||
| 8799 | (base32 | ||
| 8800 | "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g")))) | ||
| 8801 | (build-system ruby-build-system) | ||
| 8802 | (arguments | ||
| 8803 | `(#:tests? #f)) ; Fails while parsing test instructions. | ||
| 8804 | (native-inputs | ||
| 8805 | (list ruby-hoe ruby-rake-compiler)) | ||
| 8806 | (synopsis "LALR(1) parser generator for Ruby") | ||
| 8807 | (description | ||
| 8808 | "Racc is a LALR(1) parser generator. It is written in Ruby itself, and | ||
| 8809 | generates Ruby program.") | ||
| 8810 | (home-page "https://i.loveruby.net/en/projects/racc/") | ||
| 8811 | (license (list | ||
| 8812 | ;; Generally licensed under the LGPL2.1, and some files also | ||
| 8813 | ;; available under the same license as Ruby. | ||
| 8814 | license:lgpl2.1 | ||
| 8815 | license:ruby)))) | ||
| 8816 | |||
| 8817 | (define-public ruby-rack | ||
| 8818 | (package | ||
| 8819 | (name "ruby-rack") | ||
| 8820 | ;; Do not upgrade to version 3, as Rails doesn't support it yet. | ||
| 8821 | (version "2.2.7") | ||
| 8822 | (source | ||
| 8823 | (origin | ||
| 8824 | (method git-fetch) ;for tests | ||
| 8825 | (uri (git-reference | ||
| 8826 | (url "https://github.com/rack/rack") | ||
| 8827 | (commit (string-append "v" version)))) | ||
| 8828 | (file-name (git-file-name name version)) | ||
| 8829 | (sha256 | ||
| 8830 | (base32 | ||
| 8831 | "02r41fr61x0jfhraizc6bsgs40p8mlpvnzix71zwmcvibg384ify")))) | ||
| 8832 | (build-system ruby-build-system) | ||
| 8833 | (arguments | ||
| 8834 | (list | ||
| 8835 | #:phases | ||
| 8836 | #~(modify-phases %standard-phases | ||
| 8837 | (add-before 'check 'fix-tests | ||
| 8838 | (lambda _ | ||
| 8839 | ;; This test fails in the build environment (and passes outside | ||
| 8840 | ;; of it). | ||
| 8841 | (substitute* "test/spec_files.rb" | ||
| 8842 | (("res.body.must_equal expected_body") "")) | ||
| 8843 | ;; A few of the tests use the length of a file on disk for | ||
| 8844 | ;; Content-Length and Content-Range headers. However, this file | ||
| 8845 | ;; has a shebang in it which an earlier phase patches, growing | ||
| 8846 | ;; the file size from 193 to 239 bytes when the store prefix is | ||
| 8847 | ;; "/gnu/store". | ||
| 8848 | (let ((size-diff (- (string-length (which "ruby")) | ||
| 8849 | (string-length "/usr/bin/env ruby")))) | ||
| 8850 | (substitute* '("test/spec_files.rb") | ||
| 8851 | (("208" bytes) | ||
| 8852 | (number->string (+ (string->number bytes) size-diff))) | ||
| 8853 | (("bytes(.)22-33" all delimiter) | ||
| 8854 | (string-append "bytes" | ||
| 8855 | delimiter | ||
| 8856 | (number->string (+ 22 size-diff)) | ||
| 8857 | "-" | ||
| 8858 | (number->string (+ 33 size-diff))))))))))) | ||
| 8859 | (native-inputs | ||
| 8860 | (list ruby-minitest | ||
| 8861 | ruby-minitest-global-expectations | ||
| 8862 | ruby-webrick)) | ||
| 8863 | (synopsis "Unified web application interface for Ruby") | ||
| 8864 | (description "Rack provides a minimal, modular and adaptable interface for | ||
| 8865 | developing web applications in Ruby. By wrapping HTTP requests and responses, | ||
| 8866 | it unifies the API for web servers, web frameworks, and software in between | ||
| 8867 | into a single method call.") | ||
| 8868 | (home-page "https://github.com/rack/rack") | ||
| 8869 | (license license:expat))) | ||
| 8870 | |||
| 8871 | (define-public ruby-rack-next | ||
| 8872 | (package | ||
| 8873 | (inherit ruby-rack) | ||
| 8874 | (name "ruby-rack") | ||
| 8875 | (version "3.0.7") | ||
| 8876 | (source (origin | ||
| 8877 | (method git-fetch) ;for tests | ||
| 8878 | (uri (git-reference | ||
| 8879 | (url "https://github.com/rack/rack") | ||
| 8880 | (commit (string-append "v" version)))) | ||
| 8881 | (file-name (git-file-name name version)) | ||
| 8882 | (sha256 | ||
| 8883 | (base32 | ||
| 8884 | "0msf14655nfcq1kgmib6932lgzm9nw3nb0m3c7nh6nj4sx30yxfr")))) | ||
| 8885 | (arguments '()))) | ||
| 8886 | |||
| 8887 | (define-public ruby-rackup | ||
| 8888 | (package | ||
| 8889 | (name "ruby-rackup") | ||
| 8890 | (version "2.1.0") | ||
| 8891 | (source (origin | ||
| 8892 | (method git-fetch) | ||
| 8893 | (uri (git-reference | ||
| 8894 | (url "https://github.com/rack/rackup") | ||
| 8895 | (commit (string-append "v" version)))) | ||
| 8896 | (file-name (git-file-name name version)) | ||
| 8897 | (sha256 | ||
| 8898 | (base32 | ||
| 8899 | "19b7sy700zjwaw7x47qpxvhnnz5hrp5bhrxfyljgagrli824dajy")))) | ||
| 8900 | (build-system ruby-build-system) | ||
| 8901 | (native-inputs (list ruby-minitest-global-expectations)) | ||
| 8902 | (inputs (list ruby-rack-next ruby-webrick)) | ||
| 8903 | (synopsis "Command line interface (CLI) for running for Rack applications") | ||
| 8904 | (description "This package provides a command line interface for running | ||
| 8905 | for Rack applications.") | ||
| 8906 | (home-page "https://github.com/rack/rackup") | ||
| 8907 | (license license:expat))) | ||
| 8908 | |||
| 8909 | (define-public ruby-rackup-1 | ||
| 8910 | (package | ||
| 8911 | (inherit ruby-rackup) | ||
| 8912 | (name "ruby-rackup") | ||
| 8913 | (version "1.0.1") | ||
| 8914 | (source (origin | ||
| 8915 | (method git-fetch) | ||
| 8916 | (uri (git-reference | ||
| 8917 | (url "https://github.com/rack/rackup") | ||
| 8918 | (commit (string-append "v" version)))) | ||
| 8919 | (file-name (git-file-name name version)) | ||
| 8920 | (sha256 | ||
| 8921 | (base32 | ||
| 8922 | "1xdfxsz7jx2gwfq212y9mca6q0i5s7kyqbfcscy1315awg57ynyp")))))) | ||
| 8923 | |||
| 8924 | (define-public ruby-rack-cache | ||
| 8925 | (package | ||
| 8926 | (name "ruby-rack-cache") | ||
| 8927 | (version "1.13.0") | ||
| 8928 | (source (origin | ||
| 8929 | (method url-fetch) | ||
| 8930 | (uri (rubygems-uri "rack-cache" version)) | ||
| 8931 | (sha256 | ||
| 8932 | (base32 | ||
| 8933 | "1cqpax628h2mhnsjfg91c3klxwx2pkvaj061cisb0saqa99b0jgm")))) | ||
| 8934 | (build-system ruby-build-system) | ||
| 8935 | (arguments | ||
| 8936 | (list | ||
| 8937 | ;; The test suite depends on ruby-memcached, which is not available in | ||
| 8938 | ;; Guix and bundles a very dated copy of memcached (undesirable). | ||
| 8939 | #:tests? #f)) | ||
| 8940 | (propagated-inputs (list ruby-rack)) | ||
| 8941 | (synopsis "Component to enable HTTP caching for Rack-based applications") | ||
| 8942 | (description "Rack::Cache is suitable as a drop-in component to enable | ||
| 8943 | HTTP caching for Rack-based applications that produce freshness (Expires, | ||
| 8944 | Cache-Control) and/or validation (Last-Modified, ETag) information.") | ||
| 8945 | (home-page "https://github.com/rtomayko/rack-cache") | ||
| 8946 | (license license:expat))) | ||
| 8947 | |||
| 8948 | (define-public ruby-rack-test | ||
| 8949 | (package | ||
| 8950 | (name "ruby-rack-test") | ||
| 8951 | (version "2.1.0") | ||
| 8952 | (source | ||
| 8953 | (origin | ||
| 8954 | (method url-fetch) | ||
| 8955 | (uri (rubygems-uri "rack-test" version)) | ||
| 8956 | (sha256 | ||
| 8957 | (base32 | ||
| 8958 | "1ysx29gk9k14a14zsp5a8czys140wacvp91fja8xcja0j1hzqq8c")))) | ||
| 8959 | (build-system ruby-build-system) | ||
| 8960 | (arguments | ||
| 8961 | ;; Disable tests because of circular dependencies: requires sinatra, | ||
| 8962 | ;; which requires rack-protection, which requires rack-test. Instead | ||
| 8963 | ;; simply require the library. | ||
| 8964 | `(#:phases | ||
| 8965 | (modify-phases %standard-phases | ||
| 8966 | (replace 'check | ||
| 8967 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 8968 | (when tests? | ||
| 8969 | (invoke "ruby" "-Ilib" "-r" "rack/test"))))))) | ||
| 8970 | (propagated-inputs | ||
| 8971 | (list ruby-rack)) | ||
| 8972 | (synopsis "Testing API for Rack applications") | ||
| 8973 | (description | ||
| 8974 | "Rack::Test is a small, simple testing API for Rack applications. It can | ||
| 8975 | be used on its own or as a reusable starting point for Web frameworks and | ||
| 8976 | testing libraries to build on.") | ||
| 8977 | (home-page "https://github.com/rack/rack-test") | ||
| 8978 | (license license:expat))) | ||
| 8979 | |||
| 8980 | (define-public ruby-rack-session | ||
| 8981 | (package | ||
| 8982 | (name "ruby-rack-session") | ||
| 8983 | ;; Stay on version 1 until all the rack users such as Rails can use rack 3 | ||
| 8984 | ;; (rack-session 2 requires rack 3). | ||
| 8985 | (version "1.0.1") | ||
| 8986 | (source (origin | ||
| 8987 | (method git-fetch) ;for tests | ||
| 8988 | (uri (git-reference | ||
| 8989 | (url "https://github.com/rack/rack-session") | ||
| 8990 | (commit (string-append "v" version)))) | ||
| 8991 | (file-name (git-file-name name version)) | ||
| 8992 | (sha256 | ||
| 8993 | (base32 | ||
| 8994 | "0rv955wd7ckp5jgy5c229wmajh48jpcy8s0iv5i8ma61wf7qw0i1")))) | ||
| 8995 | (build-system ruby-build-system) | ||
| 8996 | (native-inputs | ||
| 8997 | (list ruby-minitest-global-expectations | ||
| 8998 | ruby-minitest-sprint)) | ||
| 8999 | (propagated-inputs | ||
| 9000 | (list ruby-rack)) | ||
| 9001 | (synopsis "Session management for Rack") | ||
| 9002 | (description "This package provides a session management implementation | ||
| 9003 | for Rack.") | ||
| 9004 | (home-page "https://github.com/rack/rack-session") | ||
| 9005 | (license license:expat))) | ||
| 9006 | |||
| 9007 | (define-public ruby-rack-protection | ||
| 9008 | (package | ||
| 9009 | (name "ruby-rack-protection") | ||
| 9010 | (version "3.0.5") | ||
| 9011 | (source | ||
| 9012 | (origin | ||
| 9013 | (method url-fetch) | ||
| 9014 | (uri (rubygems-uri "rack-protection" version)) | ||
| 9015 | (sha256 | ||
| 9016 | (base32 | ||
| 9017 | "1a12m1mv8dc0g90fs1myvis8vsgr427k1arg1q4a9qlfw6fqyhis")))) | ||
| 9018 | (build-system ruby-build-system) | ||
| 9019 | (arguments | ||
| 9020 | '(;; Tests missing from the gem. | ||
| 9021 | #:tests? #f)) | ||
| 9022 | (propagated-inputs | ||
| 9023 | (list ruby-rack)) | ||
| 9024 | (native-inputs | ||
| 9025 | (list bundler ruby-rspec-2 ruby-rack-test)) | ||
| 9026 | (synopsis "Rack middleware that protects against typical web attacks") | ||
| 9027 | (description "Rack middleware that can be used to protect against typical | ||
| 9028 | web attacks. It can protect all Rack apps, including Rails. For instance, it | ||
| 9029 | protects against cross site request forgery, cross site scripting, | ||
| 9030 | clickjacking, directory traversal, session hijacking and IP spoofing.") | ||
| 9031 | (home-page "https://github.com/sinatra/sinatra/tree/master/rack-protection") | ||
| 9032 | (license license:expat))) | ||
| 9033 | |||
| 9034 | (define-public ruby-rainbow | ||
| 9035 | (package | ||
| 9036 | (name "ruby-rainbow") | ||
| 9037 | (version "3.0.0") | ||
| 9038 | (source | ||
| 9039 | (origin | ||
| 9040 | (method url-fetch) | ||
| 9041 | (uri (rubygems-uri "rainbow" version)) | ||
| 9042 | (sha256 | ||
| 9043 | (base32 | ||
| 9044 | "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk")))) | ||
| 9045 | (build-system ruby-build-system) | ||
| 9046 | (arguments | ||
| 9047 | '(#:phases | ||
| 9048 | (modify-phases %standard-phases | ||
| 9049 | ;; Run rspec directly, to avoid requiring Rubocop which is used from | ||
| 9050 | ;; the Rakefile. | ||
| 9051 | (replace 'check | ||
| 9052 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 9053 | (when tests? | ||
| 9054 | (invoke "rspec"))))))) | ||
| 9055 | (native-inputs | ||
| 9056 | (list bundler ruby-rspec)) | ||
| 9057 | (synopsis "Colorize printed text on ANSI terminals") | ||
| 9058 | (description | ||
| 9059 | "@code{rainbow} provides a string presenter object to colorize strings by | ||
| 9060 | wrapping them in ANSI escape codes.") | ||
| 9061 | (home-page "https://github.com/sickill/rainbow") | ||
| 9062 | (license license:expat))) | ||
| 9063 | |||
| 9064 | (define-public ruby-rr | ||
| 9065 | (package | ||
| 9066 | (name "ruby-rr") | ||
| 9067 | (version "1.2.1") | ||
| 9068 | (source | ||
| 9069 | (origin | ||
| 9070 | (method url-fetch) | ||
| 9071 | (uri (rubygems-uri "rr" version)) | ||
| 9072 | (sha256 | ||
| 9073 | (base32 | ||
| 9074 | "1n9g78ba4c2zzmz8cdb97c38h1xm0clircag00vbcxwqs4dq0ymp")))) | ||
| 9075 | (build-system ruby-build-system) | ||
| 9076 | (arguments | ||
| 9077 | '(#:tests? #f)) ; test files not included | ||
| 9078 | (native-inputs | ||
| 9079 | (list bundler ruby-rspec)) | ||
| 9080 | (synopsis "Ruby test double framework") | ||
| 9081 | (description | ||
| 9082 | "RR is a test double framework that features a rich selection of double | ||
| 9083 | techniques and a terse syntax.") | ||
| 9084 | (home-page "https://rr.github.io/rr/") | ||
| 9085 | (license license:expat))) | ||
| 9086 | |||
| 9087 | (define-public ruby-rest-client | ||
| 9088 | (package | ||
| 9089 | (name "ruby-rest-client") | ||
| 9090 | (version "2.1.0") | ||
| 9091 | (source | ||
| 9092 | (origin | ||
| 9093 | (method url-fetch) | ||
| 9094 | (uri (rubygems-uri "rest-client" version)) | ||
| 9095 | (sha256 | ||
| 9096 | (base32 | ||
| 9097 | "1qs74yzl58agzx9dgjhcpgmzfn61fqkk33k1js2y5yhlvc5l19im")))) | ||
| 9098 | (build-system ruby-build-system) | ||
| 9099 | (arguments | ||
| 9100 | (list | ||
| 9101 | ;; TODO Some tests are currently broken | ||
| 9102 | #:tests? #f | ||
| 9103 | #:phases | ||
| 9104 | #~(modify-phases %standard-phases | ||
| 9105 | (add-before 'check 'remove-unnecessary-development-dependencies | ||
| 9106 | (lambda _ | ||
| 9107 | (substitute* "rest-client.gemspec" | ||
| 9108 | ;; Remove rubocop as it's unused. Rubocop also indirectly | ||
| 9109 | ;; depends on this package through ruby-parser and ruby-ast so | ||
| 9110 | ;; this avoids a dependency loop. | ||
| 9111 | ((".*rubocop.*") "\n") | ||
| 9112 | ;; Remove pry as it's unused, it's a debugging tool | ||
| 9113 | ((".*pry.*") "\n") | ||
| 9114 | ;; Remove an unnecessarily strict rdoc dependency | ||
| 9115 | ((".*rdoc.*") "\n")))) | ||
| 9116 | (add-before 'check 'delete-network-dependent-tests | ||
| 9117 | (lambda _ | ||
| 9118 | (delete-file "spec/integration/request_spec.rb") | ||
| 9119 | (delete-file "spec/integration/httpbin_spec.rb"))) | ||
| 9120 | (replace 'check | ||
| 9121 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 9122 | (when tests? | ||
| 9123 | (invoke "rspec"))))))) | ||
| 9124 | (propagated-inputs | ||
| 9125 | (list ruby-http-accept-1 | ||
| 9126 | ruby-http-cookie | ||
| 9127 | ruby-mime-types | ||
| 9128 | ruby-netrc)) | ||
| 9129 | (native-inputs | ||
| 9130 | (list bundler | ||
| 9131 | ruby-webmock-2 | ||
| 9132 | ruby-rspec)) | ||
| 9133 | (synopsis "Simple HTTP and REST client for Ruby") | ||
| 9134 | (description | ||
| 9135 | "@code{rest-client} provides a simple HTTP and REST client for Ruby, | ||
| 9136 | inspired by the Sinatra microframework style of specifying actions: | ||
| 9137 | @code{get}, @code{put}, @code{post}, @code{delete}.") | ||
| 9138 | (home-page "https://github.com/rest-client/rest-client") | ||
| 9139 | (license license:expat))) | ||
| 9140 | |||
| 9141 | (define-public ruby-rubocop-ast | ||
| 9142 | (package | ||
| 9143 | (name "ruby-rubocop-ast") | ||
| 9144 | (version "1.37.0") | ||
| 9145 | (source | ||
| 9146 | (origin | ||
| 9147 | (method git-fetch) ;no test suite in distributed gem | ||
| 9148 | (uri (git-reference | ||
| 9149 | (url "https://github.com/rubocop/rubocop-ast") | ||
| 9150 | (commit (string-append "v" version)))) | ||
| 9151 | (file-name (git-file-name name version)) | ||
| 9152 | (sha256 | ||
| 9153 | (base32 | ||
| 9154 | "1ww1vxcx6qaih4g68mrbq4xlgrqbv8w7cqxdaz629sazpw2hkycs")))) | ||
| 9155 | (build-system ruby-build-system) | ||
| 9156 | (arguments | ||
| 9157 | `(#:test-target "spec" | ||
| 9158 | #:phases (modify-phases %standard-phases | ||
| 9159 | (add-after 'unpack 'relax-dependencies | ||
| 9160 | (lambda _ | ||
| 9161 | (substitute* "Gemfile" | ||
| 9162 | (("gem 'simplecov', '~> 0.10', '< 0.18'") | ||
| 9163 | "gem 'simplecov', '~> 0.10'")))) | ||
| 9164 | (add-before 'build 'generate-lexer | ||
| 9165 | (lambda _ | ||
| 9166 | (setenv "RUBOCOP_VERSION" "none") | ||
| 9167 | (invoke "rake" "generate"))) | ||
| 9168 | (replace 'replace-git-ls-files | ||
| 9169 | (lambda _ | ||
| 9170 | (substitute* "rubocop-ast.gemspec" | ||
| 9171 | (("`git ls-files(.*)`" _ files) | ||
| 9172 | (format #f "`find ~a -type f| sort`" files)))))))) | ||
| 9173 | (native-inputs | ||
| 9174 | (list ruby-bump | ||
| 9175 | ruby-oedipus-lex | ||
| 9176 | ruby-prism | ||
| 9177 | ruby-racc | ||
| 9178 | ruby-rake | ||
| 9179 | ruby-rspec | ||
| 9180 | ruby-simplecov)) | ||
| 9181 | (propagated-inputs | ||
| 9182 | (list ruby-parser)) | ||
| 9183 | (synopsis "RuboCop's AST extensions and NodePattern functionality") | ||
| 9184 | (description "Rubocop::AST extends @code{ruby-parser} with classes used | ||
| 9185 | by RuboCop to deal with Ruby's Abstract Syntax Tree (AST), in particular: | ||
| 9186 | @itemize | ||
| 9187 | @item @code{RuboCop::AST::Node} | ||
| 9188 | @item @code{RuboCop::AST::NodePattern} | ||
| 9189 | @end itemize") | ||
| 9190 | (home-page "https://rubocop.org/") | ||
| 9191 | (license license:expat))) | ||
| 9192 | |||
| 9193 | (define-public ruby-rexml | ||
| 9194 | (package | ||
| 9195 | (name "ruby-rexml") | ||
| 9196 | (version "3.2.5") | ||
| 9197 | (source | ||
| 9198 | (origin | ||
| 9199 | (method git-fetch) ;no tests in distributed gem | ||
| 9200 | (uri (git-reference | ||
| 9201 | (url "https://github.com/ruby/rexml") | ||
| 9202 | (commit (string-append "v" version)))) | ||
| 9203 | (file-name (git-file-name name version)) | ||
| 9204 | (sha256 | ||
| 9205 | (base32 "13n6vaa80drqic2wri4q6k22qzvsn683vp5s8c9dllil6x04kn0x")))) | ||
| 9206 | (build-system ruby-build-system) | ||
| 9207 | (synopsis "XML toolkit for Ruby") | ||
| 9208 | (description "Inspired by Electric XML library for Java, REXML aims to be | ||
| 9209 | easy-to-use API, small and fast. It supports both tree and stream document | ||
| 9210 | parsing.") | ||
| 9211 | (home-page "https://github.com/ruby/rexml") | ||
| 9212 | (license license:bsd-2))) | ||
| 9213 | |||
| 9214 | (define-public ruby-character-set | ||
| 9215 | (package | ||
| 9216 | (name "ruby-character-set") | ||
| 9217 | (version "1.4.0") | ||
| 9218 | (source | ||
| 9219 | (origin | ||
| 9220 | (method url-fetch) | ||
| 9221 | (uri (rubygems-uri "character_set" version)) | ||
| 9222 | (sha256 | ||
| 9223 | (base32 | ||
| 9224 | "0affq9n77vwy897ri2zhmfinfagf37hcwwimrccy1bcxan9mj3h3")))) | ||
| 9225 | (build-system ruby-build-system) | ||
| 9226 | (arguments '(#:tests? #f)) ;avoid a cycle with ruby-regexp-parser | ||
| 9227 | (synopsis "Ruby library to manipulate Unicode") | ||
| 9228 | (description "CharacterSet is a C-extended Ruby library to work with sets | ||
| 9229 | of Unicode code points. It can read and write these sets in various formats | ||
| 9230 | and implements the @code{stdlib} @code{Set} interface for them. It also | ||
| 9231 | offers an alternate paradigm of @code{String} processing which grants much | ||
| 9232 | better performance than @code{Regexp} and @code{String} methods from the | ||
| 9233 | @code{stdlib} where applicable. Many parts can be used independently, e.g.: | ||
| 9234 | @itemize | ||
| 9235 | @item @code{CharacterSet::Character} | ||
| 9236 | @item @code{CharacterSet::Parser} | ||
| 9237 | @item @code{CharacterSet::Writer} | ||
| 9238 | @item @code{RangeCompressor} | ||
| 9239 | @end itemize") | ||
| 9240 | (home-page "https://github.com/jaynetics/character_set") | ||
| 9241 | (license license:expat))) | ||
| 9242 | |||
| 9243 | (define-public ruby-range-compressor | ||
| 9244 | (package | ||
| 9245 | (name "ruby-range-compressor") | ||
| 9246 | (version "1.2.0") | ||
| 9247 | (source | ||
| 9248 | (origin | ||
| 9249 | (method git-fetch) | ||
| 9250 | (uri (git-reference | ||
| 9251 | (url "https://github.com/janosch-x/range_compressor") | ||
| 9252 | (commit (string-append "v" version)))) | ||
| 9253 | (file-name (git-file-name name version)) | ||
| 9254 | (sha256 | ||
| 9255 | (base32 | ||
| 9256 | "1zmc44si5ac2h7r1x4f1j8z5yr6wz528c7dssh0g70fmczs3pfga")))) | ||
| 9257 | (build-system ruby-build-system) | ||
| 9258 | (arguments | ||
| 9259 | (list | ||
| 9260 | #:test-target "spec" | ||
| 9261 | #:phases | ||
| 9262 | #~(modify-phases %standard-phases | ||
| 9263 | (add-after 'extract-gemspec 'strip-version-requirements | ||
| 9264 | (lambda _ | ||
| 9265 | (substitute* "range_compressor.gemspec" | ||
| 9266 | (("(.*add_.*dependency '[_A-Za-z0-9-]+').*" _ stripped) | ||
| 9267 | (string-append stripped "\n")))))))) | ||
| 9268 | (native-inputs | ||
| 9269 | (list ruby-rspec | ||
| 9270 | ruby-sorted-set)) | ||
| 9271 | (synopsis "Simple arrays of objects to arrays of ranges compressor") | ||
| 9272 | (description "RangeCompresses is a tiny library that allows compressing | ||
| 9273 | arrays of objects into arrays of ranges. For example, it can turn the | ||
| 9274 | following: @code{[1, 2, 3, 4, 6, 8, 9, 10]} into @code{[1..4, 6..6, 8..10]}.") | ||
| 9275 | (home-page "https://github.com/janosch-x/range_compressor") | ||
| 9276 | (license license:expat))) | ||
| 9277 | |||
| 9278 | (define-public ruby-regexp-property-values | ||
| 9279 | (let ((commit "03007a66c912949a7130b973cc0eca109c20811f") | ||
| 9280 | (revision "1")) | ||
| 9281 | (package | ||
| 9282 | (name "ruby-regexp-property-values") | ||
| 9283 | (version (git-version "1.0.0" revision commit)) | ||
| 9284 | (source | ||
| 9285 | (origin | ||
| 9286 | (method git-fetch) | ||
| 9287 | (uri (git-reference ;no test suite in distributed gem | ||
| 9288 | (url "https://github.com/jaynetics/regexp_property_values") | ||
| 9289 | (commit commit))) | ||
| 9290 | (file-name (git-file-name name version)) | ||
| 9291 | (sha256 | ||
| 9292 | (base32 | ||
| 9293 | "1zsax784p16zdkf60lyq9z924zvsafhx9ckxx9srsgkyiqrifi1s")))) | ||
| 9294 | (build-system ruby-build-system) | ||
| 9295 | (arguments | ||
| 9296 | '(#:test-target "default")) | ||
| 9297 | (native-inputs | ||
| 9298 | (list ruby-character-set ruby-rake ruby-rake-compiler | ||
| 9299 | ruby-range-compressor ruby-rspec)) | ||
| 9300 | (synopsis "Inspect Ruby's regex engine property values") | ||
| 9301 | (description "This small library lets you see which property values are | ||
| 9302 | supported by the regular expression engine of the Ruby version you are running | ||
| 9303 | and can directly read out their code point ranges. In other words, it | ||
| 9304 | determines all supported values for @code{\\p{value}} expressions and what | ||
| 9305 | they match.") | ||
| 9306 | (home-page "https://github.com/jaynetics/regexp_property_values") | ||
| 9307 | (license license:expat)))) | ||
| 9308 | |||
| 9309 | (define-public ruby-regexp-parser | ||
| 9310 | (package | ||
| 9311 | (name "ruby-regexp-parser") | ||
| 9312 | (version "2.6.0") | ||
| 9313 | (source | ||
| 9314 | (origin | ||
| 9315 | (method git-fetch) ;bin/test missing from gem | ||
| 9316 | (uri (git-reference | ||
| 9317 | (url "https://github.com/ammar/regexp_parser") | ||
| 9318 | (commit (string-append "v" version)))) | ||
| 9319 | (file-name (git-file-name name version)) | ||
| 9320 | (sha256 | ||
| 9321 | (base32 | ||
| 9322 | "07dx96gjvpa07dsdnzpwhhwc7qpxakjgws7d7wbnkbs20fyvx55x")))) | ||
| 9323 | (build-system ruby-build-system) | ||
| 9324 | (arguments | ||
| 9325 | '(#:test-target "default" | ||
| 9326 | #:phases (modify-phases %standard-phases | ||
| 9327 | (add-before 'build 'compile-scanner.rb | ||
| 9328 | (lambda _ | ||
| 9329 | (invoke "rake" "build") | ||
| 9330 | ;; XXX: This is needed otherwise the install | ||
| 9331 | ;; phase fails to delete the installed cached | ||
| 9332 | ;; gem file. | ||
| 9333 | (delete-file-recursively "pkg")))))) | ||
| 9334 | (native-inputs | ||
| 9335 | (list ragel ruby-ice-nine ruby-regexp-property-values ruby-rspec)) | ||
| 9336 | (synopsis "Regular expression parser library for Ruby") | ||
| 9337 | (description "A Ruby gem for tokenizing, parsing, and transforming regular | ||
| 9338 | expressions. It comprises the following components: | ||
| 9339 | @itemize | ||
| 9340 | @item A scanner/tokenizer based on Ragel, | ||
| 9341 | @item A lexer that produces a stream of token objects, | ||
| 9342 | @item A parser that produces a tree of Expression objects. | ||
| 9343 | @end itemize") | ||
| 9344 | (home-page "https://github.com/ammar/regexp_parser") | ||
| 9345 | (license license:expat))) | ||
| 9346 | |||
| 9347 | (define-public ruby-test-queue | ||
| 9348 | (package | ||
| 9349 | (name "ruby-test-queue") | ||
| 9350 | (version "0.4.2") | ||
| 9351 | (source | ||
| 9352 | (origin | ||
| 9353 | (method url-fetch) | ||
| 9354 | (uri (rubygems-uri "test-queue" version)) | ||
| 9355 | (sha256 | ||
| 9356 | (base32 | ||
| 9357 | "0hvm3n1qrqxqilhqk4rjivw3gcrd08zz1i6am9qzg1ppjxv6f36f")))) | ||
| 9358 | (build-system ruby-build-system) | ||
| 9359 | (arguments | ||
| 9360 | '(#:phases | ||
| 9361 | (modify-phases %standard-phases | ||
| 9362 | (replace 'check | ||
| 9363 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 9364 | (when tests? | ||
| 9365 | (invoke "rspec"))))))) | ||
| 9366 | (native-inputs | ||
| 9367 | (list ruby-rspec)) | ||
| 9368 | (synopsis "Minitest/RSpec parallel test runner for CI environments") | ||
| 9369 | (description "The test-queue module is a parallel test runner, | ||
| 9370 | built using a centralized queue to ensure optimal distribution of | ||
| 9371 | tests between workers. It is specifically optimized for Continuous | ||
| 9372 | Integration (CI) environments: build statistics from each run are | ||
| 9373 | stored locally and used to sort the queue at the beginning of the next | ||
| 9374 | run.") | ||
| 9375 | (home-page "https://github.com/tmm1/test-queue") | ||
| 9376 | (license license:expat))) | ||
| 9377 | |||
| 9378 | (define-public ruby-rubocop | ||
| 9379 | (package | ||
| 9380 | (name "ruby-rubocop") | ||
| 9381 | (version "1.68.0") | ||
| 9382 | (source | ||
| 9383 | (origin | ||
| 9384 | (method git-fetch) ;no tests in distributed gem | ||
| 9385 | (uri (git-reference | ||
| 9386 | (url "https://github.com/rubocop/rubocop") | ||
| 9387 | (commit (string-append "v" version)))) | ||
| 9388 | (file-name (git-file-name name version)) | ||
| 9389 | (sha256 | ||
| 9390 | (base32 | ||
| 9391 | "0pfsrgkg2dhb6a2rknciqskgxgmb9kf48rvbkhay9n8n6m712v2w")))) | ||
| 9392 | (build-system ruby-build-system) | ||
| 9393 | (arguments | ||
| 9394 | `(#:test-target "default" | ||
| 9395 | ;; TODO: Figure out why test hangs. | ||
| 9396 | #:tests? ,(not (or (%current-target-system) | ||
| 9397 | (target-riscv64?))) | ||
| 9398 | #:phases | ||
| 9399 | (modify-phases %standard-phases | ||
| 9400 | (add-before 'check 'set-home | ||
| 9401 | (lambda _ | ||
| 9402 | (setenv "HOME" (getcwd)))) | ||
| 9403 | ;; Rubocop depends on itself for tests, directly and indirectly. By | ||
| 9404 | ;; regenerating the TODO list we test rubocop against itself and | ||
| 9405 | ;; forgo adjusting the test suite to our environment each release. | ||
| 9406 | (replace 'check | ||
| 9407 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 9408 | (when tests? | ||
| 9409 | (make-file-writable ".rubocop_todo.yml") | ||
| 9410 | (invoke "./exe/rubocop" "--auto-gen-config"))))))) | ||
| 9411 | (native-inputs | ||
| 9412 | (list ruby-pry | ||
| 9413 | ruby-rake | ||
| 9414 | ruby-rspec | ||
| 9415 | ruby-rubocop-ast | ||
| 9416 | ruby-rubocop-capybara-minimal | ||
| 9417 | ruby-rubocop-factory-bot | ||
| 9418 | ruby-rubocop-minimal | ||
| 9419 | ruby-rubocop-performance-minimal | ||
| 9420 | ruby-rubocop-rake-minimal | ||
| 9421 | ruby-rubocop-rspec-minimal | ||
| 9422 | ruby-simplecov | ||
| 9423 | ruby-stackprof | ||
| 9424 | ruby-test-queue | ||
| 9425 | ruby-webmock | ||
| 9426 | ruby-yard)) | ||
| 9427 | (propagated-inputs | ||
| 9428 | (list ruby-json | ||
| 9429 | ruby-language-server-protocol | ||
| 9430 | ruby-parallel | ||
| 9431 | ruby-parser | ||
| 9432 | ruby-progressbar | ||
| 9433 | ruby-rainbow | ||
| 9434 | ruby-regexp-parser | ||
| 9435 | ruby-rexml | ||
| 9436 | ruby-rubocop-ast | ||
| 9437 | ruby-unicode-display-width)) | ||
| 9438 | (synopsis "Ruby code style checking tool") | ||
| 9439 | (description | ||
| 9440 | "@code{rubocop} is a Ruby code style checking tool. It aims to enforce | ||
| 9441 | the community-driven Ruby Style Guide.") | ||
| 9442 | (home-page "https://github.com/rubocop/rubocop") | ||
| 9443 | (license license:expat))) | ||
| 9444 | |||
| 9445 | (define-public ruby-rubocop-minimal | ||
| 9446 | (hidden-package | ||
| 9447 | (package | ||
| 9448 | (inherit ruby-rubocop) | ||
| 9449 | (arguments | ||
| 9450 | (substitute-keyword-arguments (package-arguments ruby-rubocop) | ||
| 9451 | ((#:tests? _ #f) #f))) | ||
| 9452 | (propagated-inputs '()) | ||
| 9453 | (native-inputs '())))) | ||
| 9454 | |||
| 9455 | (define-public ruby-contest | ||
| 9456 | (package | ||
| 9457 | (name "ruby-contest") | ||
| 9458 | (version "0.1.3") | ||
| 9459 | (source | ||
| 9460 | (origin | ||
| 9461 | (method url-fetch) | ||
| 9462 | (uri (rubygems-uri "contest" version)) | ||
| 9463 | (sha256 | ||
| 9464 | (base32 | ||
| 9465 | "1p9f2292b7b0fbrcjswvj9v01z7ig5ig52328wyqcabgb553qsdf")))) | ||
| 9466 | (build-system ruby-build-system) | ||
| 9467 | (synopsis "Write declarative tests using nested contexts") | ||
| 9468 | (description | ||
| 9469 | "Contest allows writing declarative @code{Test::Unit} tests using nested | ||
| 9470 | contexts without performance penalties.") | ||
| 9471 | (home-page "https://github.com/citrusbyte/contest") | ||
| 9472 | (license license:expat))) | ||
| 9473 | |||
| 9474 | (define-public ruby-creole | ||
| 9475 | (package | ||
| 9476 | (name "ruby-creole") | ||
| 9477 | (version "0.5.0") | ||
| 9478 | (source | ||
| 9479 | (origin | ||
| 9480 | (method url-fetch) | ||
| 9481 | (uri (rubygems-uri "creole" version)) | ||
| 9482 | (sha256 | ||
| 9483 | (base32 | ||
| 9484 | "00rcscz16idp6dx0dk5yi5i0fz593i3r6anbn5bg2q07v3i025wm")))) | ||
| 9485 | (build-system ruby-build-system) | ||
| 9486 | (native-inputs | ||
| 9487 | (list ruby-bacon)) | ||
| 9488 | (synopsis "Creole markup language converter") | ||
| 9489 | (description | ||
| 9490 | "Creole is a lightweight markup language and this library for converting | ||
| 9491 | creole to @code{HTML}.") | ||
| 9492 | (home-page "https://github.com/minad/creole") | ||
| 9493 | (license license:ruby))) | ||
| 9494 | |||
| 9495 | (define-public ruby-docile | ||
| 9496 | (package | ||
| 9497 | (name "ruby-docile") | ||
| 9498 | (version "1.1.5") | ||
| 9499 | (source | ||
| 9500 | (origin | ||
| 9501 | (method url-fetch) | ||
| 9502 | (uri (rubygems-uri "docile" version)) | ||
| 9503 | (sha256 | ||
| 9504 | (base32 | ||
| 9505 | "0m8j31whq7bm5ljgmsrlfkiqvacrw6iz9wq10r3gwrv5785y8gjx")))) | ||
| 9506 | (build-system ruby-build-system) | ||
| 9507 | (arguments | ||
| 9508 | '(#:tests? #f)) ; needs github-markup, among others | ||
| 9509 | (synopsis "Ruby EDSL helper library") | ||
| 9510 | (description "Docile is a Ruby library that provides an interface for | ||
| 9511 | creating embedded domain specific languages (EDSLs) that manipulate existing | ||
| 9512 | Ruby classes.") | ||
| 9513 | (home-page "https://ms-ati.github.io/docile/") | ||
| 9514 | (license license:expat))) | ||
| 9515 | |||
| 9516 | (define-public ruby-middleware | ||
| 9517 | (package | ||
| 9518 | (name "ruby-middleware") | ||
| 9519 | (version "0.1.0") | ||
| 9520 | (source | ||
| 9521 | (origin | ||
| 9522 | (method url-fetch) | ||
| 9523 | (uri (rubygems-uri "middleware" version)) | ||
| 9524 | (sha256 | ||
| 9525 | (base32 | ||
| 9526 | "0703nkf2v371wqr41c04x5qid7ww45cxqv3hnlg07if3b3xrm9xl")))) | ||
| 9527 | (build-system ruby-build-system) | ||
| 9528 | (arguments '(#:tests? #f)) ;no test suite | ||
| 9529 | (synopsis "Implementation of a middleware abstraction for Ruby") | ||
| 9530 | (description "Middleware is a generalized implementation of a middleware | ||
| 9531 | abstraction for Ruby.") | ||
| 9532 | (home-page "https://github.com/mitchellh/middleware") | ||
| 9533 | (license license:expat))) | ||
| 9534 | |||
| 9535 | (define-public ruby-benchmark-ips | ||
| 9536 | (package | ||
| 9537 | (name "ruby-benchmark-ips") | ||
| 9538 | (version "2.12.0") | ||
| 9539 | (source | ||
| 9540 | (origin | ||
| 9541 | (method git-fetch) ;no tests in distributed gem | ||
| 9542 | (uri (git-reference | ||
| 9543 | (url "https://github.com/evanphx/benchmark-ips") | ||
| 9544 | (commit (string-append "v" version)))) | ||
| 9545 | (file-name (git-file-name name version)) | ||
| 9546 | (sha256 | ||
| 9547 | (base32 | ||
| 9548 | "19pa2a1lgjzrxcz6vxwfiq5qq337vr15bbbpc2mfwzljdlx5059s")))) | ||
| 9549 | (build-system ruby-build-system) | ||
| 9550 | (arguments | ||
| 9551 | (list | ||
| 9552 | #:phases | ||
| 9553 | #~(modify-phases %standard-phases | ||
| 9554 | (add-after 'unpack 'patch | ||
| 9555 | (lambda _ | ||
| 9556 | (substitute* "Gemfile" | ||
| 9557 | (("gem 'rake'.*") | ||
| 9558 | "gem 'rake'")) | ||
| 9559 | (substitute* "benchmark-ips.gemspec" | ||
| 9560 | (("git ls-files -- examples lib") | ||
| 9561 | "find examples lib -type f | sort"))))))) | ||
| 9562 | (native-inputs | ||
| 9563 | (list ruby-hoe)) | ||
| 9564 | (synopsis "Iterations per second enhancement for the Ruby Benchmark module") | ||
| 9565 | (description "Benchmark-ips enhances the Ruby Benchmark module with the | ||
| 9566 | iterations per second count. For short snippets of code, it can automatically | ||
| 9567 | figure out how many times to run the code to get interesting data.") | ||
| 9568 | (home-page "https://github.com/evanphx/benchmark-ips") | ||
| 9569 | (license license:expat))) | ||
| 9570 | |||
| 9571 | (define-public ruby-ffi-rzmq-core | ||
| 9572 | (package | ||
| 9573 | (name "ruby-ffi-rzmq-core") | ||
| 9574 | (version "1.0.7") | ||
| 9575 | (source | ||
| 9576 | (origin | ||
| 9577 | (method url-fetch) | ||
| 9578 | (uri (rubygems-uri "ffi-rzmq-core" version)) | ||
| 9579 | (sha256 | ||
| 9580 | (base32 | ||
| 9581 | "0amkbvljpjfnv0jpdmz71p1i3mqbhyrnhamjn566w0c01xd64hb5")))) | ||
| 9582 | (build-system ruby-build-system) | ||
| 9583 | (arguments | ||
| 9584 | `(#:phases | ||
| 9585 | (modify-phases %standard-phases | ||
| 9586 | (add-after 'unpack 'patch-libzmq-search-path | ||
| 9587 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 9588 | (let ((zeromq (assoc-ref inputs "zeromq"))) | ||
| 9589 | (substitute* "lib/ffi-rzmq-core/libzmq.rb" | ||
| 9590 | (("/usr/local/lib") | ||
| 9591 | (string-append zeromq "/lib")))))) | ||
| 9592 | (replace 'check | ||
| 9593 | (lambda _ | ||
| 9594 | (invoke "rspec")))))) | ||
| 9595 | (native-inputs | ||
| 9596 | (list ruby-rspec)) | ||
| 9597 | (inputs | ||
| 9598 | (list zeromq)) | ||
| 9599 | (propagated-inputs (list ruby-ffi)) | ||
| 9600 | (synopsis "Low-level Ruby FFI wrapper for the ZeroMQ networking library") | ||
| 9601 | (description "This library only provides the FFI wrapper for the ZeroMQ | ||
| 9602 | networking library. It can be used to implement a Ruby API for the ZeroMQ | ||
| 9603 | library.") | ||
| 9604 | (home-page "https://github.com/chuckremes/ffi-rzmq-core") | ||
| 9605 | (license license:expat))) | ||
| 9606 | |||
| 9607 | (define-public ruby-ffi-rzmq | ||
| 9608 | (package | ||
| 9609 | (name "ruby-ffi-rzmq") | ||
| 9610 | (version "2.0.7") | ||
| 9611 | (source | ||
| 9612 | (origin | ||
| 9613 | (method url-fetch) | ||
| 9614 | (uri (rubygems-uri "ffi-rzmq" version)) | ||
| 9615 | (sha256 | ||
| 9616 | (base32 | ||
| 9617 | "14a5kxfnf8l3ngyk8hgmk30z07aj1324ll8i48z67ps6pz2kpsrg")))) | ||
| 9618 | (build-system ruby-build-system) | ||
| 9619 | (arguments '(#:phases (modify-phases %standard-phases | ||
| 9620 | (replace 'check | ||
| 9621 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 9622 | (when tests? | ||
| 9623 | (invoke "rspec"))))))) | ||
| 9624 | (native-inputs | ||
| 9625 | (list ruby-rspec)) | ||
| 9626 | (propagated-inputs | ||
| 9627 | (list ruby-ffi-rzmq-core)) | ||
| 9628 | (synopsis "High-level Ruby wrapper for the ZeroMQ networking library") | ||
| 9629 | (description "This library provides a high-level API that wraps the ZeroMQ | ||
| 9630 | networking library using the Ruby foreign function interface (FFI). It is a | ||
| 9631 | pure Ruby wrapper, hence is compatible with any Ruby runtime that has support | ||
| 9632 | for FFI.") | ||
| 9633 | (home-page "https://github.com/chuckremes/ffi-rzmq") | ||
| 9634 | (license license:expat))) | ||
| 9635 | |||
| 9636 | (define-public ruby-sawyer | ||
| 9637 | (package | ||
| 9638 | (name "ruby-sawyer") | ||
| 9639 | (version "0.9.2") | ||
| 9640 | (source | ||
| 9641 | (origin | ||
| 9642 | (method url-fetch) | ||
| 9643 | (uri (rubygems-uri "sawyer" version)) | ||
| 9644 | (sha256 | ||
| 9645 | (base32 | ||
| 9646 | "1jks1qjbmqm8f9kvwa81vqj39avaj9wdnzc531xm29a55bb74fps")))) | ||
| 9647 | (build-system ruby-build-system) | ||
| 9648 | (propagated-inputs | ||
| 9649 | (list ruby-addressable ruby-faraday)) | ||
| 9650 | (synopsis "Experimental hypermedia agent for Ruby") | ||
| 9651 | (description "Sawyer is an experimental hypermedia agent for Ruby built on | ||
| 9652 | top of Faraday.") | ||
| 9653 | (home-page "https://github.com/lostisland/sawyer") | ||
| 9654 | (license license:expat))) | ||
| 9655 | |||
| 9656 | (define-public ruby-octokit | ||
| 9657 | (package | ||
| 9658 | (name "ruby-octokit") | ||
| 9659 | (version "6.1.1") | ||
| 9660 | (source (origin | ||
| 9661 | (method git-fetch) | ||
| 9662 | (uri (git-reference | ||
| 9663 | (url "https://github.com/octokit/octokit.rb") | ||
| 9664 | (commit (string-append "v" version)))) | ||
| 9665 | (file-name (git-file-name name version)) | ||
| 9666 | (sha256 | ||
| 9667 | (base32 | ||
| 9668 | "02bcmh0b0v80cis1l80lhzxw8adb69xkz6qgg4m7qcmj3y5arwmk")))) | ||
| 9669 | (build-system ruby-build-system) | ||
| 9670 | (arguments | ||
| 9671 | (list | ||
| 9672 | #:phases | ||
| 9673 | #~(modify-phases %standard-phases | ||
| 9674 | (add-after 'unpack 'remove-unnecessary-dependencies | ||
| 9675 | (lambda _ | ||
| 9676 | (substitute* "spec/spec_helper.rb" | ||
| 9677 | (("require 'pry-byebug'") ""))))))) | ||
| 9678 | (native-inputs | ||
| 9679 | (list ruby-faraday-multipart | ||
| 9680 | ruby-jwt | ||
| 9681 | ruby-mime-types | ||
| 9682 | ruby-multi-json | ||
| 9683 | ruby-netrc | ||
| 9684 | ruby-rbnacl | ||
| 9685 | ruby-rspec | ||
| 9686 | ruby-simplecov | ||
| 9687 | ruby-webmock | ||
| 9688 | ruby-vcr-expat)) | ||
| 9689 | (propagated-inputs (list ruby-faraday ruby-sawyer)) | ||
| 9690 | (synopsis "Ruby toolkit for the GitHub API") | ||
| 9691 | (description "Octokit wraps the GitHub API in a flat API client that | ||
| 9692 | follows Ruby conventions and requires little knowledge of REST.") | ||
| 9693 | (home-page "https://github.com/octokit/octokit.rb") | ||
| 9694 | (license license:expat))) | ||
| 9695 | |||
| 9696 | (define-public ruby-hashicorp-checkpoint | ||
| 9697 | (package | ||
| 9698 | (name "ruby-hashicorp-checkpoint") | ||
| 9699 | (version "0.1.5") | ||
| 9700 | (source (origin | ||
| 9701 | (method url-fetch) | ||
| 9702 | (uri (rubygems-uri "hashicorp-checkpoint" version)) | ||
| 9703 | (sha256 | ||
| 9704 | (base32 | ||
| 9705 | "1z6mwzvd7p2wqhmk07dwrhvm0ncgqm7pxn0pr2k025rwsspp9bsd")))) | ||
| 9706 | (build-system ruby-build-system) | ||
| 9707 | (arguments | ||
| 9708 | (list #:tests? #f)) ;; no need to test, useless outside HashiCorp anyway | ||
| 9709 | (synopsis "Internal HashiCorp service to check version information") | ||
| 9710 | (description "This package is probably useless outside of internal | ||
| 9711 | HashiCorp use. It is open source for disclosure and because HashiCorp's open | ||
| 9712 | source projects must be able to link to it.") | ||
| 9713 | (home-page "https://github.com/hashicorp/ruby-checkpoint") | ||
| 9714 | (license license:mpl2.0))) | ||
| 9715 | |||
| 9716 | (define-public ruby-vagrant-cloud | ||
| 9717 | (package | ||
| 9718 | (name "ruby-vagrant-cloud") | ||
| 9719 | (version "3.1.1") | ||
| 9720 | (source (origin | ||
| 9721 | (method git-fetch) | ||
| 9722 | (uri (git-reference | ||
| 9723 | (url "https://github.com/hashicorp/vagrant_cloud") | ||
| 9724 | (commit (string-append "v" version)))) | ||
| 9725 | (file-name (git-file-name name version)) | ||
| 9726 | (sha256 | ||
| 9727 | (base32 | ||
| 9728 | "0bnjd8b86lrgj5ar1l7pg5if95bv0sxa75mz7x2ikqyz6q8rmjb3")))) | ||
| 9729 | (build-system ruby-build-system) | ||
| 9730 | (arguments | ||
| 9731 | `(#:test-target "spec")) | ||
| 9732 | (native-inputs (list ruby-rspec ruby-webmock)) | ||
| 9733 | (propagated-inputs (list ruby-excon ruby-log4r ruby-rexml)) | ||
| 9734 | (synopsis "Vagrant Cloud API library") | ||
| 9735 | (description "This library provides the functionality to create, modify, | ||
| 9736 | and delete boxes, versions, and providers on HashiCorp's Vagrant Cloud.") | ||
| 9737 | (home-page "https://github.com/hashicorp/vagrant_cloud") | ||
| 9738 | (license license:asl2.0))) | ||
| 9739 | |||
| 9740 | (define-public ruby-libvirt | ||
| 9741 | (package | ||
| 9742 | (name "ruby-libvirt") | ||
| 9743 | (version "0.8.2") | ||
| 9744 | (source (origin | ||
| 9745 | (method url-fetch) | ||
| 9746 | (uri (rubygems-uri "ruby-libvirt" version)) | ||
| 9747 | (sha256 | ||
| 9748 | (base32 | ||
| 9749 | "0v6vj5vs9v01zr00bflqpfczhwcyc6jdf8k2dqn42lq6d87si77d")))) | ||
| 9750 | (build-system ruby-build-system) | ||
| 9751 | (arguments | ||
| 9752 | (list | ||
| 9753 | #:tests? #f)) ; tests require access to libvirt socket | ||
| 9754 | (native-inputs (list pkg-config)) | ||
| 9755 | (inputs (list libvirt)) | ||
| 9756 | (synopsis "Ruby bindings for libvirt") | ||
| 9757 | (description "This package provides Ruby language binding for libvirt's | ||
| 9758 | native C API.") | ||
| 9759 | (home-page "https://ruby.libvirt.org/") | ||
| 9760 | (license license:lgpl2.1+))) | ||
| 9761 | |||
| 9762 | (define-public ruby-fog-core | ||
| 9763 | (package | ||
| 9764 | (name "ruby-fog-core") | ||
| 9765 | (version "2.4.0") | ||
| 9766 | (source (origin | ||
| 9767 | (method git-fetch) ; for tests | ||
| 9768 | (uri (git-reference | ||
| 9769 | (url "https://github.com/fog/fog-core") | ||
| 9770 | (commit (string-append "v" version)))) | ||
| 9771 | (file-name (git-file-name name version)) | ||
| 9772 | (sha256 | ||
| 9773 | (base32 | ||
| 9774 | "184vpi81az7raz98652m7d98ikabdl9di37dgal0adr76q57j03c")))) | ||
| 9775 | (build-system ruby-build-system) | ||
| 9776 | (arguments | ||
| 9777 | (list | ||
| 9778 | #:phases | ||
| 9779 | #~(modify-phases %standard-phases | ||
| 9780 | (add-before 'check 'set-home | ||
| 9781 | (lambda _ | ||
| 9782 | (setenv "HOME" "/tmp")))))) | ||
| 9783 | (native-inputs (list ruby-minitest-stub-const)) | ||
| 9784 | (propagated-inputs (list ruby-builder ruby-excon ruby-formatador | ||
| 9785 | ruby-mime-types)) | ||
| 9786 | (synopsis "Shared classes and tests for fog providers and services") | ||
| 9787 | (description "@code{fog} is a Ruby cloud services library. This package | ||
| 9788 | provides shared classes and tests for @code{fog} providers and services.") | ||
| 9789 | (home-page "https://github.com/fog/fog-core") | ||
| 9790 | (license license:expat))) | ||
| 9791 | |||
| 9792 | (define-public ruby-fog-json | ||
| 9793 | (package | ||
| 9794 | (name "ruby-fog-json") | ||
| 9795 | (version "1.2.0") | ||
| 9796 | (source (origin | ||
| 9797 | (method git-fetch) ; for tests | ||
| 9798 | (uri (git-reference | ||
| 9799 | (url "https://github.com/fog/fog-json") | ||
| 9800 | (commit (string-append "v" version)))) | ||
| 9801 | (file-name (git-file-name name version)) | ||
| 9802 | (sha256 | ||
| 9803 | (base32 | ||
| 9804 | "0f4hbmhy22b1gbkzd3pnj5xvljp6bl7inc2y4fxh29nrmcn4pgb0")))) | ||
| 9805 | (build-system ruby-build-system) | ||
| 9806 | (native-inputs (list ruby-minitest)) | ||
| 9807 | (propagated-inputs (list ruby-fog-core ruby-multi-json)) | ||
| 9808 | (synopsis "JSON parsing tools used by @code{fog} providers") | ||
| 9809 | (description "This package containse the JSON parsing tools shared between | ||
| 9810 | a number of providers in the @code{fog} gem. @code{fog} is a Ruby cloud | ||
| 9811 | services library.") | ||
| 9812 | (home-page "https://github.com/fog/fog-json") | ||
| 9813 | (license license:expat))) | ||
| 9814 | |||
| 9815 | (define-public ruby-fog-xml | ||
| 9816 | (package | ||
| 9817 | (name "ruby-fog-xml") | ||
| 9818 | (version "0.1.5") | ||
| 9819 | (source (origin | ||
| 9820 | (method git-fetch) ; for tests | ||
| 9821 | (uri (git-reference | ||
| 9822 | (url "https://github.com/fog/fog-xml") | ||
| 9823 | (commit (string-append "v" version)))) | ||
| 9824 | (file-name (git-file-name name version)) | ||
| 9825 | (sha256 | ||
| 9826 | (base32 | ||
| 9827 | "1v896k9j44axhgvwjvk1j0amy27a9fm6ynv656fxqa1m2wib6dzh")))) | ||
| 9828 | (build-system ruby-build-system) | ||
| 9829 | (arguments | ||
| 9830 | (list | ||
| 9831 | #:phases | ||
| 9832 | #~(modify-phases %standard-phases | ||
| 9833 | ;; Run tests via bundler so rake picks up the minitest gem from | ||
| 9834 | ;; native-inputs, not the one installed otherwise. This is required | ||
| 9835 | ;; since turn@0.9.7 needs minitest@4 and can not be upgraded to | ||
| 9836 | ;; minitest@5. | ||
| 9837 | (replace 'check | ||
| 9838 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 9839 | (when tests? | ||
| 9840 | (invoke "bundle" "exec" "rake"))))))) | ||
| 9841 | (native-inputs (list ruby-minitest ruby-pry ruby-coveralls)) | ||
| 9842 | (propagated-inputs (list ruby-fog-core ruby-nokogiri)) | ||
| 9843 | (synopsis "XML parsing tools used by @code{fog} providers") | ||
| 9844 | (description "This package containse the XML parsing tools shared between | ||
| 9845 | a number of providers in the @code{fog} gem. @code{fog} is a Ruby cloud | ||
| 9846 | services library.") | ||
| 9847 | (home-page "https://github.com/fog/fog-xml") | ||
| 9848 | (license license:expat))) | ||
| 9849 | |||
| 9850 | (define-public ruby-fog-libvirt | ||
| 9851 | (package | ||
| 9852 | (name "ruby-fog-libvirt") | ||
| 9853 | (version "0.12.0") | ||
| 9854 | (source (origin | ||
| 9855 | (method git-fetch) ; for tests | ||
| 9856 | (uri (git-reference | ||
| 9857 | (url "https://github.com/fog/fog-libvirt") | ||
| 9858 | (commit (string-append "v" version)))) | ||
| 9859 | (file-name (git-file-name name version)) | ||
| 9860 | (sha256 | ||
| 9861 | (base32 | ||
| 9862 | "0b1qafb0l24anmr8fviwhp9vj14g0fic0mkg9n1i11h68zhqkj2v")))) | ||
| 9863 | (build-system ruby-build-system) | ||
| 9864 | (native-inputs (list ruby-minitest-stub-const ruby-mocha ruby-net-ssh | ||
| 9865 | ruby-netrc ruby-octokit ruby-pry ruby-rubocop | ||
| 9866 | ruby-shindo ruby-simplecov ruby-yard )) | ||
| 9867 | (propagated-inputs (list ruby-fog-core ruby-fog-json ruby-fog-xml | ||
| 9868 | ruby-json ruby-libvirt)) | ||
| 9869 | (synopsis "Ruby libvirt provider, either standalone or as a module for | ||
| 9870 | @code{fog}") | ||
| 9871 | (description "This library can be used as a module for @code{fog} or as | ||
| 9872 | standalone libvirt provider. @code{fog} is a Ruby cloud services library.") | ||
| 9873 | (home-page "https://github.com/fog/fog-libvirt") | ||
| 9874 | (license license:expat))) | ||
| 9875 | |||
| 9876 | (define-public ruby-pry-byebug | ||
| 9877 | (package | ||
| 9878 | (name "ruby-pry-byebug") | ||
| 9879 | (version "3.10.1") | ||
| 9880 | (source | ||
| 9881 | (origin | ||
| 9882 | (method git-fetch) | ||
| 9883 | (uri (git-reference | ||
| 9884 | (url "https://github.com/deivid-rodriguez/pry-byebug") | ||
| 9885 | (commit (string-append "v" version)))) | ||
| 9886 | (file-name (git-file-name name version)) | ||
| 9887 | (sha256 | ||
| 9888 | (base32 | ||
| 9889 | "0z8rhvmr9qmlbk8c8h6jbig5qd5xbdg9qihvx3g0cv1whqzbfikq")))) | ||
| 9890 | (build-system ruby-build-system) | ||
| 9891 | (arguments | ||
| 9892 | `(#:phases (modify-phases %standard-phases | ||
| 9893 | (add-after 'unpack 'sanitize-dependencies | ||
| 9894 | (lambda _ | ||
| 9895 | (substitute* "Rakefile" | ||
| 9896 | ((".*chandler/tasks.*") "")))) | ||
| 9897 | (add-before 'check 'set-home | ||
| 9898 | (lambda _ | ||
| 9899 | (setenv "HOME" (getcwd))))))) | ||
| 9900 | (native-inputs (list ruby-rubocop ruby-simplecov)) | ||
| 9901 | (propagated-inputs (list ruby-byebug ruby-pry)) | ||
| 9902 | (synopsis "Step-by-step debugging and stack navigation in Pry") | ||
| 9903 | (description "This package adds step-by-step debugging and stack | ||
| 9904 | navigation capabilities to @code{pry}, using @code{byebug}.") | ||
| 9905 | (home-page "https://github.com/deivid-rodriguez/pry-byebug") | ||
| 9906 | (license license:expat))) | ||
| 9907 | |||
| 9908 | (define-public ruby-stackprof | ||
| 9909 | (package | ||
| 9910 | (name "ruby-stackprof") | ||
| 9911 | (version "0.2.27") | ||
| 9912 | (source | ||
| 9913 | (origin | ||
| 9914 | (method url-fetch) | ||
| 9915 | (uri (rubygems-uri "stackprof" version)) | ||
| 9916 | (sha256 | ||
| 9917 | (base32 "03788mbipmihq2w7rznzvv0ks0s9z1321k1jyr6ffln8as3d5xmg")))) | ||
| 9918 | (build-system ruby-build-system) | ||
| 9919 | (arguments | ||
| 9920 | (list | ||
| 9921 | #:phases | ||
| 9922 | #~(modify-phases %standard-phases | ||
| 9923 | (add-before 'check 'patch-gemspec | ||
| 9924 | (lambda _ | ||
| 9925 | (substitute* "stackprof.gemspec" | ||
| 9926 | (("rake-compiler.*") | ||
| 9927 | "rake-compiler>.freeze, [\"> 0.9\"])\n") | ||
| 9928 | (("mocha.*") | ||
| 9929 | "mocha>.freeze, [\"> 0.14\"])\n")))) | ||
| 9930 | (add-before 'check 'skip-dubious-test | ||
| 9931 | (lambda _ | ||
| 9932 | (substitute* "test/test_stackprof.rb" | ||
| 9933 | ;; This unreliable test can fail with "Expected 0 to be >= 1." | ||
| 9934 | (("def test_(cputime)" _ name) | ||
| 9935 | (string-append "def skip_" name)) | ||
| 9936 | ;; This test often fails | ||
| 9937 | (("def test_gc") "def skip_test_gc") | ||
| 9938 | ;; This test is known to fail on 32-bit systems. | ||
| 9939 | ;; /gnu/store/...-stackprof-0.2.27.gem | ||
| 9940 | (("def test_raw") "def skip_test_raw")))) | ||
| 9941 | (add-before 'check 'build-tests | ||
| 9942 | (lambda _ | ||
| 9943 | (invoke "rake" "compile"))) | ||
| 9944 | (replace 'check | ||
| 9945 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 9946 | (when tests? | ||
| 9947 | (invoke "bundle" "exec" "rake" "default"))))))) | ||
| 9948 | (native-inputs | ||
| 9949 | (list bundler ruby-mocha-1 ruby-rake-compiler)) | ||
| 9950 | (synopsis "Sampling profiler for Ruby code") | ||
| 9951 | (description | ||
| 9952 | "@code{stackprof} is a fast sampling profiler for Ruby code, with cpu, | ||
| 9953 | wallclock and object allocation samplers.") | ||
| 9954 | (home-page "https://github.com/tmm1/stackprof") | ||
| 9955 | (license license:expat))) | ||
| 9956 | |||
| 9957 | (define-public ruby-bindex | ||
| 9958 | (package | ||
| 9959 | (name "ruby-bindex") | ||
| 9960 | (version "0.8.1") | ||
| 9961 | (source | ||
| 9962 | (origin | ||
| 9963 | (method url-fetch) | ||
| 9964 | (uri (rubygems-uri "bindex" version)) | ||
| 9965 | (sha256 | ||
| 9966 | (base32 "0zmirr3m02p52bzq4xgksq4pn8j641rx5d4czk68pv9rqnfwq7kv")))) | ||
| 9967 | (build-system ruby-build-system) | ||
| 9968 | (arguments | ||
| 9969 | (list #:test-target "default" | ||
| 9970 | #:phases | ||
| 9971 | #~(modify-phases %standard-phases | ||
| 9972 | (add-after 'unpack 'avoid-bundler | ||
| 9973 | (lambda _ | ||
| 9974 | (substitute* "Rakefile" | ||
| 9975 | (("^Bundler::.*") ""))))))) | ||
| 9976 | (native-inputs (list bundler ruby-rake-compiler)) | ||
| 9977 | (synopsis "Bindings for Ruby exceptions") | ||
| 9978 | (description | ||
| 9979 | "This package provides bindings for any kind of Ruby exceptions.") | ||
| 9980 | (home-page "https://github.com/gsamokovarov/bindex") | ||
| 9981 | (license license:expat))) | ||
| 9982 | |||
| 9983 | (define-public ruby-binding-of-caller | ||
| 9984 | (package | ||
| 9985 | (name "ruby-binding-of-caller") | ||
| 9986 | (version "0.8.0") | ||
| 9987 | (source | ||
| 9988 | (origin | ||
| 9989 | (method url-fetch) | ||
| 9990 | (uri (rubygems-uri "binding_of_caller" version)) | ||
| 9991 | (sha256 | ||
| 9992 | (base32 | ||
| 9993 | "05syqlks7463zsy1jdfbbdravdhj9hpj5pv2m74blqpv8bq4vv5g")))) | ||
| 9994 | (build-system ruby-build-system) | ||
| 9995 | ;; Attempting to run the test suite fails with a rake deprecation error | ||
| 9996 | ;; (see: https://github.com/banister/binding_of_caller/issues/76). | ||
| 9997 | (arguments '(#:tests? #f)) | ||
| 9998 | (propagated-inputs | ||
| 9999 | (list ruby-debug-inspector)) | ||
| 10000 | (synopsis "Retrieve the binding of a method's caller") | ||
| 10001 | (description "The @code{binding_of_caller} module provides the | ||
| 10002 | @code{Binding#of_caller} method. It allows accessing bindings from upper | ||
| 10003 | frames in the call stack and can evaluate code in that context.") | ||
| 10004 | (home-page "https://github.com/banister/binding_of_caller") | ||
| 10005 | (license license:expat))) | ||
| 10006 | |||
| 10007 | (define-public ruby-pry-stack-explorer | ||
| 10008 | (package | ||
| 10009 | (name "ruby-pry-stack-explorer") | ||
| 10010 | (version "0.5.1") | ||
| 10011 | (source | ||
| 10012 | (origin | ||
| 10013 | (method url-fetch) | ||
| 10014 | (uri (rubygems-uri "pry-stack_explorer" version)) | ||
| 10015 | (sha256 | ||
| 10016 | (base32 | ||
| 10017 | "157rd2n9pfvcmmicm0xkq8z4p6famaj13syrpra6b4032qpb1wn0")))) | ||
| 10018 | (build-system ruby-build-system) | ||
| 10019 | (arguments '(#:tests? #f)) ;no test suite in gem release | ||
| 10020 | (propagated-inputs | ||
| 10021 | (list ruby-binding-of-caller ruby-pry)) | ||
| 10022 | (synopsis "Call-stack navigation plugin for the Pry REPL") | ||
| 10023 | (description "@code{pry-stack_explorer} is a plugin for the Pry REPL that | ||
| 10024 | add support to navigate the call-stack.") | ||
| 10025 | (home-page "https://github.com/pry/pry-stack_explorer") | ||
| 10026 | (license license:expat))) | ||
| 10027 | |||
| 10028 | (define-public ruby-varint | ||
| 10029 | (package | ||
| 10030 | (name "ruby-varint") | ||
| 10031 | (version "0.1.1") | ||
| 10032 | (source | ||
| 10033 | (origin | ||
| 10034 | (method url-fetch) | ||
| 10035 | (uri (rubygems-uri "varint" version)) | ||
| 10036 | (sha256 | ||
| 10037 | (base32 | ||
| 10038 | "1y0l2qc64cwsyv76ygg9bbjnk86riz2kq73kmn87gdrlmpiyrdac")))) | ||
| 10039 | (build-system ruby-build-system) | ||
| 10040 | (arguments '(#:tests? #f)) ;no test suite | ||
| 10041 | (synopsis "Variable length integers (varint) C extension for Ruby") | ||
| 10042 | (description "This package provides a small C extension to speed up | ||
| 10043 | variable length integers (varint) in Ruby Protocol Buffers.") | ||
| 10044 | (home-page "https://github.com/liquidm/varint") | ||
| 10045 | (license license:bsd-3))) | ||
| 10046 | |||
| 10047 | (define-public ruby-version-gem | ||
| 10048 | (package | ||
| 10049 | (name "ruby-version-gem") | ||
| 10050 | (version "1.1.3") | ||
| 10051 | (source (origin | ||
| 10052 | (method git-fetch) ;for tests | ||
| 10053 | (uri (git-reference | ||
| 10054 | (url "https://gitlab.com/oauth-xx/version_gem") | ||
| 10055 | (commit (string-append "v" version)))) | ||
| 10056 | (file-name (git-file-name name version)) | ||
| 10057 | (sha256 | ||
| 10058 | (base32 | ||
| 10059 | "1wazx2jr9vx5wm48fy8bccvfwhg7y2s8shfw9q81dhb4yvwk6gbf")))) | ||
| 10060 | (build-system ruby-build-system) | ||
| 10061 | (arguments | ||
| 10062 | (list | ||
| 10063 | #:phases | ||
| 10064 | #~(modify-phases %standard-phases | ||
| 10065 | (add-after 'unpack 'relax-requirements | ||
| 10066 | (lambda _ | ||
| 10067 | (substitute* "Gemfile" | ||
| 10068 | (("^linting = .*") | ||
| 10069 | "linting = false\n") | ||
| 10070 | (("^coverage = .*") | ||
| 10071 | "coverage = false\n") | ||
| 10072 | (("^debug = .*") | ||
| 10073 | "debug = false\n")) | ||
| 10074 | (substitute* "spec/spec_helper.rb" | ||
| 10075 | (("^RUN_COVERAGE = .*") | ||
| 10076 | "RUN_COVERAGE = false\n") | ||
| 10077 | (("^ALL_FORMATTERS = .*") | ||
| 10078 | "ALL_FORMATTERS = false\n")))) | ||
| 10079 | (add-before 'build 'drop-signing-key-requirement | ||
| 10080 | (lambda _ | ||
| 10081 | (substitute* "version_gem.gemspec" | ||
| 10082 | (("spec.signing_key =.*") | ||
| 10083 | "spec.signing_key = nil"))))))) | ||
| 10084 | (native-inputs (list ruby-rspec ruby-rspec-block-is-expected)) | ||
| 10085 | (synopsis "Improved @code{Version} module for Ruby") | ||
| 10086 | (description "VersionGem aims to provide introspection of a @code{Version} | ||
| 10087 | module based on a @code{Version::VERSION} constant string wile not interfering | ||
| 10088 | with gemspec parsing where the @code{VERSION} string is traditionally used.") | ||
| 10089 | (home-page "https://gitlab.com/oauth-xx/version_gem") | ||
| 10090 | (license license:expat))) | ||
| 10091 | |||
| 10092 | ;;; Note: Do NOT update to a newer version; this is the last commit that is | ||
| 10093 | ;;; still licensed as free software, the project having switched to the | ||
| 10094 | ;;; Hippocratic license afterward (see: | ||
| 10095 | ;;; https://github.com/vcr/vcr/issues/959). | ||
| 10096 | (define-public ruby-vcr-expat | ||
| 10097 | (let ((revision "0") | ||
| 10098 | (commit-dont-touch "842b2bf89099dc91f2c643d0d85d1abd54eb7e85")) ; | ||
| 10099 | (package | ||
| 10100 | (name "ruby-vcr-expat") | ||
| 10101 | (version (git-version "5.0.0" revision commit-dont-touch)) | ||
| 10102 | (source (origin | ||
| 10103 | (method git-fetch) | ||
| 10104 | (uri (git-reference | ||
| 10105 | (url "https://github.com/vcr/vcr") | ||
| 10106 | (commit commit-dont-touch))) | ||
| 10107 | (file-name (git-file-name name version)) | ||
| 10108 | (sha256 | ||
| 10109 | (base32 | ||
| 10110 | "02mzifd2655kjh35bbry01n66jjcjrsw6ncqlybfkjcaqrw2zalv")))) | ||
| 10111 | (build-system ruby-build-system) | ||
| 10112 | (arguments (list #:tests? #f)) ;avoid all dependencies | ||
| 10113 | (home-page "https://github.com/vcr/vcr") | ||
| 10114 | (synopsis "HTTP interaction recorder [old version]") | ||
| 10115 | (description "Record your test suite's HTTP interactions and replay them | ||
| 10116 | during future test runs for fast, deterministic, accurate tests. This is an | ||
| 10117 | older version of VCR that is free software under the Expat license. The | ||
| 10118 | project later switched to the Hippocratic license, which is non-free. | ||
| 10119 | @emph{Do not use it in new free software projects}.") | ||
| 10120 | (license license:expat)))) | ||
| 10121 | |||
| 10122 | (define-public ruby-ruby-prof | ||
| 10123 | (package | ||
| 10124 | (name "ruby-ruby-prof") | ||
| 10125 | (version "1.4.5") | ||
| 10126 | (source | ||
| 10127 | (origin | ||
| 10128 | (method url-fetch) | ||
| 10129 | (uri (rubygems-uri "ruby-prof" version)) | ||
| 10130 | (sha256 | ||
| 10131 | (base32 | ||
| 10132 | "09n13bzm1p956z318xx1v7ikqdp2i971v7p3kwf3170axz368ccy")))) | ||
| 10133 | (build-system ruby-build-system) | ||
| 10134 | (arguments | ||
| 10135 | ;; FIXME: Investigate why the tests fail on i686-linux. | ||
| 10136 | `(#:tests? ,(not (or (%current-target-system) | ||
| 10137 | (target-x86-32?))) | ||
| 10138 | #:phases | ||
| 10139 | (modify-phases %standard-phases | ||
| 10140 | ;; The LineNumbersTest test fails non-deterministically (see: | ||
| 10141 | ;; https://github.com/ruby-prof/ruby-prof/issues/276). | ||
| 10142 | (add-after 'extract-gemspec 'delete-flaky-test | ||
| 10143 | (lambda _ | ||
| 10144 | (delete-file "test/line_number_test.rb") | ||
| 10145 | (substitute* "ruby-prof.gemspec" | ||
| 10146 | (("\"test/line_number_test\\.rb\"\\.freeze, ") "")))) | ||
| 10147 | (add-before 'check 'compile | ||
| 10148 | (lambda _ | ||
| 10149 | (invoke "rake" "compile")))))) | ||
| 10150 | (native-inputs (list bundler ruby-minitest ruby-rake-compiler ruby-rdoc)) | ||
| 10151 | (synopsis "Fast code profiler for Ruby") | ||
| 10152 | (description "RubyProf is a fast code profiler for Ruby. Its features | ||
| 10153 | include: | ||
| 10154 | @table @asis | ||
| 10155 | @item Speed | ||
| 10156 | Being a C extension, it is many times faster than the standard Ruby profiler. | ||
| 10157 | @item Measurement Modes | ||
| 10158 | It can measure program wall time, process time, object allocations and memory | ||
| 10159 | usage. | ||
| 10160 | @item Reports | ||
| 10161 | A variety of text and cross-referenced HTML reports can be generated. | ||
| 10162 | @item Threads | ||
| 10163 | Profiling multiple threads simultaneously is supported. | ||
| 10164 | @end table") | ||
| 10165 | (home-page "https://github.com/ruby-prof/ruby-prof") | ||
| 10166 | (license license:bsd-2))) | ||
| 10167 | |||
| 10168 | (define-public ruby-ruby-memcheck | ||
| 10169 | (package | ||
| 10170 | (name "ruby-ruby-memcheck") | ||
| 10171 | (version "1.3.2") | ||
| 10172 | (source (origin | ||
| 10173 | (method git-fetch) | ||
| 10174 | (uri (git-reference | ||
| 10175 | (url "https://github.com/Shopify/ruby_memcheck") | ||
| 10176 | (commit version))) | ||
| 10177 | (file-name (git-file-name name version)) | ||
| 10178 | (sha256 | ||
| 10179 | (base32 | ||
| 10180 | "0fj4j4d062sw2kx2qlj877gjbj1xbb691njr8x9nbah6615idlni")))) | ||
| 10181 | (build-system ruby-build-system) | ||
| 10182 | (arguments | ||
| 10183 | (list | ||
| 10184 | ;; The tests seem to fail on 32bit x86 | ||
| 10185 | #:tests? (not (or (target-x86-32?) | ||
| 10186 | (%current-target-system))) | ||
| 10187 | #:phases | ||
| 10188 | #~(modify-phases %standard-phases | ||
| 10189 | (add-after 'unpack 'patch-valgrind-path | ||
| 10190 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 10191 | (substitute* "lib/ruby_memcheck/configuration.rb" | ||
| 10192 | (("DEFAULT_VALGRIND = \"valgrind\"") | ||
| 10193 | (format #f "DEFAULT_VALGRIND = ~s" | ||
| 10194 | (search-input-file inputs "bin/valgrind")))))) | ||
| 10195 | (add-before 'replace-git-ls-files 'standardize-git-ls-files | ||
| 10196 | (lambda _ | ||
| 10197 | (substitute* "ruby_memcheck.gemspec" | ||
| 10198 | (("%x\\(git ls-files -z)") | ||
| 10199 | "`git ls-files -z`"))))))) | ||
| 10200 | (native-inputs (list ruby-rake-compiler ruby-rspec)) | ||
| 10201 | (inputs (list valgrind/pinned)) | ||
| 10202 | (propagated-inputs (list ruby-nokogiri)) | ||
| 10203 | (synopsis "Valgrind memcheck tool for Ruby") | ||
| 10204 | (description "The @code{ruby_memcheck} gem provides a sane way to use | ||
| 10205 | Valgrind's memcheck on your native extension gem, that filters out all the | ||
| 10206 | false positives caused by Ruby not freeing all of the memory it allocates | ||
| 10207 | during shutdown.") | ||
| 10208 | (home-page "https://github.com/Shopify/ruby_memcheck") | ||
| 10209 | (license license:expat))) | ||
| 10210 | |||
| 10211 | (define-public ruby-memory-profiler | ||
| 10212 | (package | ||
| 10213 | (name "ruby-memory-profiler") | ||
| 10214 | (version "1.0.1") | ||
| 10215 | (source | ||
| 10216 | (origin | ||
| 10217 | (method git-fetch) | ||
| 10218 | (uri (git-reference | ||
| 10219 | (url "https://github.com/SamSaffron/memory_profiler") | ||
| 10220 | (commit (string-append "v" version)))) | ||
| 10221 | (file-name (git-file-name name version)) | ||
| 10222 | (sha256 | ||
| 10223 | (base32 | ||
| 10224 | "1z1x0rymfv45gh1y3s46w5pga5y8cvgn228jiwlnhc8hin3zig84")))) | ||
| 10225 | (build-system ruby-build-system) | ||
| 10226 | (synopsis "Memory profiling routines for Ruby") | ||
| 10227 | (description | ||
| 10228 | "This package provides memory profiling routines for Ruby.") | ||
| 10229 | (home-page "https://github.com/SamSaffron/memory_profiler") | ||
| 10230 | (license license:expat))) | ||
| 10231 | |||
| 10232 | (define-public ruby-cucumber-compatibility-kit | ||
| 10233 | (package | ||
| 10234 | (name "ruby-cucumber-compatibility-kit") | ||
| 10235 | (version "11.2.0") | ||
| 10236 | (source (origin | ||
| 10237 | (method url-fetch) | ||
| 10238 | (uri (rubygems-uri "cucumber-compatibility-kit" version)) | ||
| 10239 | (sha256 | ||
| 10240 | (base32 | ||
| 10241 | "17c8zx0yn68rcpfbw4nb1gzvh9fzpwsi1y0qivb99ahdlgzcdp8q")))) | ||
| 10242 | (build-system ruby-build-system) | ||
| 10243 | (arguments (list #:phases #~(modify-phases %standard-phases | ||
| 10244 | (replace 'check | ||
| 10245 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 10246 | (when tests? | ||
| 10247 | (invoke "rspec"))))))) | ||
| 10248 | (propagated-inputs (list ruby-cucumber-messages ruby-rake ruby-rspec)) | ||
| 10249 | (synopsis "Cucumber compatibility verification utility") | ||
| 10250 | (description "The Cucumber Compatibility Kit (CCK) aims to validate a | ||
| 10251 | Cucumber implementation's support for the Cucumber Messages protocol.") | ||
| 10252 | (home-page "https://github.com/cucumber/compatibility-kit") | ||
| 10253 | (license license:expat))) | ||
| 10254 | |||
| 10255 | ;;; Variant package to break a cycle with ruby-cucumber-messages. | ||
| 10256 | (define ruby-cucumber-compatibility-kit-bootstrap | ||
| 10257 | (package/inherit ruby-cucumber-compatibility-kit | ||
| 10258 | (arguments (list #:tests? #f)) | ||
| 10259 | (propagated-inputs (modify-inputs (package-propagated-inputs | ||
| 10260 | ruby-cucumber-compatibility-kit) | ||
| 10261 | (delete "ruby-cucumber-messages"))))) | ||
| 10262 | |||
| 10263 | (define-public ruby-cucumber-messages | ||
| 10264 | (package | ||
| 10265 | (name "ruby-cucumber-messages") | ||
| 10266 | (version "21.0.1") | ||
| 10267 | (source (origin | ||
| 10268 | (method url-fetch) | ||
| 10269 | (uri (rubygems-uri "cucumber-messages" version)) | ||
| 10270 | (sha256 | ||
| 10271 | (base32 | ||
| 10272 | "0482a63y7my0arn2bv208g401dq8525f0gwhnwaa11mhv6ph0q5i")))) | ||
| 10273 | (build-system ruby-build-system) | ||
| 10274 | (arguments | ||
| 10275 | (list #:phases | ||
| 10276 | #~(modify-phases %standard-phases | ||
| 10277 | ;; The test suite requires the gem to be installed, so move it | ||
| 10278 | ;; after the install phase. | ||
| 10279 | (delete 'check) | ||
| 10280 | (add-after 'install 'check | ||
| 10281 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 10282 | (setenv "GEM_PATH" (string-append | ||
| 10283 | (getenv "GEM_PATH") ":" | ||
| 10284 | #$output "/lib/ruby/vendor_ruby")) | ||
| 10285 | (when tests? | ||
| 10286 | (invoke "rspec"))))))) | ||
| 10287 | (native-inputs | ||
| 10288 | (list ruby-cucumber-compatibility-kit-bootstrap ruby-rspec)) | ||
| 10289 | (home-page "https://github.com/cucumber/messages/") | ||
| 10290 | (synopsis "Cucumber Messages for Ruby (Protocol Buffers)") | ||
| 10291 | (description "Cucumber Messages for Ruby is a library which allows | ||
| 10292 | serialization and deserialization of the protocol buffer messages used in | ||
| 10293 | Cucumber.") | ||
| 10294 | (license license:expat))) | ||
| 10295 | |||
| 10296 | (define-public ruby-cucumber-gherkin | ||
| 10297 | (package | ||
| 10298 | (name "ruby-cucumber-gherkin") | ||
| 10299 | (version "26.1.0") | ||
| 10300 | (source (origin | ||
| 10301 | (method git-fetch) | ||
| 10302 | (uri (git-reference | ||
| 10303 | (url "https://github.com/cucumber/gherkin") | ||
| 10304 | (commit (string-append "v" version)))) | ||
| 10305 | (file-name (git-file-name name version)) | ||
| 10306 | (sha256 | ||
| 10307 | (base32 | ||
| 10308 | "1rsannfcg5rqh5a3d3paw10kf6mmqjrgbq3k235px4swbyqysmgn")))) | ||
| 10309 | (build-system ruby-build-system) | ||
| 10310 | (arguments (list #:test-target "spec" | ||
| 10311 | #:phases #~(modify-phases %standard-phases | ||
| 10312 | (add-after 'unpack 'chdir | ||
| 10313 | (lambda _ | ||
| 10314 | (chdir "ruby")))))) | ||
| 10315 | (native-inputs (list ruby-rspec)) | ||
| 10316 | (propagated-inputs (list ruby-cucumber-messages)) | ||
| 10317 | (synopsis "Gherkin parser for Ruby") | ||
| 10318 | (description "Gherkin is a parser and compiler for the Gherkin language. | ||
| 10319 | It is intended be used by all Cucumber implementations to parse | ||
| 10320 | @file{.feature} files.") | ||
| 10321 | (home-page "https://github.com/cucumber/gherkin") | ||
| 10322 | (license license:expat))) | ||
| 10323 | |||
| 10324 | (define-deprecated ruby-gherkin ruby-cucumber-gherkin) | ||
| 10325 | |||
| 10326 | (define-public ruby-gherkin-ruby | ||
| 10327 | (package | ||
| 10328 | (name "ruby-gherkin-ruby") | ||
| 10329 | (version "0.3.2") | ||
| 10330 | (home-page "https://github.com/codegram/gherkin-ruby") | ||
| 10331 | (source (origin | ||
| 10332 | (method url-fetch) | ||
| 10333 | (uri (rubygems-uri "gherkin-ruby" version)) | ||
| 10334 | (sha256 | ||
| 10335 | (base32 | ||
| 10336 | "18ay7yiibf4sl9n94k7mbi4k5zj2igl4j71qcmkswv69znyx0sn1")))) | ||
| 10337 | (build-system ruby-build-system) | ||
| 10338 | (synopsis "Pure Ruby Gherkin parser") | ||
| 10339 | (description | ||
| 10340 | "Gherkin-ruby is a Gherkin parser written in pure Ruby and less than | ||
| 10341 | 200 lines of code.") | ||
| 10342 | ;; XXX: No license information anywhere but Readme.md. | ||
| 10343 | (license license:expat))) | ||
| 10344 | |||
| 10345 | (define-public ruby-aruba | ||
| 10346 | (package | ||
| 10347 | (name "ruby-aruba") | ||
| 10348 | (version "2.1.0") | ||
| 10349 | (source (origin | ||
| 10350 | (method git-fetch) | ||
| 10351 | (uri (git-reference | ||
| 10352 | (url "https://github.com/cucumber/aruba") | ||
| 10353 | (commit (string-append "v" version)))) | ||
| 10354 | (file-name (git-file-name name version)) | ||
| 10355 | (sha256 | ||
| 10356 | (base32 | ||
| 10357 | "1mmlgqhi6yww3z34hmrrnha2rygkv6kx0q962z31dqxjkcv23yfd")))) | ||
| 10358 | (build-system ruby-build-system) | ||
| 10359 | (arguments | ||
| 10360 | (list | ||
| 10361 | ;; XXX: Only run the "spec" target and not the "cucumber" one, as it is | ||
| 10362 | ;; slow and has multiple unexplained test failures. | ||
| 10363 | #:test-target "spec" | ||
| 10364 | #:phases | ||
| 10365 | #~(modify-phases %standard-phases | ||
| 10366 | (add-after 'unpack 'patch-paths | ||
| 10367 | (lambda _ | ||
| 10368 | ;; This test file relies on a dynamically generated script; | ||
| 10369 | ;; patch its #!/bin/bash shebang. | ||
| 10370 | (substitute* "spec/aruba/api/commands_spec.rb" | ||
| 10371 | (("/bin/bash") | ||
| 10372 | (which "bash"))))) | ||
| 10373 | (add-before 'check 'relax-requirements | ||
| 10374 | ;; Many development requirements are not actually needed. | ||
| 10375 | (lambda _ | ||
| 10376 | (substitute* "aruba.gemspec" | ||
| 10377 | (("\\[\">= 0.18.0\", \"< 0.22.0\"]") ;simplecov | ||
| 10378 | "\">= 0.18.0\"") | ||
| 10379 | ((".*appraisal.*") "") | ||
| 10380 | ((".*pry.*") "") | ||
| 10381 | ((".*kramdown.*") "") | ||
| 10382 | ((".*rubocop.*") "") | ||
| 10383 | ((".*yard-junk.*") "")) | ||
| 10384 | (substitute* "Rakefile" | ||
| 10385 | ((".*require \"rubocop/rake_task\".*") "") | ||
| 10386 | ((".*require \"yard-junk/rake\".*") "") | ||
| 10387 | ((".*RuboCop::RakeTask.new.*") "") | ||
| 10388 | ((".*YardJunk::Rake.define_task.*") "")))) | ||
| 10389 | ;; The tests rely on the Gem being installed, so move the check | ||
| 10390 | ;; phase after the install phase. | ||
| 10391 | (delete 'check) | ||
| 10392 | (add-after 'install 'check | ||
| 10393 | (assoc-ref %standard-phases 'check)) | ||
| 10394 | (add-before 'check 'set-GEM_PATH | ||
| 10395 | (lambda _ | ||
| 10396 | (setenv "GEM_PATH" (string-append | ||
| 10397 | (getenv "GEM_PATH") ":" | ||
| 10398 | #$output "/lib/ruby/vendor_ruby")))) | ||
| 10399 | (add-before 'check 'set-home | ||
| 10400 | (lambda _ | ||
| 10401 | (setenv "HOME" "/tmp")))))) | ||
| 10402 | (native-inputs | ||
| 10403 | (list ruby-rake-manifest | ||
| 10404 | ruby-rspec | ||
| 10405 | ruby-simplecov)) | ||
| 10406 | (propagated-inputs | ||
| 10407 | (list bundler | ||
| 10408 | ruby-childprocess | ||
| 10409 | ruby-contracts | ||
| 10410 | ruby-cucumber | ||
| 10411 | ruby-rspec-expectations | ||
| 10412 | ruby-thor)) | ||
| 10413 | (synopsis "Test command-line applications with Cucumber, RSpec or Minitest") | ||
| 10414 | (description | ||
| 10415 | "Aruba is an extension for Cucumber, RSpec and Minitest for testing | ||
| 10416 | command-line applications. It supports applications written in any | ||
| 10417 | language.") | ||
| 10418 | (home-page "https://github.com/cucumber/aruba") | ||
| 10419 | (license license:expat))) | ||
| 10420 | |||
| 10421 | (define-public ruby-sys-uname | ||
| 10422 | (package | ||
| 10423 | (name "ruby-sys-uname") | ||
| 10424 | (version "1.2.1") | ||
| 10425 | (source | ||
| 10426 | (origin | ||
| 10427 | (method url-fetch) | ||
| 10428 | (uri (rubygems-uri "sys-uname" version)) | ||
| 10429 | (sha256 | ||
| 10430 | (base32 | ||
| 10431 | "00p3wwvkdbg6pl38bchaagncv3i4fq4y0ks470imwykjanpy2ic0")))) | ||
| 10432 | (build-system ruby-build-system) | ||
| 10433 | (arguments | ||
| 10434 | `(#:test-target "spec")) | ||
| 10435 | (propagated-inputs (list ruby-ffi)) | ||
| 10436 | (native-inputs (list ruby-rspec)) | ||
| 10437 | (synopsis "Ruby interface for gathering system information") | ||
| 10438 | (description "The sys-uname library provides an interface for gathering | ||
| 10439 | information about your current platform. It allows retrieving information | ||
| 10440 | such as the OS name, OS version, system name, etc.") | ||
| 10441 | (home-page "https://github.com/djberg96/sys-uname") | ||
| 10442 | (license license:asl2.0))) | ||
| 10443 | |||
| 10444 | (define-public ruby-cucumber-html-formatter | ||
| 10445 | (package | ||
| 10446 | (name "ruby-cucumber-html-formatter") | ||
| 10447 | (version "20.2.1") | ||
| 10448 | (source | ||
| 10449 | (origin | ||
| 10450 | (method url-fetch) | ||
| 10451 | (uri (rubygems-uri "cucumber-html-formatter" version)) | ||
| 10452 | (sha256 | ||
| 10453 | (base32 | ||
| 10454 | "0c7r9mfmph4c6yzc7y3dkr92rhwvpyksr0mdhpqp67xmmr8z1br4")))) | ||
| 10455 | (build-system ruby-build-system) | ||
| 10456 | (arguments | ||
| 10457 | (list #:phases #~(modify-phases %standard-phases | ||
| 10458 | (add-after 'extract-gemspec 'relax-requirements | ||
| 10459 | (lambda _ | ||
| 10460 | (substitute* ".gemspec" | ||
| 10461 | (("~> 18.0") "~> 21.0")))) ;cucumber-messages | ||
| 10462 | (replace 'check | ||
| 10463 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 10464 | (when tests? | ||
| 10465 | (invoke "rspec"))))))) | ||
| 10466 | (native-inputs (list ruby-cucumber-compatibility-kit ruby-rspec)) | ||
| 10467 | (propagated-inputs (list ruby-cucumber-messages)) | ||
| 10468 | (synopsis "HTML formatter for Cucumber") | ||
| 10469 | (description "Cucumber HTML Formatter produces a HTML report for Cucumber | ||
| 10470 | runs. It is built on top of cucumber-react and works with any Cucumber | ||
| 10471 | implementation with a protocol buffer formatter that outputs Cucumber | ||
| 10472 | messages.") | ||
| 10473 | (home-page "https://github.com/cucumber/html-formatter") | ||
| 10474 | (license license:expat))) | ||
| 10475 | |||
| 10476 | (define-public ruby-cucumber-ci-environment | ||
| 10477 | (package | ||
| 10478 | (name "ruby-cucumber-ci-environment") | ||
| 10479 | (version "9.1.0") | ||
| 10480 | (source (origin | ||
| 10481 | (method url-fetch) | ||
| 10482 | (uri (rubygems-uri "cucumber-ci-environment" version)) | ||
| 10483 | (sha256 | ||
| 10484 | (base32 | ||
| 10485 | "1nmn2hfrjlbazgcryr3hwvsa5v4csfbjqxb4q7wbjhaxl9xxn0k7")))) | ||
| 10486 | (build-system ruby-build-system) | ||
| 10487 | (arguments (list #:phases #~(modify-phases %standard-phases | ||
| 10488 | (replace 'check | ||
| 10489 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 10490 | (when tests? | ||
| 10491 | (invoke "rspec"))))))) | ||
| 10492 | (native-inputs (list ruby-rspec)) | ||
| 10493 | (synopsis "Detect CI Environment from environment variables") | ||
| 10494 | (description "This is a Ruby utility library for Cucumber that detects a | ||
| 10495 | CI environment from environment variables.") | ||
| 10496 | (home-page "https://github.com/cucumber/ci-environment") | ||
| 10497 | (license license:expat))) | ||
| 10498 | |||
| 10499 | (define-public ruby-cucumber | ||
| 10500 | (package | ||
| 10501 | (name "ruby-cucumber") | ||
| 10502 | (version "8.0.0") | ||
| 10503 | (source | ||
| 10504 | (origin | ||
| 10505 | (method git-fetch) | ||
| 10506 | (uri (git-reference | ||
| 10507 | (url "https://github.com/cucumber/cucumber-ruby") | ||
| 10508 | (commit (string-append "v" version)))) | ||
| 10509 | (file-name (git-file-name name version)) | ||
| 10510 | (sha256 | ||
| 10511 | (base32 | ||
| 10512 | "1dz880fdz6rfbh1nwwcq21v65byik46jnf9gppnrqf3p5k61i55r")))) | ||
| 10513 | (build-system ruby-build-system) | ||
| 10514 | (arguments | ||
| 10515 | (list #:test-target "spec" | ||
| 10516 | #:phases | ||
| 10517 | #~(modify-phases %standard-phases | ||
| 10518 | (add-after 'unpack 'disable-rubocop | ||
| 10519 | ;; Remove extraneous Lint checks. | ||
| 10520 | (lambda _ | ||
| 10521 | (substitute* "Rakefile" | ||
| 10522 | (("require 'rubocop/rake_task'") | ||
| 10523 | "") | ||
| 10524 | (("RuboCop::RakeTask.new") | ||
| 10525 | "")))) | ||
| 10526 | (add-after 'extract-gemspec 'strip-version-requirements | ||
| 10527 | (lambda _ | ||
| 10528 | (delete-file "Gemfile") ;do not use Bundler | ||
| 10529 | (substitute* "cucumber.gemspec" | ||
| 10530 | ;; The dependency specifications are often trailing | ||
| 10531 | ;; behind and appear stricter than necessary, since the | ||
| 10532 | ;; test suite passes with the newer component versions. | ||
| 10533 | (("(.*add_.*dependency '[_A-Za-z0-9-]+')(.*)" | ||
| 10534 | _ stripped rest) | ||
| 10535 | (string-append stripped " # " rest "\n"))))) | ||
| 10536 | (add-before 'check 'set-home | ||
| 10537 | (lambda _ | ||
| 10538 | (setenv "HOME" (getcwd))))))) | ||
| 10539 | (propagated-inputs | ||
| 10540 | (list ruby-builder | ||
| 10541 | ruby-cucumber-ci-environment | ||
| 10542 | ruby-cucumber-core | ||
| 10543 | ruby-cucumber-gherkin | ||
| 10544 | ruby-cucumber-html-formatter | ||
| 10545 | ruby-cucumber-messages | ||
| 10546 | ruby-cucumber-wire | ||
| 10547 | ruby-diff-lcs | ||
| 10548 | ruby-mime-types | ||
| 10549 | ruby-multi-test | ||
| 10550 | ruby-sys-uname)) | ||
| 10551 | (native-inputs | ||
| 10552 | (list ruby-cucumber-compatibility-kit | ||
| 10553 | ruby-nokogiri | ||
| 10554 | ruby-pry | ||
| 10555 | ruby-webrick | ||
| 10556 | ruby-rspec)) | ||
| 10557 | (synopsis "Describe automated tests in plain language") | ||
| 10558 | (description "Cucumber is a tool for running automated tests written in | ||
| 10559 | plain language. It's designed to support a Behaviour Driven Development (BDD) | ||
| 10560 | software development workflow.") | ||
| 10561 | (home-page "https://cucumber.io/") | ||
| 10562 | (license license:expat))) | ||
| 10563 | |||
| 10564 | (define ruby-cucumber-without-tests | ||
| 10565 | (package (inherit ruby-cucumber) | ||
| 10566 | (arguments | ||
| 10567 | '(#:tests? #f)) | ||
| 10568 | (native-inputs | ||
| 10569 | '()))) | ||
| 10570 | |||
| 10571 | (define-public ruby-covered | ||
| 10572 | (package | ||
| 10573 | (name "ruby-covered") | ||
| 10574 | (version "0.20.2") | ||
| 10575 | (source (origin | ||
| 10576 | (method url-fetch) | ||
| 10577 | (uri (rubygems-uri "covered" version)) | ||
| 10578 | (sha256 | ||
| 10579 | (base32 | ||
| 10580 | "04fpj493jn23ah5fq93956a5h2xj3z0hrckvc26fxcfsg5pbwypa")))) | ||
| 10581 | (build-system ruby-build-system) | ||
| 10582 | (arguments | ||
| 10583 | ;; XXX: The test suite is disabled to avoid dependency cycles with | ||
| 10584 | ;; ruby-samovar, through ruby-bake. | ||
| 10585 | (list #:tests? #f | ||
| 10586 | #:phases | ||
| 10587 | #~(modify-phases %standard-phases | ||
| 10588 | (add-after 'extract-gemspec 'relax-requirements | ||
| 10589 | (lambda _ | ||
| 10590 | (substitute* ".gemspec" | ||
| 10591 | (("\">= 3.2\"") | ||
| 10592 | "\">= 2.7\""))))))) | ||
| 10593 | (propagated-inputs (list ruby-console ruby-msgpack)) | ||
| 10594 | (synopsis "Modern approach to code coverage in Ruby") | ||
| 10595 | (description "Covered uses modern Ruby features to generate comprehensive | ||
| 10596 | coverage, including support for templates which are compiled into Ruby. It | ||
| 10597 | has the following features: | ||
| 10598 | @itemize | ||
| 10599 | @item | ||
| 10600 | Incremental coverage -- if you run your full test suite, and the run a subset, | ||
| 10601 | it will still report the correct coverage - so you can incrementally work on | ||
| 10602 | improving coverage. | ||
| 10603 | @item | ||
| 10604 | Integration with RSpec, Minitest, Travis & Coveralls - no need to configure | ||
| 10605 | anything - out of the box support for these platforms. | ||
| 10606 | @item | ||
| 10607 | It supports coverage of views -- templates compiled to Ruby code can be | ||
| 10608 | tracked for coverage reporting. | ||
| 10609 | @end itemize") | ||
| 10610 | (home-page "https://github.com/ioquatix/covered") | ||
| 10611 | (license license:expat))) | ||
| 10612 | |||
| 10613 | (define-public ruby-coveralls | ||
| 10614 | (package | ||
| 10615 | (name "ruby-coveralls") | ||
| 10616 | (version "0.8.23") | ||
| 10617 | (source | ||
| 10618 | (origin | ||
| 10619 | (method url-fetch) | ||
| 10620 | (uri (rubygems-uri "coveralls" version)) | ||
| 10621 | (sha256 | ||
| 10622 | (base32 | ||
| 10623 | "1mv4fn5lfxhy7bc2f1lpnc5yp9mvv97az77j4r7jgrxcqwn8fqxc")))) | ||
| 10624 | (build-system ruby-build-system) | ||
| 10625 | (arguments | ||
| 10626 | (list #:test-target "default" | ||
| 10627 | #:phases #~(modify-phases %standard-phases | ||
| 10628 | (add-after 'extract-gemspec 'disable-problematic-tests | ||
| 10629 | (lambda _ | ||
| 10630 | (substitute* "spec/coveralls/coveralls_spec.rb" | ||
| 10631 | ;; This test fails for unknown reasons (perhaps | ||
| 10632 | ;; networking); skip it. | ||
| 10633 | (("it \"sends existing test results\"" all) | ||
| 10634 | (string-append "x" all))) | ||
| 10635 | ;; 3 simplecov tests fail, perhaps due to using a | ||
| 10636 | ;; newer simplecov version. | ||
| 10637 | (delete-file "spec/coveralls/simplecov_spec.rb") | ||
| 10638 | (substitute* "coveralls-ruby.gemspec" | ||
| 10639 | (("\"spec/coveralls/simplecov_spec.rb\".freeze, ") | ||
| 10640 | "")))) | ||
| 10641 | (add-after 'extract-gemspec 'relax-requirements | ||
| 10642 | (lambda _ | ||
| 10643 | (substitute* "coveralls-ruby.gemspec" | ||
| 10644 | (("%q<simplecov>.freeze, \\[\"~> 0.16.1\"]") | ||
| 10645 | "%q<simplecov>.freeze"))))))) | ||
| 10646 | (native-inputs | ||
| 10647 | (list git-minimal/pinned | ||
| 10648 | ruby-pry | ||
| 10649 | ruby-rspec | ||
| 10650 | ruby-truthy | ||
| 10651 | ruby-vcr-expat | ||
| 10652 | ruby-webmock)) | ||
| 10653 | (propagated-inputs | ||
| 10654 | (list ruby-json | ||
| 10655 | ruby-term-ansicolor | ||
| 10656 | ruby-thor | ||
| 10657 | ruby-tins | ||
| 10658 | ruby-simplecov)) | ||
| 10659 | (synopsis "Ruby implementation of the Coveralls API") | ||
| 10660 | (description "This package provides a Ruby implementation of the Coveralls | ||
| 10661 | API.") | ||
| 10662 | (home-page "https://coveralls.io") | ||
| 10663 | (license license:expat))) | ||
| 10664 | |||
| 10665 | (define-public ruby-unindent | ||
| 10666 | (package | ||
| 10667 | (name "ruby-unindent") | ||
| 10668 | (version "1.0") | ||
| 10669 | (source | ||
| 10670 | (origin | ||
| 10671 | (method url-fetch) | ||
| 10672 | (uri (rubygems-uri "unindent" version)) | ||
| 10673 | (sha256 | ||
| 10674 | (base32 | ||
| 10675 | "1wqh3rzv8589yzibigminxx3qpmj2nqj28f90xy1sczk1pijmcrd")))) | ||
| 10676 | (build-system ruby-build-system) | ||
| 10677 | (synopsis "Ruby method to unindent strings") | ||
| 10678 | (description "This module provides a @code{String#unindent} Ruby method to | ||
| 10679 | unindent strings, which can be useful to unindent multiline strings embedded | ||
| 10680 | in already-indented code.") | ||
| 10681 | (home-page "https://github.com/mynyml/unindent") | ||
| 10682 | (license license:expat))) | ||
| 10683 | |||
| 10684 | (define-public ruby-cucumber-core | ||
| 10685 | (package | ||
| 10686 | (name "ruby-cucumber-core") | ||
| 10687 | (version "11.1.0") | ||
| 10688 | (source | ||
| 10689 | (origin | ||
| 10690 | (method git-fetch) | ||
| 10691 | (uri (git-reference | ||
| 10692 | (url "https://github.com/cucumber/cucumber-ruby-core") | ||
| 10693 | (commit (string-append "v" version)))) | ||
| 10694 | (file-name (git-file-name name version)) | ||
| 10695 | (sha256 | ||
| 10696 | (base32 | ||
| 10697 | "0lf2inlam0951djc2qz81x0nkffmw2dpj44iadw1fw31m7r8wqvh")))) | ||
| 10698 | (build-system ruby-build-system) | ||
| 10699 | (arguments (list #:test-target "spec" | ||
| 10700 | #:phases | ||
| 10701 | #~(modify-phases %standard-phases | ||
| 10702 | (add-after 'extract-gemspec 'relax-version-requirements | ||
| 10703 | (lambda _ | ||
| 10704 | (substitute* "cucumber-core.gemspec" | ||
| 10705 | (("'cucumber-tag-expressions',.*") | ||
| 10706 | "'cucumber-tag-expressions', '>=4.1.0'\n"))))))) | ||
| 10707 | (native-inputs | ||
| 10708 | (list ruby-rspec | ||
| 10709 | ruby-coveralls | ||
| 10710 | ruby-rubocop | ||
| 10711 | ruby-simplecov | ||
| 10712 | ruby-unindent)) | ||
| 10713 | (propagated-inputs | ||
| 10714 | (list ruby-cucumber-gherkin | ||
| 10715 | ruby-cucumber-messages | ||
| 10716 | ruby-cucumber-tag-expressions)) | ||
| 10717 | (synopsis "Core library for the Cucumber BDD app") | ||
| 10718 | (description "Cucumber is a tool for running automated tests | ||
| 10719 | written in plain language. Because they're written in plain language, | ||
| 10720 | they can be read by anyone on your team. Because they can be read by | ||
| 10721 | anyone, you can use them to help improve communication, collaboration | ||
| 10722 | and trust on your team.") | ||
| 10723 | (home-page "https://cucumber.io/") | ||
| 10724 | (license license:expat))) | ||
| 10725 | |||
| 10726 | (define-public ruby-cucumber-expressions | ||
| 10727 | (package | ||
| 10728 | (name "ruby-cucumber-expressions") | ||
| 10729 | (version "16.1.2") | ||
| 10730 | (source | ||
| 10731 | (origin | ||
| 10732 | (method git-fetch) | ||
| 10733 | (uri (git-reference | ||
| 10734 | (url "https://github.com/cucumber/cucumber-expressions") | ||
| 10735 | (commit (string-append "v" version)))) | ||
| 10736 | (file-name (git-file-name name version)) | ||
| 10737 | (sha256 | ||
| 10738 | (base32 | ||
| 10739 | "1dhq88k9x2x8svam5bc7rrcd166fqymda8wxryqkbkffhnzla0id")))) | ||
| 10740 | (build-system ruby-build-system) | ||
| 10741 | (arguments | ||
| 10742 | (list #:test-target "spec" | ||
| 10743 | #:phases #~(modify-phases %standard-phases | ||
| 10744 | (add-after 'unpack 'chdir | ||
| 10745 | (lambda _ | ||
| 10746 | (chdir "ruby")))))) | ||
| 10747 | (native-inputs (list ruby-rspec ruby-simplecov)) | ||
| 10748 | (synopsis "Simpler alternative to Regular Expressions") | ||
| 10749 | (description "Cucumber Expressions offer similar functionality to Regular | ||
| 10750 | Expressions, with a syntax that is easier to read and write. Cucumber | ||
| 10751 | Expressions are extensible with parameter types.") | ||
| 10752 | (home-page "https://github.com/cucumber/cucumber-expressions/") | ||
| 10753 | (license license:expat))) | ||
| 10754 | |||
| 10755 | (define-public ruby-cucumber-wire | ||
| 10756 | (package | ||
| 10757 | (name "ruby-cucumber-wire") | ||
| 10758 | (version "6.2.1") | ||
| 10759 | (source | ||
| 10760 | (origin | ||
| 10761 | (method url-fetch) | ||
| 10762 | (uri (rubygems-uri "cucumber-wire" version)) | ||
| 10763 | (sha256 | ||
| 10764 | (base32 | ||
| 10765 | "1pmydrh9lcckj7p0cn67jw7msxdkgr9zir86cs19h3mf2zlcv7b9")))) | ||
| 10766 | (build-system ruby-build-system) | ||
| 10767 | (arguments | ||
| 10768 | (list #:tests? #f)) ;tests use cucumber, causing a cycle | ||
| 10769 | (propagated-inputs | ||
| 10770 | (list ruby-cucumber-core ruby-cucumber-expressions | ||
| 10771 | ruby-cucumber-messages)) | ||
| 10772 | (synopsis "Cucumber wire protocol plugin") | ||
| 10773 | (description "Cucumber's wire protocol allows step definitions to be | ||
| 10774 | implemented and invoked on any platform.") | ||
| 10775 | (home-page "https://github.com/cucumber/cucumber-ruby-wire") | ||
| 10776 | (license license:expat))) | ||
| 10777 | |||
| 10778 | (define-public ruby-cucumber-tag-expressions | ||
| 10779 | (package | ||
| 10780 | (name "ruby-cucumber-tag-expressions") | ||
| 10781 | (version "5.0.1") | ||
| 10782 | (source | ||
| 10783 | (origin | ||
| 10784 | (method git-fetch) | ||
| 10785 | (uri (git-reference | ||
| 10786 | (url "https://github.com/cucumber/tag-expressions") | ||
| 10787 | (commit (string-append "v" version)))) | ||
| 10788 | (file-name (git-file-name name version)) | ||
| 10789 | (sha256 | ||
| 10790 | (base32 | ||
| 10791 | "1ziq30szn8m5y29hsdpx4dn1a8sy29h01nvcldm8nr1mx4b7dj1w")))) | ||
| 10792 | (build-system ruby-build-system) | ||
| 10793 | (arguments | ||
| 10794 | (list #:test-target "spec" | ||
| 10795 | #:phases #~(modify-phases %standard-phases | ||
| 10796 | (add-after 'unpack 'chdir | ||
| 10797 | (lambda _ | ||
| 10798 | (chdir "ruby")))))) | ||
| 10799 | (native-inputs (list ruby-rspec)) | ||
| 10800 | (synopsis "Cucumber tag expressions for Ruby") | ||
| 10801 | (description "Cucumber tag expression parser for Ruby. A tag expression | ||
| 10802 | is an infix boolean expression used by Cucumber.") | ||
| 10803 | (home-page "https://github.com/cucumber/tag-expressions") | ||
| 10804 | (license license:expat))) | ||
| 10805 | |||
| 10806 | (define-public ruby-skiptrace | ||
| 10807 | (package | ||
| 10808 | (name "ruby-skiptrace") | ||
| 10809 | (version "0.8.1") | ||
| 10810 | (source | ||
| 10811 | (origin | ||
| 10812 | (method url-fetch) | ||
| 10813 | (uri (rubygems-uri "skiptrace" version)) | ||
| 10814 | (sha256 | ||
| 10815 | (base32 | ||
| 10816 | "1qpjy6pqd8hx4w7bai64jsr10mwbpnnb65wcbssyqcnalimi1s12")))) | ||
| 10817 | (build-system ruby-build-system) | ||
| 10818 | (arguments | ||
| 10819 | (list | ||
| 10820 | #:phases | ||
| 10821 | #~(modify-phases %standard-phases | ||
| 10822 | (add-after 'unpack 'remove-git-from-gemspec | ||
| 10823 | (lambda _ | ||
| 10824 | (substitute* "skiptrace.gemspec" | ||
| 10825 | (("`git ls-files -z`") "`find . -type f -print0 |sort -z`")))) | ||
| 10826 | (replace 'check | ||
| 10827 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 10828 | (when tests? | ||
| 10829 | (invoke "bundle" "exec" "rake" "default"))))))) | ||
| 10830 | (native-inputs | ||
| 10831 | (list bundler ruby-rake-compiler)) | ||
| 10832 | (synopsis "Provides access for bindings relating to Ruby exceptions") | ||
| 10833 | (description | ||
| 10834 | "@code{skiptrace} provides a way to access the bindings that relate to | ||
| 10835 | exceptions in Ruby, providing more information about the context in which the | ||
| 10836 | exception occurred.") | ||
| 10837 | (home-page "https://github.com/gsamokovarov/skiptrace") | ||
| 10838 | (license license:expat))) | ||
| 10839 | |||
| 10840 | (define-public ruby-bio-logger | ||
| 10841 | (package | ||
| 10842 | (name "ruby-bio-logger") | ||
| 10843 | (version "1.0.1") | ||
| 10844 | (source | ||
| 10845 | (origin | ||
| 10846 | (method url-fetch) | ||
| 10847 | (uri (rubygems-uri "bio-logger" version)) | ||
| 10848 | (sha256 | ||
| 10849 | (base32 | ||
| 10850 | "02pylfy8nkdqzyzplvnhn1crzmfkj1zmi3qjhrj2f2imlxvycd28")))) | ||
| 10851 | (build-system ruby-build-system) | ||
| 10852 | (arguments | ||
| 10853 | `(#:tests? #f)) ; rake errors, missing shoulda | ||
| 10854 | (propagated-inputs | ||
| 10855 | (list ruby-log4r)) | ||
| 10856 | (synopsis "Log4r wrapper for Ruby") | ||
| 10857 | (description "Bio-logger is a wrapper around Log4r adding extra logging | ||
| 10858 | features such as filtering and fine grained logging.") | ||
| 10859 | (home-page "https://github.com/pjotrp/bioruby-logger-plugin") | ||
| 10860 | (license license:expat))) | ||
| 10861 | |||
| 10862 | (define-public ruby-yajl-ruby | ||
| 10863 | (package | ||
| 10864 | (name "ruby-yajl-ruby") | ||
| 10865 | (version "1.4.3") | ||
| 10866 | (source | ||
| 10867 | (origin | ||
| 10868 | (method url-fetch) | ||
| 10869 | (uri (rubygems-uri "yajl-ruby" version)) | ||
| 10870 | (sha256 | ||
| 10871 | (base32 | ||
| 10872 | "1lni4jbyrlph7sz8y49q84pb0sbj82lgwvnjnsiv01xf26f4v5wc")))) | ||
| 10873 | (build-system ruby-build-system) | ||
| 10874 | (arguments | ||
| 10875 | (list | ||
| 10876 | #:test-target "spec" | ||
| 10877 | #:phases | ||
| 10878 | #~(modify-phases %standard-phases | ||
| 10879 | (add-before 'check 'patch-test-to-update-load-path | ||
| 10880 | (lambda _ | ||
| 10881 | (substitute* "spec/parsing/large_number_spec.rb" | ||
| 10882 | (("require \"yajl\"") | ||
| 10883 | "$LOAD_PATH << 'lib'; require 'yajl'"))))))) | ||
| 10884 | (native-inputs | ||
| 10885 | (list ruby-rake-compiler ruby-rspec)) | ||
| 10886 | (synopsis "Streaming JSON parsing and encoding library for Ruby") | ||
| 10887 | (description | ||
| 10888 | "Ruby C bindings to the Yajl JSON stream-based parser library. The API | ||
| 10889 | is compatible with the JSON gem, so yajl-ruby can act as a drop in | ||
| 10890 | replacement. | ||
| 10891 | |||
| 10892 | A modified copy of yajl is used, and included in the package.") | ||
| 10893 | (home-page "https://github.com/brianmario/yajl-ruby") | ||
| 10894 | (license (list license:expat ; Ruby code, yajl_ext.c and yajl_ext.h | ||
| 10895 | license:bsd-3)))) ; Included, modified copy of yajl | ||
| 10896 | |||
| 10897 | (define-public ruby-yard | ||
| 10898 | (package | ||
| 10899 | (name "ruby-yard") | ||
| 10900 | (version "0.9.34") | ||
| 10901 | (source | ||
| 10902 | (origin | ||
| 10903 | (method git-fetch) | ||
| 10904 | ;; Tests do not pass if we build from the distributed gem. | ||
| 10905 | (uri (git-reference | ||
| 10906 | (url "https://github.com/lsegal/yard") | ||
| 10907 | (commit (string-append "v" version)))) | ||
| 10908 | (file-name (git-file-name name version)) | ||
| 10909 | (sha256 | ||
| 10910 | (base32 | ||
| 10911 | "10jq0hyzyy0d6l63jxld32g36fhrclkb3rwnyp47igcik73kbagb")))) | ||
| 10912 | (build-system ruby-build-system) | ||
| 10913 | (arguments | ||
| 10914 | (list | ||
| 10915 | #:test-target "default" | ||
| 10916 | #:phases | ||
| 10917 | #~(modify-phases %standard-phases | ||
| 10918 | (add-after 'unpack 'do-not-set-date-in-gemspec | ||
| 10919 | ;; Fix a reproducibility issue (see: | ||
| 10920 | ;; https://github.com/lsegal/yard/issues/1343). | ||
| 10921 | (lambda _ | ||
| 10922 | (substitute* "yard.gemspec" | ||
| 10923 | ((".*s\\.date.*") "")))) | ||
| 10924 | (add-before 'check 'prepare-for-tests | ||
| 10925 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 10926 | (when tests? | ||
| 10927 | (substitute* "Rakefile" | ||
| 10928 | ((".*[Ss]amus.*") "")) | ||
| 10929 | ;; Delete the Gemfile to avoid errors relating to it. | ||
| 10930 | (delete-file "Gemfile") | ||
| 10931 | ;; $HOME needs to be set to somewhere writeable for tests to | ||
| 10932 | ;; run. | ||
| 10933 | (setenv "HOME" "/tmp") | ||
| 10934 | ;; This test fails | ||
| 10935 | ;; #<File (class)> received :open with unexpected arguments | ||
| 10936 | ;; expected: ("gem1.gem", "rb") | ||
| 10937 | ;; got: ("/gnu/store/.../lib/ruby/vendor_ruby/specifications/asciidoctor-2.0.18.gemspec", "r:UTF-8:-") | ||
| 10938 | (substitute* "spec/cli/diff_spec.rb" | ||
| 10939 | (("it \"searches for .gem file") | ||
| 10940 | "xit \"searches for .gem file")))))))) | ||
| 10941 | (native-inputs | ||
| 10942 | (list ruby-rspec | ||
| 10943 | ruby-rack | ||
| 10944 | ruby-redcloth | ||
| 10945 | ruby-webrick | ||
| 10946 | ruby-asciidoctor/minimal)) | ||
| 10947 | (synopsis "Documentation generation tool for Ruby") | ||
| 10948 | (description "YARD is a documentation generation tool for the Ruby | ||
| 10949 | programming language. It enables the user to generate consistent, usable | ||
| 10950 | documentation that can be exported to a number of formats very easily, and | ||
| 10951 | also supports extending for custom Ruby constructs such as custom class level | ||
| 10952 | definitions.") | ||
| 10953 | (home-page "https://yardoc.org") | ||
| 10954 | (license license:expat))) | ||
| 10955 | |||
| 10956 | (define-public ruby-yard/minimal | ||
| 10957 | (hidden-package | ||
| 10958 | (package | ||
| 10959 | (inherit ruby-yard) | ||
| 10960 | (arguments | ||
| 10961 | (ensure-keyword-arguments | ||
| 10962 | (package-arguments ruby-yard) | ||
| 10963 | (list #:tests? #f))) | ||
| 10964 | (native-inputs '())))) | ||
| 10965 | |||
| 10966 | (define-public ruby-spectroscope | ||
| 10967 | (package | ||
| 10968 | (name "ruby-spectroscope") | ||
| 10969 | (version "0.1.0") | ||
| 10970 | (source | ||
| 10971 | (origin | ||
| 10972 | (method url-fetch) | ||
| 10973 | (uri (rubygems-uri "spectroscope" version)) | ||
| 10974 | (sha256 | ||
| 10975 | (base32 | ||
| 10976 | "0iiid9sm110qhx0i1zkds710cvsnmhd308wbqa7slkzbq2akrb3y")))) | ||
| 10977 | (build-system ruby-build-system) | ||
| 10978 | (arguments | ||
| 10979 | `(#:phases | ||
| 10980 | (modify-phases %standard-phases | ||
| 10981 | (replace 'check | ||
| 10982 | (lambda _ | ||
| 10983 | (with-output-to-file ".test" | ||
| 10984 | (lambda _ | ||
| 10985 | (display | ||
| 10986 | "\ | ||
| 10987 | require 'ae/should' | ||
| 10988 | require 'rspec' | ||
| 10989 | |||
| 10990 | include RSpec | ||
| 10991 | |||
| 10992 | Test.run :default do |run| | ||
| 10993 | run.files << 'spec/*_spec.rb' | ||
| 10994 | end"))) | ||
| 10995 | (invoke "ruby" "-Ilib" "-rrubytest" ".test")))))) | ||
| 10996 | (native-inputs | ||
| 10997 | (list ruby-ae ruby-rspec)) | ||
| 10998 | (propagated-inputs | ||
| 10999 | (list ruby-rubytest)) | ||
| 11000 | (synopsis "Behavior-Driven Development (BDD) framework built on RubyTest") | ||
| 11001 | (description "Spectroscope is a Behavior-Driven Development (BDD) | ||
| 11002 | framework built on RubyTest, designed to emulate RSpec in most respects. It | ||
| 11003 | is assertion framework independent so any number of assertion systems can be | ||
| 11004 | used, such as Assay or AE.") | ||
| 11005 | (home-page "http://rubyworks.github.com/spectroscope/") | ||
| 11006 | (license license:bsd-2))) | ||
| 11007 | |||
| 11008 | (define-public ruby-tomparse | ||
| 11009 | (package | ||
| 11010 | (name "ruby-tomparse") | ||
| 11011 | (version "0.4.2") | ||
| 11012 | (source | ||
| 11013 | (origin | ||
| 11014 | (method url-fetch) | ||
| 11015 | (uri (rubygems-uri "tomparse" version)) | ||
| 11016 | (sha256 | ||
| 11017 | (base32 | ||
| 11018 | "06xakk41f1kgj6j1ahkwn4r6cvidixvm4phhlrvmwb7c3pr8ygc8")))) | ||
| 11019 | (build-system ruby-build-system) | ||
| 11020 | ;; TODO: Tests require citron and rulebow, not yet packaged. | ||
| 11021 | (arguments '(#:tests? #f)) | ||
| 11022 | (synopsis "TomDoc parser for Ruby") | ||
| 11023 | (description "TomParse is a TomDoc parser for Ruby. It takes a code | ||
| 11024 | comment as input and parses it into a convenient object-oriented structure in | ||
| 11025 | accordance with the TomDoc standard. See | ||
| 11026 | @url{https://github.com/mojombo/tomdoc, TomDoc} for more information about the | ||
| 11027 | TomDoc format.") | ||
| 11028 | (home-page "http://rubyworks.github.com/tomparse/") | ||
| 11029 | (license license:bsd-2))) | ||
| 11030 | |||
| 11031 | (define-public ruby-yard-tomdoc | ||
| 11032 | (package | ||
| 11033 | (name "ruby-yard-tomdoc") | ||
| 11034 | (version "0.7.1") | ||
| 11035 | (source | ||
| 11036 | (origin | ||
| 11037 | (method url-fetch) | ||
| 11038 | (uri (rubygems-uri "yard-tomdoc" version)) | ||
| 11039 | (sha256 | ||
| 11040 | (base32 | ||
| 11041 | "1725gs8b8klpwhrvnf2wwp7dw3zxs9vz2la983l2d8c4r4fn1j2z")))) | ||
| 11042 | (build-system ruby-build-system) | ||
| 11043 | (arguments | ||
| 11044 | `(#:phases (modify-phases %standard-phases | ||
| 11045 | (replace 'check | ||
| 11046 | (lambda _ | ||
| 11047 | (invoke "rubytest" "-Ilib" "-Itest" "test/")))))) | ||
| 11048 | (native-inputs | ||
| 11049 | (list ruby-rubytest-cli ruby-spectroscope ruby-ae)) | ||
| 11050 | (propagated-inputs | ||
| 11051 | (list ruby-tomparse ruby-yard)) | ||
| 11052 | (synopsis "TomDoc syntax for YARD") | ||
| 11053 | (description "This module adds support for the TomDoc documentation format | ||
| 11054 | to YARD, a documentation generation tool for Ruby.") | ||
| 11055 | (home-page "http://rubyworks.github.com/yard-tomdoc/") | ||
| 11056 | (license license:expat))) | ||
| 11057 | |||
| 11058 | (define-public ruby-clap | ||
| 11059 | (package | ||
| 11060 | (name "ruby-clap") | ||
| 11061 | (version "1.0.0") | ||
| 11062 | (source (origin | ||
| 11063 | (method url-fetch) | ||
| 11064 | (uri (rubygems-uri "clap" version)) | ||
| 11065 | (sha256 | ||
| 11066 | (base32 | ||
| 11067 | "190m05k3pca72c1h8k0fnvby15m303zi0lpb9c478ad19wqawa5q")))) | ||
| 11068 | (build-system ruby-build-system) | ||
| 11069 | ;; Clap needs cutest for running tests, but cutest needs clap. | ||
| 11070 | (arguments `(#:tests? #f)) | ||
| 11071 | (synopsis "Command line argument parsing for simple applications") | ||
| 11072 | (description | ||
| 11073 | "Clap provides command line argument parsing features. It covers the | ||
| 11074 | simple case of executing code based on the flags or parameters passed.") | ||
| 11075 | (home-page "https://github.com/djanowski/cutest") | ||
| 11076 | (license license:expat))) | ||
| 11077 | |||
| 11078 | (define-public ruby-cutest | ||
| 11079 | (package | ||
| 11080 | (name "ruby-cutest") | ||
| 11081 | (version "1.2.2") | ||
| 11082 | (source (origin | ||
| 11083 | (method url-fetch) | ||
| 11084 | (uri (rubygems-uri "cutest" version)) | ||
| 11085 | (sha256 | ||
| 11086 | (base32 | ||
| 11087 | "1mldhjn62g53vx4gq2qdqg2lgjvyrqxa8d0khf8347bbfgi16d32")))) | ||
| 11088 | (build-system ruby-build-system) | ||
| 11089 | (propagated-inputs | ||
| 11090 | (list ruby-clap)) | ||
| 11091 | (synopsis "Run tests in separate processes") | ||
| 11092 | (description | ||
| 11093 | "Cutest runs tests in separate processes to avoid shared state.") | ||
| 11094 | (home-page "https://github.com/djanowski/cutest") | ||
| 11095 | (license license:expat))) | ||
| 11096 | |||
| 11097 | (define-public ruby-pygmentize | ||
| 11098 | (package | ||
| 11099 | (name "ruby-pygmentize") | ||
| 11100 | (version "0.0.3") | ||
| 11101 | (source (origin | ||
| 11102 | (method url-fetch) | ||
| 11103 | (uri (rubygems-uri "pygmentize" version)) | ||
| 11104 | (sha256 | ||
| 11105 | (base32 | ||
| 11106 | "1pxryhkiwvsz6xzda3bvqwz5z8ggzl1cdglf8qbcf4bb7akirdpb")))) | ||
| 11107 | (build-system ruby-build-system) | ||
| 11108 | (arguments | ||
| 11109 | `(#:phases | ||
| 11110 | (modify-phases %standard-phases | ||
| 11111 | (add-after 'unpack 'fix-pygmentize-path | ||
| 11112 | (lambda _ | ||
| 11113 | (substitute* "lib/pygmentize.rb" | ||
| 11114 | (("\"/usr/bin/env python.*") | ||
| 11115 | (string-append "\"" (which "pygmentize") "\"\n"))))) | ||
| 11116 | (add-after 'build 'do-not-use-vendor-directory | ||
| 11117 | (lambda _ | ||
| 11118 | ;; Remove bundled pygments sources | ||
| 11119 | ;; FIXME: ruby-build-system does not support snippets. | ||
| 11120 | (delete-file-recursively "vendor") | ||
| 11121 | (substitute* "pygmentize.gemspec" | ||
| 11122 | (("\"vendor/\\*\\*/\\*\",") ""))))))) | ||
| 11123 | (inputs | ||
| 11124 | `(("pygments" ,python-pygments))) | ||
| 11125 | (native-inputs | ||
| 11126 | (list ruby-cutest ruby-nokogiri)) | ||
| 11127 | (synopsis "Thin Ruby wrapper around pygmentize") | ||
| 11128 | (description | ||
| 11129 | "Pygmentize provides a simple way to call pygmentize from within a Ruby | ||
| 11130 | application.") | ||
| 11131 | (home-page "https://github.com/djanowski/pygmentize") | ||
| 11132 | (license license:expat))) | ||
| 11133 | |||
| 11134 | (define-public ruby-event-emitter | ||
| 11135 | (package | ||
| 11136 | (name "ruby-event-emitter") | ||
| 11137 | (version "0.2.6") | ||
| 11138 | (source (origin | ||
| 11139 | (method url-fetch) | ||
| 11140 | (uri (rubygems-uri "event_emitter" version)) | ||
| 11141 | (sha256 | ||
| 11142 | (base32 | ||
| 11143 | "148k9qv8102l3m6klc24dwip79f9y4bjr5z19dckd7ffbjyrf9n7")))) | ||
| 11144 | (build-system ruby-build-system) | ||
| 11145 | (arguments | ||
| 11146 | (list #:phases #~(modify-phases %standard-phases | ||
| 11147 | (add-after 'extract-gemspec 'relax-requirements | ||
| 11148 | (lambda _ | ||
| 11149 | (substitute* "event_emitter.gemspec" | ||
| 11150 | (("~> 1.15") ">= 1.15"))))))) | ||
| 11151 | (synopsis "Ruby port of EventEmitter from Node.js") | ||
| 11152 | (description | ||
| 11153 | "This package provides a Ruby port of EventEmitter from Node.js.") | ||
| 11154 | (home-page "https://shokai.github.io/event_emitter/") | ||
| 11155 | (license license:expat))) | ||
| 11156 | |||
| 11157 | (define-public ruby-eventmachine | ||
| 11158 | (package | ||
| 11159 | (name "ruby-eventmachine") | ||
| 11160 | (version "1.2.7") | ||
| 11161 | (source | ||
| 11162 | (origin | ||
| 11163 | (method url-fetch) | ||
| 11164 | (uri (rubygems-uri "eventmachine" version)) | ||
| 11165 | (sha256 | ||
| 11166 | (base32 | ||
| 11167 | "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r")))) | ||
| 11168 | (build-system ruby-build-system) | ||
| 11169 | (arguments | ||
| 11170 | '(#:tests? #f)) ; test suite tries to connect to google.com | ||
| 11171 | (inputs | ||
| 11172 | (list openssl)) | ||
| 11173 | (native-inputs | ||
| 11174 | (list ruby-rake-compiler)) | ||
| 11175 | (synopsis "Single-threaded network event framework for Ruby") | ||
| 11176 | (description | ||
| 11177 | "EventMachine implements a single-threaded engine for arbitrary network | ||
| 11178 | communications. EventMachine wraps all interactions with sockets, allowing | ||
| 11179 | programs to concentrate on the implementation of network protocols. It can be | ||
| 11180 | used to create both network servers and clients.") | ||
| 11181 | ;; The ‘official’ rubyeventmachine.com domain is now registrar-squatted. | ||
| 11182 | (home-page "https://github.com/eventmachine/eventmachine") | ||
| 11183 | (license (list license:ruby license:gpl3)))) ; GPLv3 only AFAICT | ||
| 11184 | |||
| 11185 | (define-public ruby-ruby-engine | ||
| 11186 | (package | ||
| 11187 | (name "ruby-ruby-engine") | ||
| 11188 | (version "2.0.0") | ||
| 11189 | (source | ||
| 11190 | (origin | ||
| 11191 | (method url-fetch) | ||
| 11192 | (uri (rubygems-uri "ruby_engine" version)) | ||
| 11193 | (sha256 | ||
| 11194 | (base32 | ||
| 11195 | "0wqdcv8gxybp1y7kjhh18g3r9dczacs62d4ahcvyhz32bih8c9fm")))) | ||
| 11196 | (build-system ruby-build-system) | ||
| 11197 | (arguments | ||
| 11198 | `(#:phases | ||
| 11199 | (modify-phases %standard-phases | ||
| 11200 | (add-after 'extract-gemspec 'clean-up | ||
| 11201 | (lambda _ | ||
| 11202 | (delete-file "Gemfile.lock") | ||
| 11203 | (substitute* "ruby_engine.gemspec" | ||
| 11204 | ;; Remove unnecessary imports that would entail further | ||
| 11205 | ;; dependencies. | ||
| 11206 | ((".*<rdoc.*") "") | ||
| 11207 | ((".*<rubygems-tasks.*") "") | ||
| 11208 | ;; Remove extraneous .gem file | ||
| 11209 | (("\"pkg/ruby_engine-[0-9.]+\\.gem\".freeze, ") "") | ||
| 11210 | (("\"Gemfile.lock\".freeze, ") "") | ||
| 11211 | ;; Soften rake dependency | ||
| 11212 | (("%q<rake>.freeze, \\[\"~> 10.0\"\\]") | ||
| 11213 | "%q<rake>.freeze, [\">= 10.0\"]") | ||
| 11214 | ;; Soften the rspec dependency | ||
| 11215 | (("%q<rspec>.freeze, \\[\"~> 2.4\"\\]") | ||
| 11216 | "%q<rspec>.freeze, [\">= 2.4\"]")) | ||
| 11217 | (substitute* "Rakefile" | ||
| 11218 | (("require 'rubygems/tasks'") "") | ||
| 11219 | (("Gem::Tasks.new") "")) | ||
| 11220 | ;; Remove extraneous .gem file that otherwise gets installed. | ||
| 11221 | (delete-file-recursively "pkg")))))) | ||
| 11222 | (native-inputs | ||
| 11223 | (list bundler ruby-rake ruby-rspec)) | ||
| 11224 | (synopsis "Simplifies checking for Ruby implementation") | ||
| 11225 | (description | ||
| 11226 | "@code{ruby_engine} provides an RubyEngine class that can be used to | ||
| 11227 | check which implementation of Ruby is in use. It can provide the interpreter | ||
| 11228 | name and provides query methods such as @code{RubyEngine.mri?}.") | ||
| 11229 | (home-page "https://github.com/janlelis/ruby_engine") | ||
| 11230 | (license license:expat))) | ||
| 11231 | |||
| 11232 | (define-public ruby-mimemagic | ||
| 11233 | (package | ||
| 11234 | (name "ruby-mimemagic") | ||
| 11235 | (version "0.3.3") | ||
| 11236 | (source | ||
| 11237 | (origin | ||
| 11238 | (method url-fetch) | ||
| 11239 | (uri (rubygems-uri "mimemagic" version)) | ||
| 11240 | (sha256 | ||
| 11241 | (base32 "04cp5sfbh1qx82yqxn0q75c7hlcx8y1dr5g3kyzwm4mx6wi2gifw")))) | ||
| 11242 | (build-system ruby-build-system) | ||
| 11243 | (arguments | ||
| 11244 | '(#:phases | ||
| 11245 | (modify-phases %standard-phases | ||
| 11246 | ;; This phase breaks the tests, as it patches some of the test data. | ||
| 11247 | (delete 'patch-source-shebangs)))) | ||
| 11248 | (native-inputs | ||
| 11249 | (list ruby-bacon)) | ||
| 11250 | (synopsis "Ruby library for MIME detection by extension or content") | ||
| 11251 | (description | ||
| 11252 | "@acronym{MIME, Multipurpose Internet Mail Extensions} detection by | ||
| 11253 | extension or content, using the freedesktop.org.xml shared-mime-info | ||
| 11254 | database.") | ||
| 11255 | (home-page "https://github.com/minad/mimemagic") | ||
| 11256 | (license license:expat))) | ||
| 11257 | |||
| 11258 | (define-public ruby-mime-types-data | ||
| 11259 | (package | ||
| 11260 | (name "ruby-mime-types-data") | ||
| 11261 | (version "3.2016.0521") | ||
| 11262 | (source | ||
| 11263 | (origin | ||
| 11264 | (method url-fetch) | ||
| 11265 | (uri (rubygems-uri "mime-types-data" version)) | ||
| 11266 | (sha256 | ||
| 11267 | (base32 | ||
| 11268 | "04my3746hwa4yvbx1ranhfaqkgf6vavi1kyijjnw8w3dy37vqhkm")))) | ||
| 11269 | (build-system ruby-build-system) | ||
| 11270 | (native-inputs | ||
| 11271 | (list ruby-hoe)) | ||
| 11272 | (synopsis "Registry for information about MIME media type definitions") | ||
| 11273 | (description | ||
| 11274 | "@code{mime-types-data} provides a registry for information about | ||
| 11275 | Multipurpose Internet Mail Extensions (MIME) media type definitions. It can | ||
| 11276 | be used with the Ruby mime-types library or other software to determine | ||
| 11277 | defined filename extensions for MIME types, or to use filename extensions to | ||
| 11278 | look up the likely MIME type definitions.") | ||
| 11279 | (home-page "https://github.com/mime-types/mime-types-data/") | ||
| 11280 | (license license:expat))) | ||
| 11281 | |||
| 11282 | (define-public ruby-mime-types | ||
| 11283 | (package | ||
| 11284 | (name "ruby-mime-types") | ||
| 11285 | (version "3.4.1") | ||
| 11286 | (source | ||
| 11287 | (origin | ||
| 11288 | (method url-fetch) | ||
| 11289 | (uri (rubygems-uri "mime-types" version)) | ||
| 11290 | (sha256 | ||
| 11291 | (base32 | ||
| 11292 | "0ipw892jbksbxxcrlx9g5ljq60qx47pm24ywgfbyjskbcl78pkvb")))) | ||
| 11293 | (build-system ruby-build-system) | ||
| 11294 | (propagated-inputs | ||
| 11295 | (list ruby-mime-types-data)) | ||
| 11296 | (native-inputs | ||
| 11297 | (list ruby-hoe | ||
| 11298 | ruby-fivemat | ||
| 11299 | ruby-minitest-focus | ||
| 11300 | ruby-minitest-bonus-assertions | ||
| 11301 | ruby-minitest-hooks)) | ||
| 11302 | (synopsis "Library and registry for MIME content type definitions") | ||
| 11303 | (description "The mime-types library provides a library and registry for | ||
| 11304 | information about Multipurpose Internet Mail Extensions (MIME) content type | ||
| 11305 | definitions. It can be used to determine defined filename extensions for MIME | ||
| 11306 | types, or to use filename extensions to look up the likely MIME type | ||
| 11307 | definitions.") | ||
| 11308 | (home-page "https://github.com/mime-types/ruby-mime-types") | ||
| 11309 | (license license:expat))) | ||
| 11310 | |||
| 11311 | (define-public ruby-mini-mime | ||
| 11312 | (package | ||
| 11313 | (name "ruby-mini-mime") | ||
| 11314 | (version "1.1.2") | ||
| 11315 | (source | ||
| 11316 | (origin | ||
| 11317 | (method url-fetch) | ||
| 11318 | (uri (rubygems-uri "mini_mime" version)) | ||
| 11319 | (sha256 | ||
| 11320 | (base32 | ||
| 11321 | "0lbim375gw2dk6383qirz13hgdmxlan0vc5da2l072j3qw6fqjm5")))) | ||
| 11322 | (build-system ruby-build-system) | ||
| 11323 | (synopsis "Lightweight mime type lookup toy") | ||
| 11324 | (description "This package provides a lightweight mime type lookup toy.") | ||
| 11325 | (home-page "https://github.com/discourse/mini_mime") | ||
| 11326 | (license license:expat))) | ||
| 11327 | |||
| 11328 | (define-public ruby-fileutils | ||
| 11329 | (package | ||
| 11330 | (name "ruby-fileutils") | ||
| 11331 | (version "1.7.0") | ||
| 11332 | (source (origin | ||
| 11333 | (method git-fetch) ;for tests | ||
| 11334 | (uri (git-reference | ||
| 11335 | (url "https://github.com/ruby/fileutils") | ||
| 11336 | (commit (string-append "v" version)))) | ||
| 11337 | (file-name (git-file-name name version)) | ||
| 11338 | (sha256 | ||
| 11339 | (base32 | ||
| 11340 | "0m68gaqclnc2wflilmrnr19kky2gr6fjf6k3yq02sf9scs281kid")))) | ||
| 11341 | (build-system ruby-build-system) | ||
| 11342 | (arguments | ||
| 11343 | (list | ||
| 11344 | #:phases | ||
| 11345 | #~(modify-phases %standard-phases | ||
| 11346 | (add-before 'check 'disable-problematic-tests | ||
| 11347 | (lambda _ | ||
| 11348 | (substitute* "test/fileutils/test_fileutils.rb" | ||
| 11349 | ;; The 'test_chown' tests depends on /etc/groups, which | ||
| 11350 | ;; doesn't exist in the build environment. | ||
| 11351 | (("def test_chown.*" all) | ||
| 11352 | (string-append all " return true\n")) | ||
| 11353 | ;; The 'test_cp_r_dev' expects a RuntimeError to be raised | ||
| 11354 | ;; when copying a char device to a directory, but this is not | ||
| 11355 | ;; triggered in the build environment, for reasons unknown. | ||
| 11356 | (("def test_cp_r_dev.*" all) | ||
| 11357 | (string-append all " return true\n")))))))) | ||
| 11358 | (synopsis "Ruby utility library to manipulate files") | ||
| 11359 | (description "The FileUtils Ruby library includes Several file utility | ||
| 11360 | methods for copying, moving, removing, etc.") | ||
| 11361 | (home-page "https://github.com/ruby/fileutils") | ||
| 11362 | (license license:bsd-2))) | ||
| 11363 | |||
| 11364 | (define-public ruby-fivemat | ||
| 11365 | (package | ||
| 11366 | (name "ruby-fivemat") | ||
| 11367 | (version "1.3.7") | ||
| 11368 | (source | ||
| 11369 | (origin | ||
| 11370 | (method url-fetch) | ||
| 11371 | (uri (rubygems-uri "fivemat" version)) | ||
| 11372 | (sha256 | ||
| 11373 | (base32 | ||
| 11374 | "0pzlycasvwmg4bbx7plllpqnhd9zlmmff8l2w3yii86nrm2nvf9n")))) | ||
| 11375 | (build-system ruby-build-system) | ||
| 11376 | (arguments | ||
| 11377 | `(#:tests? #f)) ; no tests | ||
| 11378 | (synopsis "Each test file given its own line of dots") | ||
| 11379 | (description | ||
| 11380 | "Fivemat is a MiniTest/RSpec/Cucumber formatter that gives each test file | ||
| 11381 | its own line of dots during testing. It aims to provide test output that is | ||
| 11382 | neither too verbose nor too minimal.") | ||
| 11383 | (home-page "https://github.com/tpope/fivemat") | ||
| 11384 | (license license:expat))) | ||
| 11385 | |||
| 11386 | (define-public ruby-sqlite3 | ||
| 11387 | (package | ||
| 11388 | (name "ruby-sqlite3") | ||
| 11389 | (version "2.5.0") | ||
| 11390 | (source | ||
| 11391 | (origin | ||
| 11392 | (method git-fetch) ;for tests | ||
| 11393 | (uri (git-reference | ||
| 11394 | (url "https://github.com/sparklemotion/sqlite3-ruby") | ||
| 11395 | (commit (string-append "v" version)))) | ||
| 11396 | (file-name (git-file-name name version)) | ||
| 11397 | (sha256 | ||
| 11398 | (base32 | ||
| 11399 | "1fanv7bv5lszd5g752yy8nmpjhrl9gqwbbkbis2xbh83y96f2zfm")))) | ||
| 11400 | (build-system ruby-build-system) | ||
| 11401 | (arguments | ||
| 11402 | (list | ||
| 11403 | #:gem-flags #~(list "--" "--enable-system-libraries") | ||
| 11404 | #:modules '((guix build ruby-build-system) | ||
| 11405 | (guix build utils) | ||
| 11406 | (ice-9 rdelim) | ||
| 11407 | (ice-9 textual-ports)) | ||
| 11408 | #:phases | ||
| 11409 | #~(modify-phases %standard-phases | ||
| 11410 | (add-after 'unpack 'relax-requirements | ||
| 11411 | (lambda _ | ||
| 11412 | ;; Don't try to format C code, remove rubocop-rake. | ||
| 11413 | (delete-file "rakelib/format.rake") | ||
| 11414 | ;; Don't try to run valgrind-like memory tests. | ||
| 11415 | ;; This cuts all lines after Minitest::TestTask.create | ||
| 11416 | (with-atomic-file-replacement | ||
| 11417 | "rakelib/test.rake" | ||
| 11418 | (lambda (in out) | ||
| 11419 | (let loop () | ||
| 11420 | (let ((line (read-line in))) | ||
| 11421 | (cond | ||
| 11422 | ((eof-object? line) #f) | ||
| 11423 | ((string-prefix? "Minitest::TestTask.create" line) #f) | ||
| 11424 | (else | ||
| 11425 | (format out "~a~%" line) | ||
| 11426 | (loop))))))))) | ||
| 11427 | (delete 'check) | ||
| 11428 | (add-after 'install 'check | ||
| 11429 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 11430 | (when tests? | ||
| 11431 | (setenv "GEM_PATH" | ||
| 11432 | (string-append (getenv "GEM_PATH") ":" | ||
| 11433 | #$output "/lib/ruby/vendor_ruby")) | ||
| 11434 | (invoke "rake" "test"))))))) | ||
| 11435 | (propagated-inputs | ||
| 11436 | (list ruby-mini-portile-2)) | ||
| 11437 | (inputs | ||
| 11438 | (list sqlite)) | ||
| 11439 | (native-inputs | ||
| 11440 | (list ruby-hoe | ||
| 11441 | ruby-rake-compiler | ||
| 11442 | ruby-rake-compiler-dock)) | ||
| 11443 | (synopsis "Interface with SQLite3 databases") | ||
| 11444 | (description | ||
| 11445 | "This module allows Ruby programs to interface with the SQLite3 database | ||
| 11446 | engine.") | ||
| 11447 | (home-page | ||
| 11448 | "https://github.com/sparklemotion/sqlite3-ruby") | ||
| 11449 | (license license:bsd-3))) | ||
| 11450 | |||
| 11451 | (define-public ruby-sqlite3-1.4 | ||
| 11452 | (package/inherit ruby-sqlite3 | ||
| 11453 | (name "ruby-sqlite3") | ||
| 11454 | (version "1.4.4") | ||
| 11455 | (source | ||
| 11456 | (origin | ||
| 11457 | (method git-fetch) ;for tests | ||
| 11458 | (uri (git-reference | ||
| 11459 | (url "https://github.com/sparklemotion/sqlite3-ruby") | ||
| 11460 | (commit (string-append "v" version)))) | ||
| 11461 | (file-name (git-file-name name version)) | ||
| 11462 | (sha256 | ||
| 11463 | (base32 | ||
| 11464 | "0ngirjbai3f5ki2sf6m4gxbbrjpr3b35bz5nrz1cifyw1jk6a6sr")))) | ||
| 11465 | (arguments | ||
| 11466 | (substitute-keyword-arguments (package-arguments ruby-sqlite3) | ||
| 11467 | ((#:tests? #t #t) #f) | ||
| 11468 | ((#:phases phases #~%standard-phases) | ||
| 11469 | #~(modify-phases #$phases | ||
| 11470 | (delete 'relax-requirements) | ||
| 11471 | (add-after 'unpack 'fix-version | ||
| 11472 | (lambda _ | ||
| 11473 | (substitute* "sqlite3.gemspec" | ||
| 11474 | (("s\\.version = .*") | ||
| 11475 | (format #f "s.version = ~s~%" #$version))))))))))) | ||
| 11476 | |||
| 11477 | (define-public ruby-shoulda-context | ||
| 11478 | (package | ||
| 11479 | (name "ruby-shoulda-context") | ||
| 11480 | (version "2.0.0") | ||
| 11481 | (source | ||
| 11482 | (origin | ||
| 11483 | (method url-fetch) | ||
| 11484 | (uri (rubygems-uri "shoulda-context" version)) | ||
| 11485 | (sha256 | ||
| 11486 | (base32 | ||
| 11487 | "0d1clcp92jv8756h09kbc55qiqncn666alx0s83za06q5hs4bpvs")))) | ||
| 11488 | (build-system ruby-build-system) | ||
| 11489 | (arguments | ||
| 11490 | `(#:phases | ||
| 11491 | (modify-phases %standard-phases | ||
| 11492 | (replace 'check | ||
| 11493 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 11494 | (when tests? | ||
| 11495 | ;; Do not run tests to avoid circular dependence with rails. | ||
| 11496 | ;; Instead just import the library to test. | ||
| 11497 | (invoke "ruby" "-Ilib" "-r" "shoulda-context"))))))) | ||
| 11498 | (synopsis "Test::Unit context framework extracted from Shoulda") | ||
| 11499 | (description | ||
| 11500 | "@code{shoulda-context} is the context framework extracted from Shoulda. | ||
| 11501 | Instead of writing Ruby methods with lots_of_underscores, shoulda-context adds | ||
| 11502 | context, setup, and should blocks combine to produce natural test method | ||
| 11503 | names.") | ||
| 11504 | (home-page "https://github.com/thoughtbot/shoulda-context") | ||
| 11505 | (license license:expat))) | ||
| 11506 | |||
| 11507 | (define-public ruby-shoulda-matchers | ||
| 11508 | (package | ||
| 11509 | (name "ruby-shoulda-matchers") | ||
| 11510 | (version "5.3.0") | ||
| 11511 | (source | ||
| 11512 | (origin | ||
| 11513 | (method url-fetch) | ||
| 11514 | (uri (rubygems-uri "shoulda-matchers" version)) | ||
| 11515 | (sha256 | ||
| 11516 | (base32 | ||
| 11517 | "11igjgh16dl5pwqizdmclzlzpv7mbmnh8fx7m9b5kfsjhwxqdfpn")))) | ||
| 11518 | (build-system ruby-build-system) | ||
| 11519 | (arguments | ||
| 11520 | `(#:phases | ||
| 11521 | (modify-phases %standard-phases | ||
| 11522 | (replace 'check | ||
| 11523 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 11524 | (when tests? | ||
| 11525 | ;; Do not run tests to avoid circular dependence with rails. Instead | ||
| 11526 | ;; just import the library to test. | ||
| 11527 | (invoke "ruby" "-Ilib" "-r" "shoulda-matchers"))))))) | ||
| 11528 | (propagated-inputs | ||
| 11529 | (list ruby-activesupport)) | ||
| 11530 | (synopsis "Collection of testing matchers extracted from Shoulda") | ||
| 11531 | (description | ||
| 11532 | "Shoulda Matchers provides RSpec- and Minitest-compatible one-liners that | ||
| 11533 | test common Rails functionality. These tests would otherwise be much longer, | ||
| 11534 | more complex, and error-prone.") | ||
| 11535 | (home-page "https://github.com/thoughtbot/shoulda-matchers") | ||
| 11536 | (license license:expat))) | ||
| 11537 | |||
| 11538 | (define-public ruby-shoulda | ||
| 11539 | (package | ||
| 11540 | (name "ruby-shoulda") | ||
| 11541 | (version "4.0.0") | ||
| 11542 | (source | ||
| 11543 | (origin | ||
| 11544 | (method url-fetch) | ||
| 11545 | (uri (rubygems-uri "shoulda" version)) | ||
| 11546 | (sha256 | ||
| 11547 | (base32 | ||
| 11548 | "02lww34kn1g6lidp4rx4rs6bqvirrzxlfw1y2wm11aif8f622xz6")))) | ||
| 11549 | (build-system ruby-build-system) | ||
| 11550 | (arguments | ||
| 11551 | `(#:phases | ||
| 11552 | (modify-phases %standard-phases | ||
| 11553 | (replace 'check | ||
| 11554 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 11555 | (when tests? | ||
| 11556 | ;; Don't run tests to avoid circular dependence with rails. | ||
| 11557 | ;; Instead just import the library to test. | ||
| 11558 | (invoke "ruby" "-Ilib" "-r" "shoulda")))) | ||
| 11559 | (add-after 'extract-gemspec 'relax-requirements | ||
| 11560 | (lambda _ | ||
| 11561 | (substitute* "shoulda.gemspec" | ||
| 11562 | ;; An older version of shoulda-matchers (4.0) is used, out of | ||
| 11563 | ;; little maintenance rather than because of an real | ||
| 11564 | ;; incompatibility (see: | ||
| 11565 | ;; https://github.com/thoughtbot/shoulda/issues/275). | ||
| 11566 | ((", \\[\"~> 4.0\"]") ""))))))) | ||
| 11567 | (propagated-inputs | ||
| 11568 | (list ruby-shoulda-context ruby-shoulda-matchers)) | ||
| 11569 | (synopsis "Context framework and matchers for testing") | ||
| 11570 | (description | ||
| 11571 | "@code{shoulda} is a meta-package combining @code{shoulda-context} and | ||
| 11572 | @code{shoulda-matchers} providing tools for writing tests.") | ||
| 11573 | (home-page "https://github.com/thoughtbot/shoulda") | ||
| 11574 | (license license:expat))) | ||
| 11575 | |||
| 11576 | (define-public ruby-unf | ||
| 11577 | (package | ||
| 11578 | (name "ruby-unf") | ||
| 11579 | (version "0.1.4") | ||
| 11580 | (source | ||
| 11581 | (origin | ||
| 11582 | (method url-fetch) | ||
| 11583 | (uri (rubygems-uri "unf" version)) | ||
| 11584 | (sha256 | ||
| 11585 | (base32 | ||
| 11586 | "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9")))) | ||
| 11587 | (build-system ruby-build-system) | ||
| 11588 | (arguments | ||
| 11589 | `(#:phases | ||
| 11590 | (modify-phases %standard-phases | ||
| 11591 | (add-before 'check 'add-dependency-to-bundler | ||
| 11592 | (lambda _ | ||
| 11593 | ;; test-unit is required but not provided by the bundler | ||
| 11594 | ;; environment. This is fixed in the upstream repository but fix | ||
| 11595 | ;; has not been released. | ||
| 11596 | (substitute* "Gemfile" | ||
| 11597 | (("^gemspec") "gem 'test-unit'\ngemspec"))))))) | ||
| 11598 | (propagated-inputs | ||
| 11599 | (list ruby-unf-ext)) | ||
| 11600 | (native-inputs | ||
| 11601 | (list ruby-shoulda bundler ruby-test-unit)) | ||
| 11602 | (synopsis "Unicode Normalization Form support to Ruby and JRuby") | ||
| 11603 | (description | ||
| 11604 | "@code{ruby-unf} is a wrapper library to bring Unicode Normalization Form | ||
| 11605 | support to both Ruby and JRuby. It uses @code{unf_ext} on CRuby and | ||
| 11606 | @code{java.text.Normalizer} on JRuby.") | ||
| 11607 | (home-page "https://github.com/knu/ruby-unf") | ||
| 11608 | (license license:bsd-2))) | ||
| 11609 | |||
| 11610 | (define-public ruby-warden | ||
| 11611 | (package | ||
| 11612 | (name "ruby-warden") | ||
| 11613 | (version "1.2.8") | ||
| 11614 | (source | ||
| 11615 | (origin | ||
| 11616 | (method url-fetch) | ||
| 11617 | (uri (rubygems-uri "warden" version)) | ||
| 11618 | (sha256 | ||
| 11619 | (base32 | ||
| 11620 | "1fr9n9i9r82xb6i61fdw4xgc7zjv7fsdrr4k0njchy87iw9fl454")))) | ||
| 11621 | (build-system ruby-build-system) | ||
| 11622 | (arguments | ||
| 11623 | '(#:tests? #f)) ; No included tests | ||
| 11624 | (propagated-inputs | ||
| 11625 | (list ruby-rack)) | ||
| 11626 | (synopsis "Rack middleware providing authentication") | ||
| 11627 | (description | ||
| 11628 | "Warden is a Rack-based middleware that provides a mechanism for | ||
| 11629 | authentication in Ruby web applications.") | ||
| 11630 | (home-page "https://github.com/wardencommunity/warden") | ||
| 11631 | (license license:expat))) | ||
| 11632 | |||
| 11633 | (define-public ruby-warden-oauth2 | ||
| 11634 | (package | ||
| 11635 | (name "ruby-warden-oauth2") | ||
| 11636 | (version "0.0.1") | ||
| 11637 | (source | ||
| 11638 | (origin | ||
| 11639 | (method url-fetch) | ||
| 11640 | (uri (rubygems-uri "warden-oauth2" version)) | ||
| 11641 | (sha256 | ||
| 11642 | (base32 | ||
| 11643 | "1z9154lvzrnnfjbjkmirh4n811nygp6pm2fa6ikr7y1ysa4zv3cz")))) | ||
| 11644 | (build-system ruby-build-system) | ||
| 11645 | (arguments | ||
| 11646 | '(#:test-target "spec" | ||
| 11647 | #:phases | ||
| 11648 | (modify-phases %standard-phases | ||
| 11649 | (add-after 'unpack 'remove-unnecessary-dependencies | ||
| 11650 | (lambda _ | ||
| 11651 | (substitute* "Gemfile" | ||
| 11652 | ;; All of these gems relate to development, and are unnecessary | ||
| 11653 | ;; when running the tests | ||
| 11654 | (("gem 'guard-bundler'") "") | ||
| 11655 | (("gem 'guard'") "") | ||
| 11656 | (("gem 'guard-rspec'") "") | ||
| 11657 | (("gem 'rb-fsevent'") "") | ||
| 11658 | (("gem 'pry'") "") | ||
| 11659 | (("gem 'growl'") "")))) | ||
| 11660 | ;; The test suite doesn't work with rspec@2, and this is incompatible | ||
| 11661 | ;; with the current version of Rake, so invoke Rspec directly | ||
| 11662 | (replace 'check | ||
| 11663 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 11664 | (when tests? | ||
| 11665 | (invoke "bundle" "exec" "rspec"))))))) | ||
| 11666 | (propagated-inputs | ||
| 11667 | (list ruby-warden)) | ||
| 11668 | (native-inputs | ||
| 11669 | (list bundler ruby-rspec-2 ruby-rack-test)) | ||
| 11670 | (synopsis "OAuth 2.0 strategies for Warden") | ||
| 11671 | (description | ||
| 11672 | "This library extends Warden to support OAuth 2.0 authorized API | ||
| 11673 | requests.") | ||
| 11674 | (home-page "https://github.com/opperator/warden-oauth2") | ||
| 11675 | (license license:expat))) | ||
| 11676 | |||
| 11677 | (define-public ruby-webmock | ||
| 11678 | (package | ||
| 11679 | (name "ruby-webmock") | ||
| 11680 | (version "3.11.2") | ||
| 11681 | (source | ||
| 11682 | (origin | ||
| 11683 | (method url-fetch) | ||
| 11684 | (uri (rubygems-uri "webmock" version)) | ||
| 11685 | (sha256 | ||
| 11686 | (base32 | ||
| 11687 | "1hdlbvfw316lkz251qnfk79drmaay7l51kidvicz41nhvw12xz8v")))) | ||
| 11688 | (build-system ruby-build-system) | ||
| 11689 | (native-inputs | ||
| 11690 | (list bundler ruby-rspec)) | ||
| 11691 | (propagated-inputs | ||
| 11692 | (list ruby-addressable ruby-crack ruby-hashdiff)) | ||
| 11693 | (synopsis "Allows stubbing and setting expectations on HTTP requests") | ||
| 11694 | (description | ||
| 11695 | "WebMock allows stubbing HTTP requests and setting expectations on HTTP | ||
| 11696 | requests. This is useful when testing software.") | ||
| 11697 | (home-page "https://github.com/bblimke/webmock") | ||
| 11698 | (license license:expat))) | ||
| 11699 | |||
| 11700 | (define-public ruby-webmock-2 | ||
| 11701 | (package | ||
| 11702 | (inherit ruby-webmock) | ||
| 11703 | (name "ruby-webmock") | ||
| 11704 | (version "2.3.2") | ||
| 11705 | (source | ||
| 11706 | (origin | ||
| 11707 | (method url-fetch) | ||
| 11708 | (uri (rubygems-uri "webmock" version)) | ||
| 11709 | (sha256 | ||
| 11710 | (base32 | ||
| 11711 | "04hkcqsmbfnp8g237pisnc834vpgildklicbjbyikqg0bg1rwcy5")))))) | ||
| 11712 | |||
| 11713 | (define-public ruby-unicode-display-width | ||
| 11714 | (package | ||
| 11715 | (name "ruby-unicode-display-width") | ||
| 11716 | (version "2.4.2") | ||
| 11717 | (source | ||
| 11718 | (origin | ||
| 11719 | (method url-fetch) | ||
| 11720 | (uri (rubygems-uri "unicode-display_width" version)) | ||
| 11721 | (sha256 | ||
| 11722 | (base32 | ||
| 11723 | "1gi82k102q7bkmfi7ggn9ciypn897ylln1jk9q67kjhr39fj043a")))) | ||
| 11724 | (build-system ruby-build-system) | ||
| 11725 | (arguments | ||
| 11726 | '(;; Test data not included. | ||
| 11727 | #:tests? #f)) | ||
| 11728 | (synopsis "Determine the monospace display width of Ruby strings") | ||
| 11729 | (description | ||
| 11730 | "@code{Unicode::DisplayWidth} is a Ruby library which can determine the | ||
| 11731 | display width of strings in Ruby.") | ||
| 11732 | (home-page "https://github.com/janlelis/unicode-display_width") | ||
| 11733 | (license license:expat))) | ||
| 11734 | |||
| 11735 | ;; There is another gem called 'ruby-version' so we use an underscore in this | ||
| 11736 | ;; name | ||
| 11737 | (define-public ruby_version | ||
| 11738 | (package | ||
| 11739 | (name "ruby_version") | ||
| 11740 | (version "1.0.2") | ||
| 11741 | (source | ||
| 11742 | (origin | ||
| 11743 | (method url-fetch) | ||
| 11744 | (uri (rubygems-uri "ruby_version" version)) | ||
| 11745 | (sha256 | ||
| 11746 | (base32 | ||
| 11747 | "0lvc7bd5ps3w2vq2wb02i0pi3vfcx2rnckx2ix4rjym1qf52kb2j")))) | ||
| 11748 | (build-system ruby-build-system) | ||
| 11749 | (arguments | ||
| 11750 | `(#:phases | ||
| 11751 | (modify-phases %standard-phases | ||
| 11752 | (add-before 'check 'fix-dependencies | ||
| 11753 | (lambda _ | ||
| 11754 | ;; Remove the Gemfile.lock, as we want to use Guix packages at | ||
| 11755 | ;; whatever versions. | ||
| 11756 | (delete-file "Gemfile.lock") | ||
| 11757 | ;; Remove the included gem files as they unnecessary. | ||
| 11758 | (delete-file-recursively "pkg/") | ||
| 11759 | ;; Accept any version of rake, rdoc and rspec | ||
| 11760 | (substitute* "ruby_version.gemspec" | ||
| 11761 | (("%q<rake.*") "%q<rake>)\n") | ||
| 11762 | (("%q<rdoc.*") "%q<rdoc>)\n") | ||
| 11763 | (("%q<rspec.*") "%q<rspec>)\n")) | ||
| 11764 | ;; Do not use bundler. | ||
| 11765 | (substitute* "Rakefile" | ||
| 11766 | (("Bundler\\.setup.*") "nil\n"))))))) | ||
| 11767 | (native-inputs | ||
| 11768 | (list ruby-rdoc ruby-rspec ruby-rubygems-tasks)) | ||
| 11769 | (synopsis "Ruby library to help check the Ruby version") | ||
| 11770 | (description "@code{ruby_version} provides a @code{RubyVersion} module to simplify | ||
| 11771 | checking for the right Ruby version in software.") | ||
| 11772 | (home-page "https://github.com/janlelis/ruby_version") | ||
| 11773 | (license license:expat))) | ||
| 11774 | |||
| 11775 | (define-public ruby-websocket-client-simple | ||
| 11776 | (package | ||
| 11777 | (name "ruby-websocket-client-simple") | ||
| 11778 | (version "0.6.1") | ||
| 11779 | (source (origin | ||
| 11780 | (method url-fetch) | ||
| 11781 | (uri (rubygems-uri "websocket-client-simple" version)) | ||
| 11782 | (sha256 | ||
| 11783 | (base32 | ||
| 11784 | "1ypl4xvlh5c99zbn20sifv7gv04zi20ly464vsgikfrpn5f37bid")))) | ||
| 11785 | (build-system ruby-build-system) | ||
| 11786 | (arguments (list #:test-target "default")) | ||
| 11787 | (native-inputs (list ruby-eventmachine ruby-websocket-eventmachine-server)) | ||
| 11788 | (propagated-inputs (list ruby-event-emitter ruby-websocket)) | ||
| 11789 | (synopsis "Simple WebSocket client for Ruby") | ||
| 11790 | (description "This package provides a simple WebSocket client for Ruby.") | ||
| 11791 | (home-page "https://github.com/ruby-jp/websocket-client-simple") | ||
| 11792 | (license license:expat))) | ||
| 11793 | |||
| 11794 | (define-public ruby-websocket-eventmachine-base | ||
| 11795 | (package | ||
| 11796 | (name "ruby-websocket-eventmachine-base") | ||
| 11797 | (version "1.2.0") | ||
| 11798 | (source (origin | ||
| 11799 | (method url-fetch) | ||
| 11800 | (uri (rubygems-uri "websocket-eventmachine-base" version)) | ||
| 11801 | (sha256 | ||
| 11802 | (base32 | ||
| 11803 | "0wiz61mcwgs3k21cdr5l9b4jpg29gl6mflfampww2v525yc3hr1r")))) | ||
| 11804 | (build-system ruby-build-system) | ||
| 11805 | (arguments | ||
| 11806 | (list #:tests? #f)) ;no test suite | ||
| 11807 | (propagated-inputs (list ruby-eventmachine ruby-websocket | ||
| 11808 | ruby-websocket-native)) | ||
| 11809 | (synopsis "WebSocket base for Ruby client and server") | ||
| 11810 | (description "This package provides a WebSocket base for a Ruby client and | ||
| 11811 | server.") | ||
| 11812 | (home-page "https://github.com/imanel/websocket-eventmachine-base") | ||
| 11813 | (license license:expat))) | ||
| 11814 | |||
| 11815 | (define-public ruby-websocket-eventmachine-server | ||
| 11816 | (package | ||
| 11817 | (name "ruby-websocket-eventmachine-server") | ||
| 11818 | (version "1.0.1") | ||
| 11819 | (source (origin | ||
| 11820 | (method url-fetch) | ||
| 11821 | (uri (rubygems-uri "websocket-eventmachine-server" version)) | ||
| 11822 | (sha256 | ||
| 11823 | (base32 | ||
| 11824 | "0iqpzc8s028nck1flqaj784gvyn64wy1h3svpa4y2847wklg8sms")))) | ||
| 11825 | (build-system ruby-build-system) | ||
| 11826 | ;; TODO: The test suite requires Autobahn, not yet packaged in Guix. | ||
| 11827 | (arguments (list #:tests? #f)) | ||
| 11828 | (propagated-inputs (list ruby-websocket-eventmachine-base)) | ||
| 11829 | (synopsis "WebSocket server for Ruby") | ||
| 11830 | (description "This package provides a WebSocket server for Ruby.") | ||
| 11831 | (home-page "https://github.com/imanel/websocket-eventmachine-server") | ||
| 11832 | (license license:expat))) | ||
| 11833 | |||
| 11834 | (define-public ruby-websocket-native | ||
| 11835 | (package | ||
| 11836 | (name "ruby-websocket-native") | ||
| 11837 | (version "1.0.0") | ||
| 11838 | (source (origin | ||
| 11839 | (method url-fetch) | ||
| 11840 | (uri (rubygems-uri "websocket-native" version)) | ||
| 11841 | (sha256 | ||
| 11842 | (base32 | ||
| 11843 | "1kgvd3gyzh7hk0ddzn85jrs4csxm54qnvla95ldyn6rzgfbjchdn")))) | ||
| 11844 | (build-system ruby-build-system) | ||
| 11845 | (arguments | ||
| 11846 | (list #:test-target "spec" | ||
| 11847 | #:phases #~(modify-phases %standard-phases | ||
| 11848 | (add-before 'check 'disable-problematic-tests | ||
| 11849 | (lambda _ | ||
| 11850 | (substitute* "spec/websocket_spec.rb" | ||
| 11851 | (("it \"should have mask_native defined\"" all) | ||
| 11852 | (string-append "x" all))))) | ||
| 11853 | (add-after 'build 'compile | ||
| 11854 | (lambda _ | ||
| 11855 | (invoke "rake" "compile")))))) | ||
| 11856 | (native-inputs (list ruby-rake-compiler ruby-rspec)) | ||
| 11857 | (synopsis "Native Ruby extension for the WebSocket gem") | ||
| 11858 | (description "This package provides a native extension that can increase | ||
| 11859 | performance by about 25% compared to the pure Ruby WebSocket implementation.") | ||
| 11860 | (home-page "https://github.com/imanel/websocket-ruby-native") | ||
| 11861 | (license license:expat))) | ||
| 11862 | |||
| 11863 | (define-public ruby-websocket-driver | ||
| 11864 | (package | ||
| 11865 | (name "ruby-websocket-driver") | ||
| 11866 | (version "0.7.1") | ||
| 11867 | (source | ||
| 11868 | (origin | ||
| 11869 | (method url-fetch) | ||
| 11870 | (uri (rubygems-uri "websocket-driver" version)) | ||
| 11871 | (sha256 | ||
| 11872 | (base32 "1bxamwqldmy98hxs5pqby3andws14hl36ch78g0s81gaz9b91nj2")))) | ||
| 11873 | (build-system ruby-build-system) | ||
| 11874 | (arguments | ||
| 11875 | '(#:tests? #f)) ; no included tests | ||
| 11876 | (propagated-inputs | ||
| 11877 | (list ruby-websocket-extensions)) | ||
| 11878 | (synopsis "WebSocket protocol handler with pluggable I/O") | ||
| 11879 | (description | ||
| 11880 | "@code{websocket-driver} provides a complete implementation of the | ||
| 11881 | WebSocket protocols that can be hooked up to any TCP library") | ||
| 11882 | (home-page "https://github.com/faye/websocket-driver-ruby") | ||
| 11883 | (license license:expat))) | ||
| 11884 | |||
| 11885 | (define-public ruby-websocket-extensions | ||
| 11886 | (package | ||
| 11887 | (name "ruby-websocket-extensions") | ||
| 11888 | (version "0.1.3") | ||
| 11889 | (source | ||
| 11890 | (origin | ||
| 11891 | (method url-fetch) | ||
| 11892 | (uri (rubygems-uri "websocket-extensions" version)) | ||
| 11893 | (sha256 | ||
| 11894 | (base32 | ||
| 11895 | "034sdr7fd34yag5l6y156rkbhiqgmy395m231dwhlpcswhs6d270")))) | ||
| 11896 | (build-system ruby-build-system) | ||
| 11897 | (arguments | ||
| 11898 | '(;; No included tests | ||
| 11899 | #:tests? #f)) | ||
| 11900 | (synopsis "Generic extension manager for WebSocket connections") | ||
| 11901 | (description | ||
| 11902 | "@code{websocket-extensions} provides a container for registering | ||
| 11903 | extension plugins.") | ||
| 11904 | (home-page "https://github.com/faye/websocket-extensions-ruby") | ||
| 11905 | (license license:expat))) | ||
| 11906 | |||
| 11907 | (define-public ruby-domain-name | ||
| 11908 | (package | ||
| 11909 | (name "ruby-domain-name") | ||
| 11910 | (version "0.5.20190701") | ||
| 11911 | (source | ||
| 11912 | (origin | ||
| 11913 | (method url-fetch) | ||
| 11914 | (uri (rubygems-uri "domain_name" version)) | ||
| 11915 | (sha256 | ||
| 11916 | (base32 "0lcqjsmixjp52bnlgzh4lg9ppsk52x9hpwdjd53k8jnbah2602h0")))) | ||
| 11917 | (build-system ruby-build-system) | ||
| 11918 | (arguments | ||
| 11919 | `(#:phases | ||
| 11920 | (modify-phases %standard-phases | ||
| 11921 | (add-before 'check 'fix-versions | ||
| 11922 | (lambda _ | ||
| 11923 | ;; Fix NameError that appears to already be fixed upstream. | ||
| 11924 | (substitute* "Rakefile" | ||
| 11925 | (("DomainName::VERSION") | ||
| 11926 | "Bundler::GemHelper.gemspec.version")) | ||
| 11927 | ;; Loosen unnecessarily strict test-unit version specification. | ||
| 11928 | (substitute* "domain_name.gemspec" | ||
| 11929 | (("<test-unit>.freeze, \\[\\\"~> 2.5.5") "<test-unit>, [\">0")) | ||
| 11930 | #t))))) | ||
| 11931 | (propagated-inputs | ||
| 11932 | (list ruby-unf)) | ||
| 11933 | (native-inputs | ||
| 11934 | (list ruby-shoulda bundler ruby-test-unit)) | ||
| 11935 | (synopsis "Domain name manipulation library") | ||
| 11936 | (description | ||
| 11937 | "@code{domain_name} is a Domain name manipulation library. It parses a | ||
| 11938 | domain name ready for extracting the registered domain and TLD (Top Level | ||
| 11939 | Domain). It can also be used for cookie domain validation based on the Public | ||
| 11940 | Suffix List.") | ||
| 11941 | (home-page "https://github.com/knu/ruby-domain_name") | ||
| 11942 | (license license:bsd-2))) | ||
| 11943 | |||
| 11944 | (define-public ruby-dotenv | ||
| 11945 | (package | ||
| 11946 | (name "ruby-dotenv") | ||
| 11947 | (version "3.1.7") | ||
| 11948 | (source (origin | ||
| 11949 | (method git-fetch) ;for the tests | ||
| 11950 | (uri (git-reference | ||
| 11951 | (url "https://github.com/bkeepers/dotenv") | ||
| 11952 | (commit (string-append "v" version)))) | ||
| 11953 | (file-name (git-file-name name version)) | ||
| 11954 | (sha256 | ||
| 11955 | (base32 | ||
| 11956 | "19j0acy12si537hwi4q54q8n5ycmlvfd2ik5y6r7jir6ww06l8yx")))) | ||
| 11957 | (build-system ruby-build-system) | ||
| 11958 | (arguments | ||
| 11959 | (list | ||
| 11960 | #:test-target "spec" | ||
| 11961 | #:phases | ||
| 11962 | #~(modify-phases %standard-phases | ||
| 11963 | (add-after 'unpack 'do-not-build-dotenv-rails | ||
| 11964 | (lambda _ | ||
| 11965 | ;; The repository includes the definitions of two packages, | ||
| 11966 | ;; 'dotenv' and 'dotenv-rails'. Since we want to package them | ||
| 11967 | ;; separately, remove the dotenv-rails and associated Rake | ||
| 11968 | ;; tasks. | ||
| 11969 | (delete-file "dotenv-rails.gemspec") | ||
| 11970 | (delete-file "spec/dotenv/rails_spec.rb") | ||
| 11971 | (delete-file "spec/dotenv/log_subscriber_spec.rb") | ||
| 11972 | (substitute* "spec/spec_helper.rb" | ||
| 11973 | (("require \"dotenv\"" all) | ||
| 11974 | (string-append "require \"pathname\"\n" all))) | ||
| 11975 | (substitute* "Rakefile" | ||
| 11976 | (("DotenvRailsGemHelper.install_tasks name: \"dotenv-rails\"") | ||
| 11977 | "") | ||
| 11978 | ((", \"dotenv-rails:.*\"") | ||
| 11979 | "")))) | ||
| 11980 | (replace 'replace-git-ls-files | ||
| 11981 | (lambda _ | ||
| 11982 | (substitute* "dotenv.gemspec" | ||
| 11983 | (("`git ls-files (README.md LICENSE lib bin) \\| ([^`]*`)" | ||
| 11984 | all files command) | ||
| 11985 | (string-append | ||
| 11986 | "`find " files " -type f | sort | " command)))))))) | ||
| 11987 | (native-inputs (list ruby-standard ruby-rspec)) | ||
| 11988 | (synopsis "Ruby library for setting environment variables") | ||
| 11989 | (description "Dotenv is a Ruby library for setting environment variables | ||
| 11990 | defined in a @file{.env} file.") | ||
| 11991 | (home-page "https://github.com/bkeepers/dotenv") | ||
| 11992 | (license license:expat))) | ||
| 11993 | |||
| 11994 | (define-public ruby-dotenv-rails | ||
| 11995 | (package | ||
| 11996 | (inherit ruby-dotenv) | ||
| 11997 | (name "ruby-dotenv-rails") | ||
| 11998 | (arguments | ||
| 11999 | (substitute-keyword-arguments (package-arguments ruby-dotenv) | ||
| 12000 | ((#:phases phases '%standard-phases) | ||
| 12001 | #~(modify-phases #$phases | ||
| 12002 | (delete 'do-not-build-dotenv-rails) | ||
| 12003 | (add-after 'unpack 'delete-Gemfile | ||
| 12004 | (lambda _ | ||
| 12005 | ;; It defines extraneous dependencies; remove it. | ||
| 12006 | (delete-file "Gemfile"))) | ||
| 12007 | (add-after 'unpack 'remove-extraneous-gemspec | ||
| 12008 | (lambda _ | ||
| 12009 | (delete-file "dotenv.gemspec") | ||
| 12010 | (substitute* "Gemfile" | ||
| 12011 | ((".*\"dotenv\".*") "")) | ||
| 12012 | (substitute* "Rakefile" | ||
| 12013 | ;; Remove the dotenv-related Rake tasks. | ||
| 12014 | (("Bundler::GemHelper.install_tasks name: \"dotenv\"") | ||
| 12015 | "") | ||
| 12016 | (("\"dotenv:[^\"]*\", ") | ||
| 12017 | "")))) | ||
| 12018 | (replace 'replace-git-ls-files | ||
| 12019 | (lambda _ | ||
| 12020 | (substitute* "dotenv-rails.gemspec" | ||
| 12021 | (("`git ls-files lib \\| grep rails`") | ||
| 12022 | "`find lib -type f | sort | grep rails`")))))))) | ||
| 12023 | (native-inputs (list ruby-rspec ruby-spring ruby-standard)) | ||
| 12024 | (propagated-inputs (list ruby-dotenv ruby-railties)) | ||
| 12025 | (synopsis "Ruby library for setting environment variables in Rails project") | ||
| 12026 | (description "Dotenv is a Ruby library for setting environment variables | ||
| 12027 | defined in a @file{.env} file. This is the Rails variant, adapted for use | ||
| 12028 | with Ruby on Rails projects."))) | ||
| 12029 | |||
| 12030 | (define-public ruby-http-accept | ||
| 12031 | (package | ||
| 12032 | (name "ruby-http-accept") | ||
| 12033 | (version "2.2.0") | ||
| 12034 | (source (origin | ||
| 12035 | (method git-fetch) ;for the tests | ||
| 12036 | (uri (git-reference | ||
| 12037 | (url "https://github.com/socketry/http-accept") | ||
| 12038 | (commit (string-append "v" version)))) | ||
| 12039 | (file-name (git-file-name name version)) | ||
| 12040 | (sha256 | ||
| 12041 | (base32 | ||
| 12042 | "1d69cy12hqbcqrhw4dibvdq5pqklxsa59kih6pzl479nxq79rgs7")))) | ||
| 12043 | (build-system ruby-build-system) | ||
| 12044 | (arguments | ||
| 12045 | (list | ||
| 12046 | #:phases | ||
| 12047 | #~(modify-phases %standard-phases | ||
| 12048 | (add-after 'unpack 'remove-missing-key-directive | ||
| 12049 | ;; This seem to be a common problem in Ruby projects (see: | ||
| 12050 | ;; https://github.com/prawnpdf/ttfunk/issues/99). | ||
| 12051 | (lambda _ | ||
| 12052 | (substitute* "http-accept.gemspec" | ||
| 12053 | ((".*spec.signing_key.*") "")))) | ||
| 12054 | (replace 'check | ||
| 12055 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 12056 | (when tests? | ||
| 12057 | (invoke "rspec"))))))) | ||
| 12058 | (native-inputs | ||
| 12059 | (list ruby-rspec | ||
| 12060 | ruby-covered)) | ||
| 12061 | (synopsis "Parse Accept and Accept-Language HTTP headers") | ||
| 12062 | (description | ||
| 12063 | "This package provides a set of parsers for Accept and Accept-Language | ||
| 12064 | HTTP headers.") | ||
| 12065 | (home-page "https://github.com/socketry/http-accept") | ||
| 12066 | (license license:expat))) | ||
| 12067 | |||
| 12068 | (define-public ruby-http-accept-1 | ||
| 12069 | (package | ||
| 12070 | (inherit ruby-http-accept) | ||
| 12071 | (version "1.7.0") | ||
| 12072 | (source (origin | ||
| 12073 | (method git-fetch) ;for the tests | ||
| 12074 | (uri (git-reference | ||
| 12075 | (url "https://github.com/ioquatix/http-accept") | ||
| 12076 | (commit (string-append "v" version)))) | ||
| 12077 | (file-name (git-file-name "ruby-http-accept" version)) | ||
| 12078 | (sha256 | ||
| 12079 | (base32 | ||
| 12080 | "1hnqmqpa135s3xgcvv30qzqm8zp88my1aj05m72d2q9cvc31g92z")))))) | ||
| 12081 | |||
| 12082 | (define-public ruby-http-cookie | ||
| 12083 | (package | ||
| 12084 | (name "ruby-http-cookie") | ||
| 12085 | (version "1.0.5") | ||
| 12086 | (source | ||
| 12087 | (origin | ||
| 12088 | (method url-fetch) | ||
| 12089 | (uri (rubygems-uri "http-cookie" version)) | ||
| 12090 | (sha256 | ||
| 12091 | (base32 | ||
| 12092 | "13rilvlv8kwbzqfb644qp6hrbsj82cbqmnzcvqip1p6vqx36sxbk")))) | ||
| 12093 | (build-system ruby-build-system) | ||
| 12094 | (arguments | ||
| 12095 | (list | ||
| 12096 | #:phases | ||
| 12097 | #~(modify-phases %standard-phases | ||
| 12098 | (add-before 'check 'add-dependency-to-bundler | ||
| 12099 | (lambda _ | ||
| 12100 | ;; Fix NameError | ||
| 12101 | (substitute* "Rakefile" | ||
| 12102 | (("HTTP::Cookie::VERSION") | ||
| 12103 | "Bundler::GemHelper.gemspec.version"))))))) | ||
| 12104 | (propagated-inputs | ||
| 12105 | (list ruby-domain-name)) | ||
| 12106 | (native-inputs | ||
| 12107 | (list ruby-simplecov | ||
| 12108 | bundler | ||
| 12109 | ruby-sqlite3 | ||
| 12110 | ruby-test-unit)) | ||
| 12111 | (synopsis "Handle HTTP Cookies based on RFC 6265") | ||
| 12112 | (description | ||
| 12113 | "@code{HTTP::Cookie} is a Ruby library to handle HTTP Cookies based on | ||
| 12114 | RFC 6265. It has been designed with security, standards compliance and | ||
| 12115 | compatibility in mind, to behave just the same as today's major web browsers. | ||
| 12116 | It has built-in support for the legacy @code{cookies.txt} and | ||
| 12117 | @code{cookies.sqlite} formats of Mozilla Firefox.") | ||
| 12118 | (home-page "https://github.com/sparklemotion/http-cookie") | ||
| 12119 | (license license:expat))) | ||
| 12120 | |||
| 12121 | (define-public ruby-httpclient | ||
| 12122 | (package | ||
| 12123 | (name "ruby-httpclient") | ||
| 12124 | (version "2.8.3") | ||
| 12125 | (source | ||
| 12126 | (origin | ||
| 12127 | (method url-fetch) | ||
| 12128 | (uri (rubygems-uri "httpclient" version)) | ||
| 12129 | (sha256 | ||
| 12130 | (base32 | ||
| 12131 | "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99")))) | ||
| 12132 | (build-system ruby-build-system) | ||
| 12133 | (arguments | ||
| 12134 | '(;; TODO: Some tests currently fail | ||
| 12135 | ;; ------ | ||
| 12136 | ;; 211 tests, 729 assertions, 13 failures, 4 errors, 0 pendings, | ||
| 12137 | ;; 2 omissions, 0 notifications | ||
| 12138 | ;; 91.866% passed | ||
| 12139 | ;; ------ | ||
| 12140 | ;; 6.49 tests/s, 22.41 assertions/s | ||
| 12141 | #:tests? #f | ||
| 12142 | #:phases | ||
| 12143 | (modify-phases %standard-phases | ||
| 12144 | (replace 'check | ||
| 12145 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 12146 | (if tests? | ||
| 12147 | (invoke "ruby" | ||
| 12148 | "-Ilib" | ||
| 12149 | "test/runner.rb"))))))) | ||
| 12150 | (native-inputs | ||
| 12151 | (list ruby-rack)) | ||
| 12152 | (synopsis | ||
| 12153 | "Make HTTP requests with support for HTTPS, Cookies, authentication and more") | ||
| 12154 | (description | ||
| 12155 | "The @code{httpclient} ruby library provides functionality related to | ||
| 12156 | HTTP. Compared to the @code{net/http} library, @code{httpclient} also provides | ||
| 12157 | Cookie, multithreading and authentication (digest, NTLM) support. | ||
| 12158 | |||
| 12159 | Also provided is a @command{httpclient} command, which can perform HTTP | ||
| 12160 | requests either using arguments or with an interactive prompt.") | ||
| 12161 | (home-page "https://github.com/nahi/httpclient") | ||
| 12162 | (license license:ruby))) | ||
| 12163 | |||
| 12164 | (define-public ruby-ansi | ||
| 12165 | (package | ||
| 12166 | (name "ruby-ansi") | ||
| 12167 | (version "1.5.0") | ||
| 12168 | (source | ||
| 12169 | (origin | ||
| 12170 | (method git-fetch) | ||
| 12171 | ;; Fetch from GitHub as the gem does not contain testing code. | ||
| 12172 | (uri (git-reference | ||
| 12173 | (url "https://github.com/rubyworks/ansi") | ||
| 12174 | (commit version))) | ||
| 12175 | (file-name (git-file-name name version)) | ||
| 12176 | (sha256 | ||
| 12177 | (base32 | ||
| 12178 | "1wsz7xxwl3vkh277jb7fd7akqnqqgbvalxzpjwniiqk8ghfprbi5")))) | ||
| 12179 | (build-system ruby-build-system) | ||
| 12180 | (arguments | ||
| 12181 | `(#:phases | ||
| 12182 | (modify-phases %standard-phases | ||
| 12183 | ;; Disable testing to break the cycle ansi, ae, ansi, as well as the | ||
| 12184 | ;; cycle ansi, qed, ansi. Instead simply test that the library can | ||
| 12185 | ;; be require'd. | ||
| 12186 | (replace 'check | ||
| 12187 | (lambda _ | ||
| 12188 | (invoke "ruby" "-Ilib" "-r" "ansi"))) | ||
| 12189 | (add-before 'validate-runpath 'replace-broken-symlink | ||
| 12190 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 12191 | (let* ((out (assoc-ref outputs "out")) | ||
| 12192 | (file (string-append | ||
| 12193 | out "/lib/ruby/vendor_ruby/gems/ansi-" | ||
| 12194 | ,version "/lib/ansi.yml"))) | ||
| 12195 | ;; XXX: This symlink is broken since ruby 2.4. | ||
| 12196 | ;; https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00034.html | ||
| 12197 | (delete-file file) | ||
| 12198 | (symlink "../.index" file))))))) | ||
| 12199 | (synopsis "ANSI escape code related libraries") | ||
| 12200 | (description | ||
| 12201 | "This package is a collection of ANSI escape code related libraries | ||
| 12202 | enabling ANSI colorization and stylization of console output. Included in the | ||
| 12203 | library are the @code{Code} module, which defines ANSI codes as constants and | ||
| 12204 | methods, a @code{Mixin} module for including color methods, a @code{Logger}, a | ||
| 12205 | @code{ProgressBar}, and a @code{String} subclass. The library also includes a | ||
| 12206 | @code{Terminal} module which provides information about the current output | ||
| 12207 | device.") | ||
| 12208 | (home-page "https://rubyworks.github.io/ansi/") | ||
| 12209 | (license license:bsd-2))) | ||
| 12210 | |||
| 12211 | (define-public ruby-systemu | ||
| 12212 | (package | ||
| 12213 | (name "ruby-systemu") | ||
| 12214 | (version "2.6.5") | ||
| 12215 | (source | ||
| 12216 | (origin | ||
| 12217 | (method url-fetch) | ||
| 12218 | (uri (rubygems-uri "systemu" version)) | ||
| 12219 | (sha256 | ||
| 12220 | (base32 | ||
| 12221 | "0gmkbakhfci5wnmbfx5i54f25j9zsvbw858yg3jjhfs5n4ad1xq1")))) | ||
| 12222 | (build-system ruby-build-system) | ||
| 12223 | (arguments | ||
| 12224 | `(#:phases | ||
| 12225 | (modify-phases %standard-phases | ||
| 12226 | (add-before 'check 'set-version | ||
| 12227 | (lambda _ | ||
| 12228 | (setenv "VERSION" ,version)))))) | ||
| 12229 | (synopsis "Capture of stdout/stderr and handling of child processes") | ||
| 12230 | (description | ||
| 12231 | "Systemu can be used on any platform to return status, stdout, and stderr | ||
| 12232 | of any command. Unlike other methods like @code{open3} and @code{popen4} | ||
| 12233 | there is no danger of full pipes or threading issues hanging your process or | ||
| 12234 | subprocess.") | ||
| 12235 | (home-page "https://github.com/ahoward/systemu") | ||
| 12236 | (license license:ruby))) | ||
| 12237 | |||
| 12238 | (define-public ruby-bcrypt | ||
| 12239 | (package | ||
| 12240 | (name "ruby-bcrypt") | ||
| 12241 | (version "3.1.20") | ||
| 12242 | ;; FIXME: Unbundle the bcrypt library used. | ||
| 12243 | (source | ||
| 12244 | (origin | ||
| 12245 | (method git-fetch) | ||
| 12246 | (uri (git-reference | ||
| 12247 | (url "https://github.com/bcrypt-ruby/bcrypt-ruby") | ||
| 12248 | (commit (string-append "v" version)))) | ||
| 12249 | (file-name (git-file-name name version)) | ||
| 12250 | (sha256 | ||
| 12251 | (base32 "0q6h8kmjb34hg6qjv31v374n3cavv00drsfyzv6nybdwipgyg62i")))) | ||
| 12252 | (build-system ruby-build-system) | ||
| 12253 | (arguments (list #:test-target "default")) ;compile + spec | ||
| 12254 | (native-inputs (list ruby-rake-compiler ruby-rspec)) | ||
| 12255 | (synopsis "Ruby bcrypt wrapper") | ||
| 12256 | (description "This Ruby library provides a simple wrapper to bcrypt, a | ||
| 12257 | secure hash algorithm for hashing passwords.") | ||
| 12258 | (home-page "https://github.com/bcrypt-ruby/bcrypt-ruby") | ||
| 12259 | (license license:expat))) | ||
| 12260 | |||
| 12261 | (define-public ruby-bcrypt-pbkdf | ||
| 12262 | (package | ||
| 12263 | (name "ruby-bcrypt-pbkdf") | ||
| 12264 | (version "1.1.0") | ||
| 12265 | (source (origin | ||
| 12266 | (method url-fetch) | ||
| 12267 | (uri (rubygems-uri "bcrypt_pbkdf" version)) | ||
| 12268 | (sha256 | ||
| 12269 | (base32 | ||
| 12270 | "0ndamfaivnkhc6hy0yqyk2gkwr6f3bz6216lh74hsiiyk3axz445")))) | ||
| 12271 | (build-system ruby-build-system) | ||
| 12272 | (arguments | ||
| 12273 | (list #:phases #~(modify-phases %standard-phases | ||
| 12274 | (add-before 'build 'compile | ||
| 12275 | (lambda _ | ||
| 12276 | (invoke "rake" "compile")))))) | ||
| 12277 | (native-inputs (list ruby-minitest ruby-rake-compiler | ||
| 12278 | ruby-rake-compiler-dock ruby-rdoc)) | ||
| 12279 | (synopsis "Reading password encrypted Ed25519 keys in Ruby") | ||
| 12280 | (description | ||
| 12281 | "This gem implements @samp{bcrypt_pbkdf}, which is a variant of | ||
| 12282 | PBKDF2 (Password-Based Key Derivation Function 2) with bcrypt-based | ||
| 12283 | pseudorandom function. This is currently used by @samp{net-ssh} to | ||
| 12284 | read password encrypted Ed25519 keys.") | ||
| 12285 | (home-page "https://github.com/net-ssh/bcrypt_pbkdf-ruby") | ||
| 12286 | (license license:expat))) | ||
| 12287 | |||
| 12288 | (define-public ruby-bio-commandeer | ||
| 12289 | (package | ||
| 12290 | (name "ruby-bio-commandeer") | ||
| 12291 | (version "0.4.0") | ||
| 12292 | (source | ||
| 12293 | (origin | ||
| 12294 | (method url-fetch) | ||
| 12295 | (uri (rubygems-uri "bio-commandeer" version)) | ||
| 12296 | (sha256 | ||
| 12297 | (base32 | ||
| 12298 | "0khpfw1yl5l3d2m8nxpkk32ybc4c3pa5hic3agd160jdfjjjnlni")))) | ||
| 12299 | (build-system ruby-build-system) | ||
| 12300 | (arguments | ||
| 12301 | `(#:phases | ||
| 12302 | (modify-phases %standard-phases | ||
| 12303 | (replace 'check | ||
| 12304 | ;; Run test without calling 'rake' so that jeweler is | ||
| 12305 | ;; not required as an input. | ||
| 12306 | (lambda _ | ||
| 12307 | (invoke "rspec" "spec/bio-commandeer_spec.rb")))))) | ||
| 12308 | (propagated-inputs | ||
| 12309 | (list ruby-bio-logger ruby-systemu)) | ||
| 12310 | (native-inputs | ||
| 12311 | (list bundler ruby-rspec)) | ||
| 12312 | (synopsis "Simplified running of shell commands from within Ruby") | ||
| 12313 | (description | ||
| 12314 | "Bio-commandeer provides an opinionated method of running shell commands | ||
| 12315 | from within Ruby. The advantage of bio-commandeer over other methods of | ||
| 12316 | running external commands is that when something goes wrong, messages printed | ||
| 12317 | to the @code{STDOUT} and @code{STDERR} streams are reported, giving extra | ||
| 12318 | detail to ease debugging.") | ||
| 12319 | (home-page "https://github.com/wwood/bioruby-commandeer") | ||
| 12320 | (license license:expat))) | ||
| 12321 | |||
| 12322 | (define-public ruby-rubytest | ||
| 12323 | (package | ||
| 12324 | (name "ruby-rubytest") | ||
| 12325 | (version "0.8.1") | ||
| 12326 | (source | ||
| 12327 | (origin | ||
| 12328 | (method url-fetch) | ||
| 12329 | (uri (rubygems-uri "rubytest" version)) | ||
| 12330 | (sha256 | ||
| 12331 | (base32 | ||
| 12332 | "19jydsdnkl81i9dhdcr4dc34j0ilm68ff2ngnka1hi38xiw4p5qz")))) | ||
| 12333 | (build-system ruby-build-system) | ||
| 12334 | (arguments | ||
| 12335 | ;; Disable regular testing to break the cycle rubytest, qed, brass, | ||
| 12336 | ;; rubytest, as well as the cycle rubytest, qed, ansi, rubytest. Instead | ||
| 12337 | ;; simply test that the library can be require'd. | ||
| 12338 | `(#:phases | ||
| 12339 | (modify-phases %standard-phases | ||
| 12340 | (replace 'check | ||
| 12341 | (lambda _ | ||
| 12342 | (invoke "ruby" "-Ilib" "-r" "rubytest")))))) | ||
| 12343 | (propagated-inputs | ||
| 12344 | (list ruby-ansi)) | ||
| 12345 | (synopsis "Universal test harness for Ruby") | ||
| 12346 | (description | ||
| 12347 | "Rubytest is a testing meta-framework for Ruby. It can handle any | ||
| 12348 | compliant test framework and can run tests from multiple frameworks in a | ||
| 12349 | single pass.") | ||
| 12350 | (home-page "https://rubyworks.github.io/rubytest") | ||
| 12351 | (license license:bsd-2))) | ||
| 12352 | |||
| 12353 | (define-public ruby-brass | ||
| 12354 | (package | ||
| 12355 | (name "ruby-brass") | ||
| 12356 | (version "1.2.1") | ||
| 12357 | (source | ||
| 12358 | (origin | ||
| 12359 | (method url-fetch) | ||
| 12360 | (uri (rubygems-uri "brass" version)) | ||
| 12361 | (sha256 | ||
| 12362 | (base32 | ||
| 12363 | "154lp8rp1vmg60ri1j4cb8hqlw37z7bn575h899v8hzxwi11sxka")))) | ||
| 12364 | (build-system ruby-build-system) | ||
| 12365 | (arguments | ||
| 12366 | ;; Disable tests to break the cycle brass, lemon, ae, qed, brass. | ||
| 12367 | ;; Instead simply test that the library can be require'd. | ||
| 12368 | `(#:phases | ||
| 12369 | (modify-phases %standard-phases | ||
| 12370 | (replace 'check | ||
| 12371 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 12372 | (when tests? | ||
| 12373 | (invoke "ruby" "-Ilib" "-r" "brass"))))))) | ||
| 12374 | (synopsis "Basic foundational assertions framework") | ||
| 12375 | (description | ||
| 12376 | "BRASS (Bare-Metal Ruby Assertion System Standard) is a basic | ||
| 12377 | foundational assertions framework for other assertion and test frameworks to | ||
| 12378 | make use of.") | ||
| 12379 | (home-page "https://rubyworks.github.io/brass") | ||
| 12380 | (license license:bsd-2))) | ||
| 12381 | |||
| 12382 | (define-public ruby-qed | ||
| 12383 | (package | ||
| 12384 | (name "ruby-qed") | ||
| 12385 | (version "2.9.2") | ||
| 12386 | (source | ||
| 12387 | (origin | ||
| 12388 | (method url-fetch) | ||
| 12389 | (uri (rubygems-uri "qed" version)) | ||
| 12390 | (sha256 | ||
| 12391 | (base32 | ||
| 12392 | "03h4lmlxpcya8j7s2cnyscqlx8v3xl1xgsw5y1wk1scxcgz2vbmr")))) | ||
| 12393 | (build-system ruby-build-system) | ||
| 12394 | (arguments | ||
| 12395 | `(#:phases | ||
| 12396 | (modify-phases %standard-phases | ||
| 12397 | (replace 'check | ||
| 12398 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 12399 | (when tests? | ||
| 12400 | (invoke "ruby" "-Ilib" "bin/qed"))))))) | ||
| 12401 | (native-inputs | ||
| 12402 | (list ruby-ae-bootstrap)) | ||
| 12403 | (propagated-inputs | ||
| 12404 | (list ruby-ansi ruby-brass)) | ||
| 12405 | (synopsis "Test framework utilizing literate programming techniques") | ||
| 12406 | (description | ||
| 12407 | "@dfn{Quality Ensured Demonstrations} (QED) is a test framework for | ||
| 12408 | @dfn{Test Driven Development} (TDD) and @dfn{Behaviour Driven | ||
| 12409 | Development} (BDD) utilizing Literate Programming techniques. QED sits | ||
| 12410 | somewhere between lower-level testing tools like @code{Test::Unit} and | ||
| 12411 | requirement specifications systems like Cucumber.") | ||
| 12412 | (home-page "https://rubyworks.github.io/qed") | ||
| 12413 | (license license:bsd-2))) | ||
| 12414 | |||
| 12415 | (define-public ruby-que | ||
| 12416 | (package | ||
| 12417 | (name "ruby-que") | ||
| 12418 | (version "1.0.0.beta3") | ||
| 12419 | (source | ||
| 12420 | (origin | ||
| 12421 | (method url-fetch) | ||
| 12422 | (uri (rubygems-uri "que" version)) | ||
| 12423 | (sha256 | ||
| 12424 | (base32 | ||
| 12425 | "0gr9pb814d4qj3ds98g6cjrdk7wv0yg8aqbm7c1lmgl87jkg8q04")))) | ||
| 12426 | (build-system ruby-build-system) | ||
| 12427 | (arguments | ||
| 12428 | '(#:tests? #f)) ; No included tests | ||
| 12429 | (synopsis "Job queue using PostgreSQL written in Ruby") | ||
| 12430 | (description | ||
| 12431 | "This package provides a job queue that uses PostgreSQL for storing jobs | ||
| 12432 | and locking between worker processes.") | ||
| 12433 | (home-page "https://github.com/chanks/que") | ||
| 12434 | (license license:expat))) | ||
| 12435 | |||
| 12436 | (define-public ruby-queue-classic | ||
| 12437 | (package | ||
| 12438 | (name "ruby-queue-classic") | ||
| 12439 | (version "4.0.0") | ||
| 12440 | (source (origin | ||
| 12441 | (method url-fetch) | ||
| 12442 | (uri (rubygems-uri "queue_classic" version)) | ||
| 12443 | (sha256 | ||
| 12444 | (base32 | ||
| 12445 | "0npyhajf2fc80apkw9s2kj0n254w5lcl4xpjidg5d5w1fb19abh6")))) | ||
| 12446 | (build-system ruby-build-system) | ||
| 12447 | (arguments (list #:tests? #f)) ;tests require a postgresql server | ||
| 12448 | (native-inputs (list ruby-activerecord ruby-minitest-reporters)) | ||
| 12449 | (propagated-inputs (list ruby-pg)) | ||
| 12450 | (synopsis "Queuing library for Ruby") | ||
| 12451 | (description "@code{queue_classic} is a queuing library for Ruby | ||
| 12452 | applications (Rails, Sinatra, etc.) @code{queue_classic} features | ||
| 12453 | asynchronous job polling, database maintained locks and has a single | ||
| 12454 | dependency, @code{pg}.") | ||
| 12455 | (home-page "https://github.com/QueueClassic/queue_classic") | ||
| 12456 | (license license:expat))) | ||
| 12457 | |||
| 12458 | (define-public ruby-pairing-heap | ||
| 12459 | (package | ||
| 12460 | (name "ruby-pairing-heap") | ||
| 12461 | (version "3.1.0") | ||
| 12462 | (source (origin | ||
| 12463 | (method url-fetch) | ||
| 12464 | (uri (rubygems-uri "pairing_heap" version)) | ||
| 12465 | (sha256 | ||
| 12466 | (base32 | ||
| 12467 | "059kqpw53cancnp0bp7y1s74y1955riw33w3lqfbnms4b4mdh5zj")))) | ||
| 12468 | (build-system ruby-build-system) | ||
| 12469 | (arguments | ||
| 12470 | (list | ||
| 12471 | #:phases | ||
| 12472 | #~(modify-phases %standard-phases | ||
| 12473 | (add-after 'unpack 'patch | ||
| 12474 | (lambda _ | ||
| 12475 | (substitute* "Rakefile" | ||
| 12476 | (("require \"standard/rake\"") "") | ||
| 12477 | ((":\"standard:fix\",") ""))))))) | ||
| 12478 | (synopsis "Priority queue in pure Ruby") | ||
| 12479 | (description "This package provides a performant priority queue in pure | ||
| 12480 | ruby with support for changing priority using pairing heap data structure") | ||
| 12481 | (home-page "https://github.com/mhib/pairing_heap") | ||
| 12482 | (license license:expat))) | ||
| 12483 | |||
| 12484 | (define-public ruby-ae | ||
| 12485 | (package | ||
| 12486 | (name "ruby-ae") | ||
| 12487 | (version "1.8.2") | ||
| 12488 | (source | ||
| 12489 | (origin | ||
| 12490 | (method git-fetch) | ||
| 12491 | ;; Fetch from github so tests are included. | ||
| 12492 | (uri (git-reference | ||
| 12493 | (url "https://github.com/rubyworks/ae") | ||
| 12494 | (commit version))) | ||
| 12495 | (file-name (git-file-name name version)) | ||
| 12496 | (sha256 | ||
| 12497 | (base32 | ||
| 12498 | "11299jj5ma8mi7b4majkyjy70y6zlqpgl8aql1c5lvfjavlpwmlp")))) | ||
| 12499 | (build-system ruby-build-system) | ||
| 12500 | (arguments | ||
| 12501 | `(#:phases | ||
| 12502 | (modify-phases %standard-phases | ||
| 12503 | (replace 'check | ||
| 12504 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 12505 | (when tests? | ||
| 12506 | (invoke "qed")))) | ||
| 12507 | (add-before 'validate-runpath 'replace-broken-symlink | ||
| 12508 | (lambda* (#:key outputs #:allow-other-keys) | ||
| 12509 | (let* ((out (assoc-ref outputs "out")) | ||
| 12510 | (file (string-append | ||
| 12511 | out "/lib/ruby/vendor_ruby/gems/ae-" | ||
| 12512 | ,version "/lib/ae.yml"))) | ||
| 12513 | ;; XXX: This symlink is broken since ruby 2.4. | ||
| 12514 | ;; https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00034.html | ||
| 12515 | (delete-file file) | ||
| 12516 | (symlink "../.index" file))))))) | ||
| 12517 | (propagated-inputs | ||
| 12518 | (list ruby-ansi)) | ||
| 12519 | (native-inputs | ||
| 12520 | (list ruby-qed)) | ||
| 12521 | (synopsis "Assertions library") | ||
| 12522 | (description | ||
| 12523 | "Assertive Expressive (AE) is an assertions library specifically designed | ||
| 12524 | for reuse by other test frameworks.") | ||
| 12525 | (home-page "https://rubyworks.github.io/ae/") | ||
| 12526 | (license license:bsd-2))) | ||
| 12527 | |||
| 12528 | (define-public ruby-ae-bootstrap | ||
| 12529 | (hidden-package | ||
| 12530 | (package/inherit ruby-ae | ||
| 12531 | (arguments | ||
| 12532 | (substitute-keyword-arguments | ||
| 12533 | (package-arguments ruby-ae) | ||
| 12534 | ((#:tests? _ #t) #f))) | ||
| 12535 | (native-inputs '())))) | ||
| 12536 | |||
| 12537 | (define-public ruby-lemon | ||
| 12538 | (package | ||
| 12539 | (name "ruby-lemon") | ||
| 12540 | (version "0.9.1") | ||
| 12541 | (source | ||
| 12542 | (origin | ||
| 12543 | (method url-fetch) | ||
| 12544 | (uri (rubygems-uri "lemon" version)) | ||
| 12545 | (sha256 | ||
| 12546 | (base32 | ||
| 12547 | "0gqhpgjavgpvx23rqpfqcv3d5bs8gc7lr9yvj8kxgp7mfbdc2jcm")))) | ||
| 12548 | (build-system ruby-build-system) | ||
| 12549 | (arguments | ||
| 12550 | `(#:phases | ||
| 12551 | (modify-phases %standard-phases | ||
| 12552 | (replace 'check (lambda _ (invoke "qed")))))) | ||
| 12553 | (propagated-inputs | ||
| 12554 | (list ruby-ae ruby-ansi ruby-rubytest)) | ||
| 12555 | (native-inputs | ||
| 12556 | (list ruby-qed)) | ||
| 12557 | (synopsis "Test framework correlating code structure and test unit") | ||
| 12558 | (description | ||
| 12559 | "Lemon is a unit testing framework that enforces highly formal | ||
| 12560 | case-to-class and unit-to-method test construction. This enforcement can help | ||
| 12561 | focus concern on individual units of behavior.") | ||
| 12562 | (home-page "https://rubyworks.github.io/lemon") | ||
| 12563 | (license license:bsd-2))) | ||
| 12564 | |||
| 12565 | (define-public ruby-rubytest-cli | ||
| 12566 | (package | ||
| 12567 | (name "ruby-rubytest-cli") | ||
| 12568 | (version "0.2.0") | ||
| 12569 | (source | ||
| 12570 | (origin | ||
| 12571 | (method url-fetch) | ||
| 12572 | (uri (rubygems-uri "rubytest-cli" version)) | ||
| 12573 | (sha256 | ||
| 12574 | (base32 | ||
| 12575 | "0n7hv4k1ba4fm3i98c6ydbsqhkxgbp52mhi70ba1x3mqzfvk438p")))) | ||
| 12576 | (build-system ruby-build-system) | ||
| 12577 | (arguments | ||
| 12578 | `(#:tests? #f)) ; no tests | ||
| 12579 | (propagated-inputs | ||
| 12580 | (list ruby-ansi ruby-rubytest)) | ||
| 12581 | (synopsis "Command-line interface for rubytest") | ||
| 12582 | (description | ||
| 12583 | "Rubytest CLI is a command-line interface for running tests for | ||
| 12584 | Rubytest-based test frameworks. It provides the @code{rubytest} executable.") | ||
| 12585 | (home-page "https://rubyworks.github.io/rubytest-cli") | ||
| 12586 | (license license:bsd-2))) | ||
| 12587 | |||
| 12588 | (define-public ruby-hashery | ||
| 12589 | (package | ||
| 12590 | (name "ruby-hashery") | ||
| 12591 | (version "2.1.2") | ||
| 12592 | (source | ||
| 12593 | (origin | ||
| 12594 | (method url-fetch) | ||
| 12595 | (uri (rubygems-uri "hashery" version)) | ||
| 12596 | (sha256 | ||
| 12597 | (base32 | ||
| 12598 | "0qj8815bf7q6q7llm5rzdz279gzmpqmqqicxnzv066a020iwqffj")))) | ||
| 12599 | (build-system ruby-build-system) | ||
| 12600 | (arguments | ||
| 12601 | `(#:phases | ||
| 12602 | (modify-phases %standard-phases | ||
| 12603 | (replace 'check | ||
| 12604 | (lambda _ | ||
| 12605 | (invoke "qed") | ||
| 12606 | (invoke "rubytest" "-Ilib" "-Itest" "test/")))))) | ||
| 12607 | (native-inputs | ||
| 12608 | (list ruby-rubytest-cli ruby-qed ruby-lemon)) | ||
| 12609 | (synopsis "Hash-like classes with extra features") | ||
| 12610 | (description | ||
| 12611 | "The Hashery is a tight collection of @code{Hash}-like classes. | ||
| 12612 | Included are the auto-sorting @code{Dictionary} class, the efficient | ||
| 12613 | @code{LRUHash}, the flexible @code{OpenHash} and the convenient | ||
| 12614 | @code{KeyHash}. Nearly every class is a subclass of the @code{CRUDHash} which | ||
| 12615 | defines a CRUD (Create, Read, Update and Delete) model on top of Ruby's | ||
| 12616 | standard @code{Hash} making it possible to subclass and augment to fit any | ||
| 12617 | specific use case.") | ||
| 12618 | (home-page "https://rubyworks.github.io/hashery") | ||
| 12619 | (license license:bsd-2))) | ||
| 12620 | |||
| 12621 | (define-public ruby-rc4 | ||
| 12622 | (package | ||
| 12623 | (name "ruby-rc4") | ||
| 12624 | (version "0.1.5") | ||
| 12625 | (source | ||
| 12626 | (origin | ||
| 12627 | (method url-fetch) | ||
| 12628 | (uri (rubygems-uri "ruby-rc4" version)) | ||
| 12629 | (sha256 | ||
| 12630 | (base32 | ||
| 12631 | "00vci475258mmbvsdqkmqadlwn6gj9m01sp7b5a3zd90knil1k00")))) | ||
| 12632 | (build-system ruby-build-system) | ||
| 12633 | (arguments | ||
| 12634 | `(#:phases | ||
| 12635 | (modify-phases %standard-phases | ||
| 12636 | (replace 'check | ||
| 12637 | (lambda _ | ||
| 12638 | (invoke "rspec" "spec/rc4_spec.rb")))))) | ||
| 12639 | (native-inputs | ||
| 12640 | (list ruby-rspec-2)) | ||
| 12641 | (synopsis "Implementation of the RC4 algorithm") | ||
| 12642 | (description | ||
| 12643 | "RubyRC4 is a pure Ruby implementation of the RC4 algorithm.") | ||
| 12644 | (home-page "https://github.com/caiges/Ruby-RC4") | ||
| 12645 | (license license:expat))) | ||
| 12646 | |||
| 12647 | (define-public ruby-afm | ||
| 12648 | (package | ||
| 12649 | (name "ruby-afm") | ||
| 12650 | (version "0.2.2") | ||
| 12651 | (source | ||
| 12652 | (origin | ||
| 12653 | (method url-fetch) | ||
| 12654 | (uri (rubygems-uri "afm" version)) | ||
| 12655 | (sha256 | ||
| 12656 | (base32 | ||
| 12657 | "06kj9hgd0z8pj27bxp2diwqh6fv7qhwwm17z64rhdc4sfn76jgn8")))) | ||
| 12658 | (build-system ruby-build-system) | ||
| 12659 | (native-inputs | ||
| 12660 | (list bundler)) | ||
| 12661 | (synopsis "Read Adobe Font Metrics (afm) files") | ||
| 12662 | (description | ||
| 12663 | "This library provides methods to read @dfn{Adobe Font Metrics} (afm) | ||
| 12664 | files and use the data therein.") | ||
| 12665 | (home-page "https://github.com/halfbyte/afm") | ||
| 12666 | (license license:expat))) | ||
| 12667 | |||
| 12668 | (define-public ruby-ascii85 | ||
| 12669 | (package | ||
| 12670 | (name "ruby-ascii85") | ||
| 12671 | (version "1.0.3") | ||
| 12672 | (source | ||
| 12673 | (origin | ||
| 12674 | (method url-fetch) | ||
| 12675 | (uri (rubygems-uri "Ascii85" version)) | ||
| 12676 | (sha256 | ||
| 12677 | (base32 | ||
| 12678 | "0658m37jjjn6drzqg1gk4p6c205mgp7g1jh2d00n4ngghgmz5qvs")))) | ||
| 12679 | (build-system ruby-build-system) | ||
| 12680 | (native-inputs | ||
| 12681 | (list bundler)) | ||
| 12682 | (synopsis "Encode and decode Ascii85 binary-to-text encoding") | ||
| 12683 | (description | ||
| 12684 | "This library provides methods to encode and decode Ascii85 | ||
| 12685 | binary-to-text encoding. The main modern use of Ascii85 is in PostScript and | ||
| 12686 | @dfn{Portable Document Format} (PDF) file formats.") | ||
| 12687 | (home-page "https://github.com/datawraith/ascii85gem") | ||
| 12688 | (license license:expat))) | ||
| 12689 | |||
| 12690 | (define-public ruby-ttfunk | ||
| 12691 | (package | ||
| 12692 | (name "ruby-ttfunk") | ||
| 12693 | (version "1.7.0") | ||
| 12694 | (source | ||
| 12695 | (origin | ||
| 12696 | (method git-fetch) | ||
| 12697 | ;; Fetch from github as the gem does not contain testing code. | ||
| 12698 | (uri (git-reference | ||
| 12699 | (url "https://github.com/prawnpdf/ttfunk") | ||
| 12700 | (commit version))) | ||
| 12701 | (file-name (git-file-name name version)) | ||
| 12702 | (sha256 | ||
| 12703 | (base32 | ||
| 12704 | "1jyxn928mpyb1sikjd93s3v8fmh33232pq41ziaph513j7am6fi5")))) | ||
| 12705 | (build-system ruby-build-system) | ||
| 12706 | (arguments | ||
| 12707 | (list #:test-target "spec" ;avoid the rubocop target | ||
| 12708 | #:phases | ||
| 12709 | #~(modify-phases %standard-phases | ||
| 12710 | (add-after 'unpack 'remove-missing-key-directive | ||
| 12711 | ;; This seem to be a common problem in Ruby projects (see: | ||
| 12712 | ;; https://github.com/prawnpdf/ttfunk/issues/99). | ||
| 12713 | (lambda _ | ||
| 12714 | (substitute* "ttfunk.gemspec" | ||
| 12715 | ((".*spec.signing_key.*") ""))))))) | ||
| 12716 | (native-inputs (list ruby-prawn-dev)) | ||
| 12717 | (synopsis "Font metrics parser for the Prawn PDF generator") | ||
| 12718 | (description | ||
| 12719 | "TTFunk is a TrueType font parser written in pure Ruby. It is used as | ||
| 12720 | part of the Prawn PDF generator.") | ||
| 12721 | (home-page "https://github.com/prawnpdf/ttfunk") | ||
| 12722 | ;; From the README: "Matz's terms for Ruby, GPLv2, or GPLv3. See LICENSE | ||
| 12723 | ;; for details." | ||
| 12724 | (license %prawn-project-licenses))) | ||
| 12725 | |||
| 12726 | (define-public ruby-puma | ||
| 12727 | (package | ||
| 12728 | (name "ruby-puma") | ||
| 12729 | (version "6.6.0") | ||
| 12730 | (source | ||
| 12731 | (origin | ||
| 12732 | (method git-fetch) ;for tests | ||
| 12733 | (uri (git-reference | ||
| 12734 | (url "https://github.com/puma/puma") | ||
| 12735 | (commit (string-append "v" version)))) | ||
| 12736 | (file-name (git-file-name name version)) | ||
| 12737 | (sha256 | ||
| 12738 | (base32 | ||
| 12739 | "1pdd7s403pi4y75s1sb4jkghhmm2w9zcqifj7z7yx4z0qfs7lvzv")))) | ||
| 12740 | (build-system ruby-build-system) | ||
| 12741 | (arguments | ||
| 12742 | (list | ||
| 12743 | #:phases | ||
| 12744 | #~(modify-phases %standard-phases | ||
| 12745 | (add-after 'unpack 'patch-Gemfile | ||
| 12746 | (lambda _ | ||
| 12747 | (substitute* "Gemfile" | ||
| 12748 | (("gem \"rake-compiler\".*") | ||
| 12749 | "gem 'rake-compiler'\n")))) | ||
| 12750 | (add-after 'unpack 'disable-rubocop | ||
| 12751 | (lambda _ | ||
| 12752 | (setenv "PUMA_NO_RUBOCOP" "1"))) | ||
| 12753 | (add-after 'unpack 'use-rack-2 | ||
| 12754 | (lambda _ | ||
| 12755 | (setenv "PUMA_CI_RACK" "rack2") | ||
| 12756 | (setenv "PUMA_CI_RACK_2" "1"))) | ||
| 12757 | (add-before 'build 'increase-resource-limits | ||
| 12758 | (lambda _ | ||
| 12759 | ;; The test suite requires a higher number of open files. Try | ||
| 12760 | ;; increasing the soft resource limit of max open files to 2048, | ||
| 12761 | ;; or equal to the hard limit, whichever is lower. | ||
| 12762 | (call-with-values (lambda () (getrlimit 'nofile)) | ||
| 12763 | (lambda (soft hard) | ||
| 12764 | (when (and soft (< soft 2048)) | ||
| 12765 | (if hard | ||
| 12766 | (setrlimit 'nofile (min hard 2048) hard) | ||
| 12767 | (setrlimit 'nofile 2048 #f)) | ||
| 12768 | (format | ||
| 12769 | #t "increased maximum number of open files from ~d to ~d~%" | ||
| 12770 | soft (if hard (min hard 2048) 2048))))))) | ||
| 12771 | (add-before 'build 'fix-gemspec | ||
| 12772 | (lambda _ | ||
| 12773 | (substitute* "puma.gemspec" | ||
| 12774 | (("`git ls-files -- bin docs ext lib tools`") | ||
| 12775 | "`find bin docs ext lib tools -type f |sort`")))) | ||
| 12776 | (delete 'check) ;moved after install | ||
| 12777 | (add-after 'install 'check | ||
| 12778 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 12779 | (when tests? | ||
| 12780 | (invoke "bundle" "exec" "rake" "test")))) | ||
| 12781 | (add-after 'install 'delete-mkmf.log | ||
| 12782 | (lambda _ | ||
| 12783 | ;; Rubygems installs build log files that embed volatile file | ||
| 12784 | ;; names (see: | ||
| 12785 | ;; https://github.com/rubygems/rubygems/issues/6259). | ||
| 12786 | (for-each delete-file (find-files #$output "^mkmf\\.log$")))) | ||
| 12787 | (add-before 'check 'disable-problematic-tests | ||
| 12788 | (lambda _ | ||
| 12789 | (let-syntax ((skip-tests | ||
| 12790 | (syntax-rules () | ||
| 12791 | ((_ file test ...) | ||
| 12792 | (substitute* file | ||
| 12793 | (((string-append "def " test ".*") all) | ||
| 12794 | (string-append | ||
| 12795 | all " skip('fails on guix')\n")) ...))))) | ||
| 12796 | ;; The test failures were reported at: | ||
| 12797 | ;; https://github.com/puma/puma/issues/3093, but appear to be | ||
| 12798 | ;; caused by the Guix build container, perhaps the lack of | ||
| 12799 | ;; zombie process reaping (see: | ||
| 12800 | ;; https://issues.guix.gnu.org/30948). | ||
| 12801 | ;; All the tests in the 'test_worker_gem_independence.rb' | ||
| 12802 | ;; module fail with "Expected false to be truthy.". | ||
| 12803 | (delete-file "test/test_worker_gem_independence.rb") | ||
| 12804 | (skip-tests "test/test_integration_ssl_session.rb" | ||
| 12805 | ;; The TLS 1.2 test fails for unknown reasons. | ||
| 12806 | "test_off_tls1_2") | ||
| 12807 | (skip-tests "test/test_integration_cluster.rb" | ||
| 12808 | "test_fork_worker_on_refork" | ||
| 12809 | "test_hot_restart_does_not_drop_connections" | ||
| 12810 | "test_culling_strategy_oldest_fork_worker" | ||
| 12811 | "test_usr1_fork_worker") | ||
| 12812 | (skip-tests "test/test_integration_pumactl.rb" | ||
| 12813 | "test_refork_cluster") | ||
| 12814 | ;; The Openssl certificate has expired, causing these tests to fail. | ||
| 12815 | (skip-tests "test/test_puma_server_ssl.rb" | ||
| 12816 | "test_verify_fail_if_client_expired_cert" | ||
| 12817 | "test_verify_client_cert" | ||
| 12818 | "test_server_ssl_with_cert_pem_and_key_pem") | ||
| 12819 | (skip-tests "test/test_integration_ssl.rb" | ||
| 12820 | "test_ssl_run_with_curl_client") | ||
| 12821 | (skip-tests "test/test_web_concurrency_auto.rb" "\ | ||
| 12822 | test_web_concurrency_with_concurrent_ruby_unavailable") | ||
| 12823 | (skip-tests "test/helpers/integration.rb" | ||
| 12824 | "test_puma_started_log_writing")))) | ||
| 12825 | (add-before 'check 'relax-test-case-timeout | ||
| 12826 | (lambda _ | ||
| 12827 | ;; The default value is 45 s and easily causes timeouts. | ||
| 12828 | (setenv "TEST_CASE_TIMEOUT" "600"))) | ||
| 12829 | (add-before 'check 'set-home | ||
| 12830 | (lambda _ | ||
| 12831 | ;; Some tests fail if the cannot write to HOME. | ||
| 12832 | (setenv "HOME" "/tmp"))) | ||
| 12833 | (add-before 'check 'set-paths | ||
| 12834 | (lambda _ | ||
| 12835 | ;; The test suite requires the 'puma' command to be on PATH. | ||
| 12836 | (setenv "PATH" (string-append (getenv "PATH") ":" | ||
| 12837 | #$output "/bin")) | ||
| 12838 | (setenv "GEM_PATH" (string-append | ||
| 12839 | (getenv "GEM_PATH") ":" | ||
| 12840 | #$output "/lib/ruby/vendor_ruby"))))))) | ||
| 12841 | (native-inputs | ||
| 12842 | (list bundler | ||
| 12843 | curl | ||
| 12844 | ruby-json | ||
| 12845 | ruby-localhost | ||
| 12846 | ruby-m | ||
| 12847 | ruby-minitest-proveit | ||
| 12848 | ruby-minitest-retry | ||
| 12849 | ruby-minitest-stub-const | ||
| 12850 | ruby-rack | ||
| 12851 | ruby-rackup-1 | ||
| 12852 | ruby-rake-compiler | ||
| 12853 | ruby-webrick)) | ||
| 12854 | (inputs | ||
| 12855 | (list openssl | ||
| 12856 | ruby-nio4r)) | ||
| 12857 | (propagated-inputs | ||
| 12858 | (list ruby-concurrent-ruby)) | ||
| 12859 | (synopsis "Simple, concurrent HTTP server for Ruby/Rack") | ||
| 12860 | (description | ||
| 12861 | "Puma is a simple, fast, threaded, and highly concurrent HTTP 1.1 server | ||
| 12862 | for Ruby/Rack applications. Puma is intended for use in both development and | ||
| 12863 | production environments. In order to get the best throughput, it is highly | ||
| 12864 | recommended that you use a Ruby implementation with real threads like Rubinius | ||
| 12865 | or JRuby.") | ||
| 12866 | (home-page "https://puma.io/") | ||
| 12867 | (license license:expat))) | ||
| 12868 | |||
| 12869 | (define-public ruby-hoe-git | ||
| 12870 | (package | ||
| 12871 | (name "ruby-hoe-git") | ||
| 12872 | (version "1.6.0") | ||
| 12873 | (source | ||
| 12874 | (origin | ||
| 12875 | (method url-fetch) | ||
| 12876 | (uri (rubygems-uri "hoe-git" version)) | ||
| 12877 | (sha256 | ||
| 12878 | (base32 | ||
| 12879 | "10jmmbjm0lkglwxbn4rpqghgg1ipjxrswm117n50adhmy8yij650")))) | ||
| 12880 | (build-system ruby-build-system) | ||
| 12881 | (propagated-inputs | ||
| 12882 | (list ruby-hoe-3)) | ||
| 12883 | (synopsis "Hoe plugins for tighter Git integration") | ||
| 12884 | (description | ||
| 12885 | "This package provides a set of Hoe plugins for tighter Git integration. | ||
| 12886 | It provides tasks to automate release tagging and pushing and changelog | ||
| 12887 | generation.") | ||
| 12888 | (home-page "https://github.com/jbarnette/hoe-git") | ||
| 12889 | (license license:expat))) | ||
| 12890 | |||
| 12891 | (define-public ruby-hoe-markdown | ||
| 12892 | (package | ||
| 12893 | (name "ruby-hoe-markdown") | ||
| 12894 | (version "1.4.0") | ||
| 12895 | (home-page "https://github.com/flavorjones/hoe-markdown") | ||
| 12896 | (source | ||
| 12897 | (origin | ||
| 12898 | (method git-fetch) | ||
| 12899 | (uri (git-reference | ||
| 12900 | (url home-page) | ||
| 12901 | (commit (string-append "v" version)))) | ||
| 12902 | (file-name (git-file-name name version)) | ||
| 12903 | (sha256 | ||
| 12904 | (base32 "0wb0yjdx9gx9r0cahpx42pblvglgh1i9pdfxjavq7f40nan2g076")))) | ||
| 12905 | (build-system ruby-build-system) | ||
| 12906 | (arguments | ||
| 12907 | '(#:test-target "spec" | ||
| 12908 | #:phases (modify-phases %standard-phases | ||
| 12909 | (add-before 'check 'disable-bundler-dependency | ||
| 12910 | (lambda _ | ||
| 12911 | (substitute* "spec/spec_helper.rb" | ||
| 12912 | (("require.*bundler/setup.*") | ||
| 12913 | ""))))))) | ||
| 12914 | (native-inputs | ||
| 12915 | (list ruby-rspec)) | ||
| 12916 | (propagated-inputs | ||
| 12917 | (list ruby-rake)) | ||
| 12918 | (synopsis "Hoe plugin with Markdown helpers") | ||
| 12919 | (description | ||
| 12920 | "This package provides a Hoe plugin with various Markdown helpers, which | ||
| 12921 | can be used to e.g. hyperlink Markdown documentation between project files.") | ||
| 12922 | (license license:expat))) | ||
| 12923 | |||
| 12924 | (define-public ruby-sequel | ||
| 12925 | (package | ||
| 12926 | (name "ruby-sequel") | ||
| 12927 | (version "5.47.0") | ||
| 12928 | (source | ||
| 12929 | (origin | ||
| 12930 | (method url-fetch) | ||
| 12931 | (uri (rubygems-uri "sequel" version)) | ||
| 12932 | (sha256 | ||
| 12933 | (base32 | ||
| 12934 | "03pmhj4kc3ga75wy397l57bvd18jxxmrk3qsznjw93b993qgvj3z")))) | ||
| 12935 | (build-system ruby-build-system) | ||
| 12936 | (arguments | ||
| 12937 | '(#:tests? #f)) ; Avoid dependency loop with ruby-minitest-hooks. | ||
| 12938 | (synopsis "Database toolkit for Ruby") | ||
| 12939 | (description "Sequel provides thread safety, connection pooling and a | ||
| 12940 | concise DSL for constructing SQL queries and table schemas. It includes a | ||
| 12941 | comprehensive ORM layer for mapping records to Ruby objects and handling | ||
| 12942 | associated records.") | ||
| 12943 | (home-page "https://sequel.jeremyevans.net") | ||
| 12944 | (license license:expat))) | ||
| 12945 | |||
| 12946 | (define-public ruby-timecop | ||
| 12947 | (package | ||
| 12948 | (name "ruby-timecop") | ||
| 12949 | (version "0.9.6") | ||
| 12950 | (source | ||
| 12951 | (origin | ||
| 12952 | (method url-fetch) | ||
| 12953 | (uri (rubygems-uri "timecop" version)) | ||
| 12954 | (sha256 | ||
| 12955 | (base32 | ||
| 12956 | "0dlx4gx0zh836i7nzna03xdl7fc233s5z6plnr6k3kw46ah8d1fc")))) | ||
| 12957 | (build-system ruby-build-system) | ||
| 12958 | (arguments | ||
| 12959 | (list | ||
| 12960 | #:phases | ||
| 12961 | #~(modify-phases %standard-phases | ||
| 12962 | (add-before 'check 'set-check-rubylib | ||
| 12963 | (lambda _ | ||
| 12964 | ;; Set RUBYLIB so timecop tests finds its own lib. | ||
| 12965 | (setenv "RUBYLIB" "lib")))))) | ||
| 12966 | (native-inputs | ||
| 12967 | (list bundler | ||
| 12968 | ruby-minitest-rg | ||
| 12969 | ruby-mocha | ||
| 12970 | ruby-activesupport | ||
| 12971 | ruby-pry)) | ||
| 12972 | (synopsis "Test mocks for time-dependent functions") | ||
| 12973 | (description | ||
| 12974 | "Timecop provides \"time travel\" and \"time freezing\" capabilities, | ||
| 12975 | making it easier to test time-dependent code. It provides a unified method to | ||
| 12976 | mock @code{Time.now}, @code{Date.today}, and @code{DateTime.now} in a single | ||
| 12977 | call.") | ||
| 12978 | (home-page "https://github.com/travisjeffery/timecop") | ||
| 12979 | (license license:expat))) | ||
| 12980 | |||
| 12981 | (define-public ruby-concurrent-ruby | ||
| 12982 | (package | ||
| 12983 | (name "ruby-concurrent-ruby") | ||
| 12984 | (version "1.3.5") | ||
| 12985 | (source (origin | ||
| 12986 | (method git-fetch) | ||
| 12987 | (uri (git-reference ;for tests | ||
| 12988 | (url "https://github.com/ruby-concurrency/concurrent-ruby") | ||
| 12989 | (commit (string-append "v" version)))) | ||
| 12990 | (file-name (git-file-name name version)) | ||
| 12991 | (sha256 | ||
| 12992 | (base32 | ||
| 12993 | "0f0apna8k9cwnpa4lddwimywxzznrd4rjv4m0lka2i54z49iky73")))) | ||
| 12994 | (build-system ruby-build-system) | ||
| 12995 | (arguments | ||
| 12996 | (list | ||
| 12997 | #:tests? #f ;the test suite is run in ruby-concurrent-ruby-edge | ||
| 12998 | #:phases #~(modify-phases %standard-phases | ||
| 12999 | (add-after 'unpack 'delete-unwanted-gemspecs | ||
| 13000 | (lambda _ | ||
| 13001 | (for-each delete-file | ||
| 13002 | '("concurrent-ruby-ext.gemspec" | ||
| 13003 | "concurrent-ruby-edge.gemspec")))) | ||
| 13004 | (add-after 'unpack 'do-not-install-concurrent_ruby.jar | ||
| 13005 | (lambda _ | ||
| 13006 | ;; This file is only built when building the Java | ||
| 13007 | ;; extension. | ||
| 13008 | (substitute* "concurrent-ruby.gemspec" | ||
| 13009 | (("'lib/concurrent-ruby/concurrent/concurrent_ruby.jar'") | ||
| 13010 | ""))))))) | ||
| 13011 | (synopsis "Concurrency library for Ruby") | ||
| 13012 | (description "Concurrent Ruby includes concurrency tools such as agents, | ||
| 13013 | futures, promises, thread pools, actors, supervisors, and more. It is | ||
| 13014 | inspired by Erlang, Clojure, Go, JavaScript, actors, and classic concurrency | ||
| 13015 | patterns.") | ||
| 13016 | (home-page "https://github.com/ruby-concurrency/concurrent-ruby") | ||
| 13017 | (license license:expat))) | ||
| 13018 | |||
| 13019 | ;;; The 'gem' is called 'concurrent-ruby'; reversing its name was confusing | ||
| 13020 | ;;; and failed to be picked by the gem importer (which led to this newer | ||
| 13021 | ;;; package). | ||
| 13022 | (define-public ruby-concurrent | ||
| 13023 | (deprecated-package "ruby-concurrent" ruby-concurrent-ruby)) | ||
| 13024 | |||
| 13025 | (define-public ruby-concurrent-ruby-ext | ||
| 13026 | (package | ||
| 13027 | (inherit ruby-concurrent-ruby) | ||
| 13028 | (name "ruby-concurrent-ruby-ext") | ||
| 13029 | (arguments | ||
| 13030 | (list | ||
| 13031 | #:tests? #f ;tested as part of concurrent-ruby-edge | ||
| 13032 | #:phases | ||
| 13033 | #~(modify-phases %standard-phases | ||
| 13034 | (add-after 'unpack 'delete-unwanted-gemspecs | ||
| 13035 | (lambda _ | ||
| 13036 | (for-each delete-file | ||
| 13037 | '("concurrent-ruby.gemspec" | ||
| 13038 | "concurrent-ruby-edge.gemspec"))))))) | ||
| 13039 | (native-inputs (list ruby-rake-compiler)) | ||
| 13040 | (propagated-inputs (list ruby-concurrent-ruby)) | ||
| 13041 | (synopsis "C extensions for concurrent-ruby") | ||
| 13042 | (description "This package provides C extensions to optimize the | ||
| 13043 | concurrent-ruby gem when running under the Matz's Ruby Interpreter (MRI, also | ||
| 13044 | known as CRuby)."))) | ||
| 13045 | |||
| 13046 | (define-public ruby-concurrent-ruby-edge | ||
| 13047 | (package | ||
| 13048 | (inherit ruby-concurrent-ruby) | ||
| 13049 | (name "ruby-concurrent-ruby-edge") | ||
| 13050 | (arguments | ||
| 13051 | (list | ||
| 13052 | #:phases | ||
| 13053 | #~(modify-phases %standard-phases | ||
| 13054 | (add-after 'unpack 'delete-unwanted-gemspecs | ||
| 13055 | (lambda _ | ||
| 13056 | (for-each delete-file | ||
| 13057 | '("concurrent-ruby.gemspec" | ||
| 13058 | "concurrent-ruby-ext.gemspec")))) | ||
| 13059 | ;; The tests rely on the Gem being installed, so move the check | ||
| 13060 | ;; phase after the install phase. | ||
| 13061 | (delete 'check) | ||
| 13062 | (add-after 'install 'check | ||
| 13063 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 13064 | (setenv "GEM_PATH" (string-append | ||
| 13065 | (getenv "GEM_PATH") ":" | ||
| 13066 | #$output "/lib/ruby/vendor_ruby")) | ||
| 13067 | (when tests? | ||
| 13068 | (invoke "rake" "ci"))))))) | ||
| 13069 | (native-inputs | ||
| 13070 | (list ruby-rake-compiler | ||
| 13071 | ruby-rake-compiler-dock | ||
| 13072 | ruby-rspec | ||
| 13073 | ruby-timecop | ||
| 13074 | ruby-yard)) | ||
| 13075 | (propagated-inputs | ||
| 13076 | (list ruby-concurrent-ruby ruby-concurrent-ruby-ext)) | ||
| 13077 | (synopsis "Edge features and additions to the @code{concurrent-ruby} gem") | ||
| 13078 | (description "The @code{concurrent-ruby-edge} gem includes | ||
| 13079 | @code{concurrent-ruby} features that are under active development and may | ||
| 13080 | change frequently. They are expected not to keep backward | ||
| 13081 | compatibility (there may also lack tests and documentation), although semantic | ||
| 13082 | versions are obeyed though. Features developed in @code{concurrent-ruby-edge} | ||
| 13083 | are expected to move to @code{concurrent-ruby} when final."))) | ||
| 13084 | |||
| 13085 | (define-public ruby-pkg-config | ||
| 13086 | (package | ||
| 13087 | (name "ruby-pkg-config") | ||
| 13088 | (version "1.2.5") | ||
| 13089 | (source | ||
| 13090 | (origin | ||
| 13091 | (method url-fetch) | ||
| 13092 | (uri (rubygems-uri "pkg-config" version)) | ||
| 13093 | (sha256 | ||
| 13094 | (base32 | ||
| 13095 | "056mzqdh4yjznsg36fi0xiq76f24vxlhzh2n4az919l3x5k318ar")))) | ||
| 13096 | (build-system ruby-build-system) | ||
| 13097 | (arguments | ||
| 13098 | ;; Tests require extra files not included in the gem. | ||
| 13099 | `(#:tests? #f)) | ||
| 13100 | (synopsis "Detect libraries for compiling Ruby native extensions") | ||
| 13101 | (description | ||
| 13102 | "@code{pkg-config} can be used in your extconf.rb to properly detect need | ||
| 13103 | libraries for compiling Ruby native extensions.") | ||
| 13104 | (home-page "https://github.com/ruby-gnome2/pkg-config") | ||
| 13105 | (license license:lgpl2.0+))) | ||
| 13106 | |||
| 13107 | (define-public ruby-net-http-digest-auth | ||
| 13108 | (package | ||
| 13109 | (name "ruby-net-http-digest-auth") | ||
| 13110 | (version "1.4.1") | ||
| 13111 | (source | ||
| 13112 | (origin | ||
| 13113 | (method url-fetch) | ||
| 13114 | (uri (rubygems-uri "net-http-digest_auth" version)) | ||
| 13115 | (sha256 | ||
| 13116 | (base32 | ||
| 13117 | "1nq859b0gh2vjhvl1qh1zrk09pc7p54r9i6nnn6sb06iv07db2jb")))) | ||
| 13118 | (build-system ruby-build-system) | ||
| 13119 | (native-inputs | ||
| 13120 | (list ruby-hoe | ||
| 13121 | ruby-minitest)) | ||
| 13122 | (synopsis "RFC 2617 HTTP digest authentication library") | ||
| 13123 | (description | ||
| 13124 | "This library implements HTTP's digest authentication scheme based on | ||
| 13125 | RFC 2617. This enables the use of the digest authentication scheme instead | ||
| 13126 | of the more insecure basic authentication scheme.") | ||
| 13127 | (home-page "https://github.com/drbrain/net-http-digest_auth") | ||
| 13128 | (license license:expat))) | ||
| 13129 | |||
| 13130 | (define-public ruby-mail | ||
| 13131 | (package | ||
| 13132 | (name "ruby-mail") | ||
| 13133 | (version "2.8.1") | ||
| 13134 | (source | ||
| 13135 | (origin | ||
| 13136 | (method url-fetch) | ||
| 13137 | (uri (rubygems-uri "mail" version)) | ||
| 13138 | (sha256 | ||
| 13139 | (base32 "1bf9pysw1jfgynv692hhaycfxa8ckay1gjw5hz3madrbrynryfzc")))) | ||
| 13140 | (build-system ruby-build-system) | ||
| 13141 | (propagated-inputs | ||
| 13142 | (list ruby-mini-mime)) | ||
| 13143 | (arguments | ||
| 13144 | '(#:tests? #f)) ; no rakefile | ||
| 13145 | (synopsis "Mail library for Ruby") | ||
| 13146 | (description | ||
| 13147 | "Mail is an internet library for Ruby that is designed to handle email | ||
| 13148 | generation, parsing and sending. The purpose of this library is to provide | ||
| 13149 | a single point of access to handle all email functions, including sending | ||
| 13150 | and receiving emails. All network type actions are done through proxy | ||
| 13151 | methods to @code{Net::SMTP}, @code{Net::POP3} etc. | ||
| 13152 | |||
| 13153 | Mail has been designed with a very simple object oriented system that | ||
| 13154 | really opens up the email messages you are parsing, if you know what you | ||
| 13155 | are doing, you can fiddle with every last bit of your email directly.") | ||
| 13156 | (home-page "https://github.com/mikel/mail") | ||
| 13157 | (license license:expat))) | ||
| 13158 | |||
| 13159 | (define-public ruby-net-protocol | ||
| 13160 | (package | ||
| 13161 | (name "ruby-net-protocol") | ||
| 13162 | (version "0.2.1") | ||
| 13163 | (source (origin | ||
| 13164 | (method git-fetch) | ||
| 13165 | (uri (git-reference | ||
| 13166 | (url "https://github.com/ruby/net-protocol") | ||
| 13167 | (commit (string-append "v" version)))) | ||
| 13168 | (file-name (git-file-name name version)) | ||
| 13169 | (sha256 | ||
| 13170 | (base32 | ||
| 13171 | "0niivmjx7bc6vsylc1ag17mw6mnvjxw02s7cin1f0422xyr8msq9")))) | ||
| 13172 | (build-system ruby-build-system) | ||
| 13173 | (propagated-inputs (list ruby-timeout)) | ||
| 13174 | (synopsis "Abstract interface for Ruby network clients") | ||
| 13175 | (description "This Ruby library provides an abstract interface for network | ||
| 13176 | clients.") | ||
| 13177 | (home-page "https://github.com/ruby/net-protocol") | ||
| 13178 | (license (list license:bsd-2)))) | ||
| 13179 | |||
| 13180 | (define-public ruby-email-reply-trimmer | ||
| 13181 | (package | ||
| 13182 | (name "ruby-email-reply-trimmer") | ||
| 13183 | (version "0.1.13") | ||
| 13184 | (source | ||
| 13185 | (origin | ||
| 13186 | (method url-fetch) | ||
| 13187 | (uri (rubygems-uri "email_reply_trimmer" version)) | ||
| 13188 | (sha256 | ||
| 13189 | (base32 | ||
| 13190 | "1jgcxifm48xq5dz9k47q43pqm5bfnf14l62l3bqhmv8f6z8dw4ki")))) | ||
| 13191 | (build-system ruby-build-system) | ||
| 13192 | (synopsis "Trim replies from plain text email") | ||
| 13193 | (description "EmailReplyTrimmer is a Ruby small library to trim replies | ||
| 13194 | from plain text email.") | ||
| 13195 | (home-page "https://github.com/discourse/email_reply_trimmer") | ||
| 13196 | (license license:expat))) | ||
| 13197 | |||
| 13198 | (define-public ruby-mathn | ||
| 13199 | (package | ||
| 13200 | (name "ruby-mathn") | ||
| 13201 | (version "0.1.0") | ||
| 13202 | (source | ||
| 13203 | (origin | ||
| 13204 | (method url-fetch) | ||
| 13205 | (uri (rubygems-uri "mathn" version)) | ||
| 13206 | (sha256 | ||
| 13207 | (base32 | ||
| 13208 | "1wn812llln9jzgybz2d7536q39z3gi99i6fi0j1dapcpzvhgrr0p")))) | ||
| 13209 | (build-system ruby-build-system) | ||
| 13210 | (native-inputs | ||
| 13211 | (list bundler ruby-rake-compiler)) | ||
| 13212 | (synopsis "Extends math operations for increased precision") | ||
| 13213 | (description | ||
| 13214 | "This gem makes mathematical operations more precise in Ruby and | ||
| 13215 | integrates other mathematical standard libraries. Prior to Ruby 2.5, | ||
| 13216 | @code{mathn} was part of the Ruby standard library.") | ||
| 13217 | (home-page "https://github.com/ruby/mathn") | ||
| 13218 | (license license:bsd-2))) | ||
| 13219 | |||
| 13220 | (define-public ruby-code-statistics | ||
| 13221 | (package | ||
| 13222 | (name "ruby-code-statistics") | ||
| 13223 | (version "0.2.13") | ||
| 13224 | (source | ||
| 13225 | (origin | ||
| 13226 | (method url-fetch) | ||
| 13227 | (uri (rubygems-uri "code_statistics" version)) | ||
| 13228 | (sha256 | ||
| 13229 | (base32 | ||
| 13230 | "07rdpsbwbmh4vp8nxyh308cj7am2pbrfhv9v5xr2d5gq8hnnsm93")))) | ||
| 13231 | (build-system ruby-build-system) | ||
| 13232 | (arguments | ||
| 13233 | `(#:tests? #f)) ; Not all test code is included in gem. | ||
| 13234 | (synopsis "Port of the rails 'rake stats' method") | ||
| 13235 | (description | ||
| 13236 | "This gem is a port of the rails 'rake stats' method so it can be made | ||
| 13237 | more robust and work for non rails projects.") | ||
| 13238 | (home-page "https://github.com/danmayer/code_statistics") | ||
| 13239 | (license license:expat))) | ||
| 13240 | |||
| 13241 | (define-public ruby-ruby2-keywords | ||
| 13242 | (package | ||
| 13243 | (name "ruby-ruby2-keywords") | ||
| 13244 | (version "0.0.5") | ||
| 13245 | (source (origin | ||
| 13246 | (method git-fetch) | ||
| 13247 | (uri (git-reference | ||
| 13248 | (url "https://github.com/ruby/ruby2_keywords") | ||
| 13249 | (commit (string-append "v" version)))) | ||
| 13250 | (file-name (git-file-name name version)) | ||
| 13251 | (sha256 | ||
| 13252 | (base32 | ||
| 13253 | "1jhqb152zfr2yrxj6j8rzakkwdkg5viggwnnqrrfxwwy63msdi97")))) | ||
| 13254 | (build-system ruby-build-system) | ||
| 13255 | (arguments | ||
| 13256 | (list | ||
| 13257 | #:phases | ||
| 13258 | #~(modify-phases %standard-phases | ||
| 13259 | (add-after 'unpack 'delete-extraneous-rake-files | ||
| 13260 | (lambda _ | ||
| 13261 | (for-each delete-file '("rakelib/changelogs.rake" | ||
| 13262 | "rakelib/epoch.rake" | ||
| 13263 | "rakelib/version.rake")))) | ||
| 13264 | (add-after 'extract-gemspec 'adjust-files | ||
| 13265 | (lambda _ | ||
| 13266 | (substitute* "ruby2_keywords.gemspec" | ||
| 13267 | ;; This file is not present in the git checkout. | ||
| 13268 | ((".*\"ChangeLog\",.*") ""))))))) | ||
| 13269 | (synopsis "Shim library for Module#ruby2_keywords") | ||
| 13270 | (description "Provides empty @code{Module#ruby2_keywords} method, for the | ||
| 13271 | forward source-level compatibility against @command{ruby2.7} and | ||
| 13272 | @command{ruby3}.") | ||
| 13273 | (home-page "https://github.com/ruby/ruby2_keywords") | ||
| 13274 | (license license:bsd-2))) | ||
| 13275 | |||
| 13276 | (define-public ruby-rubypants | ||
| 13277 | (package | ||
| 13278 | (name "ruby-rubypants") | ||
| 13279 | (version "0.6.0") | ||
| 13280 | (source (origin | ||
| 13281 | (method url-fetch) | ||
| 13282 | (uri (rubygems-uri "rubypants" version)) | ||
| 13283 | (sha256 | ||
| 13284 | (base32 | ||
| 13285 | "0xpqkslan2wkyal2h9qhplkr5d4sdn7q6csigrhnljjpp8j4qfsh")))) | ||
| 13286 | (build-system ruby-build-system) | ||
| 13287 | (arguments | ||
| 13288 | '(#:tests? #f)) ; need Codecov | ||
| 13289 | (synopsis "Port of the smart-quotes library SmartyPants") | ||
| 13290 | (description | ||
| 13291 | "RubyPants is a Ruby port of the smart-quotes library SmartyPants. The | ||
| 13292 | original SmartyPants is a web publishing plug-in for Movable Type, Blosxom, | ||
| 13293 | and BBEdit that easily translates plain ASCII punctuation characters into | ||
| 13294 | smart typographic punctuation HTML entities.") | ||
| 13295 | (home-page "https://github.com/jmcnevin/rubypants") | ||
| 13296 | (license license:bsd-2))) | ||
| 13297 | |||
| 13298 | (define-public ruby-org-ruby | ||
| 13299 | (package | ||
| 13300 | (name "ruby-org-ruby") | ||
| 13301 | (version "0.9.12") | ||
| 13302 | (source (origin | ||
| 13303 | (method url-fetch) | ||
| 13304 | (uri (rubygems-uri "org-ruby" version)) | ||
| 13305 | (sha256 | ||
| 13306 | (base32 | ||
| 13307 | "0x69s7aysfiwlcpd9hkvksfyld34d8kxr62adb59vjvh8hxfrjwk")))) | ||
| 13308 | (build-system ruby-build-system) | ||
| 13309 | (arguments | ||
| 13310 | '(#:tests? #f)) ; no rakefile | ||
| 13311 | (propagated-inputs | ||
| 13312 | (list ruby-rubypants)) | ||
| 13313 | (synopsis "Org-mode parser written in Ruby") | ||
| 13314 | (description | ||
| 13315 | "Org-ruby is an org-mode parser written in Ruby. The most significant | ||
| 13316 | thing this library does today is convert org-mode files to HTML or Textile or | ||
| 13317 | Markdown.") | ||
| 13318 | (home-page "https://github.com/wallyqs/org-ruby") | ||
| 13319 | (license license:expat))) | ||
| 13320 | |||
| 13321 | (define-public ruby-rake | ||
| 13322 | (package | ||
| 13323 | (name "ruby-rake") | ||
| 13324 | (version "13.0.6") | ||
| 13325 | (source | ||
| 13326 | (origin | ||
| 13327 | (method git-fetch) ;for tests | ||
| 13328 | (uri (git-reference | ||
| 13329 | (url "https://github.com/ruby/rake") | ||
| 13330 | (commit (string-append "v" version)))) | ||
| 13331 | (file-name (git-file-name name version)) | ||
| 13332 | (sha256 | ||
| 13333 | (base32 | ||
| 13334 | "0c77xyl677s966f8yvk8yv7l31c1ffa1yl4kcwiram219h0s76in")))) | ||
| 13335 | (build-system ruby-build-system) | ||
| 13336 | (native-inputs | ||
| 13337 | (list bundler)) | ||
| 13338 | (synopsis "Rake is a Make-like program implemented in Ruby") | ||
| 13339 | (description | ||
| 13340 | "Rake is a Make-like program where tasks and dependencies are specified | ||
| 13341 | in standard Ruby syntax.") | ||
| 13342 | (home-page "https://github.com/ruby/rake") | ||
| 13343 | (license license:expat))) | ||
| 13344 | |||
| 13345 | (define-public ruby-rake-manifest | ||
| 13346 | (package | ||
| 13347 | (name "ruby-rake-manifest") | ||
| 13348 | (version "0.2.3") | ||
| 13349 | (source (origin | ||
| 13350 | (method git-fetch) | ||
| 13351 | (uri (git-reference | ||
| 13352 | (url "https://github.com/mvz/rake-manifest") | ||
| 13353 | (commit (string-append "v" version)))) | ||
| 13354 | (file-name (git-file-name name version)) | ||
| 13355 | (sha256 | ||
| 13356 | (base32 | ||
| 13357 | "16k2yvg773c25kp2vhzhp01rhf53k0nhrcmpv34k1fridw90r2k8")))) | ||
| 13358 | (build-system ruby-build-system) | ||
| 13359 | (arguments | ||
| 13360 | (list | ||
| 13361 | #:test-target "default" | ||
| 13362 | #:phases | ||
| 13363 | #~(modify-phases %standard-phases | ||
| 13364 | (delete 'check) ;moved after the install phase | ||
| 13365 | (add-after 'install 'check | ||
| 13366 | (assoc-ref %standard-phases 'check)) | ||
| 13367 | (add-before 'check 'set-GEM_PATH | ||
| 13368 | (lambda _ | ||
| 13369 | (setenv "GEM_PATH" (string-append | ||
| 13370 | (getenv "GEM_PATH") ":" | ||
| 13371 | #$output "/lib/ruby/vendor_ruby"))))))) | ||
| 13372 | (native-inputs (list ruby-rspec ruby-simplecov)) | ||
| 13373 | (synopsis "Rake tasks to generate and check a manifest file") | ||
| 13374 | (description "This package provides Rake tasks to generate and check a | ||
| 13375 | manifest file.") | ||
| 13376 | (home-page "https://github.com/mvz/rake-manifest") | ||
| 13377 | (license license:expat))) | ||
| 13378 | |||
| 13379 | (define-public ruby-sfl | ||
| 13380 | (package | ||
| 13381 | (name "ruby-sfl") | ||
| 13382 | (version "2.3") | ||
| 13383 | (source (origin | ||
| 13384 | (method url-fetch) | ||
| 13385 | (uri (rubygems-uri "sfl" version)) | ||
| 13386 | (sha256 | ||
| 13387 | (base32 | ||
| 13388 | "1qm4hvhq9pszi9zs1cl9qgwx1n4wxq0af0hq9sbf6qihqd8rwwwr")))) | ||
| 13389 | (build-system ruby-build-system) | ||
| 13390 | (arguments | ||
| 13391 | `(#:tests? #f ;; some tests fail, gem is a dummy for ruby >= 1.9 anyway | ||
| 13392 | #:test-target "spec")) | ||
| 13393 | (synopsis "Spawn for Ruby 1.8") | ||
| 13394 | (description "This pure ruby library provides @code{spawn()} which is | ||
| 13395 | almost perfectly compatible with ruby 1.9's.") | ||
| 13396 | (home-page "https://github.com/ujihisa/spawn-for-legacy") | ||
| 13397 | (license license:bsd-2))) | ||
| 13398 | |||
| 13399 | (define-public ruby-childprocess | ||
| 13400 | (package | ||
| 13401 | (name "ruby-childprocess") | ||
| 13402 | (version "4.1.0") | ||
| 13403 | (source | ||
| 13404 | (origin | ||
| 13405 | (method url-fetch) | ||
| 13406 | (uri (rubygems-uri "childprocess" version)) | ||
| 13407 | (sha256 | ||
| 13408 | (base32 | ||
| 13409 | "1lvcp8bsd35g57f7wz4jigcw2sryzzwrpcgjwwf3chmjrjcww5in")))) | ||
| 13410 | (build-system ruby-build-system) | ||
| 13411 | (arguments | ||
| 13412 | `(#:tests? #f ;; one failing test, even with fixes below | ||
| 13413 | #:test-target "spec" | ||
| 13414 | #:phases | ||
| 13415 | (modify-phases %standard-phases | ||
| 13416 | (add-after 'unpack 'patch | ||
| 13417 | (lambda _ | ||
| 13418 | (substitute* "spec/spec_helper.rb" | ||
| 13419 | (("#!/bin/sh\\\\n") (string-append "#!" (which "sh") "\\n")))))))) | ||
| 13420 | (native-inputs | ||
| 13421 | (list ruby-coveralls ruby-rspec)) | ||
| 13422 | (synopsis "Control external programs running in the background, in Ruby") | ||
| 13423 | (description "@code{childprocess} provides a gem to control external | ||
| 13424 | programs running in the background, in Ruby.") | ||
| 13425 | (home-page "https://github.com/enkessler/childprocess") | ||
| 13426 | (license license:expat))) | ||
| 13427 | |||
| 13428 | (define-public ruby-public-suffix | ||
| 13429 | (package | ||
| 13430 | (name "ruby-public-suffix") | ||
| 13431 | (version "4.0.5") | ||
| 13432 | (source (origin | ||
| 13433 | (method url-fetch) | ||
| 13434 | (uri (rubygems-uri "public_suffix" version)) | ||
| 13435 | (sha256 | ||
| 13436 | (base32 | ||
| 13437 | "0vywld400fzi17cszwrchrzcqys4qm6sshbv73wy5mwcixmrgg7g")))) | ||
| 13438 | (build-system ruby-build-system) | ||
| 13439 | (arguments | ||
| 13440 | '(#:phases | ||
| 13441 | (modify-phases %standard-phases | ||
| 13442 | ;; Remove the requirement on Rubocop, as it isn't useful to run, and | ||
| 13443 | ;; including it as an input can lead to circular dependencies. | ||
| 13444 | (add-after 'unpack 'remove-rubocop-from-Rakefile | ||
| 13445 | (lambda _ | ||
| 13446 | (substitute* "Rakefile" | ||
| 13447 | (("require \"rubocop/rake\\_task\"") "") | ||
| 13448 | (("RuboCop::RakeTask\\.new") ""))))))) | ||
| 13449 | (native-inputs | ||
| 13450 | (list bundler ruby-yard/minimal ruby-mocha ruby-minitest-reporters)) | ||
| 13451 | (home-page "https://simonecarletti.com/code/publicsuffix-ruby/") | ||
| 13452 | (synopsis "Domain name parser") | ||
| 13453 | (description "The gem @code{public_suffix} is a domain name parser, | ||
| 13454 | written in Ruby, and based on the @dfn{Public Suffix List}. A public suffix | ||
| 13455 | is one under which Internet users can (or historically could) directly | ||
| 13456 | register names. Some examples of public suffixes are @code{.com}, | ||
| 13457 | @code{.co.uk} and @code{pvt.k12.ma.us}. The Public Suffix List is a list of | ||
| 13458 | all known public suffixes.") | ||
| 13459 | (license license:expat))) | ||
| 13460 | |||
| 13461 | (define-public ruby-addressable | ||
| 13462 | (package | ||
| 13463 | (name "ruby-addressable") | ||
| 13464 | (version "2.8.1") | ||
| 13465 | (source (origin | ||
| 13466 | (method url-fetch) | ||
| 13467 | (uri (rubygems-uri "addressable" version)) | ||
| 13468 | (sha256 | ||
| 13469 | (base32 | ||
| 13470 | "1ypdmpdn20hxp5vwxz3zc04r5xcwqc25qszdlg41h8ghdqbllwmw")))) | ||
| 13471 | (build-system ruby-build-system) | ||
| 13472 | (arguments | ||
| 13473 | '(#:test-target "spec" | ||
| 13474 | #:phases | ||
| 13475 | (modify-phases %standard-phases | ||
| 13476 | (add-after 'unpack 'disable-bundler | ||
| 13477 | (lambda _ | ||
| 13478 | (substitute* "spec/spec_helper.rb" | ||
| 13479 | (("require 'bundler/setup'") "")))) | ||
| 13480 | (add-after 'unpack 'remove-unnecessary-dependencies-from-Gemfile | ||
| 13481 | (lambda _ | ||
| 13482 | (substitute* "Gemfile" | ||
| 13483 | (("git: 'https://github.com/sporkmonger/rack-mount.git',") "") | ||
| 13484 | ((".*launchy.*") "") | ||
| 13485 | ((".*rake.*") "gem 'rake'\n") | ||
| 13486 | ((".*redcarpet.*") "")))) | ||
| 13487 | (add-before 'check 'delete-network-dependent-test | ||
| 13488 | (lambda _ | ||
| 13489 | (delete-file "spec/addressable/net_http_compat_spec.rb")))))) | ||
| 13490 | (native-inputs | ||
| 13491 | (list bundler | ||
| 13492 | ruby-idn-ruby | ||
| 13493 | ruby-rspec | ||
| 13494 | ruby-rspec-its-minimal | ||
| 13495 | ruby-simplecov | ||
| 13496 | ruby-sporkmonger-rack-mount | ||
| 13497 | ruby-yard/minimal)) | ||
| 13498 | (propagated-inputs | ||
| 13499 | (list ruby-public-suffix)) | ||
| 13500 | (home-page "https://github.com/sporkmonger/addressable") | ||
| 13501 | (synopsis "Alternative URI implementation") | ||
| 13502 | (description "Addressable is a replacement for the URI implementation that | ||
| 13503 | is part of Ruby's standard library. It more closely conforms to RFC 3986, | ||
| 13504 | RFC 3987, and RFC 6570 (level 4), providing support for IRIs and URI templates.") | ||
| 13505 | (license license:asl2.0))) | ||
| 13506 | |||
| 13507 | (define-public ruby-colorize | ||
| 13508 | (package | ||
| 13509 | (name "ruby-colorize") | ||
| 13510 | (version "0.8.1") | ||
| 13511 | (source (origin | ||
| 13512 | (method url-fetch) | ||
| 13513 | (uri (rubygems-uri "colorize" version)) | ||
| 13514 | (sha256 | ||
| 13515 | (base32 | ||
| 13516 | "133rqj85n400qk6g3dhf2bmfws34mak1wqihvh3bgy9jhajw580b")))) | ||
| 13517 | (build-system ruby-build-system) | ||
| 13518 | (arguments | ||
| 13519 | '(#:phases (modify-phases %standard-phases | ||
| 13520 | (add-before 'check 'remove-codeclimate-dependency | ||
| 13521 | (lambda _ | ||
| 13522 | (substitute* "test/test_colorize.rb" | ||
| 13523 | ;; Do not hook the tests into the online CodeClimate | ||
| 13524 | ;; service which is unnecessary for these tests. | ||
| 13525 | (("require 'codeclimate-test-reporter'") | ||
| 13526 | "") | ||
| 13527 | (("CodeClimate.*") ""))))))) | ||
| 13528 | (synopsis "Add color effects to the @code{String} class") | ||
| 13529 | (description | ||
| 13530 | "This package extends the @code{String} class and adds a | ||
| 13531 | @code{ColorizedString} with methods to set text color, background color, | ||
| 13532 | and text effects.") | ||
| 13533 | (home-page "https://github.com/fazibear/colorize") | ||
| 13534 | (license license:gpl2+))) | ||
| 13535 | |||
| 13536 | (define-public ruby-colorator | ||
| 13537 | (package | ||
| 13538 | (name "ruby-colorator") | ||
| 13539 | (version "1.1.0") | ||
| 13540 | (source (origin | ||
| 13541 | (method url-fetch) | ||
| 13542 | (uri (rubygems-uri "colorator" version)) | ||
| 13543 | (sha256 | ||
| 13544 | (base32 | ||
| 13545 | "0f7wvpam948cglrciyqd798gdc6z3cfijciavd0dfixgaypmvy72")))) | ||
| 13546 | (build-system ruby-build-system) | ||
| 13547 | (arguments | ||
| 13548 | ;; No test target | ||
| 13549 | `(#:tests? #f)) | ||
| 13550 | (home-page "http://octopress.org/colorator/") | ||
| 13551 | (synopsis "Terminal color library") | ||
| 13552 | (description "Colorator is a Ruby gem that helps you colorize your text | ||
| 13553 | for the terminal.") | ||
| 13554 | (license license:expat))) | ||
| 13555 | |||
| 13556 | (define-public ruby-command-line-reporter | ||
| 13557 | (package | ||
| 13558 | (name "ruby-command-line-reporter") | ||
| 13559 | (version "4.0.1") | ||
| 13560 | (source (origin | ||
| 13561 | (method url-fetch) | ||
| 13562 | (uri (rubygems-uri "command_line_reporter" version)) | ||
| 13563 | (sha256 | ||
| 13564 | (base32 | ||
| 13565 | "1l0zxkh5n9dxfw46lpkg416ljpldlq1bgdhqh0d118dk338nz4ll")))) | ||
| 13566 | (build-system ruby-build-system) | ||
| 13567 | (arguments | ||
| 13568 | ;; No Rakefile | ||
| 13569 | `(#:tests? #f | ||
| 13570 | #:phases | ||
| 13571 | (modify-phases %standard-phases | ||
| 13572 | (add-before 'build 'fix-dependencies | ||
| 13573 | (lambda _ | ||
| 13574 | (substitute* ".gemspec" | ||
| 13575 | ;; colored is unmaintained | ||
| 13576 | (("colored") "colorator") | ||
| 13577 | ;; colorator version | ||
| 13578 | (("= 1.2") "= 1.1"))))))) | ||
| 13579 | (propagated-inputs (list ruby-colorator)) | ||
| 13580 | (home-page "https://github.com/wbailey/command_line_reporter") | ||
| 13581 | (synopsis "Report production while executing Ruby scripts") | ||
| 13582 | (description "This gem provides a DSL that makes it easy to write reports | ||
| 13583 | of various types in ruby. It eliminates the need to litter your source with | ||
| 13584 | puts statements, instead providing a more readable, expressive interface to | ||
| 13585 | your application.") | ||
| 13586 | (license license:asl2.0))) | ||
| 13587 | |||
| 13588 | (define-public ruby-command-line-reporter-3 | ||
| 13589 | (package | ||
| 13590 | (inherit ruby-command-line-reporter) | ||
| 13591 | (version "3.3.6") | ||
| 13592 | (source (origin | ||
| 13593 | (method url-fetch) | ||
| 13594 | (uri (rubygems-uri "command_line_reporter" version)) | ||
| 13595 | (sha256 | ||
| 13596 | (base32 | ||
| 13597 | "1h39zqqxp3k4qk49ajpx0jps1vmvxgkh43mqkb6znk583bl0fv71")))))) | ||
| 13598 | |||
| 13599 | (define-public ruby-kpeg | ||
| 13600 | (package | ||
| 13601 | (name "ruby-kpeg") | ||
| 13602 | (version "1.3.3") | ||
| 13603 | (source | ||
| 13604 | (origin | ||
| 13605 | (method url-fetch) | ||
| 13606 | (uri (rubygems-uri "kpeg" version)) | ||
| 13607 | (sha256 | ||
| 13608 | (base32 | ||
| 13609 | "0jxddpyb23digcd8b1b02gn94057a7mw17680c3c8s3bcb5xqfnp")))) | ||
| 13610 | (build-system ruby-build-system) | ||
| 13611 | (native-inputs | ||
| 13612 | (list ruby-hoe)) | ||
| 13613 | (synopsis "PEG library for Ruby") | ||
| 13614 | (description "KPeg is a simple PEG library for Ruby. It provides an API as | ||
| 13615 | well as native grammar to build the grammar. KPeg supports direct left | ||
| 13616 | recursion of rules via the | ||
| 13617 | @uref{http://www.vpri.org/pdf/tr2008003_experimenting.pdf,OMeta memoization} | ||
| 13618 | technique.") | ||
| 13619 | (home-page "https://github.com/evanphx/kpeg") | ||
| 13620 | (license license:expat))) | ||
| 13621 | |||
| 13622 | (define-public ruby-rdoc | ||
| 13623 | (package | ||
| 13624 | (name "ruby-rdoc") | ||
| 13625 | (version "6.7.0") | ||
| 13626 | (source | ||
| 13627 | (origin | ||
| 13628 | (method git-fetch) | ||
| 13629 | (uri (git-reference | ||
| 13630 | (url "https://github.com/ruby/rdoc") | ||
| 13631 | (commit (string-append "v" version)))) | ||
| 13632 | (file-name (git-file-name name version)) | ||
| 13633 | (sha256 | ||
| 13634 | (base32 | ||
| 13635 | "0dy997zi7k17c2yjlq1y7zl9yaiym1f4jgfh84qqzhwl1qm6v41j")))) | ||
| 13636 | (build-system ruby-build-system) | ||
| 13637 | (arguments | ||
| 13638 | `(#:phases | ||
| 13639 | (modify-phases %standard-phases | ||
| 13640 | (add-before 'build 'generate | ||
| 13641 | ;; 'gem build' doesn't honor Rakefile dependencies (see: | ||
| 13642 | ;; https://github.com/ruby/rdoc/issues/432#issuecomment-650808977). | ||
| 13643 | (lambda _ | ||
| 13644 | (invoke "rake" "generate")))))) | ||
| 13645 | (native-inputs (list bundler ruby-kpeg ruby-racc ruby-rubocop | ||
| 13646 | ruby-test-unit-ruby-core)) | ||
| 13647 | (home-page "https://ruby.github.io/rdoc/") | ||
| 13648 | (synopsis "HTML and command-line documentation utility") | ||
| 13649 | (description "RDoc produces HTML and command-line documentation for Ruby | ||
| 13650 | projects. RDoc includes the +rdoc+ and +ri+ tools for generating and displaying | ||
| 13651 | documentation from the command-line.") | ||
| 13652 | (license license:gpl2+))) | ||
| 13653 | |||
| 13654 | (define-public ruby-sass-listen | ||
| 13655 | (package | ||
| 13656 | (name "ruby-sass-listen") | ||
| 13657 | (version "4.0.0") | ||
| 13658 | (source (origin | ||
| 13659 | (method url-fetch) | ||
| 13660 | (uri (rubygems-uri "sass-listen" version)) | ||
| 13661 | (sha256 | ||
| 13662 | (base32 | ||
| 13663 | "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df")))) | ||
| 13664 | (build-system ruby-build-system) | ||
| 13665 | (arguments | ||
| 13666 | ;; No test target | ||
| 13667 | `(#:tests? #f)) | ||
| 13668 | (propagated-inputs | ||
| 13669 | (list ruby-rb-fsevent ruby-rb-inotify)) | ||
| 13670 | (home-page "https://github.com/sass/listen") | ||
| 13671 | (synopsis "File modification notification library") | ||
| 13672 | (description "The Listen gem listens to file modifications and notifies you | ||
| 13673 | about the changes.") | ||
| 13674 | (license license:expat))) | ||
| 13675 | |||
| 13676 | (define-public ruby-terminfo | ||
| 13677 | (let ((commit "f4a597d92dcc465e7b343f9afb8cd45607c8e969") | ||
| 13678 | (revision "0")) | ||
| 13679 | (package | ||
| 13680 | (name "ruby-terminfo") | ||
| 13681 | (version (git-version "0.2" revision commit)) | ||
| 13682 | (source | ||
| 13683 | (origin | ||
| 13684 | (method git-fetch) | ||
| 13685 | (uri | ||
| 13686 | (git-reference | ||
| 13687 | (url "https://github.com/genki/ruby-terminfo") | ||
| 13688 | (commit commit))) | ||
| 13689 | (file-name (git-file-name name version)) | ||
| 13690 | (sha256 | ||
| 13691 | (base32 "0b24sqf0jwj8m106nh35hjayw1kiyrpramb6vg7fnz32mqni6hdi")))) | ||
| 13692 | (build-system ruby-build-system) | ||
| 13693 | (arguments | ||
| 13694 | (list | ||
| 13695 | #:phases | ||
| 13696 | #~(modify-phases %standard-phases | ||
| 13697 | (delete 'replace-git-ls-files) | ||
| 13698 | (replace 'build | ||
| 13699 | (lambda _ | ||
| 13700 | (invoke "ruby" "extconf.rb") | ||
| 13701 | (invoke "make"))) | ||
| 13702 | (replace 'check | ||
| 13703 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 13704 | (when tests? | ||
| 13705 | (for-each (lambda (f) | ||
| 13706 | (invoke "ruby" "-Ilib:test" "-Ilib:." f)) | ||
| 13707 | (find-files "test" "^test_.*\\.rb$"))))) | ||
| 13708 | (replace 'install | ||
| 13709 | (lambda _ | ||
| 13710 | (invoke "make" "install" (string-append "prefix=" #$output))))))) | ||
| 13711 | (inputs | ||
| 13712 | (list ncurses)) | ||
| 13713 | (native-inputs | ||
| 13714 | (list ruby-rubygems-tasks ruby-rdoc)) | ||
| 13715 | (home-page "http://www.a-k-r.org/ruby-terminfo/") | ||
| 13716 | (synopsis "Terminfo binding for Ruby") | ||
| 13717 | (description "Ruby-terminfo provides terminfo binding for Ruby.") | ||
| 13718 | (license license:bsd-3)))) | ||
| 13719 | |||
| 13720 | (define-public ruby-diffy | ||
| 13721 | (package | ||
| 13722 | (name "ruby-diffy") | ||
| 13723 | (version "3.2.1") | ||
| 13724 | (source | ||
| 13725 | (origin | ||
| 13726 | (method url-fetch) | ||
| 13727 | (uri (rubygems-uri "diffy" version)) | ||
| 13728 | (sha256 | ||
| 13729 | (base32 | ||
| 13730 | "119imrkn01agwhx5raxhknsi331y5i4yda7r0ws0an6905ximzjg")))) | ||
| 13731 | (build-system ruby-build-system) | ||
| 13732 | (arguments | ||
| 13733 | ;; No tests | ||
| 13734 | `(#:tests? #f)) | ||
| 13735 | (native-inputs | ||
| 13736 | (list ruby-rspec)) | ||
| 13737 | (home-page "https://github.com/samg/diffy") | ||
| 13738 | (synopsis "Convenient diffing in ruby") | ||
| 13739 | (description "Diffy provides a convenient way to generate a diff from two | ||
| 13740 | strings or files.") | ||
| 13741 | (license license:expat))) | ||
| 13742 | |||
| 13743 | (define-public ruby-sass-spec | ||
| 13744 | (package | ||
| 13745 | (name "ruby-sass-spec") | ||
| 13746 | (version "3.5.4") | ||
| 13747 | (source | ||
| 13748 | (origin | ||
| 13749 | (method git-fetch) | ||
| 13750 | (uri (git-reference | ||
| 13751 | (url "https://github.com/sass/sass-spec") | ||
| 13752 | (commit (string-append "v" version)))) | ||
| 13753 | (file-name (git-file-name name version)) | ||
| 13754 | (sha256 | ||
| 13755 | (base32 "1zsw66830w0xlc7kxz6fm4b5nyb44vdsdgm9mgy06s5aixx83pwr")))) | ||
| 13756 | (build-system ruby-build-system) | ||
| 13757 | (propagated-inputs | ||
| 13758 | (list ruby-command-line-reporter-3 | ||
| 13759 | ruby-diffy)) | ||
| 13760 | (arguments | ||
| 13761 | (list | ||
| 13762 | ;; This package contains tests for a sass implementation, and the to | ||
| 13763 | ;; avoid any circular dependencies, the tests are not run here | ||
| 13764 | #:tests? #f | ||
| 13765 | #:phases | ||
| 13766 | #~(modify-phases %standard-phases | ||
| 13767 | (add-after 'unpack 'patch-test | ||
| 13768 | (lambda _ | ||
| 13769 | (delete-file "spec/values/colors/alpha_hex-3.5/error") | ||
| 13770 | (substitute* "spec/values/colors/alpha_hex-3.5/expected_output.css" | ||
| 13771 | (("string") "color"))))))) | ||
| 13772 | (home-page "https://github.com/sass/sass-spec") | ||
| 13773 | (synopsis "Test suite for Sass") | ||
| 13774 | (description "Sass Spec is a test suite for Sass. Test cases are all in | ||
| 13775 | the @file{spec} directory.") | ||
| 13776 | (license license:expat))) | ||
| 13777 | |||
| 13778 | (define-public ruby-sass | ||
| 13779 | (package | ||
| 13780 | (name "ruby-sass") | ||
| 13781 | (version "3.7.4") | ||
| 13782 | (source | ||
| 13783 | (origin | ||
| 13784 | (method git-fetch) | ||
| 13785 | (uri (git-reference | ||
| 13786 | (url "https://github.com/sass/ruby-sass") | ||
| 13787 | (commit version))) | ||
| 13788 | (file-name (git-file-name name version)) | ||
| 13789 | (sha256 | ||
| 13790 | (base32 "03215h9jkni3l9w6lq28p8adaj3qzb47qgxd20l6kldjnm1a1yky")))) | ||
| 13791 | (build-system ruby-build-system) | ||
| 13792 | (arguments | ||
| 13793 | (list #:test-target "test:ruby")) | ||
| 13794 | (propagated-inputs | ||
| 13795 | (list ruby-sass-listen)) | ||
| 13796 | (native-inputs | ||
| 13797 | (list ruby-sass-spec ruby-mathn ruby-cmath)) | ||
| 13798 | (home-page "https://sass-lang.com/") | ||
| 13799 | (synopsis "CSS extension language") | ||
| 13800 | (description "Sass is a CSS extension language. It extends CSS with | ||
| 13801 | features that don't exist yet like variables, nesting, mixins and inheritance.") | ||
| 13802 | (license license:expat))) | ||
| 13803 | |||
| 13804 | (define-public ruby-sassc | ||
| 13805 | (package | ||
| 13806 | (name "ruby-sassc") | ||
| 13807 | (version "2.4.0") | ||
| 13808 | (source | ||
| 13809 | (origin | ||
| 13810 | (method url-fetch) | ||
| 13811 | (uri (rubygems-uri "sassc" version)) | ||
| 13812 | (sha256 | ||
| 13813 | (base32 | ||
| 13814 | "0gpqv48xhl8mb8qqhcifcp0pixn206a7imc07g48armklfqa4q2c")))) | ||
| 13815 | (build-system ruby-build-system) | ||
| 13816 | (arguments | ||
| 13817 | '(#:modules ((guix build ruby-build-system) | ||
| 13818 | (guix build utils) | ||
| 13819 | (ice-9 textual-ports)) | ||
| 13820 | #:phases | ||
| 13821 | (modify-phases %standard-phases | ||
| 13822 | ;; TODO: This would be better as a snippet, but the ruby-build-system | ||
| 13823 | ;; doesn't seem to support that | ||
| 13824 | (add-after 'unpack 'remove-libsass | ||
| 13825 | (lambda _ | ||
| 13826 | (delete-file-recursively "ext") | ||
| 13827 | (with-atomic-file-replacement "sassc.gemspec" | ||
| 13828 | (lambda (in out) | ||
| 13829 | (let* ((gemspec (get-string-all in)) | ||
| 13830 | (index (string-contains gemspec "libsass_dir"))) | ||
| 13831 | (display (string-append | ||
| 13832 | (string-take gemspec index) | ||
| 13833 | "\nend\n") | ||
| 13834 | out)))))) | ||
| 13835 | (add-after 'unpack 'dont-check-the-libsass-version | ||
| 13836 | (lambda _ | ||
| 13837 | (substitute* "test/native_test.rb" | ||
| 13838 | (("assert_equal.*Native\\.version") "")))) | ||
| 13839 | (add-after 'unpack 'remove-git-from-gemspec | ||
| 13840 | (lambda _ | ||
| 13841 | (substitute* "sassc.gemspec" | ||
| 13842 | (("`git ls-files -z`") "`find . -type f -print0 |sort -z`")))) | ||
| 13843 | (add-after 'unpack 'remove-extensions-from-gemspec | ||
| 13844 | (lambda _ | ||
| 13845 | (substitute* "sassc.gemspec" | ||
| 13846 | (("\\[\"ext/extconf.rb\"\\]") "[]")))) | ||
| 13847 | (add-after 'unpack 'fix-Rakefile | ||
| 13848 | (lambda _ | ||
| 13849 | (substitute* "Rakefile" | ||
| 13850 | (("test: 'compile:libsass'") ":test")))) | ||
| 13851 | (add-after 'unpack 'remove-unnecessary-dependencies | ||
| 13852 | (lambda _ | ||
| 13853 | (substitute* "test/test_helper.rb" | ||
| 13854 | (("require \"pry\"") "")))) | ||
| 13855 | (add-before 'build 'patch-native.rb | ||
| 13856 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 13857 | (substitute* "lib/sassc/native.rb" | ||
| 13858 | ((".*gem_root = spec.gem_dir") "") | ||
| 13859 | (("ffi_lib .*\n") | ||
| 13860 | (string-append | ||
| 13861 | "ffi_lib '" (assoc-ref inputs "libsass") "/lib/libsass.so'"))))) | ||
| 13862 | ;; The gemspec still references the libsass files, so just keep the | ||
| 13863 | ;; one in the gem. | ||
| 13864 | (delete 'extract-gemspec)))) | ||
| 13865 | (propagated-inputs | ||
| 13866 | (list ruby-ffi ruby-rake)) | ||
| 13867 | (inputs | ||
| 13868 | (list libsass)) | ||
| 13869 | (native-inputs | ||
| 13870 | (list bundler ruby-rake-compiler ruby-minitest-around | ||
| 13871 | ruby-test-construct)) | ||
| 13872 | (synopsis "Use libsss from Ruby") | ||
| 13873 | (description | ||
| 13874 | "This library provides Ruby q@acronym{FFI, Foreign Function Interface} | ||
| 13875 | bindings to the libsass library. This enables rendering | ||
| 13876 | @acronym{SASS,Syntactically awesome style sheets} from Ruby code.") | ||
| 13877 | (home-page "https://github.com/sass/sassc-ruby") | ||
| 13878 | (license license:expat))) | ||
| 13879 | |||
| 13880 | (define-public ruby-jekyll-sass-converter | ||
| 13881 | (package | ||
| 13882 | (name "ruby-jekyll-sass-converter") | ||
| 13883 | (version "2.1.0") | ||
| 13884 | (source (origin | ||
| 13885 | (method url-fetch) | ||
| 13886 | (uri (rubygems-uri "jekyll-sass-converter" version)) | ||
| 13887 | (sha256 | ||
| 13888 | (base32 | ||
| 13889 | "04ncr44wrilz26ayqwlg7379yjnkb29mvx4j04i62b7czmdrc9dv")))) | ||
| 13890 | (build-system ruby-build-system) | ||
| 13891 | (propagated-inputs | ||
| 13892 | (list ruby-sass)) | ||
| 13893 | (arguments | ||
| 13894 | ;; No rakefile | ||
| 13895 | `(#:tests? #f)) | ||
| 13896 | (home-page "https://github.com/jekyll/jekyll-sass-converter") | ||
| 13897 | (synopsis "Sass converter for Jekyll") | ||
| 13898 | (description "This gem provide built-in support for the Sass converter | ||
| 13899 | in Jekyll.") | ||
| 13900 | (license license:expat))) | ||
| 13901 | |||
| 13902 | (define-public ruby-jekyll-watch | ||
| 13903 | (package | ||
| 13904 | (name "ruby-jekyll-watch") | ||
| 13905 | (version "2.1.2") | ||
| 13906 | (source (origin | ||
| 13907 | (method url-fetch) | ||
| 13908 | (uri (rubygems-uri "jekyll-watch" version)) | ||
| 13909 | (sha256 | ||
| 13910 | (base32 | ||
| 13911 | "1s9ly83sp8albvgdff12xy2h4xd8lm6z2fah4lzmk2yvp85jzdzv")))) | ||
| 13912 | (build-system ruby-build-system) | ||
| 13913 | (propagated-inputs | ||
| 13914 | (list ruby-listen)) | ||
| 13915 | (arguments | ||
| 13916 | ;; No rakefile | ||
| 13917 | `(#:tests? #f)) | ||
| 13918 | (home-page "https://github.com/jekyll/jekyll-watch") | ||
| 13919 | (synopsis "Jekyll auto-rebuild support") | ||
| 13920 | (description "This gems add the @code{--watch} switch to the jekyll CLI | ||
| 13921 | interface. It allows Jekyll to rebuild your site when a file changes.") | ||
| 13922 | (license license:expat))) | ||
| 13923 | |||
| 13924 | (define-public ruby-parallel | ||
| 13925 | (package | ||
| 13926 | (name "ruby-parallel") | ||
| 13927 | (version "1.21.0") | ||
| 13928 | (source | ||
| 13929 | (origin | ||
| 13930 | (method git-fetch) | ||
| 13931 | (uri (git-reference | ||
| 13932 | (url "https://github.com/grosser/parallel") | ||
| 13933 | (commit (string-append "v" version)))) | ||
| 13934 | (file-name (git-file-name name version)) | ||
| 13935 | (sha256 | ||
| 13936 | (base32 | ||
| 13937 | "1xqjcvl3gq3shvrqp8wc3fbqibzh4mf1yczq6np9gd79558dwj3w")))) | ||
| 13938 | (build-system ruby-build-system) | ||
| 13939 | (arguments | ||
| 13940 | `(;; TODO 3 test failures | ||
| 13941 | ;; rspec ./spec/parallel_spec.rb:190 # Parallel.in_processes does not | ||
| 13942 | ;; open unnecessary pipes | ||
| 13943 | ;; rspec './spec/parallel_spec.rb[1:9:7]' # Parallel.each works with | ||
| 13944 | ;; SQLite in processes | ||
| 13945 | ;; rspec './spec/parallel_spec.rb[1:9:16]' # Parallel.each works with | ||
| 13946 | ;; SQLite in threads | ||
| 13947 | #:tests? #f | ||
| 13948 | #:test-target "rspec-rerun:spec" | ||
| 13949 | #:phases | ||
| 13950 | (modify-phases %standard-phases | ||
| 13951 | (add-after 'unpack 'patch-Gemfile | ||
| 13952 | (lambda _ | ||
| 13953 | (substitute* "Gemfile" | ||
| 13954 | (("gem 'rspec-legacy_formatters'") "") | ||
| 13955 | (("gem 'activerecord.*$") "gem 'activerecord'\n")))) | ||
| 13956 | (add-before 'check 'delete-Gemfile.lock | ||
| 13957 | (lambda _ | ||
| 13958 | ;; Bundler isn't being used for fetching dependencies, so | ||
| 13959 | ;; delete the Gemfile.lock | ||
| 13960 | (delete-file "Gemfile.lock"))) | ||
| 13961 | (add-before 'build 'patch-gemspec | ||
| 13962 | (lambda _ | ||
| 13963 | (substitute* "parallel.gemspec" | ||
| 13964 | (("git ls-files") "find"))))))) | ||
| 13965 | (native-inputs | ||
| 13966 | (list ruby-rspec | ||
| 13967 | ruby-rspec-rerun | ||
| 13968 | bundler | ||
| 13969 | ruby-activerecord | ||
| 13970 | ruby-progressbar | ||
| 13971 | ruby-bump | ||
| 13972 | procps | ||
| 13973 | lsof | ||
| 13974 | ruby-mysql2 | ||
| 13975 | ruby-sqlite3 | ||
| 13976 | ruby-i18n)) | ||
| 13977 | (home-page "https://github.com/grosser/parallel") | ||
| 13978 | (synopsis "Parallel processing in Ruby") | ||
| 13979 | (description "Parallel allows you to run any code in parallel Processes | ||
| 13980 | (to use all CPUs) or Threads(to speedup blocking operations). It is best | ||
| 13981 | suited for map-reduce or e.g. parallel downloads/uploads.") | ||
| 13982 | (license license:expat))) | ||
| 13983 | |||
| 13984 | (define-public ruby-cabin | ||
| 13985 | (package | ||
| 13986 | (name "ruby-cabin") | ||
| 13987 | (version "0.9.0") | ||
| 13988 | (source (origin | ||
| 13989 | (method url-fetch) | ||
| 13990 | (uri (rubygems-uri "cabin" version)) | ||
| 13991 | (sha256 | ||
| 13992 | (base32 | ||
| 13993 | "0b3b8j3iqnagjfn1261b9ncaac9g44zrx1kcg81yg4z9i513kici")))) | ||
| 13994 | (build-system ruby-build-system) | ||
| 13995 | (arguments (list #:tests? #f)) ;no Rakefile in released gem | ||
| 13996 | (synopsis "Structured and contextual logging experiments in Ruby") | ||
| 13997 | (description "This Ruby library provides an experimental logging system | ||
| 13998 | that tries to make logging more flexible and more consumable than plain-text | ||
| 13999 | logging.") | ||
| 14000 | (home-page "https://github.com/jordansissel/ruby-cabin") | ||
| 14001 | (license license:asl2.0))) | ||
| 14002 | |||
| 14003 | (define-public ruby-capybara | ||
| 14004 | (package | ||
| 14005 | (name "ruby-capybara") | ||
| 14006 | (version "3.38.0") | ||
| 14007 | (source (origin | ||
| 14008 | (method url-fetch) | ||
| 14009 | (uri (rubygems-uri "capybara" version)) | ||
| 14010 | (sha256 | ||
| 14011 | (base32 | ||
| 14012 | "123198zk2ak8mziwa5jc3ckgpmsg08zn064n3aywnqm9s1bwjv3v")))) | ||
| 14013 | (build-system ruby-build-system) | ||
| 14014 | (arguments | ||
| 14015 | (list #:tests? #f ;sinatra is currently broken with rack 3 | ||
| 14016 | #:phases | ||
| 14017 | #~(modify-phases %standard-phases | ||
| 14018 | (add-after 'extract-gemspec 'remove-extraneous-requirements | ||
| 14019 | (lambda _ | ||
| 14020 | (substitute* "spec/spec_helper.rb" | ||
| 14021 | ((".*require 'selenium_statistics'.*") "") | ||
| 14022 | ((".*SeleniumStatistics.print_results.*") "")))) | ||
| 14023 | (replace 'check | ||
| 14024 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 14025 | (when tests? | ||
| 14026 | (invoke "rspec" "spec"))))))) | ||
| 14027 | (native-inputs | ||
| 14028 | (list ruby-puma | ||
| 14029 | ruby-rspec | ||
| 14030 | ruby-selenium-webdriver | ||
| 14031 | ruby-sinatra)) | ||
| 14032 | (propagated-inputs | ||
| 14033 | (list ruby-addressable | ||
| 14034 | ruby-launchy | ||
| 14035 | ruby-matrix | ||
| 14036 | ruby-mini-mime | ||
| 14037 | ruby-nokogiri | ||
| 14038 | ruby-rack | ||
| 14039 | ruby-rack-test | ||
| 14040 | ruby-regexp-parser | ||
| 14041 | ruby-xpath)) | ||
| 14042 | (synopsis "Integration testing tool for rack-based web applications") | ||
| 14043 | (description "Capybara is an integration testing tool for rack based web | ||
| 14044 | applications. It simulates how a user would interact with a website.") | ||
| 14045 | (home-page "https://github.com/teamcapybara/capybara") | ||
| 14046 | (license license:expat))) | ||
| 14047 | |||
| 14048 | (define-public ruby-cane | ||
| 14049 | (package | ||
| 14050 | (name "ruby-cane") | ||
| 14051 | (version "3.0.0") | ||
| 14052 | (source (origin | ||
| 14053 | (method url-fetch) | ||
| 14054 | (uri (rubygems-uri "cane" version)) | ||
| 14055 | (sha256 | ||
| 14056 | (base32 | ||
| 14057 | "0yf5za3l7lhrqa3g56sah73wh33lbxy5y3cb7ij0a2bp1b4kwhih")))) | ||
| 14058 | (build-system ruby-build-system) | ||
| 14059 | (arguments `(#:tests? #f)); No rakefile | ||
| 14060 | (home-page "https://github.com/square/cane") | ||
| 14061 | (propagated-inputs | ||
| 14062 | (list ruby-parallel)) | ||
| 14063 | (synopsis "Code quality threshold checking") | ||
| 14064 | (description "Cane fails your build if code quality thresholds are not met.") | ||
| 14065 | (license license:asl2.0))) | ||
| 14066 | |||
| 14067 | (define-public ruby-morecane | ||
| 14068 | (package | ||
| 14069 | (name "ruby-morecane") | ||
| 14070 | (version "0.2.0") | ||
| 14071 | (source (origin | ||
| 14072 | (method url-fetch) | ||
| 14073 | (uri (rubygems-uri "morecane" version)) | ||
| 14074 | (sha256 | ||
| 14075 | (base32 | ||
| 14076 | "0w70vb8z5bdhvr21h660aa43m5948pv0bd27z7ngai2iwdvqd771")))) | ||
| 14077 | (build-system ruby-build-system) | ||
| 14078 | (home-page "https://github.com/yob/morecane") | ||
| 14079 | (arguments `(#:tests? #f)); No rakefile | ||
| 14080 | (propagated-inputs | ||
| 14081 | (list ruby-parallel)) | ||
| 14082 | (synopsis "Extra checks for cane") | ||
| 14083 | (description "The cane gem provides a great framework for running quality | ||
| 14084 | checks over your ruby project as part of continuous integration build. It | ||
| 14085 | comes with a few checks out of the box, but also provides an API for loading | ||
| 14086 | custom checks. This gem provides a set of additional checks.") | ||
| 14087 | (license license:expat))) | ||
| 14088 | |||
| 14089 | (define-public ruby-pdf-reader | ||
| 14090 | (package | ||
| 14091 | (name "ruby-pdf-reader") | ||
| 14092 | (version "2.4.0") | ||
| 14093 | (source (origin | ||
| 14094 | (method git-fetch) ;no test in distributed gem archive | ||
| 14095 | (uri (git-reference | ||
| 14096 | (url "https://github.com/yob/pdf-reader") | ||
| 14097 | (commit (string-append "v" version)))) | ||
| 14098 | (file-name (git-file-name name version)) | ||
| 14099 | (sha256 | ||
| 14100 | (base32 | ||
| 14101 | "1yh8yrlssf5ppnkvk4m78vmh5r5vqwdcd0gm3lqipw162llz0rai")))) | ||
| 14102 | (build-system ruby-build-system) | ||
| 14103 | (arguments `(#:test-target "spec" | ||
| 14104 | #:phases (modify-phases %standard-phases | ||
| 14105 | (add-after 'unpack 'do-not-use-bundler | ||
| 14106 | (lambda _ | ||
| 14107 | (substitute* "spec/spec_helper.rb" | ||
| 14108 | ((".*[Bb]undler.*") ""))))))) | ||
| 14109 | (native-inputs | ||
| 14110 | (list ruby-rspec ruby-cane ruby-morecane)) | ||
| 14111 | (propagated-inputs | ||
| 14112 | (list ruby-afm ruby-ascii85 ruby-hashery ruby-rc4 ruby-ttfunk)) | ||
| 14113 | (home-page "https://github.com/yob/pdf-reader") | ||
| 14114 | (synopsis "PDF parser in Ruby") | ||
| 14115 | (description "The PDF::Reader library implements a PDF parser conforming as | ||
| 14116 | much as possible to the PDF specification from Adobe. It provides programmatic | ||
| 14117 | access to the contents of a PDF file with a high degree of flexibility.") | ||
| 14118 | (license license:gpl3+))) | ||
| 14119 | |||
| 14120 | (define-public ruby-pdf-inspector | ||
| 14121 | (let ((revision "1") | ||
| 14122 | (commit "00ee4c92ff917118785ebec188e81effc968abeb")) | ||
| 14123 | (package | ||
| 14124 | (name "ruby-pdf-inspector") | ||
| 14125 | (version (git-version "1.3.0" revision commit)) | ||
| 14126 | (source (origin | ||
| 14127 | (method git-fetch) | ||
| 14128 | (uri (git-reference | ||
| 14129 | (url "https://github.com/prawnpdf/pdf-inspector") | ||
| 14130 | (commit commit))) | ||
| 14131 | (file-name (git-file-name name version)) | ||
| 14132 | (sha256 | ||
| 14133 | (base32 | ||
| 14134 | "0h9w81ddd0gvkh5n2cvny9ddb5qiac1si0dhinkk0xxh5382qs0m")))) | ||
| 14135 | (build-system ruby-build-system) | ||
| 14136 | (arguments | ||
| 14137 | `(#:test-target "spec" | ||
| 14138 | #:phases (modify-phases %standard-phases | ||
| 14139 | (add-before 'build 'drop-signing-key-requirement | ||
| 14140 | (lambda _ | ||
| 14141 | (substitute* "pdf-inspector.gemspec" | ||
| 14142 | (("spec.signing_key =.*") | ||
| 14143 | "spec.signing_key = nil")))) | ||
| 14144 | (replace 'check | ||
| 14145 | (lambda _ | ||
| 14146 | (substitute* "pdf-inspector.gemspec" | ||
| 14147 | ((".*rubocop.*") "") | ||
| 14148 | ((".*yard.*") "")) | ||
| 14149 | (invoke "rspec")))))) | ||
| 14150 | (native-inputs | ||
| 14151 | (list ruby-rspec)) | ||
| 14152 | (propagated-inputs | ||
| 14153 | (list ruby-pdf-reader)) | ||
| 14154 | (home-page "https://github.com/prawnpdf/pdf-inspector") | ||
| 14155 | (synopsis "Analysis classes for inspecting PDF output") | ||
| 14156 | (description "This library provides a number of PDF::Reader based tools for | ||
| 14157 | use in testing PDF output. Presently, the primary purpose of this tool is to | ||
| 14158 | support the tests found in Prawn, a pure Ruby PDF generation library.") | ||
| 14159 | (license %prawn-project-licenses)))) | ||
| 14160 | |||
| 14161 | (define-public ruby-pdf-core | ||
| 14162 | (package | ||
| 14163 | (name "ruby-pdf-core") | ||
| 14164 | (version "0.9.0") | ||
| 14165 | (source (origin | ||
| 14166 | (method url-fetch) | ||
| 14167 | (uri (rubygems-uri "pdf-core" version)) | ||
| 14168 | (sha256 | ||
| 14169 | (base32 | ||
| 14170 | "1fz0yj4zrlii2j08kaw11j769s373ayz8jrdhxwwjzmm28pqndjg")))) | ||
| 14171 | (build-system ruby-build-system) | ||
| 14172 | (arguments | ||
| 14173 | ; No test target | ||
| 14174 | `(#:tests? #f)) | ||
| 14175 | (home-page "https://github.com/prawnpdf/pdf-core") | ||
| 14176 | (synopsis "Low level PDF features for Prawn") | ||
| 14177 | (description "This is an experimental gem that extracts low-level PDF | ||
| 14178 | functionality from Prawn.") | ||
| 14179 | (license license:gpl3+))) | ||
| 14180 | |||
| 14181 | (define-public ruby-prawn-dev | ||
| 14182 | (package | ||
| 14183 | (name "ruby-prawn-dev") | ||
| 14184 | (version "0.3.0") | ||
| 14185 | (source (origin | ||
| 14186 | (method url-fetch) | ||
| 14187 | (uri (rubygems-uri "prawn-dev" version)) | ||
| 14188 | (sha256 | ||
| 14189 | (base32 | ||
| 14190 | "1hbzzgm0nwc6h8pyv8h9xx068bf676rispxcz4a0sm8nykz54z4x")))) | ||
| 14191 | (build-system ruby-build-system) | ||
| 14192 | (arguments | ||
| 14193 | (list | ||
| 14194 | #:tests? #f ;no test suite | ||
| 14195 | #:phases | ||
| 14196 | #~(modify-phases %standard-phases | ||
| 14197 | (add-after 'extract-gemspec 'drop-rubocop-dependency | ||
| 14198 | ;; Rubocop depends on Prawn. Remove it to avoid the | ||
| 14199 | ;; dependency cycle when using this tool to build | ||
| 14200 | ;; Prawn components. | ||
| 14201 | (lambda _ | ||
| 14202 | (substitute* "lib/prawn/dev/tasks.rb" | ||
| 14203 | (("require 'rubocop/rake_task'") | ||
| 14204 | "") | ||
| 14205 | (("RuboCop::RakeTask.new") | ||
| 14206 | "")) | ||
| 14207 | (substitute* ".gemspec" | ||
| 14208 | ((".*add.*dependency.*(rubocop|simplecov).*") | ||
| 14209 | ""))))))) | ||
| 14210 | (propagated-inputs (list ruby-rake ruby-rspec ruby-yard)) | ||
| 14211 | (synopsis "Shared tools for Prawn projects development") | ||
| 14212 | (description "Prawn-dev contains tools to aid the development of the | ||
| 14213 | various Prawn projects.") | ||
| 14214 | (home-page "https://prawnpdf.org/") | ||
| 14215 | (license license:expat))) | ||
| 14216 | |||
| 14217 | (define-public ruby-prawn | ||
| 14218 | ;; There hasn't been a new release since 2017/03/17. | ||
| 14219 | (package | ||
| 14220 | (name "ruby-prawn") | ||
| 14221 | (version "2.4.0") | ||
| 14222 | (source (origin | ||
| 14223 | (method git-fetch) | ||
| 14224 | (uri (git-reference | ||
| 14225 | (url "https://github.com/prawnpdf/prawn") | ||
| 14226 | (commit version))) | ||
| 14227 | (file-name (git-file-name name version)) | ||
| 14228 | (sha256 | ||
| 14229 | (base32 | ||
| 14230 | "1h1gww12wcdscij0lnd21p9zcbwrwc3miini5ppannc2birmj9ja")))) | ||
| 14231 | (build-system ruby-build-system) | ||
| 14232 | (arguments | ||
| 14233 | (list | ||
| 14234 | #:phases | ||
| 14235 | #~(modify-phases %standard-phases | ||
| 14236 | (add-before 'build 'drop-signing-key-requirement | ||
| 14237 | (lambda _ | ||
| 14238 | (substitute* "prawn.gemspec" | ||
| 14239 | (("spec.signing_key =.*") | ||
| 14240 | "spec.signing_key = nil")))) | ||
| 14241 | (replace 'check | ||
| 14242 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 14243 | (when tests? | ||
| 14244 | ;; The Prawn manual test fails (see: | ||
| 14245 | ;; https://github.com/prawnpdf/prawn/issues/1163), so exclude | ||
| 14246 | ;; it. | ||
| 14247 | (invoke "rspec" | ||
| 14248 | "--exclude-pattern" "prawn_manual_spec.rb"))))))) | ||
| 14249 | (propagated-inputs | ||
| 14250 | (list ruby-matrix | ||
| 14251 | ruby-pdf-core | ||
| 14252 | ruby-ttfunk)) | ||
| 14253 | (native-inputs | ||
| 14254 | (list ruby-pdf-inspector | ||
| 14255 | ruby-prawn-manual-builder | ||
| 14256 | ruby-prawn-dev)) | ||
| 14257 | (home-page "https://prawnpdf.org/api-docs/2.0/") | ||
| 14258 | (synopsis "PDF generation for Ruby") | ||
| 14259 | (description "Prawn is a pure Ruby PDF generation library.") | ||
| 14260 | (license %prawn-project-licenses))) | ||
| 14261 | |||
| 14262 | (define-public ruby-prawn-table | ||
| 14263 | (package | ||
| 14264 | (name "ruby-prawn-table") | ||
| 14265 | (version "0.2.2") | ||
| 14266 | (source (origin | ||
| 14267 | (method url-fetch) | ||
| 14268 | (uri (rubygems-uri "prawn-table" version)) | ||
| 14269 | (sha256 | ||
| 14270 | (base32 | ||
| 14271 | "1nxd6qmxqwl850icp18wjh5k0s3amxcajdrkjyzpfgq0kvilcv9k")))) | ||
| 14272 | (build-system ruby-build-system) | ||
| 14273 | (propagated-inputs | ||
| 14274 | (list ruby-prawn ruby-pdf-inspector)) | ||
| 14275 | (native-inputs | ||
| 14276 | `(("bundler" ,bundler) | ||
| 14277 | ("ruby-yard" ,ruby-yard) | ||
| 14278 | ("ruby-mocha" ,ruby-mocha) | ||
| 14279 | ("ruby-coderay" ,ruby-coderay) | ||
| 14280 | ("ruby-prawn-manual-builder" ,ruby-prawn-manual-builder) | ||
| 14281 | ("ruby-simplecov" ,ruby-simplecov) | ||
| 14282 | ("ruby-rspec-2" ,ruby-rspec-2))) | ||
| 14283 | (arguments | ||
| 14284 | '(;; TODO: 1 test fails | ||
| 14285 | ;; Failure/Error: pdf.page_count.should == 1 | ||
| 14286 | ;; expected: 1 | ||
| 14287 | ;; got: 2 (using ==) | ||
| 14288 | ;; # ./spec/table_spec.rb:1308 | ||
| 14289 | ;; | ||
| 14290 | ;; 225 examples, 1 failure | ||
| 14291 | #:tests? #f | ||
| 14292 | #:phases | ||
| 14293 | (modify-phases %standard-phases | ||
| 14294 | (add-before 'check 'patch-gemspec | ||
| 14295 | (lambda _ | ||
| 14296 | (substitute* "prawn-table.gemspec" | ||
| 14297 | ;; Loosen the requirement for pdf-inspector | ||
| 14298 | (("~> 1\\.1\\.0") ">= 0") | ||
| 14299 | ;; Loosen the requirement for pdf-reader | ||
| 14300 | (("~> 1\\.2") ">= 0")))) | ||
| 14301 | (replace 'check | ||
| 14302 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 14303 | (when tests? | ||
| 14304 | (invoke "rspec"))))))) | ||
| 14305 | (home-page "https://github.com/prawnpdf/prawn-table") | ||
| 14306 | (synopsis "Tables support for Prawn") | ||
| 14307 | (description "This gem provides tables support for Prawn.") | ||
| 14308 | (license license:gpl3+))) | ||
| 14309 | |||
| 14310 | (define-public ruby-kramdown | ||
| 14311 | (package | ||
| 14312 | (name "ruby-kramdown") | ||
| 14313 | (version "2.3.1") | ||
| 14314 | (source (origin | ||
| 14315 | (method url-fetch) | ||
| 14316 | (uri (rubygems-uri "kramdown" version)) | ||
| 14317 | (sha256 | ||
| 14318 | (base32 | ||
| 14319 | "0jdbcjv4v7sj888bv3vc6d1dg4ackkh7ywlmn9ln2g9alk7kisar")))) | ||
| 14320 | (build-system ruby-build-system) | ||
| 14321 | (arguments `(#:tests? #f)); FIXME: some test failures | ||
| 14322 | (native-inputs | ||
| 14323 | (list ruby-prawn ruby-prawn-table)) | ||
| 14324 | (home-page "https://kramdown.gettalong.org/") | ||
| 14325 | (synopsis "Markdown parsing and converting library") | ||
| 14326 | (description "Kramdown is a library for parsing and converting a superset | ||
| 14327 | of Markdown. It is completely written in Ruby, supports standard Markdown | ||
| 14328 | (with some minor modifications) and various extensions that have been made | ||
| 14329 | popular by the PHP @code{Markdown Extra} package and @code{Maruku}.") | ||
| 14330 | (license license:expat))) | ||
| 14331 | |||
| 14332 | (define-public ruby-kramdown-parser-gfm | ||
| 14333 | (package | ||
| 14334 | (name "ruby-kramdown-parser-gfm") | ||
| 14335 | (version "1.1.0") | ||
| 14336 | (source | ||
| 14337 | (origin | ||
| 14338 | (method url-fetch) | ||
| 14339 | (uri (rubygems-uri "kramdown-parser-gfm" version)) | ||
| 14340 | (sha256 | ||
| 14341 | (base32 "0a8pb3v951f4x7h968rqfsa19c8arz21zw1vaj42jza22rap8fgv")))) | ||
| 14342 | (build-system ruby-build-system) | ||
| 14343 | (arguments | ||
| 14344 | `(#:tests? #f)) ;no rakefile | ||
| 14345 | (propagated-inputs | ||
| 14346 | (list ruby-kramdown)) | ||
| 14347 | (synopsis "Kramdown parser for the GFM dialect of Markdown") | ||
| 14348 | (description | ||
| 14349 | "This is a parser for kramdown that converts Markdown documents in the | ||
| 14350 | GFM dialect to HTML.") | ||
| 14351 | (home-page "https://github.com/kramdown/parser-gfm") | ||
| 14352 | (license license:expat))) | ||
| 14353 | |||
| 14354 | (define-public ruby-http-parser.rb | ||
| 14355 | (package | ||
| 14356 | (name "ruby-http-parser.rb") | ||
| 14357 | (version "0.6.0") | ||
| 14358 | (source | ||
| 14359 | (origin | ||
| 14360 | (method url-fetch) | ||
| 14361 | (uri (rubygems-uri "http_parser.rb" version)) | ||
| 14362 | (sha256 | ||
| 14363 | (base32 | ||
| 14364 | "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi")))) | ||
| 14365 | (build-system ruby-build-system) | ||
| 14366 | (arguments | ||
| 14367 | ;; No tests | ||
| 14368 | `(#:tests? #f)) | ||
| 14369 | (native-inputs | ||
| 14370 | (list ruby-rake-compiler ruby-rspec)) | ||
| 14371 | (home-page "https://github.com/tmm1/http_parser.rb") | ||
| 14372 | (synopsis "HTTP parser un Ruby") | ||
| 14373 | (description "This gem is a simple callback-based HTTP request/response | ||
| 14374 | parser for writing http servers, clients and proxies.") | ||
| 14375 | (license license:expat))) | ||
| 14376 | |||
| 14377 | (define-public ruby-excon | ||
| 14378 | (package | ||
| 14379 | (name "ruby-excon") | ||
| 14380 | (version "0.109.0") | ||
| 14381 | (source (origin | ||
| 14382 | (method git-fetch) ;for tests | ||
| 14383 | (uri (git-reference | ||
| 14384 | (url "https://github.com/excon/excon") | ||
| 14385 | (commit (string-append "v" version)))) | ||
| 14386 | (file-name (git-file-name name version)) | ||
| 14387 | (sha256 | ||
| 14388 | (base32 | ||
| 14389 | "199niqbpzj70k3n6ybg4vbcw3qm76kwic4nl9747l1n0v49aaj24")))) | ||
| 14390 | (build-system ruby-build-system) | ||
| 14391 | (arguments | ||
| 14392 | (list | ||
| 14393 | #:tests? #f ;; some tests require DNS | ||
| 14394 | #:phases | ||
| 14395 | #~(modify-phases %standard-phases | ||
| 14396 | (replace 'replace-git-ls-files | ||
| 14397 | (lambda _ | ||
| 14398 | (substitute* "excon.gemspec" | ||
| 14399 | (("`git ls-files -- data/. lib/.`") | ||
| 14400 | "`find data lib -type f`")))) | ||
| 14401 | (add-before 'check 'disable-server-spec-checks | ||
| 14402 | (lambda _ ;; TODO: Remove this if ruby-unicorn is available. | ||
| 14403 | ;; Some of the tests in this file require ruby-unicorn, which is | ||
| 14404 | ;; not yet packaged for guix and would pull in a lot of other | ||
| 14405 | ;; dependencies. | ||
| 14406 | (delete-file "spec/excon/test/server_spec.rb")))))) | ||
| 14407 | (native-inputs | ||
| 14408 | (list | ||
| 14409 | ruby-activesupport | ||
| 14410 | ruby-eventmachine | ||
| 14411 | ruby-json | ||
| 14412 | ruby-open4 | ||
| 14413 | ruby-puma | ||
| 14414 | ruby-rspec | ||
| 14415 | ruby-shindo | ||
| 14416 | ruby-sinatra | ||
| 14417 | ruby-webrick)) | ||
| 14418 | (synopsis "Usable, fast, simple Ruby HTTP 1.1") | ||
| 14419 | (description "Excon was designed to be simple, fast and performant. It | ||
| 14420 | works great as a general HTTP(s) client and is particularly well suited to | ||
| 14421 | usage in API clients.") | ||
| 14422 | (home-page "https://github.com/excon/excon") | ||
| 14423 | (license license:expat))) | ||
| 14424 | |||
| 14425 | (define-public ruby-em-websocket | ||
| 14426 | (package | ||
| 14427 | (name "ruby-em-websocket") | ||
| 14428 | (version "0.5.1") | ||
| 14429 | (source | ||
| 14430 | (origin | ||
| 14431 | (method url-fetch) | ||
| 14432 | (uri (rubygems-uri "em-websocket" version)) | ||
| 14433 | (sha256 | ||
| 14434 | (base32 | ||
| 14435 | "1bsw8vjz0z267j40nhbmrvfz7dvacq4p0pagvyp17jif6mj6v7n3")))) | ||
| 14436 | (build-system ruby-build-system) | ||
| 14437 | (arguments | ||
| 14438 | ;; No tests | ||
| 14439 | `(#:tests? #f)) | ||
| 14440 | (propagated-inputs | ||
| 14441 | (list ruby-eventmachine ruby-http-parser.rb)) | ||
| 14442 | (native-inputs | ||
| 14443 | (list bundler ruby-rspec)) | ||
| 14444 | (home-page "https://github.com/igrigorik/em-websocket") | ||
| 14445 | (synopsis "EventMachine based WebSocket server") | ||
| 14446 | (description "Em-websocket is an EventMachine based WebSocket server | ||
| 14447 | implementation.") | ||
| 14448 | (license license:expat))) | ||
| 14449 | |||
| 14450 | (define-public ruby-rouge | ||
| 14451 | (package | ||
| 14452 | (name "ruby-rouge") | ||
| 14453 | (version "3.26.1") | ||
| 14454 | (source (origin | ||
| 14455 | (method url-fetch) | ||
| 14456 | (uri (rubygems-uri "rouge" version)) | ||
| 14457 | (sha256 | ||
| 14458 | (base32 | ||
| 14459 | "197k0vskf72wxx0gzwld2jzg27bb7982xlvnzy9adlvkzp7nh8vf")))) | ||
| 14460 | (build-system ruby-build-system) | ||
| 14461 | (arguments `(#:tests? #f)); No rakefile | ||
| 14462 | (home-page "http://rouge.jneen.net/") | ||
| 14463 | (synopsis "Code highlighter") | ||
| 14464 | (description "Rouge is a code highlighter written in Ruby. It supports more | ||
| 14465 | than 100 languages and outputs HTML or ANSI 256-color text. Its HTML output | ||
| 14466 | is compatible with stylesheets designed for pygments.") | ||
| 14467 | (license (list | ||
| 14468 | ;; rouge is licensed under expat | ||
| 14469 | license:expat | ||
| 14470 | ;; pygments is licensed under bsd-2 | ||
| 14471 | license:bsd-2)))) | ||
| 14472 | |||
| 14473 | (define-public ruby-hashie | ||
| 14474 | (let ((commit "73510552ba580867e9882fe092568916cbcd810b") | ||
| 14475 | (revision "0")) | ||
| 14476 | (package | ||
| 14477 | (name "ruby-hashie") | ||
| 14478 | (version (git-version "5.0.0" revision commit)) | ||
| 14479 | (source (origin | ||
| 14480 | (method git-fetch) ;for tests | ||
| 14481 | (uri (git-reference | ||
| 14482 | (url "https://github.com/hashie/hashie") | ||
| 14483 | (commit commit))) | ||
| 14484 | (file-name (git-file-name name version)) | ||
| 14485 | (sha256 | ||
| 14486 | (base32 | ||
| 14487 | "08rpx040h6vgx6ynk6w029f7z7c8aj2p4v135k2l1zxvnw617ddw")))) | ||
| 14488 | (build-system ruby-build-system) | ||
| 14489 | (arguments | ||
| 14490 | (list #:test-target "spec" | ||
| 14491 | #:phases #~(modify-phases %standard-phases | ||
| 14492 | (add-after 'unpack 'disable-bundler | ||
| 14493 | (lambda _ | ||
| 14494 | (substitute* "Rakefile" | ||
| 14495 | ((".*require 'bundler'.*") "") | ||
| 14496 | ((".*Bundler.setup.*") "") | ||
| 14497 | (("Bundler::GemHelper\\.install_tasks") "")))) | ||
| 14498 | (add-after 'unpack 'disable-rubocop | ||
| 14499 | (lambda _ | ||
| 14500 | (substitute* "Rakefile" | ||
| 14501 | (("require 'rubocop/rake_task'") "") | ||
| 14502 | (("RuboCop::RakeTask.new") "")))) | ||
| 14503 | (add-after 'unpack 'relax-requirements | ||
| 14504 | (lambda _ | ||
| 14505 | ;; Contains multiple extraneous dependencies. | ||
| 14506 | (delete-file "Gemfile")))))) | ||
| 14507 | (native-inputs (list ruby-json ruby-pry ruby-rspec ruby-rspec-pending-for)) | ||
| 14508 | (home-page "https://github.com/hashie/hashie") | ||
| 14509 | (synopsis "Extensions to Ruby Hashes") | ||
| 14510 | (description "Hashie is a collection of classes and mixins that make Ruby | ||
| 14511 | hashes more powerful.") | ||
| 14512 | (license license:expat)))) | ||
| 14513 | |||
| 14514 | (define-public ruby-heredoc-unindent | ||
| 14515 | (package | ||
| 14516 | (name "ruby-heredoc-unindent") | ||
| 14517 | (version "1.2.0") | ||
| 14518 | (source (origin | ||
| 14519 | (method url-fetch) | ||
| 14520 | (uri (rubygems-uri "heredoc_unindent" version)) | ||
| 14521 | (sha256 | ||
| 14522 | (base32 | ||
| 14523 | "14ijr2fsjwhrkjkcaz81d5xnfa4vvgvcflrff83avqw9klm011yw")))) | ||
| 14524 | (build-system ruby-build-system) | ||
| 14525 | (native-inputs | ||
| 14526 | (list ruby-hoe-3)) | ||
| 14527 | (home-page "https://github.com/adrianomitre/heredoc_unindent") | ||
| 14528 | (synopsis "Heredoc indentation cleaner") | ||
| 14529 | (description "This gem removes common margin from indented strings, such | ||
| 14530 | as the ones produced by indented heredocs. In other words, it strips out | ||
| 14531 | leading whitespace chars at the beginning of each line, but only as much as | ||
| 14532 | the line with the smallest margin. | ||
| 14533 | |||
| 14534 | It is acknowledged that many strings defined by heredocs are just code and | ||
| 14535 | fact is that most parsers are insensitive to indentation. If, however, the | ||
| 14536 | strings are to be used otherwise, be it for printing or testing, the extra | ||
| 14537 | indentation will probably be an issue and hence this gem.") | ||
| 14538 | (license license:expat))) | ||
| 14539 | |||
| 14540 | (define-public ruby-safe-yaml | ||
| 14541 | (package | ||
| 14542 | (name "ruby-safe-yaml") | ||
| 14543 | (version "1.0.5") | ||
| 14544 | (source | ||
| 14545 | (origin | ||
| 14546 | (method git-fetch) | ||
| 14547 | (uri (git-reference | ||
| 14548 | (url "https://github.com/dtao/safe_yaml") | ||
| 14549 | (commit version))) | ||
| 14550 | (file-name (git-file-name name version)) | ||
| 14551 | (sha256 | ||
| 14552 | (base32 | ||
| 14553 | "1a0wh7y3va2m7bjza95na2snw0vrdh9syz40mpjvjphbc4ph3pzg")))) | ||
| 14554 | (build-system ruby-build-system) | ||
| 14555 | (native-inputs | ||
| 14556 | (list ruby-rspec ruby-hashie ruby-heredoc-unindent)) | ||
| 14557 | (arguments | ||
| 14558 | (list | ||
| 14559 | ;; Tests are broken since the move to ruby@3. | ||
| 14560 | ;; There's ongoing effort on the Jekyll dependent | ||
| 14561 | ;; to remove this orphan dependency. | ||
| 14562 | #:tests? #f ; broken since move to ruby@3 | ||
| 14563 | #:test-target "spec" | ||
| 14564 | #:phases | ||
| 14565 | #~(modify-phases %standard-phases | ||
| 14566 | (add-before 'check 'set-TZ | ||
| 14567 | (lambda _ | ||
| 14568 | ;; This test is dependent on the timezone | ||
| 14569 | ;; spec/transform/to_date_spec.rb:35 | ||
| 14570 | ;; # SafeYAML::Transform::ToDate converts times to the local | ||
| 14571 | ;; timezone | ||
| 14572 | (setenv "TZ" "UTC-11")))))) | ||
| 14573 | (home-page "https://github.com/dtao/safe_yaml") | ||
| 14574 | (synopsis "YAML parser") | ||
| 14575 | (description "The SafeYAML gem provides an alternative implementation of | ||
| 14576 | YAML.load suitable for accepting user input in Ruby applications.") | ||
| 14577 | (license license:expat))) | ||
| 14578 | |||
| 14579 | (define-public ruby-yaml-lint | ||
| 14580 | ;; No tags for releases. | ||
| 14581 | (let ((commit "d6a253f7d33234a9c24660d582cf7014e882c0c2") | ||
| 14582 | (revision "0")) | ||
| 14583 | (package | ||
| 14584 | (name "ruby-yaml-lint") | ||
| 14585 | (version (git-version "0.1.2" revision commit)) | ||
| 14586 | (source | ||
| 14587 | (origin | ||
| 14588 | (method git-fetch) | ||
| 14589 | (uri (git-reference | ||
| 14590 | (url "https://github.com/Pryz/yaml-lint") | ||
| 14591 | (commit commit))) | ||
| 14592 | (file-name (git-file-name name version)) | ||
| 14593 | (sha256 | ||
| 14594 | (base32 "0zk0jwzmcaaiyixjvkzdb54xhiqcnjkma72nkv0vm5csaphfdjkx")))) | ||
| 14595 | (build-system ruby-build-system) | ||
| 14596 | (arguments | ||
| 14597 | `(#:phases | ||
| 14598 | (modify-phases %standard-phases | ||
| 14599 | (replace 'check | ||
| 14600 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 14601 | (when tests? | ||
| 14602 | (invoke "rspec"))))))) | ||
| 14603 | (native-inputs | ||
| 14604 | (list ruby-coveralls ruby-rspec ruby-simplecov)) | ||
| 14605 | (synopsis "Simple YAML check tool") | ||
| 14606 | (description | ||
| 14607 | "@code{yaml-lint} will simply try to load the YAML file with the built-in | ||
| 14608 | Ruby yaml library.") | ||
| 14609 | (home-page "https://github.com/Pryz/yaml-lint") | ||
| 14610 | (license license:expat)))) | ||
| 14611 | |||
| 14612 | (define-public ruby-matrix | ||
| 14613 | (package | ||
| 14614 | (name "ruby-matrix") | ||
| 14615 | (version "0.4.2") | ||
| 14616 | (source (origin | ||
| 14617 | (method git-fetch) ;for tests | ||
| 14618 | (uri (git-reference | ||
| 14619 | (url "https://github.com/ruby/matrix") | ||
| 14620 | (commit (string-append "v" version)))) | ||
| 14621 | (file-name (git-file-name name version)) | ||
| 14622 | (sha256 | ||
| 14623 | (base32 | ||
| 14624 | "1asxr0jzh39lk5f8a9wm5avykrcy0v2wgd1bl3cszjczh99xy5k2")))) | ||
| 14625 | (build-system ruby-build-system) | ||
| 14626 | (synopsis "@code{Matrix} and @code{Vector} classes implementation for Ruby") | ||
| 14627 | (description "This Ruby library provides an implementation of the | ||
| 14628 | @code{Matrix} and @code{Vector} classes. The @code{Matrix} class represents a | ||
| 14629 | mathematical matrix. It provides methods for creating matrices, operating on | ||
| 14630 | them arithmetically and algebraically, and determining their mathematical | ||
| 14631 | properties (trace, rank, inverse, determinant, eigensystem, etc.). The | ||
| 14632 | @code{Vector} class represents a mathematical vector, which is useful in its | ||
| 14633 | own right, and also constitutes a row or column of a @code{Matrix}.") | ||
| 14634 | (home-page "https://github.com/ruby/matrix") | ||
| 14635 | (license license:bsd-2))) | ||
| 14636 | |||
| 14637 | (define-public ruby-m | ||
| 14638 | (package | ||
| 14639 | (name "ruby-m") | ||
| 14640 | (version "1.6.1") | ||
| 14641 | (source (origin | ||
| 14642 | (method git-fetch) ;for tests | ||
| 14643 | (uri (git-reference | ||
| 14644 | (url "https://github.com/qrush/m") | ||
| 14645 | (commit (string-append "v" version)))) | ||
| 14646 | (file-name (git-file-name name version)) | ||
| 14647 | (sha256 | ||
| 14648 | (base32 | ||
| 14649 | "1aycfc8l1bsln1y300fv75fknn4amjcvc4rm2kd8hb6cqivjq5rg")))) | ||
| 14650 | (build-system ruby-build-system) | ||
| 14651 | (arguments | ||
| 14652 | (list | ||
| 14653 | #:phases | ||
| 14654 | #~(modify-phases %standard-phases | ||
| 14655 | (add-after 'unpack 'sanitize-dependencies | ||
| 14656 | (lambda _ | ||
| 14657 | (delete-file "Gemfile") | ||
| 14658 | (delete-file "Gemfile.lock") | ||
| 14659 | ;; Rocco is unmaintained as of 2023/01/08; avoid depending on | ||
| 14660 | ;; it. | ||
| 14661 | (substitute* "m.gemspec" | ||
| 14662 | ;; The rdiscount and rocco dependencies are used for | ||
| 14663 | ;; generating the documentation. | ||
| 14664 | ((".*rdiscount.*") "") | ||
| 14665 | ((".*rocco.*") "") | ||
| 14666 | ((".*appraisal.*") "") | ||
| 14667 | ((".*coveralls.*") "")) | ||
| 14668 | (substitute* "Rakefile" | ||
| 14669 | ;; ruby-appraisal is not packaged, and is used to test against | ||
| 14670 | ;; various dependencies; circumvent its use. | ||
| 14671 | ((".*require 'appraisal'.*") "") | ||
| 14672 | ((".*require 'coveralls'.*") "") | ||
| 14673 | (("appraisal [:graphic:]+ rake") | ||
| 14674 | "rake") | ||
| 14675 | (("Coveralls.push!") "")))) | ||
| 14676 | (add-before 'replace-git-ls-files 'pre-replace-git-ls-files | ||
| 14677 | (lambda _ | ||
| 14678 | (substitute* "m.gemspec" | ||
| 14679 | (("git ls-files -- bin/\\*") | ||
| 14680 | "find bin -type f -not -regex '.*\\.gem$' | sort") | ||
| 14681 | (("git ls-files -- \\{test,spec,features}/\\*") | ||
| 14682 | "find test -type f -not -regex '.*\\.gem$' | sort")))) | ||
| 14683 | (delete 'check) | ||
| 14684 | (add-after 'install 'check | ||
| 14685 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 14686 | (setenv "GEM_PATH" (string-append | ||
| 14687 | (getenv "GEM_PATH") ":" | ||
| 14688 | #$output "/lib/ruby/vendor_ruby")) | ||
| 14689 | (when tests? | ||
| 14690 | (invoke "rake" "test"))))))) | ||
| 14691 | (native-inputs (list ruby-activesupport)) | ||
| 14692 | (propagated-inputs (list ruby-method-source ruby-rake)) | ||
| 14693 | (synopsis "Ruby test runner that can run tests by line number") | ||
| 14694 | (description "@code{m} stands for metal, a better test/unit and | ||
| 14695 | @code{minitest} test runner that can run tests by line number.") | ||
| 14696 | (home-page "https://github.com/qrush/m") | ||
| 14697 | (license license:expat))) | ||
| 14698 | |||
| 14699 | (define-public ruby-mercenary | ||
| 14700 | (package | ||
| 14701 | (name "ruby-mercenary") | ||
| 14702 | (version "0.4.0") | ||
| 14703 | (source (origin | ||
| 14704 | (method url-fetch) | ||
| 14705 | (uri (rubygems-uri "mercenary" version)) | ||
| 14706 | (sha256 | ||
| 14707 | (base32 | ||
| 14708 | "0f2i827w4lmsizrxixsrv2ssa3gk1b7lmqh8brk8ijmdb551wnmj")))) | ||
| 14709 | (build-system ruby-build-system) | ||
| 14710 | (arguments `(#:test-target "spec")) | ||
| 14711 | (native-inputs | ||
| 14712 | (list bundler)) | ||
| 14713 | (home-page "https://github.com/jekyll/mercenary") | ||
| 14714 | (synopsis "Command-line apps library in Ruby") | ||
| 14715 | (description "Mercenary is a lightweight and flexible library for writing | ||
| 14716 | command-line apps in Ruby.") | ||
| 14717 | (license license:expat))) | ||
| 14718 | |||
| 14719 | (define-public ruby-launchy | ||
| 14720 | (package | ||
| 14721 | (name "ruby-launchy") | ||
| 14722 | (version "2.5.2") | ||
| 14723 | (source (origin | ||
| 14724 | (method url-fetch) | ||
| 14725 | (uri (rubygems-uri "launchy" version)) | ||
| 14726 | (sha256 | ||
| 14727 | (base32 | ||
| 14728 | "06r43899384das2bkbrpsdxsafyyqa94il7111053idfalb4984a")))) | ||
| 14729 | (build-system ruby-build-system) | ||
| 14730 | (native-inputs (list curl links ruby-simplecov)) | ||
| 14731 | (propagated-inputs (list ruby-addressable)) | ||
| 14732 | (synopsis "Ruby helper class for launching applications") | ||
| 14733 | (description | ||
| 14734 | "Launchy is helper class for launching applications in a fire and forget | ||
| 14735 | manner. The aim of Launchy is to provide a common approach to launching | ||
| 14736 | external applications from within Ruby programs.") | ||
| 14737 | (home-page "https://github.com/copiousfreetime/launchy") | ||
| 14738 | (license license:isc))) | ||
| 14739 | |||
| 14740 | (define-public ruby-liquid | ||
| 14741 | (package | ||
| 14742 | (name "ruby-liquid") | ||
| 14743 | (version "5.4.0") | ||
| 14744 | (source (origin | ||
| 14745 | (method git-fetch) ;for tests | ||
| 14746 | (uri (git-reference | ||
| 14747 | (url "https://github.com/Shopify/liquid") | ||
| 14748 | (commit (string-append "v" version)))) | ||
| 14749 | (file-name (git-file-name name version)) | ||
| 14750 | (sha256 | ||
| 14751 | (base32 | ||
| 14752 | "1qdnvd1f9zs6wyilcgxyh93wis7ikbpimjxfpbkpk2ngr1m2c8la")))) | ||
| 14753 | (build-system ruby-build-system) | ||
| 14754 | (arguments | ||
| 14755 | (list | ||
| 14756 | #:phases | ||
| 14757 | #~(modify-phases %standard-phases | ||
| 14758 | (delete 'check) ;moved after the install phase | ||
| 14759 | (add-after 'install 'check | ||
| 14760 | (assoc-ref %standard-phases 'check)) | ||
| 14761 | (add-before 'check 'set-GEM_PATH | ||
| 14762 | (lambda _ | ||
| 14763 | (setenv "GEM_PATH" (string-append | ||
| 14764 | (getenv "GEM_PATH") ":" | ||
| 14765 | #$output "/lib/ruby/vendor_ruby")))) | ||
| 14766 | (add-before 'check 'delete-problematic-tests | ||
| 14767 | (lambda _ | ||
| 14768 | ;; The following test fails with 'Unknown tag' errors (see: | ||
| 14769 | ;; https://github.com/Shopify/liquid/issues/1699). | ||
| 14770 | (delete-file "test/integration/tags/inline_comment_test.rb")))))) | ||
| 14771 | (native-inputs (list ruby-liquid-c-bootstrap ruby-rspec ruby-stackprof)) | ||
| 14772 | (home-page "https://shopify.github.io/liquid/") | ||
| 14773 | (synopsis "Template language") | ||
| 14774 | (description "Liquid is a template language written in Ruby. It is used | ||
| 14775 | to load dynamic content on storefronts.") | ||
| 14776 | (license license:expat))) | ||
| 14777 | |||
| 14778 | (define-public ruby-liquid-4 | ||
| 14779 | (package | ||
| 14780 | (inherit ruby-liquid) | ||
| 14781 | (name "ruby-liquid") | ||
| 14782 | (version "4.0.4") | ||
| 14783 | (source (origin | ||
| 14784 | (method git-fetch) ;for tests | ||
| 14785 | (uri (git-reference | ||
| 14786 | (url "https://github.com/Shopify/liquid") | ||
| 14787 | (commit (string-append "v" version)))) | ||
| 14788 | (file-name (git-file-name name version)) | ||
| 14789 | (sha256 | ||
| 14790 | (base32 | ||
| 14791 | "0cr321nd0zkbxirgdfmz37xx7j26zfnicjh585fi20vx60frry83")))) | ||
| 14792 | (arguments (list #:tests? #f)))) ;avoid required an older ruby-liquid-c | ||
| 14793 | |||
| 14794 | ;;; This variant is purposefully incomplete, lacking ruby-liquid so that it | ||
| 14795 | ;;; can be used for ruby-liquid's test suite. | ||
| 14796 | (define ruby-liquid-c-bootstrap | ||
| 14797 | (package | ||
| 14798 | (name "ruby-liquid-c-bootstrap") | ||
| 14799 | (version "4.1.0") | ||
| 14800 | (source (origin | ||
| 14801 | (method url-fetch) | ||
| 14802 | (uri (rubygems-uri "liquid-c" version)) | ||
| 14803 | (sha256 | ||
| 14804 | (base32 | ||
| 14805 | "0jl37jz9hbfbhknryx4myxqx4n1f5dzyzmf1sapkcbw93xyrmkch")))) | ||
| 14806 | (build-system ruby-build-system) | ||
| 14807 | (arguments (list #:tests? #f)) | ||
| 14808 | (native-inputs (list ruby-rake-compiler)) | ||
| 14809 | (synopsis "Liquid performance extension in C") | ||
| 14810 | (description "This package provides a Partial native implementation of the | ||
| 14811 | liquid ruby gem in C that makes it operate about three times faster.") | ||
| 14812 | (home-page "https://github.com/shopify/liquid-c") | ||
| 14813 | (license license:expat))) | ||
| 14814 | |||
| 14815 | (define-public ruby-liquid-c | ||
| 14816 | (package/inherit ruby-liquid-c-bootstrap | ||
| 14817 | (name "ruby-liquid-c") | ||
| 14818 | (arguments | ||
| 14819 | (list | ||
| 14820 | ;; Only run the unit tests, because the test:integration target fails | ||
| 14821 | ;; with "File does not exist: test_helper" (see: | ||
| 14822 | ;; https://github.com/Shopify/liquid-c/issues/188). | ||
| 14823 | #:test-target "test:unit" | ||
| 14824 | #:phases | ||
| 14825 | #~(modify-phases %standard-phases | ||
| 14826 | (add-after 'extract-gemspec 'relax-requirements | ||
| 14827 | (lambda _ | ||
| 14828 | (substitute* "Gemfile" | ||
| 14829 | ;; Do not attempt to fetch a gem from git. | ||
| 14830 | (("git_source\\(:github) do \\|repo_name\\|") | ||
| 14831 | "if false") | ||
| 14832 | ((", github: \"Shopify/liquid\", ref: \"master\"") | ||
| 14833 | "") | ||
| 14834 | ;; Remove extraneous dependencies. | ||
| 14835 | ((".*byebug.*") "") | ||
| 14836 | ((".*rubocop.*") "") | ||
| 14837 | ;; Relax spy version specification. | ||
| 14838 | (("gem \"spy\", \"0.4.1\"") | ||
| 14839 | "gem \"spy\", \">= 0.4.1\""))))))) | ||
| 14840 | (native-inputs | ||
| 14841 | (list ruby-benchmark-ips | ||
| 14842 | ruby-rake-compiler | ||
| 14843 | ruby-ruby-memcheck | ||
| 14844 | ruby-spy | ||
| 14845 | ruby-stackprof)) | ||
| 14846 | (propagated-inputs | ||
| 14847 | (list ruby-liquid)))) | ||
| 14848 | |||
| 14849 | (define-public ruby-localhost | ||
| 14850 | (package | ||
| 14851 | (name "ruby-localhost") | ||
| 14852 | (version "1.1.10") | ||
| 14853 | (source (origin | ||
| 14854 | (method git-fetch) ;for tests | ||
| 14855 | (uri (git-reference | ||
| 14856 | (url "https://github.com/socketry/localhost") | ||
| 14857 | (commit (string-append "v" version)))) | ||
| 14858 | (file-name (git-file-name name version)) | ||
| 14859 | (sha256 | ||
| 14860 | (base32 | ||
| 14861 | "1yp70w15wpfk613ap5f4y15yx4n2qqwa67vqc2f4lv7npf3llcz0")))) | ||
| 14862 | (build-system ruby-build-system) | ||
| 14863 | (arguments | ||
| 14864 | ;; XXX: The test suite requires sus-fixtures-async, which requires async, | ||
| 14865 | ;; only available for Ruby 3.0. | ||
| 14866 | (list #:tests? #f | ||
| 14867 | #:phases | ||
| 14868 | #~(modify-phases %standard-phases | ||
| 14869 | (add-before 'build 'remove-missing-signing-key | ||
| 14870 | (lambda _ | ||
| 14871 | ;; Otherwise, the build fails with ENOENT. | ||
| 14872 | (substitute* "localhost.gemspec" | ||
| 14873 | ((".*spec.signing_key.*") ""))))))) | ||
| 14874 | (synopsis "API for generating per-user self-signed root certificates") | ||
| 14875 | (description "This package provides @code{localhost}, a Ruby library for | ||
| 14876 | Managing a local certificate authority for self-signed, localhost development | ||
| 14877 | servers.") | ||
| 14878 | (home-page "https://github.com/socketry/localhost") | ||
| 14879 | (license license:expat))) | ||
| 14880 | |||
| 14881 | (define-public ruby-forwardable-extended | ||
| 14882 | (package | ||
| 14883 | (name "ruby-forwardable-extended") | ||
| 14884 | (version "2.6.0") | ||
| 14885 | (source (origin | ||
| 14886 | (method url-fetch) | ||
| 14887 | (uri (rubygems-uri "forwardable-extended" version)) | ||
| 14888 | (sha256 | ||
| 14889 | (base32 | ||
| 14890 | "15zcqfxfvsnprwm8agia85x64vjzr2w0xn9vxfnxzgcv8s699v0v")))) | ||
| 14891 | (build-system ruby-build-system) | ||
| 14892 | (arguments `(#:tests? #f)); Cyclic dependency on luna-rspec-formatters | ||
| 14893 | (home-page "https://github.com/envygeeks/forwardable-extended") | ||
| 14894 | (synopsis "Delegation to hashes and instance variables in Forwardable") | ||
| 14895 | (description "Forwardable Extended provides more @code{Forwardable} | ||
| 14896 | methods for your source as @code{Forwardable::Extended}.") | ||
| 14897 | (license license:expat))) | ||
| 14898 | |||
| 14899 | (define-public ruby-pathutil | ||
| 14900 | (package | ||
| 14901 | (name "ruby-pathutil") | ||
| 14902 | (version "0.16.2") | ||
| 14903 | (source (origin | ||
| 14904 | (method url-fetch) | ||
| 14905 | (uri (rubygems-uri "pathutil" version)) | ||
| 14906 | (sha256 | ||
| 14907 | (base32 | ||
| 14908 | "12fm93ljw9fbxmv2krki5k5wkvr7560qy8p4spvb9jiiaqv78fz4")))) | ||
| 14909 | (build-system ruby-build-system) | ||
| 14910 | (propagated-inputs | ||
| 14911 | (list ruby-forwardable-extended)) | ||
| 14912 | (native-inputs | ||
| 14913 | (list bundler ruby-rspec)) | ||
| 14914 | ;; Fails with: cannot load such file -- | ||
| 14915 | ;; /tmp/guix-build-ruby-pathutil-0.16.0.drv-0/gem/benchmark/support/task | ||
| 14916 | (arguments `(#:tests? #f)) | ||
| 14917 | (home-page "https://github.com/envygeeks/pathutil") | ||
| 14918 | (synopsis "Extended implementation of Pathname") | ||
| 14919 | (description "Pathutil tries to be a faster pure Ruby implementation of | ||
| 14920 | Pathname.") | ||
| 14921 | (license license:expat))) | ||
| 14922 | |||
| 14923 | (define-public ruby-terminal-table | ||
| 14924 | (package | ||
| 14925 | (name "ruby-terminal-table") | ||
| 14926 | (version "3.0.2") | ||
| 14927 | (source (origin | ||
| 14928 | (method git-fetch) | ||
| 14929 | (uri (git-reference | ||
| 14930 | (url "https://github.com/tj/terminal-table") | ||
| 14931 | (commit (string-append "v" version)))) | ||
| 14932 | (file-name (git-file-name name version)) | ||
| 14933 | (sha256 | ||
| 14934 | (base32 | ||
| 14935 | "1c3f7ng3lxq962n8sbmlsvjx6srh5i801wzsyhxmfz2g880f5jps")))) | ||
| 14936 | (arguments | ||
| 14937 | '(#:phases | ||
| 14938 | (modify-phases %standard-phases | ||
| 14939 | (add-before 'check 'remove-unnecessary-dependencies | ||
| 14940 | (lambda _ | ||
| 14941 | (substitute* "terminal-table.gemspec" | ||
| 14942 | (("s.add_runtime_dependency.*") "\n") | ||
| 14943 | (("s.add_development_dependency.*") "\n")) | ||
| 14944 | (substitute* "Gemfile" | ||
| 14945 | ((".*tins.*") "\n")))) | ||
| 14946 | (replace 'check | ||
| 14947 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 14948 | (when tests? | ||
| 14949 | (invoke "rspec"))))))) | ||
| 14950 | (build-system ruby-build-system) | ||
| 14951 | (propagated-inputs | ||
| 14952 | (list ruby-unicode-display-width)) | ||
| 14953 | (native-inputs | ||
| 14954 | (list ruby-rspec ruby-term-ansicolor)) | ||
| 14955 | (home-page "https://github.com/tj/terminal-table") | ||
| 14956 | (synopsis "Simple, feature rich ASCII table generation library") | ||
| 14957 | (description | ||
| 14958 | "Terminal Table is a fast and simple, yet feature rich | ||
| 14959 | table generator written in Ruby. It supports ASCII and | ||
| 14960 | Unicode formatted tables.") | ||
| 14961 | (license license:expat))) | ||
| 14962 | |||
| 14963 | (define-public jekyll | ||
| 14964 | (package | ||
| 14965 | (name "jekyll") | ||
| 14966 | (version "4.3.4") | ||
| 14967 | (source (origin | ||
| 14968 | (method git-fetch) ;for tests | ||
| 14969 | (uri (git-reference | ||
| 14970 | (url "https://github.com/jekyll/jekyll") | ||
| 14971 | (commit (string-append "v" version)))) | ||
| 14972 | (file-name (git-file-name name version)) | ||
| 14973 | (sha256 | ||
| 14974 | (base32 | ||
| 14975 | "0sz285x5ppbifrnixi9sdzv28kg4x3qbzds3qniiwh1ip9hi1yk4")))) | ||
| 14976 | (build-system ruby-build-system) | ||
| 14977 | (arguments | ||
| 14978 | (list #:modules '((guix build ruby-build-system) | ||
| 14979 | (guix build utils) | ||
| 14980 | (ice-9 ftw) | ||
| 14981 | (srfi srfi-26)) | ||
| 14982 | ;; The cucumber acceptance suite is not run as it depends on an old | ||
| 14983 | ;; version (5). | ||
| 14984 | #:test-target "spec" | ||
| 14985 | #:phases | ||
| 14986 | #~(modify-phases %standard-phases | ||
| 14987 | (add-before 'check 'disable-problematic-tests | ||
| 14988 | ;; TODO: Package the missing test inputs. | ||
| 14989 | (lambda _ | ||
| 14990 | (with-directory-excursion "test" | ||
| 14991 | ;; Requires 'jekyll-coffeescript'. | ||
| 14992 | (delete-file "test_coffeescript.rb") | ||
| 14993 | ;; Requires 'tomlrb'. | ||
| 14994 | (delete-file "test_configuration.rb") | ||
| 14995 | (substitute* "test_filters.rb" | ||
| 14996 | ;; The sassify tests fail due to white space | ||
| 14997 | ;; differences (see: | ||
| 14998 | ;; https://github.com/jekyll/jekyll/issues/9322). | ||
| 14999 | ((".*s?ssify with simple string.*" all) | ||
| 15000 | (string-append all | ||
| 15001 | " skip('fails on guix')\n"))) | ||
| 15002 | ;; Requires kramdown-syntax-coderay. | ||
| 15003 | (delete-file "test_kramdown.rb") | ||
| 15004 | ;; Requires 'test-theme', usually made available from the | ||
| 15005 | ;; local checkout via Bundler (not used here). | ||
| 15006 | (delete-file "test_layout_reader.rb") | ||
| 15007 | ;; Requires a large amount of un-packaged dependencies. | ||
| 15008 | (delete-file "test_plugin_manager.rb") | ||
| 15009 | ;; Requires 'classifier-reborn'. | ||
| 15010 | (delete-file "test_related_posts.rb") | ||
| 15011 | ;; This one causes a test failure similar to the ones for | ||
| 15012 | ;; sassify above. | ||
| 15013 | (delete-file "test_sass.rb") | ||
| 15014 | ;; This would require running the tests via 'bundle | ||
| 15015 | ;; exec', but the Gemfile contains too many (extraneous) | ||
| 15016 | ;; dependencies. | ||
| 15017 | (delete-file "test_site.rb") | ||
| 15018 | ;; Delete the theme tests, as they require 'test-theme', | ||
| 15019 | ;; usually made available from the local checkout via the | ||
| 15020 | ;; Gemfile/bundler (not used here). | ||
| 15021 | (for-each delete-file | ||
| 15022 | (scandir | ||
| 15023 | "." (cut string-prefix? "test_theme" <>))) | ||
| 15024 | ;; This one also relies on 'test-theme'. | ||
| 15025 | (delete-file "test_liquid_renderer.rb") | ||
| 15026 | ;; This test assumes internet connectivity, negate it, as | ||
| 15027 | ;; there's no Internet in the build container. | ||
| 15028 | (substitute* "test_utils.rb" | ||
| 15029 | (("assert Utils::Internet\\.connected\\?") | ||
| 15030 | "refute Utils::Internet.connected?")) | ||
| 15031 | ;; These tests fail non-deterministically (see: | ||
| 15032 | ;; https://github.com/jekyll/jekyll/issues/9323). | ||
| 15033 | (delete-file "test_new_command.rb") | ||
| 15034 | (delete-file "test_collections.rb")))) | ||
| 15035 | (replace 'check | ||
| 15036 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 15037 | (when tests? | ||
| 15038 | ;; Invoke the test scripts manually, as 'rake test' | ||
| 15039 | ;; doesn't show any failure details, making debugging | ||
| 15040 | ;; needlessly difficult. | ||
| 15041 | (for-each (lambda (f) | ||
| 15042 | (invoke "ruby" "-I" "test" f)) | ||
| 15043 | (find-files "test" "^test_.*\\.rb$")))))))) | ||
| 15044 | (native-inputs | ||
| 15045 | (list bundler | ||
| 15046 | ruby-httpclient | ||
| 15047 | ruby-minitest-profile | ||
| 15048 | ruby-minitest-reporters | ||
| 15049 | ruby-nokogiri | ||
| 15050 | ruby-rspec | ||
| 15051 | ruby-rspec-mocks | ||
| 15052 | ruby-shoulda | ||
| 15053 | ruby-simplecov)) | ||
| 15054 | (propagated-inputs | ||
| 15055 | (list ruby-addressable | ||
| 15056 | ruby-colorator | ||
| 15057 | ruby-em-websocket | ||
| 15058 | ruby-i18n | ||
| 15059 | ruby-jekyll-sass-converter | ||
| 15060 | ruby-jekyll-watch | ||
| 15061 | ruby-kramdown-parser-gfm | ||
| 15062 | ruby-liquid-4 | ||
| 15063 | ruby-mercenary | ||
| 15064 | ruby-pathutil | ||
| 15065 | ruby-rouge | ||
| 15066 | ruby-safe-yaml | ||
| 15067 | ruby-sassc | ||
| 15068 | ruby-terminal-table | ||
| 15069 | ruby-webrick)) | ||
| 15070 | (home-page "https://jekyllrb.com/") | ||
| 15071 | (synopsis "Static site generator") | ||
| 15072 | (description "Jekyll is a simple, blog aware, static site generator.") | ||
| 15073 | (license license:expat))) | ||
| 15074 | |||
| 15075 | (define-public ruby-jekyll-paginate-v2 | ||
| 15076 | (package | ||
| 15077 | (name "ruby-jekyll-paginate-v2") | ||
| 15078 | (version "3.0.0") | ||
| 15079 | (source (origin | ||
| 15080 | (method url-fetch) | ||
| 15081 | (uri (rubygems-uri "jekyll-paginate-v2" version)) | ||
| 15082 | (sha256 | ||
| 15083 | (base32 | ||
| 15084 | "1qzlqhpiqz28624fp0ak76hfy7908w6kpx62v7z43aiwjv0yc6q0")))) | ||
| 15085 | (build-system ruby-build-system) | ||
| 15086 | (propagated-inputs | ||
| 15087 | (list jekyll)) | ||
| 15088 | (home-page "https://github.com/sverrirs/jekyll-paginate-v2") | ||
| 15089 | (synopsis "Pagination Generator for Jekyll 3") | ||
| 15090 | (description "The Pagination Generator forms the core of the pagination | ||
| 15091 | logic in Jekyll. It calculates and generates the pagination pages.") | ||
| 15092 | (license license:expat))) | ||
| 15093 | |||
| 15094 | (define-public ruby-faraday-net-http | ||
| 15095 | (package | ||
| 15096 | (name "ruby-faraday-net-http") | ||
| 15097 | (version "3.0.2") | ||
| 15098 | (source (origin | ||
| 15099 | (method url-fetch) | ||
| 15100 | (uri (rubygems-uri "faraday-net_http" version)) | ||
| 15101 | (sha256 | ||
| 15102 | (base32 | ||
| 15103 | "13byv3mp1gsjyv8k0ih4612y6vw5kqva6i03wcg4w2fqpsd950k8")))) | ||
| 15104 | (build-system ruby-build-system) | ||
| 15105 | ;; Do not run the test suite here as it would introduce a dependency cycle | ||
| 15106 | ;; with ruby-faraday, which uses it as part of its test suite. | ||
| 15107 | (arguments (list #:tests? #f)) | ||
| 15108 | (synopsis "Faraday adapter for Net::HTTP") | ||
| 15109 | (description "This gem is a Faraday adapter for the @code{Net::HTTP} | ||
| 15110 | library. Faraday is an HTTP client library that provides a common interface | ||
| 15111 | over many adapters.") | ||
| 15112 | (home-page "https://github.com/lostisland/faraday-net_http") | ||
| 15113 | (license license:expat))) | ||
| 15114 | |||
| 15115 | (define-public ruby-faraday | ||
| 15116 | (package | ||
| 15117 | (name "ruby-faraday") | ||
| 15118 | (version "2.7.4") | ||
| 15119 | (source (origin | ||
| 15120 | (method git-fetch) | ||
| 15121 | (uri (git-reference | ||
| 15122 | (url "https://github.com/lostisland/faraday") | ||
| 15123 | (commit (string-append "v" version)))) | ||
| 15124 | (file-name (git-file-name name version)) | ||
| 15125 | (sha256 | ||
| 15126 | (base32 | ||
| 15127 | "0ya6jqa7ryr4i62mmzjjxzd8i8y0pyw0cbhifd758rs6lvkzmxa3")))) | ||
| 15128 | (build-system ruby-build-system) | ||
| 15129 | (arguments (list #:test-target "spec")) | ||
| 15130 | (native-inputs | ||
| 15131 | (list ruby-coveralls | ||
| 15132 | ruby-pry | ||
| 15133 | ruby-rack | ||
| 15134 | ruby-rspec | ||
| 15135 | ruby-simplecov | ||
| 15136 | ruby-webmock)) | ||
| 15137 | ;; Propagate faraday-net-http as this is the default adapter used, and | ||
| 15138 | ;; many Ruby projects assumes it is available. | ||
| 15139 | (propagated-inputs (list ruby-ruby2-keywords ruby-faraday-net-http)) | ||
| 15140 | (synopsis "Ruby HTTP/REST API client library") | ||
| 15141 | (description "Faraday is a HTTP/REST API client library which provides a | ||
| 15142 | common interface over different adapters.") | ||
| 15143 | (home-page "https://github.com/lostisland/faraday") | ||
| 15144 | (license license:expat))) | ||
| 15145 | |||
| 15146 | (define-public ruby-nio4r | ||
| 15147 | (package | ||
| 15148 | (name "ruby-nio4r") | ||
| 15149 | (version "2.5.2") | ||
| 15150 | (source | ||
| 15151 | (origin | ||
| 15152 | (method url-fetch) | ||
| 15153 | (uri (rubygems-uri "nio4r" version)) | ||
| 15154 | (sha256 | ||
| 15155 | (base32 | ||
| 15156 | "0gnmvbryr521r135yz5bv8354m7xn6miiapfgpg1bnwsvxz8xj6c")))) | ||
| 15157 | (build-system ruby-build-system) | ||
| 15158 | (arguments | ||
| 15159 | '(#:phases | ||
| 15160 | (modify-phases %standard-phases | ||
| 15161 | (add-after 'unpack 'remove-unnecessary-dependencies | ||
| 15162 | (lambda _ | ||
| 15163 | (substitute* "spec/spec_helper.rb" | ||
| 15164 | ;; Coveralls is for uploading test coverage information to an | ||
| 15165 | ;; online service, and thus unnecessary for building the Guix | ||
| 15166 | ;; package | ||
| 15167 | (("require \"coveralls\"") "") | ||
| 15168 | (("Coveralls\\.wear!") "") | ||
| 15169 | ;; Remove rspec/retry as we are not retrying the tests | ||
| 15170 | (("require \"rspec/retry\"") "") | ||
| 15171 | (("config\\.display_try_failure_messages = true") "") | ||
| 15172 | (("config\\.verbose_retry = true") "")))) | ||
| 15173 | (add-before 'check 'compile | ||
| 15174 | (lambda _ | ||
| 15175 | (invoke "rake" "compile"))) | ||
| 15176 | (replace 'check | ||
| 15177 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 15178 | (when tests? | ||
| 15179 | (invoke "rspec"))))))) | ||
| 15180 | (native-inputs | ||
| 15181 | (list bundler ruby-rake-compiler ruby-rspec ruby-rubocop)) | ||
| 15182 | (synopsis "New I/O for Ruby") | ||
| 15183 | (description | ||
| 15184 | "@code{nio} provides cross-platform asynchronous I/O primitives in Ruby | ||
| 15185 | for scalable network clients and servers.") | ||
| 15186 | (home-page "https://github.com/socketry/nio4r") | ||
| 15187 | (license license:expat))) | ||
| 15188 | |||
| 15189 | (define-public ruby-language-server-protocol | ||
| 15190 | (package | ||
| 15191 | (name "ruby-language-server-protocol") | ||
| 15192 | (version "3.17.0.3") | ||
| 15193 | (source (origin | ||
| 15194 | (method git-fetch) ;for tests | ||
| 15195 | (uri (git-reference | ||
| 15196 | (url "https://github.com/mtsmfm/language_server-protocol-ruby") | ||
| 15197 | (commit (string-append "v" version)))) | ||
| 15198 | (file-name (git-file-name name version)) | ||
| 15199 | (sha256 | ||
| 15200 | (base32 | ||
| 15201 | "0f2g301fz99c6nkca39s9227brlycznv8a9r4b4i99rg25m91lc6")))) | ||
| 15202 | (build-system ruby-build-system) | ||
| 15203 | (arguments | ||
| 15204 | (list | ||
| 15205 | #:phases | ||
| 15206 | #~(modify-phases %standard-phases | ||
| 15207 | (add-after 'unpack 'remove-unnecessary-dependencies | ||
| 15208 | (lambda _ | ||
| 15209 | (substitute* "Gemfile" | ||
| 15210 | (("gem \"pry-byebug\"") "")))) | ||
| 15211 | (replace 'replace-git-ls-files | ||
| 15212 | (lambda _ | ||
| 15213 | (substitute* "language_server-protocol.gemspec" | ||
| 15214 | (("git ls-files -z([^`]*)" _ files) | ||
| 15215 | (string-append "find " files | ||
| 15216 | " -type f -not -regex '.*\\.gem$'" | ||
| 15217 | " -print0 | sort -z")))))))) | ||
| 15218 | (native-inputs | ||
| 15219 | (list ruby-activesupport | ||
| 15220 | ruby-benchmark-ips | ||
| 15221 | ruby-m | ||
| 15222 | ruby-minitest | ||
| 15223 | ruby-minitest-power-assert)) | ||
| 15224 | (synopsis "Language Server Protocol (LSP) development kit for Ruby") | ||
| 15225 | (description "This package provides a Language Server Protocol (LSP) | ||
| 15226 | development kit for Ruby.") | ||
| 15227 | (home-page "https://github.com/mtsmfm/language_server-protocol-ruby") | ||
| 15228 | (license license:expat))) | ||
| 15229 | |||
| 15230 | (define-public ruby-spy | ||
| 15231 | (package | ||
| 15232 | (name "ruby-spy") | ||
| 15233 | (version "1.0.5") | ||
| 15234 | (source (origin | ||
| 15235 | (method url-fetch) | ||
| 15236 | (uri (rubygems-uri "spy" version)) | ||
| 15237 | (sha256 | ||
| 15238 | (base32 | ||
| 15239 | "0g2mma8q17m26k5s864ndlvvqllhcivwg2wdigjvb7z06iw17gds")))) | ||
| 15240 | (build-system ruby-build-system) | ||
| 15241 | (arguments | ||
| 15242 | (list #:phases #~(modify-phases %standard-phases | ||
| 15243 | (add-after 'extract-gemspec 'relax-requirements | ||
| 15244 | (lambda _ | ||
| 15245 | (substitute* "spy.gemspec" | ||
| 15246 | ((".*pry-byebug.*") "")) | ||
| 15247 | (substitute* "test/test_helper.rb" | ||
| 15248 | ((".*pry-byebug.*") "")) | ||
| 15249 | (substitute* "Gemfile" | ||
| 15250 | ((".*redcarpet.*") "") | ||
| 15251 | ((".*yard.*") ""))))))) | ||
| 15252 | (native-inputs | ||
| 15253 | (list ruby-coveralls | ||
| 15254 | ruby-minitest-reporters | ||
| 15255 | ruby-pry | ||
| 15256 | ruby-rspec-core | ||
| 15257 | ruby-rspec-expectations)) | ||
| 15258 | (synopsis "Mocking library for Ruby") | ||
| 15259 | (description "Spy is a mocking library. By default, it will raise an | ||
| 15260 | error if you attempt to stub a method that doesn't exist or call the stubbed | ||
| 15261 | method with the wrong arity.") | ||
| 15262 | (home-page "https://github.com/ryanong/spy") | ||
| 15263 | (license license:expat))) | ||
| 15264 | |||
| 15265 | (define-public ruby-subprocess | ||
| 15266 | (package | ||
| 15267 | (name "ruby-subprocess") | ||
| 15268 | (version "1.5.6") | ||
| 15269 | (source (origin | ||
| 15270 | (method url-fetch) | ||
| 15271 | (uri (rubygems-uri "subprocess" version)) | ||
| 15272 | (sha256 | ||
| 15273 | (base32 | ||
| 15274 | "0v49ahfx9b75qg42sl8a3l367g2vihc16g8z5f2raxpxjl1wh2s2")))) | ||
| 15275 | (build-system ruby-build-system) | ||
| 15276 | ;; Do not run the test suite, as there its test dependency ruby-sord would | ||
| 15277 | ;; introduce a cycle with ruby-sorbet-runtime. | ||
| 15278 | (arguments (list #:tests? #f)) | ||
| 15279 | (native-inputs (list ruby-minitest ruby-pry)) | ||
| 15280 | (synopsis "Ruby library to control and communicate with spawned processes") | ||
| 15281 | (description "This Ruby library is controlling and communicating with | ||
| 15282 | spawned processes. It is designed after Python's @code{subprocess} module.") | ||
| 15283 | (home-page "https://github.com/stripe/subprocess") | ||
| 15284 | (license license:expat))) | ||
| 15285 | |||
| 15286 | (define-public ruby-sus | ||
| 15287 | (package | ||
| 15288 | (name "ruby-sus") | ||
| 15289 | (version "0.20.3") | ||
| 15290 | (source (origin | ||
| 15291 | (method git-fetch) ;for gems.rb | ||
| 15292 | (uri (git-reference | ||
| 15293 | (url "https://github.com/ioquatix/sus") | ||
| 15294 | (commit (string-append "v" version)))) | ||
| 15295 | (file-name (git-file-name name version)) | ||
| 15296 | (sha256 | ||
| 15297 | (base32 | ||
| 15298 | "0j4rkh9li79674h3lfkxlcdygscmb22l77i7hwhxl3gw103gkpdr")))) | ||
| 15299 | (build-system ruby-build-system) | ||
| 15300 | (arguments | ||
| 15301 | (list #:phases | ||
| 15302 | #~(modify-phases %standard-phases | ||
| 15303 | (add-before 'build 'prune-gems.rb | ||
| 15304 | (lambda _ | ||
| 15305 | (substitute* "gems.rb" | ||
| 15306 | (("gem \"bake-modernize\"") "") | ||
| 15307 | (("gem \"bake-gem\"") "") | ||
| 15308 | (("gem \"utopia-project\"") "")))) | ||
| 15309 | (add-before 'build 'remove-missing-signing-key | ||
| 15310 | (lambda _ | ||
| 15311 | ;; Otherwise, the build fails with ENOENT. | ||
| 15312 | (substitute* "sus.gemspec" | ||
| 15313 | ((".*spec.signing_key.*") "")))) | ||
| 15314 | (delete 'check) ;moved after install | ||
| 15315 | (add-after 'install 'check | ||
| 15316 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 15317 | (when tests? | ||
| 15318 | (setenv "CONSOLE_LEVEL" "debug") | ||
| 15319 | (setenv "HOME" "/tmp") | ||
| 15320 | ;; 'bundle exec' must be used to workaround a problem | ||
| 15321 | ;; when using bake test and GEM_PATH (see: | ||
| 15322 | ;; https://github.com/ioquatix/bake/issues/11). | ||
| 15323 | (invoke "bundle" "exec" "bake" "test")))) | ||
| 15324 | (add-before 'check 'set-paths | ||
| 15325 | (lambda _ | ||
| 15326 | (setenv "PATH" (string-append (getenv "PATH") ":" | ||
| 15327 | #$output "/bin")) | ||
| 15328 | (setenv "GEM_PATH" (string-append | ||
| 15329 | (getenv "GEM_PATH") ":" | ||
| 15330 | #$output "/lib/ruby/vendor_ruby"))))))) | ||
| 15331 | (native-inputs (list ruby-bake-test ruby-bake-test-external ruby-covered)) | ||
| 15332 | (synopsis "Fast and scalable test runner for Ruby") | ||
| 15333 | (description "This package provides a fast and scalable test runner for Ruby.") | ||
| 15334 | (home-page "https://github.com/ioquatix/sus") | ||
| 15335 | (license license:expat))) | ||
| 15336 | |||
| 15337 | (define-public ruby-syntax-tree | ||
| 15338 | (package | ||
| 15339 | (name "ruby-syntax-tree") | ||
| 15340 | (version "6.1.1") | ||
| 15341 | (source (origin | ||
| 15342 | (method git-fetch) ;for tests | ||
| 15343 | (uri (git-reference | ||
| 15344 | (url "https://github.com/ruby-syntax-tree/syntax_tree") | ||
| 15345 | (commit (string-append "v" version)))) | ||
| 15346 | (file-name (git-file-name name version)) | ||
| 15347 | (sha256 | ||
| 15348 | (base32 | ||
| 15349 | "0356lgvqp22nkqlrgszf7myfdg4arclg278awh34zyby1cx6hb2k")))) | ||
| 15350 | (build-system ruby-build-system) | ||
| 15351 | (arguments | ||
| 15352 | (list | ||
| 15353 | #:phases | ||
| 15354 | #~(modify-phases %standard-phases | ||
| 15355 | ;; The tests rely on the Gem being installed, so move the check | ||
| 15356 | ;; phase after the install phase. | ||
| 15357 | (delete 'check) | ||
| 15358 | (add-after 'install 'check | ||
| 15359 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 15360 | (setenv "GEM_PATH" (string-append | ||
| 15361 | #$output "/lib/ruby/vendor_ruby:" | ||
| 15362 | (getenv "GEM_PATH"))) | ||
| 15363 | (when tests? | ||
| 15364 | (invoke "rake" "test"))))))) | ||
| 15365 | (native-inputs (list ruby-rubocop-ast ruby-simplecov)) | ||
| 15366 | (propagated-inputs (list ruby-prettier-print)) | ||
| 15367 | (synopsis "Fast Ruby parser and formatter") | ||
| 15368 | (description "Syntax Tree is a suite of tools built on top of the internal | ||
| 15369 | CRuby parser. It provides the ability to generate a syntax tree from source, | ||
| 15370 | as well as the tools necessary to inspect and manipulate that syntax tree. It | ||
| 15371 | can be used to build formatters, linters, language servers, and more.") | ||
| 15372 | (home-page "https://github.com/ruby-syntax-tree/syntax_tree") | ||
| 15373 | (license license:expat))) | ||
| 15374 | |||
| 15375 | (define-public ruby-stringio | ||
| 15376 | (package | ||
| 15377 | (name "ruby-stringio") | ||
| 15378 | (version "3.1.0") | ||
| 15379 | (source (origin | ||
| 15380 | (method git-fetch) | ||
| 15381 | (uri (git-reference | ||
| 15382 | (url "https://github.com/ruby/stringio") | ||
| 15383 | (commit (string-append "v" version)))) | ||
| 15384 | (file-name (git-file-name name version)) | ||
| 15385 | (sha256 | ||
| 15386 | (base32 | ||
| 15387 | "1jgi2w5y0z0x9mfapr2pdlag4wvn03fpf5kbai8bscyh8nn79yka")))) | ||
| 15388 | (build-system ruby-build-system) | ||
| 15389 | (native-inputs (list ruby-rake-compiler ruby-test-unit-ruby-core)) | ||
| 15390 | (synopsis "Pseudo `IO` class from and to `String`") | ||
| 15391 | (description "Pseudo `IO` class from and to `String`.") | ||
| 15392 | (home-page "https://github.com/ruby/stringio") | ||
| 15393 | (license license:bsd-2))) | ||
| 15394 | |||
| 15395 | (define-public ruby-stream | ||
| 15396 | (package | ||
| 15397 | (name "ruby-stream") | ||
| 15398 | (version "0.5.5") | ||
| 15399 | (source (origin | ||
| 15400 | (method url-fetch) | ||
| 15401 | (uri (rubygems-uri "stream" version)) | ||
| 15402 | (sha256 | ||
| 15403 | (base32 | ||
| 15404 | "016m9v81vpj14d8g5ins91zc4pzl7vf5f1gxl7jhfsfy601k7cv2")))) | ||
| 15405 | (build-system ruby-build-system) | ||
| 15406 | (arguments | ||
| 15407 | '(#:phases | ||
| 15408 | (modify-phases %standard-phases | ||
| 15409 | (add-before 'check 'remove-version-constraints | ||
| 15410 | (lambda _ | ||
| 15411 | (delete-file "Gemfile.lock")))))) | ||
| 15412 | (native-inputs (list bundler ruby-stringio ruby-webrick ruby-yard)) | ||
| 15413 | (synopsis "Interface for external iterators") | ||
| 15414 | (description "Module Stream defines an interface for external iterators.") | ||
| 15415 | (home-page "https://github.com/monora/stream") | ||
| 15416 | (license license:bsd-2))) | ||
| 15417 | |||
| 15418 | (define sorbet-version "0.5.10610.20230106174520-1fa668010") | ||
| 15419 | |||
| 15420 | (define sorbet-monorepo | ||
| 15421 | (origin | ||
| 15422 | (method git-fetch) | ||
| 15423 | (uri (git-reference | ||
| 15424 | (url "https://github.com/sorbet/sorbet") | ||
| 15425 | (commit sorbet-version))) | ||
| 15426 | (file-name (string-append "sorbet-" sorbet-version "-checkout")) | ||
| 15427 | (sha256 | ||
| 15428 | (base32 | ||
| 15429 | "0f21dl06alxwn6xgdxyrkd58plmmsv04z2bcls9ld4cfzsrs5537")))) | ||
| 15430 | |||
| 15431 | (define (make-sorbet-gem-source gem) | ||
| 15432 | "Return the source of GEM, a sub-directory." | ||
| 15433 | (computed-file | ||
| 15434 | (string-append "ruby-sorbet-" gem "-" sorbet-version "-checkout") | ||
| 15435 | (with-imported-modules (source-module-closure '((guix build utils))) | ||
| 15436 | #~(begin | ||
| 15437 | (use-modules (guix build utils)) | ||
| 15438 | (copy-recursively (string-append #$sorbet-monorepo | ||
| 15439 | "/gems/sorbet-" #$gem) | ||
| 15440 | #$output))))) | ||
| 15441 | |||
| 15442 | (define-public ruby-sorbet-runtime | ||
| 15443 | (package | ||
| 15444 | (name "ruby-sorbet-runtime") | ||
| 15445 | (version sorbet-version) | ||
| 15446 | (source (make-sorbet-gem-source "runtime")) | ||
| 15447 | (build-system ruby-build-system) | ||
| 15448 | ;; 25 out of 841 tests currently fail, seemingly due to invalid | ||
| 15449 | ;; assumptions about file names in the build environment (see: | ||
| 15450 | ;; https://github.com/sorbet/sorbet/issues/6650). | ||
| 15451 | (arguments (list #:tests? #f)) | ||
| 15452 | (native-inputs | ||
| 15453 | (list ruby-minitest | ||
| 15454 | ruby-mocha | ||
| 15455 | ruby-rubocop | ||
| 15456 | ruby-rubocop-performance | ||
| 15457 | ruby-concurrent-ruby | ||
| 15458 | ruby-pry | ||
| 15459 | ruby-parser | ||
| 15460 | ruby-subprocess)) | ||
| 15461 | (synopsis "Runtime type checking component for Sorbet") | ||
| 15462 | (description "Sorbet's runtime type checking component. Sorbet is a | ||
| 15463 | powerful type checker for Ruby.") | ||
| 15464 | (home-page "https://sorbet.org") | ||
| 15465 | (license license:asl2.0))) | ||
| 15466 | |||
| 15467 | (define-public ruby-mustache | ||
| 15468 | (package | ||
| 15469 | (name "ruby-mustache") | ||
| 15470 | (version "1.1.1") | ||
| 15471 | (source | ||
| 15472 | (origin | ||
| 15473 | (method url-fetch) | ||
| 15474 | (uri (rubygems-uri "mustache" version)) | ||
| 15475 | (sha256 | ||
| 15476 | (base32 "1l0p4wx15mi3wnamfv92ipkia4nsx8qi132c6g51jfdma3fiz2ch")))) | ||
| 15477 | (build-system ruby-build-system) | ||
| 15478 | (native-inputs | ||
| 15479 | `(("ruby-simplecov" ,ruby-simplecov) | ||
| 15480 | ("test-patch" | ||
| 15481 | ,(search-patch "ruby-mustache-1.1.1-fix-race-condition-tests.patch")))) | ||
| 15482 | (arguments | ||
| 15483 | `(#:phases | ||
| 15484 | (modify-phases %standard-phases | ||
| 15485 | (add-after 'unpack 'patch-tests | ||
| 15486 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 15487 | (invoke "patch" "-p1" "--batch" "-i" | ||
| 15488 | (assoc-ref inputs "test-patch"))))))) | ||
| 15489 | (synopsis "Framework-agnostic way to render logic-free views") | ||
| 15490 | (description | ||
| 15491 | "Mustache is a framework-agnostic way to render logic-free views. | ||
| 15492 | Think of Mustache as a replacement for your views. Instead of views | ||
| 15493 | consisting of ERB or HAML with random helpers and arbitrary logic, | ||
| 15494 | your views are broken into two parts: a Ruby class and an HTML | ||
| 15495 | template.") | ||
| 15496 | (home-page "https://github.com/mustache/mustache") | ||
| 15497 | (license license:expat))) | ||
| 15498 | |||
| 15499 | (define-public ruby-mustermann | ||
| 15500 | (package | ||
| 15501 | (name "ruby-mustermann") | ||
| 15502 | (version "3.0.0") | ||
| 15503 | (source | ||
| 15504 | (origin | ||
| 15505 | (method url-fetch) | ||
| 15506 | (uri (rubygems-uri "mustermann" version)) | ||
| 15507 | (sha256 | ||
| 15508 | (base32 | ||
| 15509 | "0rwbq20s2gdh8dljjsgj5s6wqqfmnbclhvv2c2608brv7jm6jdbd")))) | ||
| 15510 | (build-system ruby-build-system) | ||
| 15511 | (arguments | ||
| 15512 | ;; No tests. | ||
| 15513 | '(#:tests? #f)) | ||
| 15514 | (synopsis "Library implementing patterns that behave like regular expressions") | ||
| 15515 | (description "Given a string pattern, Mustermann will turn it into an | ||
| 15516 | object that behaves like a regular expression and has comparable performance | ||
| 15517 | characteristics.") | ||
| 15518 | (home-page "https://github.com/sinatra/mustermann") | ||
| 15519 | (license license:expat))) | ||
| 15520 | |||
| 15521 | (define-public ruby-prettier-print | ||
| 15522 | (package | ||
| 15523 | (name "ruby-prettier-print") | ||
| 15524 | (version "1.2.1") | ||
| 15525 | (source (origin | ||
| 15526 | (method git-fetch) ;for tests | ||
| 15527 | (uri (git-reference | ||
| 15528 | (url "https://github.com/ruby-syntax-tree/prettier_print") | ||
| 15529 | (commit (string-append "v" version)))) | ||
| 15530 | (file-name (git-file-name name version)) | ||
| 15531 | (sha256 | ||
| 15532 | (base32 | ||
| 15533 | "00cg40jc0il1hpsrpsrqwhsxmx7day9lxp1ksrm08zxzsrz9ykqz")))) | ||
| 15534 | (build-system ruby-build-system) | ||
| 15535 | (native-inputs (list ruby-simplecov)) | ||
| 15536 | (synopsis "Compatible and featureful implementation of @code{prettyprint}") | ||
| 15537 | (description "This package provides a drop-in replacement for the | ||
| 15538 | @code{prettyprint} gem, with more functionality.") | ||
| 15539 | (home-page "https://github.com/ruby-syntax-tree/prettier_print") | ||
| 15540 | (license license:expat))) | ||
| 15541 | |||
| 15542 | (define-public ruby-html-proofer | ||
| 15543 | (package | ||
| 15544 | (name "ruby-html-proofer") | ||
| 15545 | (version "5.0.3") | ||
| 15546 | (source | ||
| 15547 | (origin | ||
| 15548 | (method git-fetch) | ||
| 15549 | (uri (git-reference | ||
| 15550 | (url "https://github.com/gjtorikian/html-proofer") | ||
| 15551 | (commit (string-append "v" version)))) | ||
| 15552 | (file-name (git-file-name name version)) | ||
| 15553 | (sha256 | ||
| 15554 | (base32 | ||
| 15555 | "01ksss3ikppc45z2q33bx8bb9785bqlp1rdqascaqg9mhs392adk")))) | ||
| 15556 | (build-system ruby-build-system) | ||
| 15557 | (arguments | ||
| 15558 | (list | ||
| 15559 | ;; Tests require vcr, which is under the Hippocratic license, which is | ||
| 15560 | ;; not a free software license (see: | ||
| 15561 | ;; https://www.gnu.org/licenses/license-list.html#hippocratic). | ||
| 15562 | #:tests? #f | ||
| 15563 | #:phases | ||
| 15564 | #~(modify-phases %standard-phases | ||
| 15565 | (add-after 'extract-gemspec 'relax-requirements | ||
| 15566 | (lambda _ | ||
| 15567 | (substitute* "html-proofer.gemspec" | ||
| 15568 | (("required_ruby_version = \\[\">= 3.1\"") | ||
| 15569 | "required_ruby_version = [\">= 2.6\"")))) | ||
| 15570 | (replace 'replace-git-ls-files | ||
| 15571 | (lambda _ | ||
| 15572 | ;; The html-proofer.gemspec file contains 'all_files = %x(git | ||
| 15573 | ;; ls-files -z).split("\x0")', but the original phase matches on | ||
| 15574 | ;; `git ls-files -z`. | ||
| 15575 | ;; TODO: Improve ruby-build-system patterns on core-updates. | ||
| 15576 | (substitute* "html-proofer.gemspec" | ||
| 15577 | (("git ls-files -z") | ||
| 15578 | "find . -type f -not -regex '.*\\.gem$' -print0 \ | ||
| 15579 | | sort -z | cut -zc3-"))))))) | ||
| 15580 | (propagated-inputs | ||
| 15581 | (list ruby-addressable | ||
| 15582 | ruby-mercenary | ||
| 15583 | ruby-nokogiri | ||
| 15584 | ruby-parallel | ||
| 15585 | ruby-rainbow | ||
| 15586 | ruby-typhoeus | ||
| 15587 | ruby-yell)) | ||
| 15588 | (synopsis "Test your rendered HTML files to make sure they're accurate") | ||
| 15589 | (description | ||
| 15590 | "HTMLProofer is a set of tests to validate your HTML output. These | ||
| 15591 | tests check if your image references are legitimate, if they have alt tags, | ||
| 15592 | if your internal links are working, and so on. It's intended to be an | ||
| 15593 | all-in-one checker for your output.") | ||
| 15594 | (home-page "https://github.com/gjtorikian/html-proofer") | ||
| 15595 | (license license:expat))) | ||
| 15596 | |||
| 15597 | (define-public ruby-htmlentities | ||
| 15598 | (package | ||
| 15599 | (name "ruby-htmlentities") | ||
| 15600 | (version "4.3.4") | ||
| 15601 | (source | ||
| 15602 | (origin | ||
| 15603 | (method url-fetch) | ||
| 15604 | (uri (rubygems-uri "htmlentities" version)) | ||
| 15605 | (sha256 | ||
| 15606 | (base32 | ||
| 15607 | "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj")))) | ||
| 15608 | (build-system ruby-build-system) | ||
| 15609 | (arguments | ||
| 15610 | `(#:phases | ||
| 15611 | (modify-phases %standard-phases | ||
| 15612 | (replace 'check | ||
| 15613 | (lambda _ | ||
| 15614 | (map (lambda (file) | ||
| 15615 | (invoke "ruby" "-Itest" file)) | ||
| 15616 | (find-files "./test" ".*_test\\.rb"))))))) | ||
| 15617 | (synopsis "Encode and decode (X)HTML entities") | ||
| 15618 | (description | ||
| 15619 | "This package provides a module for encoding and decoding (X)HTML | ||
| 15620 | entities.") | ||
| 15621 | (home-page "https://github.com/threedaymonk/htmlentities") | ||
| 15622 | (license license:expat))) | ||
| 15623 | |||
| 15624 | ;;; FIXME: Currently broken with rack 3, awaiting the merge for | ||
| 15625 | ;;; https://github.com/sinatra/sinatra/pull/1857 and a new release. | ||
| 15626 | (define-public ruby-sinatra | ||
| 15627 | (package | ||
| 15628 | (name "ruby-sinatra") | ||
| 15629 | (version "3.0.5") | ||
| 15630 | (source | ||
| 15631 | (origin | ||
| 15632 | (method url-fetch) | ||
| 15633 | (uri (rubygems-uri "sinatra" version)) | ||
| 15634 | (sha256 | ||
| 15635 | (base32 | ||
| 15636 | "1ryfja9yd3fq8n1p5yi3qnd0pjk7bkycmxxmbb1bj0axlr1pdv20")))) | ||
| 15637 | (build-system ruby-build-system) | ||
| 15638 | (propagated-inputs | ||
| 15639 | (list ruby-mustermann ruby-rack ruby-rack-protection ruby-tilt)) | ||
| 15640 | (synopsis "DSL for quick web applications creation in Ruby") | ||
| 15641 | (description | ||
| 15642 | "Sinatra is a DSL for quickly creating web applications in Ruby with | ||
| 15643 | minimal effort.") | ||
| 15644 | (home-page "https://sinatrarb.com/") | ||
| 15645 | (license license:expat))) | ||
| 15646 | |||
| 15647 | (define-public ruby-timeout | ||
| 15648 | (package | ||
| 15649 | (name "ruby-timeout") | ||
| 15650 | (version "0.4.3") | ||
| 15651 | (source (origin | ||
| 15652 | (method git-fetch) ;for tests | ||
| 15653 | (uri (git-reference | ||
| 15654 | (url "https://github.com/ruby/timeout") | ||
| 15655 | (commit (string-append "v" version)))) | ||
| 15656 | (file-name (git-file-name name version)) | ||
| 15657 | (sha256 | ||
| 15658 | (base32 | ||
| 15659 | "1mw2dwyp2j05fl2gmw8cj132kk145sbxj5i0whpxcnddlc8gw781")))) | ||
| 15660 | (build-system ruby-build-system) | ||
| 15661 | (native-inputs (list ruby-test-unit-ruby-core)) | ||
| 15662 | (synopsis "Timeout library for Ruby") | ||
| 15663 | (description "Timeout provides a way to auto-terminate a potentially | ||
| 15664 | long-running operation if it hasn't finished in a fixed amount of time.") | ||
| 15665 | (home-page "https://github.com/ruby/timeout") | ||
| 15666 | (license (list license:bsd-2)))) | ||
| 15667 | |||
| 15668 | (define-public ruby-thin | ||
| 15669 | (package | ||
| 15670 | (name "ruby-thin") | ||
| 15671 | (version "1.7.2") | ||
| 15672 | (source | ||
| 15673 | (origin | ||
| 15674 | (method url-fetch) | ||
| 15675 | (uri (rubygems-uri "thin" version)) | ||
| 15676 | (sha256 | ||
| 15677 | (base32 | ||
| 15678 | "0nagbf9pwy1vg09k6j4xqhbjjzrg5dwzvkn4ffvlj76fsn6vv61f")))) | ||
| 15679 | (build-system ruby-build-system) | ||
| 15680 | (arguments | ||
| 15681 | ;; No tests. | ||
| 15682 | '(#:tests? #f)) | ||
| 15683 | (propagated-inputs | ||
| 15684 | (list ruby-daemons ruby-eventmachine ruby-rack)) | ||
| 15685 | (synopsis "Thin and fast web server for Ruby") | ||
| 15686 | (description "Thin is a Ruby web server that glues together 3 Ruby libraries: | ||
| 15687 | @itemize | ||
| 15688 | @item the Mongrel parser, | ||
| 15689 | @item Event Machine, a network I/O library with high scalability, performance | ||
| 15690 | and stability, | ||
| 15691 | @item Rack, a minimal interface between webservers and Ruby frameworks. | ||
| 15692 | @end itemize\n") | ||
| 15693 | (home-page "https://github.com/macournoyer/thin") | ||
| 15694 | (license license:ruby))) | ||
| 15695 | |||
| 15696 | (define-public ruby-truthy | ||
| 15697 | (package | ||
| 15698 | (name "ruby-truthy") | ||
| 15699 | (version "1.0.0") | ||
| 15700 | (source (origin | ||
| 15701 | (method url-fetch) | ||
| 15702 | (uri (rubygems-uri "truthy" version)) | ||
| 15703 | (sha256 | ||
| 15704 | (base32 | ||
| 15705 | "19silgd65j3qwfk5w891p9wcmzdmi9ddm2kg5zbvvqn2h9lkfzmd")))) | ||
| 15706 | (build-system ruby-build-system) | ||
| 15707 | (arguments (list #:phases #~(modify-phases %standard-phases | ||
| 15708 | (replace 'check | ||
| 15709 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 15710 | (when tests? | ||
| 15711 | (substitute* "spec/spec_helper.rb" | ||
| 15712 | (("require 'spec'") | ||
| 15713 | "require 'rspec'")) | ||
| 15714 | (invoke "rspec"))))))) | ||
| 15715 | (native-inputs (list ruby-rspec)) | ||
| 15716 | (synopsis "Object truthiness-related Ruby library") | ||
| 15717 | (description "This library makes it easier to discover the truth values of | ||
| 15718 | various Ruby objects.") | ||
| 15719 | (home-page "https://github.com/ymendel/truthy") | ||
| 15720 | (license license:expat))) | ||
| 15721 | |||
| 15722 | (define-public ruby-skinny | ||
| 15723 | (package | ||
| 15724 | (name "ruby-skinny") | ||
| 15725 | (version "0.2.4") | ||
| 15726 | (source | ||
| 15727 | (origin | ||
| 15728 | (method url-fetch) | ||
| 15729 | (uri (rubygems-uri "skinny" version)) | ||
| 15730 | (sha256 | ||
| 15731 | (base32 | ||
| 15732 | "1y3yvx88ylgz4d2s1wskjk5rkmrcr15q3ibzp1q88qwzr5y493a9")))) | ||
| 15733 | (build-system ruby-build-system) | ||
| 15734 | (arguments | ||
| 15735 | '(#:tests? #f ; No included tests | ||
| 15736 | #:phases | ||
| 15737 | (modify-phases %standard-phases | ||
| 15738 | (add-before 'build 'patch-gemspec | ||
| 15739 | (lambda _ | ||
| 15740 | (substitute* ".gemspec" | ||
| 15741 | (("<eventmachine>.freeze, \\[\\\"~> 1.0.0\"") | ||
| 15742 | "<eventmachine>, [\">= 1.0.0\"") | ||
| 15743 | (("<thin>.freeze, \\[\\\"< 1.7\", ") "<thin>, ["))))))) | ||
| 15744 | (propagated-inputs | ||
| 15745 | (list ruby-eventmachine ruby-thin)) | ||
| 15746 | (synopsis "Simple, upgradable WebSockets for Ruby Thin") | ||
| 15747 | (description "Skinny is a simple, upgradable WebSockets for Ruby, using | ||
| 15748 | the Thin library.") | ||
| 15749 | (home-page "https://github.com/sj26/skinny") | ||
| 15750 | (license license:expat))) | ||
| 15751 | |||
| 15752 | (define-public ruby-sys-filesystem | ||
| 15753 | (package | ||
| 15754 | (name "ruby-sys-filesystem") | ||
| 15755 | (version "1.3.4") | ||
| 15756 | (source (origin | ||
| 15757 | (method url-fetch) | ||
| 15758 | (uri (rubygems-uri "sys-filesystem" version)) | ||
| 15759 | (sha256 | ||
| 15760 | (base32 | ||
| 15761 | "0mizqnsiagagmracadr16s5na2ks2j3ih1w0f3gp4ssrda6szl01")))) | ||
| 15762 | (build-system ruby-build-system) | ||
| 15763 | (arguments | ||
| 15764 | '(#:phases (modify-phases %standard-phases | ||
| 15765 | (add-before 'check 'set-HOME | ||
| 15766 | (lambda _ | ||
| 15767 | ;; Some tests attempt to stat $HOME. Let them. | ||
| 15768 | (setenv "HOME" "/tmp")))))) | ||
| 15769 | (propagated-inputs | ||
| 15770 | (list ruby-ffi)) | ||
| 15771 | (native-inputs | ||
| 15772 | (list ruby-mkmf-lite)) | ||
| 15773 | (synopsis "Gather file system information") | ||
| 15774 | (description | ||
| 15775 | "The @code{sys-filesystem} library provides a cross-platform interface | ||
| 15776 | for gathering file system information, such as disk space and mount points.") | ||
| 15777 | (home-page "https://github.com/djberg96/sys-filesystem") | ||
| 15778 | (license license:asl2.0))) | ||
| 15779 | |||
| 15780 | (define-public mailcatcher | ||
| 15781 | (package | ||
| 15782 | (name "mailcatcher") | ||
| 15783 | (version "0.7.1") | ||
| 15784 | (source | ||
| 15785 | (origin | ||
| 15786 | (method url-fetch) | ||
| 15787 | (uri (rubygems-uri "mailcatcher" version)) | ||
| 15788 | (sha256 | ||
| 15789 | (base32 | ||
| 15790 | "02w1ycyfv7x0sh9799lz7xa65p5qvl5z4pa8a7prb68h2zwkfq0n")))) | ||
| 15791 | (build-system ruby-build-system) | ||
| 15792 | (arguments | ||
| 15793 | ;; Tests require web/assets which is not included in the output. We | ||
| 15794 | ;; might be able to fix this by adding the Git repository to the GEM_PATH | ||
| 15795 | ;; of the tests. See ruby-mysql2. | ||
| 15796 | '(#:tests? #f | ||
| 15797 | #:phases | ||
| 15798 | (modify-phases %standard-phases | ||
| 15799 | (add-before 'build 'patch-gemspec | ||
| 15800 | (lambda _ | ||
| 15801 | (substitute* ".gemspec" | ||
| 15802 | (("<eventmachine>.freeze, \\[\\\"= 1.0.9.1") | ||
| 15803 | "<eventmachine>, [\">= 1.0.9.1") | ||
| 15804 | (("<rack>.freeze, \\[\\\"~> 1.5") "<rack>, [\">= 1.5") | ||
| 15805 | (("<thin>.freeze, \\[\\\"~> 1.5.0") "<thin>, [\">= 1.5.0") | ||
| 15806 | (("<sinatra>.freeze, \\[\\\"~> 1.2") "<sinatra>, [\">= 1.2")))) | ||
| 15807 | (add-before 'build 'loosen-dependency-contraint | ||
| 15808 | (lambda _ | ||
| 15809 | (substitute* "lib/mail_catcher.rb" | ||
| 15810 | (("\"eventmachine\", \"1.0.9.1\"") "\"eventmachine\", \">= 1.0.9.1\"") | ||
| 15811 | (("\"rack\", \"~> 1.5\"") "\"rack\", \">= 1.5\"") | ||
| 15812 | (("\"thin\", \"~> 1.5.0\"") "\"thin\", \">= 1.5.0\"") | ||
| 15813 | (("\"sinatra\", \"~> 1.2\"") "\"sinatra\", \">= 1.2\""))))))) | ||
| 15814 | (inputs | ||
| 15815 | (list ruby-eventmachine | ||
| 15816 | ruby-mail | ||
| 15817 | ruby-rack | ||
| 15818 | ruby-sinatra | ||
| 15819 | ruby-skinny | ||
| 15820 | ruby-sqlite3 | ||
| 15821 | ruby-thin)) | ||
| 15822 | (synopsis "SMTP server which catches messages to display them a browser") | ||
| 15823 | (description | ||
| 15824 | "MailCatcher runs a super simple SMTP server which catches any message | ||
| 15825 | sent to it to display in a web interface. Run mailcatcher, set your favourite | ||
| 15826 | app to deliver to smtp://127.0.0.1:1025 instead of your default SMTP server, | ||
| 15827 | then check out http://127.0.0.1:1080 to see the mail.") | ||
| 15828 | (home-page "https://mailcatcher.me") | ||
| 15829 | (license license:expat))) | ||
| 15830 | |||
| 15831 | (define-public ruby-backport | ||
| 15832 | (package | ||
| 15833 | (name "ruby-backport") | ||
| 15834 | (version "1.1.2") | ||
| 15835 | (source | ||
| 15836 | (origin | ||
| 15837 | ;; The gem does not include test code, so fetch from the Git repository. | ||
| 15838 | (method git-fetch) | ||
| 15839 | (uri (git-reference | ||
| 15840 | (url "https://github.com/castwide/backport") | ||
| 15841 | (commit (string-append "v" version)))) | ||
| 15842 | (file-name (git-file-name name version)) | ||
| 15843 | (sha256 | ||
| 15844 | (base32 "18fpg1n7n2z02ykz9v1x1q0cqa2lvivf8ygka768s01q1r9wfwv2")))) | ||
| 15845 | (build-system ruby-build-system) | ||
| 15846 | (arguments | ||
| 15847 | `(#:test-target "spec")) | ||
| 15848 | (native-inputs | ||
| 15849 | (list bundler ruby-rspec)) | ||
| 15850 | (inputs | ||
| 15851 | (list ruby-simplecov)) | ||
| 15852 | (synopsis "Pure Ruby library for event-driven IO") | ||
| 15853 | (description | ||
| 15854 | "This package provides a pure Ruby library for event-driven IO.") | ||
| 15855 | (home-page "https://github.com/castwide/backport") | ||
| 15856 | (license license:expat))) | ||
| 15857 | |||
| 15858 | (define-public ruby-json-schema | ||
| 15859 | (package | ||
| 15860 | (name "ruby-json-schema") | ||
| 15861 | (version "2.8.1") | ||
| 15862 | (source | ||
| 15863 | (origin | ||
| 15864 | (method url-fetch) | ||
| 15865 | (uri (rubygems-uri "json-schema" version)) | ||
| 15866 | (sha256 | ||
| 15867 | (base32 | ||
| 15868 | "1yv5lfmr2nzd14af498xqd5p89f3g080q8wk0klr3vxgypsikkb5")))) | ||
| 15869 | (build-system ruby-build-system) | ||
| 15870 | (arguments | ||
| 15871 | `(#:tests? #f ; no tests | ||
| 15872 | #:phases | ||
| 15873 | (modify-phases %standard-phases | ||
| 15874 | (replace 'build | ||
| 15875 | (lambda _ | ||
| 15876 | (invoke "gem" "build" ".gemspec")))))) | ||
| 15877 | (propagated-inputs | ||
| 15878 | (list ruby-addressable)) | ||
| 15879 | (synopsis "Ruby JSON Schema Validator") | ||
| 15880 | (description "This library provides Ruby with an interface for validating | ||
| 15881 | JSON objects against a JSON schema conforming to JSON Schema Draft 4. Legacy | ||
| 15882 | support for JSON Schema Draft 3, JSON Schema Draft 2, and JSON Schema Draft 1 | ||
| 15883 | is also included.") | ||
| 15884 | (home-page "https://github.com/ruby-json-schema/json-schema") | ||
| 15885 | (license license:expat))) | ||
| 15886 | |||
| 15887 | (define-public swagger-diff | ||
| 15888 | (package | ||
| 15889 | (name "swagger-diff") | ||
| 15890 | (version "2.0.0") | ||
| 15891 | (source | ||
| 15892 | (origin | ||
| 15893 | (method url-fetch) | ||
| 15894 | (uri (rubygems-uri "swagger-diff" version)) | ||
| 15895 | (sha256 | ||
| 15896 | (base32 | ||
| 15897 | "18kbrijkafs3vfsbaqz0cqfj7jrz3aj8xr4fgn5if63wlximybv2")))) | ||
| 15898 | (build-system ruby-build-system) | ||
| 15899 | (arguments | ||
| 15900 | (list | ||
| 15901 | #:test-target "spec" | ||
| 15902 | #:phases | ||
| 15903 | #~(modify-phases %standard-phases | ||
| 15904 | ;; Don't run or require rubocop, the code linting tool, as this is a | ||
| 15905 | ;; bit unnecessary. | ||
| 15906 | (add-after 'unpack 'dont-run-rubocop | ||
| 15907 | (lambda _ | ||
| 15908 | (substitute* "Rakefile" | ||
| 15909 | ((".*rubocop.*") "") | ||
| 15910 | ((".*RuboCop.*") ""))))))) | ||
| 15911 | (propagated-inputs | ||
| 15912 | (list ruby-json-schema)) | ||
| 15913 | (native-inputs | ||
| 15914 | (list bundler ruby-rspec-core ruby-rspec-expectations)) | ||
| 15915 | (synopsis | ||
| 15916 | "Compare Open API Initiative specification files") | ||
| 15917 | (description | ||
| 15918 | "Swagger::Diff is a utility for comparing two different Open API | ||
| 15919 | Initiative (OAI) specifications (formerly known as Swagger specifications). | ||
| 15920 | It is intended to determine whether a newer API specification is | ||
| 15921 | backwards-compatible with an older API specification.") | ||
| 15922 | (home-page "https://github.com/civisanalytics/swagger-diff") | ||
| 15923 | (license license:bsd-3))) | ||
| 15924 | |||
| 15925 | (define-public ruby-reverse-markdown | ||
| 15926 | (package | ||
| 15927 | (name "ruby-reverse-markdown") | ||
| 15928 | (version "1.1.0") | ||
| 15929 | (source | ||
| 15930 | (origin | ||
| 15931 | (method url-fetch) | ||
| 15932 | (uri (rubygems-uri "reverse_markdown" version)) | ||
| 15933 | (sha256 | ||
| 15934 | (base32 | ||
| 15935 | "0w7y5n74daajvl9gixr91nh8670d7mkgspkk3ql71m8azq3nffbg")))) | ||
| 15936 | (build-system ruby-build-system) | ||
| 15937 | (propagated-inputs | ||
| 15938 | (list ruby-nokogiri)) | ||
| 15939 | (native-inputs | ||
| 15940 | (list bundler ruby-rspec ruby-kramdown ruby-simplecov)) | ||
| 15941 | (arguments | ||
| 15942 | `(#:phases | ||
| 15943 | (modify-phases %standard-phases | ||
| 15944 | (replace 'check | ||
| 15945 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 15946 | (when tests? | ||
| 15947 | (invoke "rspec"))))))) | ||
| 15948 | (synopsis "Convert HTML into Markdown") | ||
| 15949 | (description | ||
| 15950 | "This Ruby module allows you to map simple HTML back into | ||
| 15951 | Markdown---e.g., if you want to import existing HTML data in your | ||
| 15952 | application.") | ||
| 15953 | (home-page "https://github.com/xijo/reverse_markdown") | ||
| 15954 | (license license:wtfpl2))) | ||
| 15955 | |||
| 15956 | (define-public ruby-solargraph | ||
| 15957 | (package | ||
| 15958 | (name "ruby-solargraph") | ||
| 15959 | (version "0.40.3") | ||
| 15960 | (source | ||
| 15961 | (origin | ||
| 15962 | (method url-fetch) | ||
| 15963 | (uri (rubygems-uri "solargraph" version)) | ||
| 15964 | (sha256 | ||
| 15965 | (base32 | ||
| 15966 | "1gf049rm0yvw4r8r5yyi890idbfg8qh0dikqx5prvkh11srl73bz")))) | ||
| 15967 | (build-system ruby-build-system) | ||
| 15968 | (propagated-inputs | ||
| 15969 | (list ruby-backport | ||
| 15970 | bundler | ||
| 15971 | ruby-benchmark | ||
| 15972 | ruby-e2mmap | ||
| 15973 | ruby-jaro-winkler | ||
| 15974 | ruby-kramdown | ||
| 15975 | ruby-kramdown-parser-gfm | ||
| 15976 | ruby-maruku | ||
| 15977 | ruby-nokogiri | ||
| 15978 | ruby-parser | ||
| 15979 | ruby-reverse-markdown | ||
| 15980 | ruby-rubocop | ||
| 15981 | ruby-thor | ||
| 15982 | ruby-tilt | ||
| 15983 | ruby-yard)) | ||
| 15984 | (native-inputs | ||
| 15985 | (list ruby-rspec ruby-pry ruby-simplecov ruby-webmock)) | ||
| 15986 | ;; FIXME: can't figure out how to run the tests properly: | ||
| 15987 | |||
| 15988 | ;; An error occurred while loading spec_helper. | ||
| 15989 | ;; Failure/Error: return gem_original_require(path) | ||
| 15990 | ;; LoadError: | ||
| 15991 | ;; cannot load such file -- spec_helper | ||
| 15992 | (arguments | ||
| 15993 | '(#:tests? #f | ||
| 15994 | #:phases | ||
| 15995 | (modify-phases %standard-phases | ||
| 15996 | (replace 'check | ||
| 15997 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 15998 | (when tests? | ||
| 15999 | (invoke "rspec"))))))) | ||
| 16000 | (synopsis | ||
| 16001 | "IDE tools for code completion, inline documentation, and static analysis") | ||
| 16002 | (description | ||
| 16003 | "Solargraph provides a comprehensive suite of tools for Ruby | ||
| 16004 | programming: intellisense, diagnostics, inline documentation, and type | ||
| 16005 | checking.") | ||
| 16006 | (home-page "https://solargraph.org/") | ||
| 16007 | (license license:expat))) | ||
| 16008 | |||
| 16009 | (define-public ruby-wayback-machine-downloader | ||
| 16010 | (package | ||
| 16011 | (name "ruby-wayback-machine-downloader") | ||
| 16012 | (version "2.2.1") | ||
| 16013 | (source | ||
| 16014 | (origin | ||
| 16015 | (method url-fetch) | ||
| 16016 | (uri (rubygems-uri | ||
| 16017 | "wayback_machine_downloader" | ||
| 16018 | version)) | ||
| 16019 | (sha256 | ||
| 16020 | (base32 | ||
| 16021 | "12kb1qmvmmsaihqab1prn6cmynkn6cgb4vf41mgv22wkcgv5wgk2")))) | ||
| 16022 | (build-system ruby-build-system) | ||
| 16023 | (arguments | ||
| 16024 | '(#:tests? #f)) ; no tests | ||
| 16025 | (synopsis "Download archived websites from the Wayback Machine") | ||
| 16026 | (description | ||
| 16027 | "Wayback Machine Downloader is a command line tool for downloading | ||
| 16028 | websites from the Internet Archive's Wayback Machine (archive.org). | ||
| 16029 | It allows fine grained control over what to download by specifying | ||
| 16030 | which snapshots to consider and what files to include.") | ||
| 16031 | (home-page | ||
| 16032 | "https://github.com/hartator/wayback-machine-downloader") | ||
| 16033 | (license license:expat))) | ||
| 16034 | |||
| 16035 | (define-public ruby-zeitwerk | ||
| 16036 | (package | ||
| 16037 | (name "ruby-zeitwerk") | ||
| 16038 | (version "2.7.1") | ||
| 16039 | (source | ||
| 16040 | (origin | ||
| 16041 | (method git-fetch) ;for tests | ||
| 16042 | (uri (git-reference | ||
| 16043 | (url "https://github.com/fxn/zeitwerk") | ||
| 16044 | (commit (string-append "v" version)))) | ||
| 16045 | (file-name (git-file-name name version)) | ||
| 16046 | (sha256 | ||
| 16047 | (base32 | ||
| 16048 | "19qmcdpbh4bl878zd1w19064yjkpb8sxaydcasqfa7p8cfg3hnsr")))) | ||
| 16049 | (build-system ruby-build-system) | ||
| 16050 | (native-inputs | ||
| 16051 | (list ruby-minitest | ||
| 16052 | ruby-minitest-focus | ||
| 16053 | ruby-minitest-proveit | ||
| 16054 | ruby-minitest-reporters | ||
| 16055 | ruby-warning)) | ||
| 16056 | (synopsis "Efficient and thread-safe code loader for Ruby") | ||
| 16057 | (description | ||
| 16058 | "Zeitwerk implements constant autoloading with Ruby semantics. Each gem | ||
| 16059 | and application may have their own independent autoloader, with its own | ||
| 16060 | configuration, inflector, and logger. Supports autoloading, reloading, and | ||
| 16061 | eager loading.") | ||
| 16062 | (home-page "https://github.com/fxn/zeitwerk") | ||
| 16063 | (license license:expat))) | ||
| 16064 | |||
| 16065 | (define-public ruby-warning | ||
| 16066 | (package | ||
| 16067 | (name "ruby-warning") | ||
| 16068 | (version "1.5.0") | ||
| 16069 | (source | ||
| 16070 | (origin | ||
| 16071 | (method url-fetch) | ||
| 16072 | (uri (rubygems-uri "warning" version)) | ||
| 16073 | (sha256 | ||
| 16074 | (base32 "0lwcf7fsz1sda1fdbqq1i4q9kzg4f5vwrzgfg1vpa1hcxagw84hg")))) | ||
| 16075 | (build-system ruby-build-system) | ||
| 16076 | (arguments '(#:tests? #f)) ; No tests bundled. | ||
| 16077 | (synopsis "Custom processing for warnings") | ||
| 16078 | (description | ||
| 16079 | "This package adds custom processing for warnings for Ruby, including the | ||
| 16080 | ability to ignore specific warning messages, ignore warnings in specific | ||
| 16081 | files/directories, include backtraces with warnings, treat warnings as errors, | ||
| 16082 | deduplicate warnings, and add custom handling for all warnings in specific | ||
| 16083 | files/directories.") | ||
| 16084 | (home-page "https://github.com/jeremyevans/ruby-warning") | ||
| 16085 | (license license:expat))) | ||
| 16086 | |||
| 16087 | (define-public ruby-wwtd | ||
| 16088 | (package | ||
| 16089 | (name "ruby-wwtd") | ||
| 16090 | (version "1.4.1") | ||
| 16091 | (home-page "https://github.com/grosser/wwtd") | ||
| 16092 | (source (origin | ||
| 16093 | (method git-fetch) | ||
| 16094 | (uri (git-reference | ||
| 16095 | (url home-page) | ||
| 16096 | (commit (string-append "v" version)))) | ||
| 16097 | (file-name (git-file-name name version)) | ||
| 16098 | (sha256 | ||
| 16099 | (base32 | ||
| 16100 | "0gw7vfnbb41cy67yw82zji3jkhfsgmzcgzaszm99ax77y18wclf2")) | ||
| 16101 | (modules '((guix build utils))) | ||
| 16102 | (snippet | ||
| 16103 | '(begin | ||
| 16104 | ;; Remove bundled library. | ||
| 16105 | (delete-file "spec/rake-12.3.0.gem"))))) | ||
| 16106 | (build-system ruby-build-system) | ||
| 16107 | (arguments | ||
| 16108 | '(;; XXX: Tests need multiple versions of ruby, wants to run | ||
| 16109 | ;; `bundle install`, etc. | ||
| 16110 | #:tests? #f | ||
| 16111 | #:phases (modify-phases %standard-phases | ||
| 16112 | (replace 'replace-git-ls-files | ||
| 16113 | (lambda _ | ||
| 16114 | (substitute* "wwtd.gemspec" | ||
| 16115 | (("git ls-files lib/ bin/`") | ||
| 16116 | "find lib/ bin/ -type f |sort`")))) | ||
| 16117 | (add-before 'check 'remove-version-constraints | ||
| 16118 | (lambda _ | ||
| 16119 | (delete-file "Gemfile.lock"))) | ||
| 16120 | (replace 'check | ||
| 16121 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 16122 | (if tests? | ||
| 16123 | (invoke "rspec" "spec/") | ||
| 16124 | (format #t "test suite not run~%"))))))) | ||
| 16125 | (native-inputs | ||
| 16126 | (list ruby-bump ruby-rspec)) | ||
| 16127 | (synopsis "Run @file{.travis.yml} files locally") | ||
| 16128 | (description | ||
| 16129 | "WWTD is a @dfn{Travis Simulator} that lets you run test matrices | ||
| 16130 | defined in @file{.travis.yml} on your local machine, using @code{rvm}, | ||
| 16131 | @code{rbenv}, or @code{chruby} to test different versions of Ruby.") | ||
| 16132 | (license license:expat))) | ||
| 16133 | |||
| 16134 | (define-public ruby-rugged | ||
| 16135 | ;; The last release is old and doesn't build anymore (see: | ||
| 16136 | ;; https://github.com/libgit2/rugged/issues/951). | ||
| 16137 | (let ((commit "6379f23cedd5f527cf6a5c229627e366b590a22d") | ||
| 16138 | (revision "0")) | ||
| 16139 | (package | ||
| 16140 | (name "ruby-rugged") | ||
| 16141 | (version (git-version "1.6.2" revision commit)) | ||
| 16142 | (source (origin | ||
| 16143 | (method git-fetch) | ||
| 16144 | (uri (git-reference | ||
| 16145 | (url "https://github.com/libgit2/rugged") | ||
| 16146 | (commit commit))) | ||
| 16147 | (file-name (git-file-name name version)) | ||
| 16148 | (sha256 | ||
| 16149 | (base32 | ||
| 16150 | "0yac7vm0l2jsdsxf2k7xbny4iyzsy8fhiy2g5sphhffp7xgynny8")))) | ||
| 16151 | (build-system ruby-build-system) | ||
| 16152 | (arguments | ||
| 16153 | (list #:gem-flags | ||
| 16154 | #~(list "--" "--use-system-libraries") | ||
| 16155 | #:phases | ||
| 16156 | #~(modify-phases %standard-phases | ||
| 16157 | (add-after 'unpack 'adjust-extconf.rb | ||
| 16158 | (lambda _ | ||
| 16159 | ;; Neither using --with-git2-dir=$prefix nor providing | ||
| 16160 | ;; pkg-config allows locating the libgit2 prefix (see: | ||
| 16161 | ;; https://github.com/libgit2/rugged/issues/955). | ||
| 16162 | (substitute* "ext/rugged/extconf.rb" | ||
| 16163 | (("LIBGIT2_DIR = File.join.*'vendor', 'libgit2'.*") | ||
| 16164 | (format #f "LIBGIT2_DIR = ~s~%" | ||
| 16165 | #$(this-package-input "libgit2")))))) | ||
| 16166 | (delete 'check) ;moved after the install phase | ||
| 16167 | (add-after 'install 'check | ||
| 16168 | (assoc-ref %standard-phases 'check)) | ||
| 16169 | (add-before 'check 'set-GEM_PATH | ||
| 16170 | (lambda _ | ||
| 16171 | (setenv "GEM_PATH" (string-append | ||
| 16172 | (getenv "GEM_PATH") ":" | ||
| 16173 | #$output "/lib/ruby/vendor_ruby")))) | ||
| 16174 | (add-before 'check 'disable-problematic-tests | ||
| 16175 | (lambda _ | ||
| 16176 | (with-directory-excursion "test" | ||
| 16177 | (for-each delete-file | ||
| 16178 | ;; These tests require an actual libgit2 git | ||
| 16179 | ;; repository checkout. | ||
| 16180 | '("blame_test.rb" | ||
| 16181 | "blob_test.rb" | ||
| 16182 | "cherrypick_test.rb" | ||
| 16183 | "config_test.rb" | ||
| 16184 | "commit_test.rb" | ||
| 16185 | "diff_test.rb" | ||
| 16186 | "index_test.rb" | ||
| 16187 | "merge_test.rb" | ||
| 16188 | "note_test.rb" | ||
| 16189 | "object_test.rb" | ||
| 16190 | "patch_test.rb" | ||
| 16191 | "rebase_test.rb" | ||
| 16192 | "reference_test.rb" | ||
| 16193 | "remote_test.rb" | ||
| 16194 | "repo_apply_test.rb" | ||
| 16195 | "repo_ignore_test.rb" | ||
| 16196 | "repo_pack_test.rb" | ||
| 16197 | "repo_reset_test.rb" | ||
| 16198 | "repo_test.rb" | ||
| 16199 | "revert_test.rb" | ||
| 16200 | "settings_test.rb" | ||
| 16201 | "status_test.rb" | ||
| 16202 | "submodule_test.rb" | ||
| 16203 | "tag_test.rb" | ||
| 16204 | "tree_test.rb" | ||
| 16205 | "walker_test.rb")) | ||
| 16206 | (delete-file-recursively "online"))))))) | ||
| 16207 | (native-inputs (list git-minimal/pinned ruby-rake-compiler)) | ||
| 16208 | (inputs (list libgit2)) | ||
| 16209 | (synopsis "Ruby bindings to the libgit2 linkable C Git library") | ||
| 16210 | (description "Rugged is a library for accessing libgit2 in Ruby. It gives | ||
| 16211 | you the speed and portability of libgit2 with the beauty of the Ruby | ||
| 16212 | language.") | ||
| 16213 | (home-page "https://www.rubydoc.info/gems/rugged") | ||
| 16214 | (license license:expat)))) | ||
| 16215 | |||
| 16216 | (define-public ruby-yell | ||
| 16217 | (package | ||
| 16218 | (name "ruby-yell") | ||
| 16219 | (version "2.2.2") | ||
| 16220 | (source | ||
| 16221 | (origin | ||
| 16222 | (method url-fetch) | ||
| 16223 | (uri (rubygems-uri "yell" version)) | ||
| 16224 | (sha256 | ||
| 16225 | (base32 | ||
| 16226 | "1g16kcdhdfvczn7x81jiq6afg3bdxmb73skqjyjlkp5nqcy6y5hx")))) | ||
| 16227 | (build-system ruby-build-system) | ||
| 16228 | (arguments | ||
| 16229 | `(#:phases | ||
| 16230 | (modify-phases %standard-phases | ||
| 16231 | (replace 'check | ||
| 16232 | (lambda _ | ||
| 16233 | (invoke "rake" "examples")))))) ; there is no test target. | ||
| 16234 | (synopsis | ||
| 16235 | "Extensible logging library for Ruby") | ||
| 16236 | (description | ||
| 16237 | "Yell is a comprehensive logging replacement for Ruby. It defines | ||
| 16238 | multiple adapters, various log level combinations and message formatting | ||
| 16239 | options.") | ||
| 16240 | (home-page "https://github.com/rudionrails/yell") | ||
| 16241 | (license license:expat))) | ||
| 16242 | |||
| 16243 | (define-public ruby-e2mmap | ||
| 16244 | (package | ||
| 16245 | (name "ruby-e2mmap") | ||
| 16246 | (version "0.1.0") | ||
| 16247 | (source | ||
| 16248 | (origin | ||
| 16249 | (method url-fetch) | ||
| 16250 | (uri (rubygems-uri "e2mmap" version)) | ||
| 16251 | (sha256 | ||
| 16252 | (base32 | ||
| 16253 | "0n8gxjb63dck3vrmsdcqqll7xs7f3wk78mw8w0gdk9wp5nx6pvj5")))) | ||
| 16254 | (build-system ruby-build-system) | ||
| 16255 | (arguments | ||
| 16256 | `(#:tests? #f)) ;; There is a rakefile but no tests | ||
| 16257 | (synopsis | ||
| 16258 | "Module for defining custom exceptions with specific messages") | ||
| 16259 | (description | ||
| 16260 | "Exception2MessageMapper (e2mmap) is a helper module for easily defining | ||
| 16261 | exceptions with predefined messages.") | ||
| 16262 | (home-page "https://github.com/ruby/e2mmap") | ||
| 16263 | (license license:bsd-2))) | ||
| 16264 | |||
| 16265 | (define-public ruby-benchmark | ||
| 16266 | (package | ||
| 16267 | (name "ruby-benchmark") | ||
| 16268 | (version "0.4.0") | ||
| 16269 | (source | ||
| 16270 | (origin | ||
| 16271 | (method url-fetch) | ||
| 16272 | (uri (rubygems-uri "benchmark" version)) | ||
| 16273 | (sha256 | ||
| 16274 | (base32 | ||
| 16275 | "0jl71qcgamm96dzyqk695j24qszhcc7liw74qc83fpjljp2gh4hg")))) | ||
| 16276 | (build-system ruby-build-system) | ||
| 16277 | (synopsis "Performance benchmarking library") | ||
| 16278 | (description "This package provides methods for benchmarking Ruby code, | ||
| 16279 | giving detailed reports on the time taken for each task.") | ||
| 16280 | (home-page "https://github.com/ruby/benchmark") | ||
| 16281 | (license license:bsd-2))) | ||
| 16282 | |||
| 16283 | (define-public ruby-jekyll-feed | ||
| 16284 | (package | ||
| 16285 | (name "ruby-jekyll-feed") | ||
| 16286 | (version "0.15.1") | ||
| 16287 | (source | ||
| 16288 | (origin | ||
| 16289 | (method url-fetch) | ||
| 16290 | (uri (rubygems-uri "jekyll-feed" version)) | ||
| 16291 | (sha256 | ||
| 16292 | (base32 | ||
| 16293 | "1zxqkrnix0xiw98531h5ga6h69jhzlx2jh9qhvcl67p8nq3sgza9")))) | ||
| 16294 | (build-system ruby-build-system) | ||
| 16295 | (arguments | ||
| 16296 | `(#:tests? #false)) ;there are none | ||
| 16297 | (propagated-inputs | ||
| 16298 | (list jekyll)) | ||
| 16299 | (synopsis | ||
| 16300 | "Jekyll plugin to generate an Atom feed of your Jekyll posts") | ||
| 16301 | (description | ||
| 16302 | "This package provides a Jekyll plugin to generate an Atom feed | ||
| 16303 | of your Jekyll posts.") | ||
| 16304 | (home-page | ||
| 16305 | "https://github.com/jekyll/jekyll-feed") | ||
| 16306 | (license license:expat))) | ||
| 16307 | |||
| 16308 | (define-public ruby-jekyll-sitemap | ||
| 16309 | (package | ||
| 16310 | (name "ruby-jekyll-sitemap") | ||
| 16311 | (version "1.4.0") | ||
| 16312 | (source | ||
| 16313 | (origin | ||
| 16314 | (method url-fetch) | ||
| 16315 | (uri (rubygems-uri "jekyll-sitemap" version)) | ||
| 16316 | (sha256 | ||
| 16317 | (base32 | ||
| 16318 | "0622rwsn5i0m5xcyzdn86l68wgydqwji03lqixdfm1f1xdfqrq0d")))) | ||
| 16319 | (build-system ruby-build-system) | ||
| 16320 | (arguments | ||
| 16321 | `(#:tests? #false)) ;there are none | ||
| 16322 | (propagated-inputs | ||
| 16323 | (list jekyll)) | ||
| 16324 | (synopsis | ||
| 16325 | "Automatically generate a sitemap.xml for your Jekyll site") | ||
| 16326 | (description | ||
| 16327 | "This package provides a Jekyll plugin to silently generate | ||
| 16328 | a sitemaps.org compliant sitemap for your Jekyll site.") | ||
| 16329 | (home-page | ||
| 16330 | "https://github.com/jekyll/jekyll-sitemap") | ||
| 16331 | (license license:expat))) | ||
| 16332 | |||
| 16333 | (define-public ruby-jekyll-seo-tag | ||
| 16334 | (package | ||
| 16335 | (name "ruby-jekyll-seo-tag") | ||
| 16336 | (version "2.7.1") | ||
| 16337 | (source | ||
| 16338 | (origin | ||
| 16339 | (method url-fetch) | ||
| 16340 | (uri (rubygems-uri "jekyll-seo-tag" version)) | ||
| 16341 | (sha256 | ||
| 16342 | (base32 | ||
| 16343 | "0fsi75hymk2wswy216fs224p5ycrzjw1kshw1bsl5czhv42wr2w3")))) | ||
| 16344 | (build-system ruby-build-system) | ||
| 16345 | (arguments | ||
| 16346 | `(#:tests? #false)) | ||
| 16347 | (propagated-inputs | ||
| 16348 | (list jekyll)) | ||
| 16349 | (synopsis | ||
| 16350 | "Jekyll plugin to add metadata tags for search engines and social networks") | ||
| 16351 | (description | ||
| 16352 | "This package provides a Jekyll plugin to add metadata tags for search engines | ||
| 16353 | and social networks to better index and display your site's content.") | ||
| 16354 | (home-page | ||
| 16355 | "https://github.com/jekyll/jekyll-seo-tag") | ||
| 16356 | (license license:expat))) | ||
| 16357 | |||
| 16358 | (define-public ruby-taskjuggler | ||
| 16359 | (package | ||
| 16360 | (name "ruby-taskjuggler") | ||
| 16361 | (version "3.8.1") | ||
| 16362 | (source | ||
| 16363 | (origin | ||
| 16364 | (method url-fetch) | ||
| 16365 | (uri (rubygems-uri "taskjuggler" version)) | ||
| 16366 | (sha256 | ||
| 16367 | (base32 | ||
| 16368 | "16d5vgz54all8vl3haqy6j69plny3np4kc3wq7wy3xa3i0h7v60z")))) | ||
| 16369 | (build-system ruby-build-system) | ||
| 16370 | (native-inputs (list ruby-rspec tzdata-for-tests)) | ||
| 16371 | (propagated-inputs | ||
| 16372 | (list ruby-mail ruby-term-ansicolor)) | ||
| 16373 | (arguments | ||
| 16374 | '(#:phases (modify-phases %standard-phases | ||
| 16375 | (replace 'replace-git-ls-files | ||
| 16376 | (lambda _ | ||
| 16377 | (substitute* "tasks/rdoc.rake" | ||
| 16378 | (("`git ls-files -- lib`") | ||
| 16379 | "`find lib/ -type f |sort`")))) | ||
| 16380 | (add-before 'check 'tzdir-setup | ||
| 16381 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 16382 | (setenv "TZDIR" | ||
| 16383 | (string-append (assoc-ref inputs "tzdata") | ||
| 16384 | "/share/zoneinfo")))) | ||
| 16385 | (add-before 'check 'delete-test-BatchProcessor | ||
| 16386 | ;; test_BatchProcessor fails with exception: | ||
| 16387 | ;; run> terminated with exception (report_on_exception is true) | ||
| 16388 | (lambda _ | ||
| 16389 | (delete-file "test/test_BatchProcessor.rb")))))) | ||
| 16390 | (synopsis | ||
| 16391 | "Project management command line tool with a domain specific language") | ||
| 16392 | (description | ||
| 16393 | "TaskJuggler (tj3) is a project management tool for project planning and | ||
| 16394 | tracking using a domain specific language; projects are plain text files | ||
| 16395 | written using your favourite text editor. It includes reporting in HTML, CSV | ||
| 16396 | or iCalendar format and an email based status tracking system to send and | ||
| 16397 | receive time sheets from collaborators. | ||
| 16398 | |||
| 16399 | It covers the complete spectrum of project management tasks from the first | ||
| 16400 | idea to the completion of the project. It assists you during project scoping, | ||
| 16401 | resource assignment, cost and revenue planning, risk and communication | ||
| 16402 | management, status tracking and reporting.") | ||
| 16403 | (home-page "https://taskjuggler.org") | ||
| 16404 | (license license:gpl2))) | ||
| 16405 | |||
| 16406 | (define-public ruby-cmath | ||
| 16407 | (package | ||
| 16408 | (name "ruby-cmath") | ||
| 16409 | (version "1.0.0") | ||
| 16410 | (source | ||
| 16411 | (origin | ||
| 16412 | (method url-fetch) | ||
| 16413 | (uri (rubygems-uri "cmath" version)) | ||
| 16414 | (sha256 | ||
| 16415 | (base32 | ||
| 16416 | "1xkz6xyhpkjbdvpdib8450w62rls1mjryz0gzbbnadxkxn82nb8m")))) | ||
| 16417 | (build-system ruby-build-system) | ||
| 16418 | (arguments | ||
| 16419 | `(#:tests? #false)) | ||
| 16420 | (native-inputs | ||
| 16421 | (list bundler ruby-rake-compiler)) | ||
| 16422 | (synopsis "Trigonometric functions for complex numbers") | ||
| 16423 | (description | ||
| 16424 | "This gem is a library that provides trigonometric and transcendental | ||
| 16425 | functions for complex numbers. The functions in this module accept integers, | ||
| 16426 | floating-point numbers or complex numbers as arguments.") | ||
| 16427 | (home-page "https://github.com/ruby/cmath") | ||
| 16428 | (license license:bsd-2))) | ||
| 16429 | |||
| 16430 | (define-public ruby-sucker-punch | ||
| 16431 | (package | ||
| 16432 | (name "ruby-sucker-punch") | ||
| 16433 | (version "3.1.0") | ||
| 16434 | (source | ||
| 16435 | (origin | ||
| 16436 | (method url-fetch) | ||
| 16437 | (uri (rubygems-uri "sucker_punch" version)) | ||
| 16438 | (sha256 | ||
| 16439 | (base32 "12by9vx8q6l4i56q62k1s1ymaxbpg4rny5zngj5i5h09kyh2yp4p")))) | ||
| 16440 | (build-system ruby-build-system) | ||
| 16441 | (arguments | ||
| 16442 | `(#:phases | ||
| 16443 | (modify-phases %standard-phases | ||
| 16444 | (add-after 'extract-gemspec 'less-strict-dependencies | ||
| 16445 | (lambda _ | ||
| 16446 | (substitute* "sucker_punch.gemspec" | ||
| 16447 | (("1.0.0") "1.0"))))))) | ||
| 16448 | (native-inputs | ||
| 16449 | (list | ||
| 16450 | ruby-pry)) | ||
| 16451 | (propagated-inputs | ||
| 16452 | (list | ||
| 16453 | ruby-concurrent)) | ||
| 16454 | (home-page "https://github.com/brandonhilkert/sucker_punch") | ||
| 16455 | (synopsis "Asynchronous processing library for Ruby") | ||
| 16456 | (description "Sucker Punch is a single-process Ruby asynchronous processing | ||
| 16457 | library. It is perfect for asynchronous processes like emailing, data crunching | ||
| 16458 | or social platform manipulation; and generally recommended for jobs that are | ||
| 16459 | fast and non-mission critical like logs, emails, etc.") | ||
| 16460 | (license license:expat))) | ||
| 16461 | |||
| 16462 | (define-public ruby-countdownlatch | ||
| 16463 | (package | ||
| 16464 | (name "ruby-countdownlatch") | ||
| 16465 | (version "1.0.0") | ||
| 16466 | (source | ||
| 16467 | (origin | ||
| 16468 | (method url-fetch) | ||
| 16469 | (uri (rubygems-uri "countdownlatch" version)) | ||
| 16470 | (sha256 | ||
| 16471 | (base32 "1v6pbay6z07fp7yvnba1hmyacbicvmjndd8rn2h1b5rmpcb5s0j3")))) | ||
| 16472 | (build-system ruby-build-system) | ||
| 16473 | (home-page "https://github.com/benlangfeld/countdownlatch") | ||
| 16474 | (synopsis "Thread synchronization aid Ruby") | ||
| 16475 | (description "CountDownLatch is a synchronization aid that allows one or | ||
| 16476 | more threads to wait until a set of operations being performed in other threads | ||
| 16477 | completes.") | ||
| 16478 | (license license:expat))) | ||
| 16479 | |||
| 16480 | (define-public ruby-value-semantics | ||
| 16481 | (package | ||
| 16482 | (name "ruby-value-semantics") | ||
| 16483 | (version "3.6.1") | ||
| 16484 | (source | ||
| 16485 | (origin | ||
| 16486 | (method url-fetch) | ||
| 16487 | (uri (rubygems-uri "value_semantics" version)) | ||
| 16488 | (sha256 | ||
| 16489 | (base32 "1vdwai8wf6r1fkvdpyz1vzxm89q7ghjvb3pqpg2kvwibwzd99dnx")))) | ||
| 16490 | (build-system ruby-build-system) | ||
| 16491 | (arguments | ||
| 16492 | `(#:phases | ||
| 16493 | (modify-phases %standard-phases | ||
| 16494 | (replace 'check | ||
| 16495 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 16496 | (when tests? | ||
| 16497 | (invoke "rspec"))))))) | ||
| 16498 | (native-inputs | ||
| 16499 | (list | ||
| 16500 | ruby-rspec)) | ||
| 16501 | (home-page "https://github.com/tomdalling/value_semantics") | ||
| 16502 | (synopsis "Ruby gem for making value classes") | ||
| 16503 | (description "ValueSemantics generates modules that provide conventional | ||
| 16504 | value semantics for a given set of attributes. The behaviour is similar to an | ||
| 16505 | immutable Struct class, plus extensible, lightweight validation and coercion.") | ||
| 16506 | (license license:expat))) | ||
| 16507 | |||
| 16508 | (define-public ruby-promise | ||
| 16509 | (package | ||
| 16510 | (name "ruby-promise") | ||
| 16511 | (version "0.7.4") | ||
| 16512 | (source | ||
| 16513 | (origin | ||
| 16514 | (method url-fetch) | ||
| 16515 | (uri (rubygems-uri "promise.rb" version)) | ||
| 16516 | (sha256 | ||
| 16517 | (base32 "0a819sikcqvhi8hck1y10d1nv2qkjvmmm553626fmrh51h2i089d")))) | ||
| 16518 | (build-system ruby-build-system) | ||
| 16519 | (arguments | ||
| 16520 | `(#:test-target "spec" | ||
| 16521 | #:phases | ||
| 16522 | (modify-phases %standard-phases | ||
| 16523 | (add-after 'extract-gemspec 'less-strict-dependencies | ||
| 16524 | (lambda _ | ||
| 16525 | (substitute* "Rakefile" | ||
| 16526 | (("if Gem.ruby_version.*") "if false\n")) | ||
| 16527 | (substitute* "spec/spec_helper.rb" | ||
| 16528 | ((".*devtools/spec_helper.*") "\n"))))))) | ||
| 16529 | (native-inputs | ||
| 16530 | (list | ||
| 16531 | ruby-rspec | ||
| 16532 | ruby-rspec-its | ||
| 16533 | ruby-awesome-print | ||
| 16534 | ruby-fuubar)) | ||
| 16535 | (home-page "https://github.com/lgierth/promise.rb") | ||
| 16536 | (synopsis "Asynchronous operation library for Ruby") | ||
| 16537 | (description "Promise is a Ruby implementation of the Promises/A+ | ||
| 16538 | specification. It provides 100% mutation coverage, tested on MRI 1.9, 2.0, 2.1, | ||
| 16539 | 2.2, Rubinius, and JRuby.") | ||
| 16540 | (license license:unlicense))) | ||
| 16541 | |||
| 16542 | (define-public ruby-multicodecs | ||
| 16543 | (package | ||
| 16544 | (name "ruby-multicodecs") | ||
| 16545 | (version "0.2.1") | ||
| 16546 | (source | ||
| 16547 | (origin | ||
| 16548 | (method url-fetch) | ||
| 16549 | (uri (rubygems-uri "multicodecs" version)) | ||
| 16550 | (sha256 | ||
| 16551 | (base32 "0drq267di57l9zqw6zvqqimilz42rbc8z7392dwkk8wslq30s7v8")))) | ||
| 16552 | (build-system ruby-build-system) | ||
| 16553 | (home-page "https://github.com/SleeplessByte/ruby-multicodec") | ||
| 16554 | (synopsis "Ruby implementation of multiformats/multicodec") | ||
| 16555 | (description "Multicodecs is the ruby implementation of | ||
| 16556 | multiformats/multicodec, a canonical table of of codecs used by various | ||
| 16557 | multiformats.") | ||
| 16558 | (license license:expat))) | ||
| 16559 | |||
| 16560 | (define-public ruby-multihashes | ||
| 16561 | (package | ||
| 16562 | (name "ruby-multihashes") | ||
| 16563 | (version "0.2.0") | ||
| 16564 | (source | ||
| 16565 | (origin | ||
| 16566 | (method url-fetch) | ||
| 16567 | (uri (rubygems-uri "multihashes" version)) | ||
| 16568 | (sha256 | ||
| 16569 | (base32 "17wiyy3fiv8rpgdv9ca01yncsmaaf8yg15bg18wc7m9frss1vgqg")))) | ||
| 16570 | (build-system ruby-build-system) | ||
| 16571 | (propagated-inputs | ||
| 16572 | (list | ||
| 16573 | ruby-multicodecs)) | ||
| 16574 | (home-page "https://github.com/multiformats/ruby-multihash") | ||
| 16575 | (synopsis "Multihash implementation for Ruby") | ||
| 16576 | (description "Multihashes provides a simple, low-level multihash | ||
| 16577 | implementation for Ruby. A multihash is a digest with an embedded hash function | ||
| 16578 | code") | ||
| 16579 | (license license:expat))) | ||
| 16580 | |||
| 16581 | (define-public ruby-lazy-object | ||
| 16582 | (package | ||
| 16583 | (name "ruby-lazy-object") | ||
| 16584 | (version "0.0.3") | ||
| 16585 | (source | ||
| 16586 | (origin | ||
| 16587 | (method url-fetch) | ||
| 16588 | (uri (rubygems-uri "lazy_object" version)) | ||
| 16589 | (sha256 | ||
| 16590 | (base32 "08px15lahc28ik9smvw1hgamf792gd6gq0s4k94yq1h7jq25wjn8")))) | ||
| 16591 | (build-system ruby-build-system) | ||
| 16592 | (arguments | ||
| 16593 | `(#:test-target "spec")) | ||
| 16594 | (home-page "https://github.com/HornsAndHooves/lazy_object") | ||
| 16595 | (synopsis "Object wrapper that forwards all calls to the reference object") | ||
| 16596 | (description "LazyObject is an object wrapper that forwards all calls to the | ||
| 16597 | reference object. This object is not created until the first method dispatch.") | ||
| 16598 | (license license:expat))) | ||
| 16599 | |||
| 16600 | (define-public ruby-citrus | ||
| 16601 | (package | ||
| 16602 | (name "ruby-citrus") | ||
| 16603 | (version "3.0.2") | ||
| 16604 | (source | ||
| 16605 | (origin | ||
| 16606 | (method git-fetch) | ||
| 16607 | ;; Download from GitHub because the rubygems version does not contain | ||
| 16608 | ;; files needed for tests. | ||
| 16609 | (uri (git-reference | ||
| 16610 | (url "https://github.com/mjackson/citrus") | ||
| 16611 | (commit (string-append "v" version)))) | ||
| 16612 | (file-name (git-file-name name version)) | ||
| 16613 | (sha256 | ||
| 16614 | (base32 "197wrgqrddgm1xs3yvjvd8vkvil4h4mdrcp16jmd4b57rxrrr769")))) | ||
| 16615 | (build-system ruby-build-system) | ||
| 16616 | (home-page "https://mjackson.github.io/citrus/") | ||
| 16617 | (synopsis "Parsing Expressions for Ruby") | ||
| 16618 | (description "Citrus is a parsing library for Ruby that combines the | ||
| 16619 | expressiveness of the language with the parsing expressions.") | ||
| 16620 | (license license:expat))) | ||
| 16621 | |||
| 16622 | (define-public ruby-cbor | ||
| 16623 | (package | ||
| 16624 | (name "ruby-cbor") | ||
| 16625 | (version "0.5.9.6") | ||
| 16626 | (source | ||
| 16627 | (origin | ||
| 16628 | (method url-fetch) | ||
| 16629 | (uri (rubygems-uri "cbor" version)) | ||
| 16630 | (sha256 | ||
| 16631 | (base32 "0511idr8xps9625nh3kxr68sdy6l3xy2kcz7r57g47fxb1v18jj3")))) | ||
| 16632 | (build-system ruby-build-system) | ||
| 16633 | (arguments | ||
| 16634 | `(#:test-target "spec")) | ||
| 16635 | (native-inputs | ||
| 16636 | (list | ||
| 16637 | ruby-rspec | ||
| 16638 | ruby-rake-compiler | ||
| 16639 | ruby-yard)) | ||
| 16640 | (home-page "https://cbor.io/") | ||
| 16641 | (synopsis "Concise Binary Object Representation") | ||
| 16642 | (description "CBOR is a library for the | ||
| 16643 | @acronym{CBOR, Concise Binary Object Representation} format, based on | ||
| 16644 | Sadayuki Furuhashi's MessagePack library.") | ||
| 16645 | (license license:asl2.0))) | ||
| 16646 | |||
| 16647 | (define-public ruby-gem-release | ||
| 16648 | (package | ||
| 16649 | (name "ruby-gem-release") | ||
| 16650 | (version "2.2.2") | ||
| 16651 | (source | ||
| 16652 | (origin | ||
| 16653 | (method url-fetch) | ||
| 16654 | (uri (rubygems-uri "gem-release" version)) | ||
| 16655 | (sha256 | ||
| 16656 | (base32 "108rrfaiayi14zrqbb6z0cbwcxh8n15am5ry2a86v7c8c3niysq9")))) | ||
| 16657 | (build-system ruby-build-system) | ||
| 16658 | (arguments | ||
| 16659 | ;; No rakefile | ||
| 16660 | `(#:tests? #f)) | ||
| 16661 | (home-page "https://github.com/svenfuchs/gem-release") | ||
| 16662 | (synopsis "Ruby gem plugin for release management") | ||
| 16663 | (description "GemRelease is a gem plugin that aims at making gem development | ||
| 16664 | easier by automating repetitive work based on conventions, configuration, and | ||
| 16665 | templates.") | ||
| 16666 | (license license:expat))) | ||
| 16667 | |||
| 16668 | (define-public ruby-base32 | ||
| 16669 | (package | ||
| 16670 | (name "ruby-base32") | ||
| 16671 | (version "0.3.4") | ||
| 16672 | (source | ||
| 16673 | (origin | ||
| 16674 | (method url-fetch) | ||
| 16675 | (uri (rubygems-uri "base32" version)) | ||
| 16676 | (sha256 | ||
| 16677 | (base32 "1fjs0l3c5g9qxwp43kcnhc45slx29yjb6m6jxbb2x1krgjmi166b")))) | ||
| 16678 | (build-system ruby-build-system) | ||
| 16679 | (native-inputs | ||
| 16680 | (list | ||
| 16681 | ruby-gem-release)) | ||
| 16682 | (home-page "https://github.com/stesla/base32") | ||
| 16683 | (synopsis "Ruby extension for base32 encoding and decoding") | ||
| 16684 | (description "Base32 is a library which provides base32 decoding and | ||
| 16685 | encoding.") | ||
| 16686 | (license license:expat))) | ||
| 16687 | |||
| 16688 | (define-public ruby-dhall | ||
| 16689 | (package | ||
| 16690 | (name "ruby-dhall") | ||
| 16691 | (version "0.5.2") | ||
| 16692 | (source | ||
| 16693 | (origin | ||
| 16694 | (method url-fetch) | ||
| 16695 | (uri (rubygems-uri "dhall" version)) | ||
| 16696 | (sha256 | ||
| 16697 | (base32 "09wcq8xc1ynld04r2f332bx8cn7rjc4afaq8hm1dr2fc35jlpn6m")))) | ||
| 16698 | (build-system ruby-build-system) | ||
| 16699 | (arguments | ||
| 16700 | ;; No test in gem archive | ||
| 16701 | `(#:tests? #f)) | ||
| 16702 | (propagated-inputs | ||
| 16703 | (list | ||
| 16704 | ruby-base32 | ||
| 16705 | ruby-cbor | ||
| 16706 | ruby-citrus | ||
| 16707 | ruby-lazy-object | ||
| 16708 | ruby-multihashes | ||
| 16709 | ruby-promise | ||
| 16710 | ruby-value-semantics)) | ||
| 16711 | (home-page "https://git.sr.ht/~singpolyma/dhall-ruby") | ||
| 16712 | (synopsis "Ruby implementation of the Dhall configuration language") | ||
| 16713 | (description "Dhall.rb is a Ruby implementation of the Dhall configuration | ||
| 16714 | language. Dhall is a memory safe and non-Turing-complete configuration | ||
| 16715 | language.") | ||
| 16716 | (license license:gpl3+))) | ||
| 16717 | |||
| 16718 | (define-public ruby-money | ||
| 16719 | (package | ||
| 16720 | (name "ruby-money") | ||
| 16721 | (version "6.16.0") | ||
| 16722 | (source | ||
| 16723 | (origin | ||
| 16724 | (method url-fetch) | ||
| 16725 | (uri (rubygems-uri "money" version)) | ||
| 16726 | (sha256 | ||
| 16727 | (base32 "0jkmsj5ymadik7bvl670bqwmvhsdyv7hjr8gq9z293hq35gnyiyg")))) | ||
| 16728 | (build-system ruby-build-system) | ||
| 16729 | (arguments | ||
| 16730 | ;; No rakefile. | ||
| 16731 | `(#:tests? #f)) | ||
| 16732 | (propagated-inputs | ||
| 16733 | (list | ||
| 16734 | ruby-i18n)) | ||
| 16735 | (home-page "https://rubymoney.github.io/money/") | ||
| 16736 | (synopsis "Currency conversion library for Ruby") | ||
| 16737 | (description "RubyMoney provides a library for dealing with money and | ||
| 16738 | currency conversion. Its features are: | ||
| 16739 | @itemize | ||
| 16740 | @item | ||
| 16741 | Provides a Money class which encapsulates all information about a certain | ||
| 16742 | amount of money, such as its value and its currency. | ||
| 16743 | @item | ||
| 16744 | Provides a Money::Currency class which encapsulates all information about a | ||
| 16745 | monetary unit. | ||
| 16746 | @item | ||
| 16747 | Represents monetary values as integers, in cents; so avoids floating point | ||
| 16748 | rounding errors. | ||
| 16749 | @item | ||
| 16750 | Represents currency as Money::Currency instances providing a high level of | ||
| 16751 | flexibility. | ||
| 16752 | @item Provides APIs for exchanging money from one currency to another. | ||
| 16753 | @end itemize") | ||
| 16754 | (license license:expat))) | ||
| 16755 | |||
| 16756 | (define-public ruby-monetize | ||
| 16757 | (package | ||
| 16758 | (name "ruby-monetize") | ||
| 16759 | (version "1.11.0") | ||
| 16760 | (source | ||
| 16761 | (origin | ||
| 16762 | (method url-fetch) | ||
| 16763 | (uri (rubygems-uri "monetize" version)) | ||
| 16764 | (sha256 | ||
| 16765 | (base32 "0cna2myxdbwfq0gn6k2hgrh368dq7wld3jklm96443ysykd0difn")))) | ||
| 16766 | (build-system ruby-build-system) | ||
| 16767 | (arguments | ||
| 16768 | `(#:test-target "spec")) | ||
| 16769 | (native-inputs | ||
| 16770 | (list | ||
| 16771 | ruby-rspec)) | ||
| 16772 | (propagated-inputs | ||
| 16773 | (list | ||
| 16774 | ruby-money)) | ||
| 16775 | (home-page "https://github.com/RubyMoney/monetize") | ||
| 16776 | (synopsis "Convert various objects into Money objects") | ||
| 16777 | (description "Monetize provides a library for converting various objects | ||
| 16778 | into Money objects.") | ||
| 16779 | (license license:expat))) | ||
| 16780 | |||
| 16781 | (define-public ruby-money-open-exchange-rates | ||
| 16782 | (package | ||
| 16783 | (name "ruby-money-open-exchange-rates") | ||
| 16784 | (version "1.4.0") | ||
| 16785 | (source | ||
| 16786 | (origin | ||
| 16787 | (method git-fetch) | ||
| 16788 | ;; Download from GitHub because the rubygems version does not contain | ||
| 16789 | ;; Rakefile. | ||
| 16790 | (uri (git-reference | ||
| 16791 | (url "https://github.com/spk/money-open-exchange-rates") | ||
| 16792 | (commit (string-append "v" version)))) | ||
| 16793 | (file-name (git-file-name name version)) | ||
| 16794 | (sha256 | ||
| 16795 | (base32 "11xwqli8snr19k48yh8h77sal5vxd4snzq9gxg08v61f0574m3gw")))) | ||
| 16796 | (build-system ruby-build-system) | ||
| 16797 | (native-inputs | ||
| 16798 | (list | ||
| 16799 | ruby-minitest | ||
| 16800 | ruby-mocha | ||
| 16801 | ruby-monetize | ||
| 16802 | ruby-rake | ||
| 16803 | ruby-rubocop | ||
| 16804 | ruby-timecop | ||
| 16805 | ruby-webmock)) | ||
| 16806 | (propagated-inputs | ||
| 16807 | (list | ||
| 16808 | ruby-money)) | ||
| 16809 | (home-page "https://spk.github.io/money-open-exchange-rates/") | ||
| 16810 | (synopsis "Money open exchange rates for Ruby") | ||
| 16811 | (description "This package provides a gem that calculates the exchange rate | ||
| 16812 | using published rates from open-exchange-rates. Compatible with the money gem.") | ||
| 16813 | (license license:expat))) | ||
| 16814 | |||
| 16815 | (define-public ruby-roda | ||
| 16816 | (package | ||
| 16817 | (name "ruby-roda") | ||
| 16818 | (version "3.57.0") | ||
| 16819 | (source | ||
| 16820 | (origin | ||
| 16821 | (method url-fetch) | ||
| 16822 | (uri (rubygems-uri "roda" version)) | ||
| 16823 | (sha256 | ||
| 16824 | (base32 "0nkfxnbcfnriywvx9kpamp850cwjmqv8ssajc95d0aiyjr4kdrfy")))) | ||
| 16825 | (build-system ruby-build-system) | ||
| 16826 | (arguments | ||
| 16827 | ;; No rakefile | ||
| 16828 | `(#:tests? #f)) | ||
| 16829 | (propagated-inputs (list ruby-rack)) | ||
| 16830 | (home-page "https://roda.jeremyevans.net") | ||
| 16831 | (synopsis "Routing Tree Web Toolkit") | ||
| 16832 | (description "Roda is a routing tree web toolkit, designed for building fast | ||
| 16833 | and maintainable web applications in ruby.") | ||
| 16834 | (license license:expat))) | ||
| 16835 | |||
| 16836 | (define-public ruby-nori | ||
| 16837 | (package | ||
| 16838 | (name "ruby-nori") | ||
| 16839 | (version "2.6.0") | ||
| 16840 | (source | ||
| 16841 | (origin | ||
| 16842 | (method url-fetch) | ||
| 16843 | (uri (rubygems-uri "nori" version)) | ||
| 16844 | (sha256 | ||
| 16845 | (base32 "066wc774a2zp4vrq3k7k8p0fhv30ymqmxma1jj7yg5735zls8agn")))) | ||
| 16846 | (build-system ruby-build-system) | ||
| 16847 | (arguments | ||
| 16848 | ;; Tests require too old version of rspec | ||
| 16849 | `(#:tests? #f)) | ||
| 16850 | (native-inputs | ||
| 16851 | (list ruby-nokogiri | ||
| 16852 | ruby-rake | ||
| 16853 | ruby-rspec)) | ||
| 16854 | (home-page "https://github.com/savonrb/nori") | ||
| 16855 | (synopsis "XML to Hash translator") | ||
| 16856 | (description "Nori is a simple XML parsing ripped from Crack which in-turn | ||
| 16857 | ripped from Merb. It supports pluggable parsers and ships with both REXML and | ||
| 16858 | Nokogiri implementations.") | ||
| 16859 | (license license:expat))) | ||
| 16860 | |||
| 16861 | ;; This package is deprecated per upstream and should be phased out. | ||
| 16862 | (define-public ruby-faraday-middleware | ||
| 16863 | (package | ||
| 16864 | (name "ruby-faraday-middleware") | ||
| 16865 | (version "1.2.0") | ||
| 16866 | (source | ||
| 16867 | (origin | ||
| 16868 | (method url-fetch) | ||
| 16869 | (uri (rubygems-uri "faraday_middleware" version)) | ||
| 16870 | (sha256 | ||
| 16871 | (base32 "1bw8mfh4yin2xk7138rg3fhb2p5g2dlmdma88k82psah9mbmvlfy")))) | ||
| 16872 | (build-system ruby-build-system) | ||
| 16873 | (arguments `(#:tests? #f)) | ||
| 16874 | (propagated-inputs (list ruby-faraday)) | ||
| 16875 | (home-page "https://github.com/lostisland/faraday_middleware") | ||
| 16876 | (synopsis "Various middleware for Faraday") | ||
| 16877 | (description "Faraday_Middleware is a collection of middleware for the | ||
| 16878 | Faraday-based API wrappers.") | ||
| 16879 | (license license:expat))) | ||
| 16880 | |||
| 16881 | (define-public ruby-faraday-multipart | ||
| 16882 | (package | ||
| 16883 | (name "ruby-faraday-multipart") | ||
| 16884 | (version "1.0.4") | ||
| 16885 | (source (origin | ||
| 16886 | (method git-fetch) | ||
| 16887 | (uri (git-reference | ||
| 16888 | (url "https://github.com/lostisland/faraday-multipart") | ||
| 16889 | (commit (string-append "v" version)))) | ||
| 16890 | (file-name (git-file-name name version)) | ||
| 16891 | (sha256 | ||
| 16892 | (base32 | ||
| 16893 | "0ywxhff40a688n50lxrn4d8y096l8sbrwp1jfz4zd3kdiiygclka")))) | ||
| 16894 | (build-system ruby-build-system) | ||
| 16895 | (arguments (list #:test-target "spec")) | ||
| 16896 | (native-inputs (list ruby-faraday ruby-multipart-parser ruby-rspec)) | ||
| 16897 | (propagated-inputs (list ruby-multipart-post)) | ||
| 16898 | (synopsis "Multipart-post requests extension for Faraday") | ||
| 16899 | (description "This Ruby gem extends Faraday to perform multipart-post | ||
| 16900 | requests.") | ||
| 16901 | (home-page "https://github.com/lostisland/faraday-multipart") | ||
| 16902 | (license license:expat))) | ||
| 16903 | |||
| 16904 | (define-public ruby-bandwidth-iris | ||
| 16905 | (package | ||
| 16906 | (name "ruby-bandwidth-iris") | ||
| 16907 | (version "7.0.0") | ||
| 16908 | (source | ||
| 16909 | (origin | ||
| 16910 | (method url-fetch) | ||
| 16911 | (uri (rubygems-uri "ruby-bandwidth-iris" version)) | ||
| 16912 | (sha256 | ||
| 16913 | (base32 "131c4jhyvnrwbhizkks17fi9g85cwsq5f1p8zi408zyf63n7230d")))) | ||
| 16914 | (build-system ruby-build-system) | ||
| 16915 | (arguments | ||
| 16916 | ;; XXX: Tests don't require helper for some reason, so all fail. | ||
| 16917 | `(#:tests? #f)) | ||
| 16918 | (native-inputs | ||
| 16919 | (list ruby-rspec | ||
| 16920 | ruby-yard)) | ||
| 16921 | (propagated-inputs | ||
| 16922 | (list ruby-activesupport | ||
| 16923 | ruby-builder | ||
| 16924 | ruby-faraday | ||
| 16925 | ruby-faraday-middleware | ||
| 16926 | ruby-nori)) | ||
| 16927 | (home-page "https://github.com/Bandwidth/ruby-bandwidth-iris") | ||
| 16928 | (synopsis "Gem for integrating to Bandwidth's Iris API") | ||
| 16929 | (description "Bandwidth IRIS is a Ruby SDK for Bandwidth Phone Number | ||
| 16930 | Dashboard. It is a Ruby Client library for IRIS / BBS API.") | ||
| 16931 | (license license:expat))) | ||
| 16932 | |||
| 16933 | (define-public ruby-securerandom | ||
| 16934 | (package | ||
| 16935 | (name "ruby-securerandom") | ||
| 16936 | (version "0.4.1") | ||
| 16937 | (source | ||
| 16938 | (origin | ||
| 16939 | (method url-fetch) | ||
| 16940 | (uri (rubygems-uri "securerandom" version)) | ||
| 16941 | (sha256 | ||
| 16942 | (base32 "1cd0iriqfsf1z91qg271sm88xjnfd92b832z49p1nd542ka96lfc")))) | ||
| 16943 | (build-system ruby-build-system) | ||
| 16944 | (arguments '(#:tests? #f)) ; No tests found. | ||
| 16945 | (synopsis "Interface for secure random number generator") | ||
| 16946 | (description "This package provides a Ruby interface for secure random | ||
| 16947 | number generators.") | ||
| 16948 | (home-page "https://github.com/ruby/securerandom") | ||
| 16949 | (license (list license:bsd-2)))) | ||
| 16950 | |||
| 16951 | (define-public ruby-selenium-webdriver | ||
| 16952 | (package | ||
| 16953 | (name "ruby-selenium-webdriver") | ||
| 16954 | (version "4.22.0") | ||
| 16955 | (source (origin | ||
| 16956 | (method url-fetch) | ||
| 16957 | (uri (rubygems-uri "selenium-webdriver" version)) | ||
| 16958 | (sha256 | ||
| 16959 | (base32 | ||
| 16960 | "0rjxlivsh32xvjq78p1m1sr366aa04wms4hwb2r187ygrnmp0hv4")))) | ||
| 16961 | (build-system ruby-build-system) | ||
| 16962 | ;; FIXME: The gem release lacks test files, and the git checkout lacks | ||
| 16963 | ;; JavaScript source that is generated using Bazel, which isn't available | ||
| 16964 | ;; in Guix yet, so disable the test suite for now. | ||
| 16965 | (arguments (list #:tests? #f)) | ||
| 16966 | (propagated-inputs (list ruby-base64 | ||
| 16967 | ruby-rexml | ||
| 16968 | ruby-rubyzip | ||
| 16969 | ruby-websocket)) | ||
| 16970 | (synopsis "Selenium browser automation bindings for Ruby") | ||
| 16971 | (description "Selenium implements the W3C WebDriver protocol to automate | ||
| 16972 | popular browsers. It aims to mimic the behaviour of a real user as it | ||
| 16973 | interacts with the application's HTML. It's primarily intended for web | ||
| 16974 | application testing, but any web-based task can be automated. This package | ||
| 16975 | provides the Ruby bindings of Selenium.") | ||
| 16976 | (home-page "https://www.selenium.dev/") | ||
| 16977 | (license license:asl2.0))) | ||
| 16978 | |||
| 16979 | (define-public ruby-sentry-core | ||
| 16980 | (package | ||
| 16981 | (name "ruby-sentry-core") | ||
| 16982 | (version "5.3.1") | ||
| 16983 | (source | ||
| 16984 | (origin | ||
| 16985 | (method url-fetch) | ||
| 16986 | (uri (rubygems-uri "sentry-ruby-core" version)) | ||
| 16987 | (sha256 | ||
| 16988 | (base32 "141mrw8wghhsjvln9m6ld3hap3xc5v901jjiz007xywy25725hyd")))) | ||
| 16989 | (build-system ruby-build-system) | ||
| 16990 | (arguments | ||
| 16991 | ;; No rakefile in gem. | ||
| 16992 | `(#:tests? #f)) | ||
| 16993 | (propagated-inputs | ||
| 16994 | (list ruby-concurrent | ||
| 16995 | ruby-faraday)) | ||
| 16996 | (home-page "https://sentry.io/for/ruby/") | ||
| 16997 | (synopsis "Client interface for the Sentry error logger") | ||
| 16998 | (description "Sentry-Core provides a gem that provides a client | ||
| 16999 | interface for the Sentry error logger.") | ||
| 17000 | (license license:expat))) | ||
| 17001 | |||
| 17002 | (define-public ruby-sentry | ||
| 17003 | (package | ||
| 17004 | (name "ruby-sentry") | ||
| 17005 | (version "5.3.1") | ||
| 17006 | (source | ||
| 17007 | (origin | ||
| 17008 | (method url-fetch) | ||
| 17009 | (uri (rubygems-uri "sentry-ruby" version)) | ||
| 17010 | (sha256 | ||
| 17011 | (base32 "0by9mvw8rklzpyx59vfija8h3ssfvxvf5nbqxfmygfy6lm1vdngz")))) | ||
| 17012 | (build-system ruby-build-system) | ||
| 17013 | (arguments | ||
| 17014 | ;; No rakefile in gem | ||
| 17015 | `(#:tests? #f)) | ||
| 17016 | (propagated-inputs | ||
| 17017 | (list ruby-concurrent | ||
| 17018 | ruby-faraday | ||
| 17019 | ruby-sentry-core)) | ||
| 17020 | (home-page "https://sentry.io/for/ruby/") | ||
| 17021 | (synopsis "Client interface for the Sentry error logger") | ||
| 17022 | (description "Sentry provides a gem that provides a client | ||
| 17023 | interface for the Sentry error logger.") | ||
| 17024 | (license license:expat))) | ||
| 17025 | |||
| 17026 | (define-public ruby-webrick | ||
| 17027 | (package | ||
| 17028 | (name "ruby-webrick") | ||
| 17029 | (version "1.8.1") | ||
| 17030 | (source (origin | ||
| 17031 | (method git-fetch) ;for tests | ||
| 17032 | (uri (git-reference | ||
| 17033 | (url "https://github.com/ruby/webrick") | ||
| 17034 | (commit (string-append "v" version)))) | ||
| 17035 | (file-name (git-file-name name version)) | ||
| 17036 | (sha256 | ||
| 17037 | (base32 | ||
| 17038 | "1xb0mk3cghdir65nmj0mblprbf21blli7267b6yyvxclh307yp6s")))) | ||
| 17039 | (build-system ruby-build-system) | ||
| 17040 | (arguments | ||
| 17041 | (list #:phases | ||
| 17042 | #~(modify-phases %standard-phases | ||
| 17043 | (add-after 'extract-gemspec 'delete-problematic-tests | ||
| 17044 | (lambda _ | ||
| 17045 | ;; The httresponse tests fail for | ||
| 17046 | ;; unknown reasons (see: | ||
| 17047 | ;; https://github.com/ruby/webrick/issues/112). | ||
| 17048 | (delete-file "test/webrick/test_httpresponse.rb")))))) | ||
| 17049 | (home-page "https://github.com/ruby/webrick") | ||
| 17050 | (synopsis "HTTP server toolkit") | ||
| 17051 | (description "WEBrick is an HTTP server toolkit that can be configured as an | ||
| 17052 | HTTPS server, a proxy server, and a virtual-host server.") | ||
| 17053 | (license license:bsd-2))) | ||
| 17054 | |||
| 17055 | (define-public ruby-websocket | ||
| 17056 | (let ((commit "950e416a19a76c7e6a673a7e5baa6283476dbec1") | ||
| 17057 | (revision "1")) | ||
| 17058 | (package | ||
| 17059 | (name "ruby-websocket") | ||
| 17060 | (version (git-version "1.2.9" revision commit)) | ||
| 17061 | (source (origin | ||
| 17062 | (method git-fetch) | ||
| 17063 | (uri (git-reference | ||
| 17064 | (url "https://github.com/imanel/websocket-ruby") | ||
| 17065 | (commit commit))) | ||
| 17066 | (sha256 | ||
| 17067 | (base32 | ||
| 17068 | "1i6r0glpxy47zdf76aqgcpjgcgydla0733hfdhp628pmrinnkgwv")) | ||
| 17069 | (file-name (git-file-name name version)))) | ||
| 17070 | (build-system ruby-build-system) | ||
| 17071 | (arguments (list #:test-target "spec" | ||
| 17072 | #:phases #~(modify-phases %standard-phases | ||
| 17073 | (add-after 'unpack 'disable-rubocop | ||
| 17074 | (lambda _ | ||
| 17075 | (substitute* "Rakefile" | ||
| 17076 | (("require 'rubocop/rake_task'") "") | ||
| 17077 | (("RuboCop::RakeTask.new") ""))))))) | ||
| 17078 | (native-inputs | ||
| 17079 | (list ruby-rspec | ||
| 17080 | ruby-webrick)) | ||
| 17081 | (synopsis "WebSocket protocol Ruby library") | ||
| 17082 | (description "This package provides a Ruby library to handle the WebSocket | ||
| 17083 | protocol.") | ||
| 17084 | (home-page "https://github.com/imanel/websocket-ruby") | ||
| 17085 | (license license:expat)))) | ||
| 17086 | |||
| 17087 | (define-public ruby-braintree | ||
| 17088 | (package | ||
| 17089 | (name "ruby-braintree") | ||
| 17090 | (version "4.12.0") | ||
| 17091 | (source | ||
| 17092 | (origin | ||
| 17093 | (method git-fetch) ;for tests | ||
| 17094 | (uri (git-reference | ||
| 17095 | (url "https://github.com/braintree/braintree_ruby") | ||
| 17096 | (commit version))) | ||
| 17097 | (file-name (git-file-name name version)) | ||
| 17098 | (sha256 | ||
| 17099 | (base32 "0gfgkymy3655drwgs42bj9ap9qib1l30sajxmypmp6s75m9w3gsh")))) | ||
| 17100 | (build-system ruby-build-system) | ||
| 17101 | (arguments | ||
| 17102 | (list | ||
| 17103 | #:test-target "test:unit" | ||
| 17104 | #:phases | ||
| 17105 | #~(modify-phases %standard-phases | ||
| 17106 | (add-after 'unpack 'disable-rubocop | ||
| 17107 | (lambda _ | ||
| 17108 | (substitute* "Rakefile" | ||
| 17109 | (("sh \"rubocop\"") "")))) | ||
| 17110 | (add-after 'unpack 'relax-requirements | ||
| 17111 | (lambda _ | ||
| 17112 | (substitute* "Gemfile" | ||
| 17113 | (("gem \"pry\".*") "gem 'pry'\n") | ||
| 17114 | (("gem \"rake\".*") "gem 'rake'\n") | ||
| 17115 | (("gem \"libxml-ruby\", \"3.2.0\"") | ||
| 17116 | "gem \"libxml-ruby\", \"~> 3.0.0\"") | ||
| 17117 | (("gem \"rspec\", \"3.9.0\"") | ||
| 17118 | "gem \"rspec\", \">= 3.9.0\"") | ||
| 17119 | (("gem \"webrick\", \"~>1.7.0\"") | ||
| 17120 | "gem \"webrick\", \">=1.7.0\"") | ||
| 17121 | ((".*gem \"rubocop\".*") "") | ||
| 17122 | ((".*gem \"rspec_junit_formatter\".*") ""))))))) | ||
| 17123 | (native-inputs | ||
| 17124 | (list ruby-libxml | ||
| 17125 | ruby-pry | ||
| 17126 | ruby-rake | ||
| 17127 | ruby-rspec | ||
| 17128 | ruby-webrick)) | ||
| 17129 | (propagated-inputs | ||
| 17130 | (list ruby-builder | ||
| 17131 | ruby-rexml)) | ||
| 17132 | (home-page "https://www.braintreepayments.com/") | ||
| 17133 | (synopsis "Integration access to the Braintree Gateway") | ||
| 17134 | (description "Braintree provides resources and tools for developers to | ||
| 17135 | integrate Braintree's global payments platform.") | ||
| 17136 | (license license:expat))) | ||
| 17137 | |||
| 17138 | (define-public ruby-niceogiri | ||
| 17139 | (package | ||
| 17140 | (name "ruby-niceogiri") | ||
| 17141 | (version "1.1.2") | ||
| 17142 | (source | ||
| 17143 | (origin | ||
| 17144 | (method url-fetch) | ||
| 17145 | (uri (rubygems-uri "niceogiri" version)) | ||
| 17146 | (sha256 | ||
| 17147 | (base32 "1ha93211bc9cvh23s9w89zz7rq8irpf64ccd9arvg8v1sxg2798a")))) | ||
| 17148 | (build-system ruby-build-system) | ||
| 17149 | (arguments | ||
| 17150 | `(#:test-target "spec" | ||
| 17151 | #:phases | ||
| 17152 | (modify-phases %standard-phases | ||
| 17153 | (add-after 'extract-gemspec 'less-strict-dependencies | ||
| 17154 | (lambda _ | ||
| 17155 | (substitute* "niceogiri.gemspec" | ||
| 17156 | (("2\\.7") "3.8") ;rspec | ||
| 17157 | ((".*dependency.*bundler.*") "\n") | ||
| 17158 | ((".*dependency.*guard-rspec.*") "\n"))))))) | ||
| 17159 | (native-inputs | ||
| 17160 | (list ruby-rspec | ||
| 17161 | ruby-yard)) | ||
| 17162 | (propagated-inputs (list ruby-nokogiri)) | ||
| 17163 | (home-page "https://github.com/benlangfeld/Niceogiri") | ||
| 17164 | (synopsis "Supplement for Nokogiri") | ||
| 17165 | (description "Niceogiri provides wrappers and helpers for XML manipulation | ||
| 17166 | using Nokogiri.") | ||
| 17167 | (license license:expat))) | ||
| 17168 | |||
| 17169 | (define-public ruby-blather | ||
| 17170 | (package | ||
| 17171 | (name "ruby-blather") | ||
| 17172 | (version "2.0.0") | ||
| 17173 | (source | ||
| 17174 | (origin | ||
| 17175 | (method url-fetch) | ||
| 17176 | (uri (rubygems-uri "blather" version)) | ||
| 17177 | (sha256 | ||
| 17178 | (base32 "05ry2x835fj4pzk61282pcz86n018cr39zbgwbi213md74i90s7c")))) | ||
| 17179 | (build-system ruby-build-system) | ||
| 17180 | (arguments | ||
| 17181 | ;; XXX: Tests require too old version of rspec. | ||
| 17182 | `(#:tests? #f)) | ||
| 17183 | (native-inputs | ||
| 17184 | (list ruby-countdownlatch | ||
| 17185 | ruby-mocha | ||
| 17186 | ruby-rb-fsevent | ||
| 17187 | ruby-rspec | ||
| 17188 | ruby-yard)) | ||
| 17189 | (propagated-inputs | ||
| 17190 | (list ruby-activesupport | ||
| 17191 | ruby-eventmachine | ||
| 17192 | ruby-niceogiri | ||
| 17193 | ruby-nokogiri | ||
| 17194 | ruby-sucker-punch)) | ||
| 17195 | (home-page "https://github.com/adhearsion/blather") | ||
| 17196 | (synopsis "XMPP Domain Specific Language for Ruby") | ||
| 17197 | (description "Blather is a XMPP DSL for Ruby written on top of EventMachine | ||
| 17198 | and Nokogiri.") | ||
| 17199 | (license license:expat))) | ||
| 17200 | |||
| 17201 | (define-public ruby-wapiti | ||
| 17202 | (package | ||
| 17203 | (name "ruby-wapiti") | ||
| 17204 | (version "2.1.0") | ||
| 17205 | ;; the gem archive lacks tests | ||
| 17206 | (source (origin | ||
| 17207 | (method git-fetch) | ||
| 17208 | (uri (git-reference | ||
| 17209 | (url "https://github.com/inukshuk/wapiti-ruby") | ||
| 17210 | (commit (string-append "v" version)))) | ||
| 17211 | (file-name (git-file-name name version)) | ||
| 17212 | (sha256 | ||
| 17213 | (base32 | ||
| 17214 | "1273dqvn6flq2qv9qbp104rgc7zp1gqx4096s0v0z5f0qnhzc7d6")))) | ||
| 17215 | (build-system ruby-build-system) | ||
| 17216 | (propagated-inputs | ||
| 17217 | (list ruby-builder | ||
| 17218 | ruby-rexml)) | ||
| 17219 | (native-inputs | ||
| 17220 | (list ruby-pry | ||
| 17221 | ruby-rake-compiler | ||
| 17222 | ruby-rspec | ||
| 17223 | ruby-simplecov)) | ||
| 17224 | (arguments | ||
| 17225 | (list | ||
| 17226 | #:test-target "spec" | ||
| 17227 | #:phases | ||
| 17228 | #~(modify-phases %standard-phases | ||
| 17229 | (add-after 'replace-git-ls-files 'replace-another-git-ls-files | ||
| 17230 | (lambda args | ||
| 17231 | (substitute* "wapiti.gemspec" | ||
| 17232 | (("`git ls-files spec`") | ||
| 17233 | "`find spec -type f | sort`")))) | ||
| 17234 | (add-before 'build 'compile | ||
| 17235 | (lambda args | ||
| 17236 | (invoke "rake" "compile")))))) | ||
| 17237 | (home-page "https://github.com/inukshuk/wapiti-ruby") | ||
| 17238 | (synopsis "Wicked fast Conditional Random Fields for Ruby") | ||
| 17239 | (description | ||
| 17240 | "The Wapiti-Ruby gem provides a wicked fast linear-chain @acronym{CRF, | ||
| 17241 | Conditional Random Fields} API for sequence segmentation and labelling. It is | ||
| 17242 | based on the codebase of @url{https://wapiti.limsi.fr, Wapiti}.") | ||
| 17243 | (license license:bsd-2))) | ||
| 17244 | |||
| 17245 | (define-public ruby-namae | ||
| 17246 | (package | ||
| 17247 | (name "ruby-namae") | ||
| 17248 | (version "1.1.1") | ||
| 17249 | (source (origin | ||
| 17250 | (method url-fetch) | ||
| 17251 | (uri (rubygems-uri "namae" version)) | ||
| 17252 | (sha256 | ||
| 17253 | (base32 | ||
| 17254 | "1j3nl1klkx3gymrdxfc1hlq4a8qlvhhl9aj5v1v08b9fz27sky0l")))) | ||
| 17255 | (build-system ruby-build-system) | ||
| 17256 | (native-inputs | ||
| 17257 | (list ruby-cucumber | ||
| 17258 | ruby-rspec | ||
| 17259 | ruby-simplecov)) | ||
| 17260 | (arguments | ||
| 17261 | (list | ||
| 17262 | #:phases | ||
| 17263 | #~(modify-phases %standard-phases | ||
| 17264 | (add-after 'extract-gemspec 'allow-newer-cucumber | ||
| 17265 | (lambda args | ||
| 17266 | (substitute* "Gemfile" | ||
| 17267 | (("'cucumber', '[^']*'") | ||
| 17268 | "'cucumber'")))) | ||
| 17269 | (replace 'check | ||
| 17270 | ;; Avoid 'rake' so we don't need jeweler. | ||
| 17271 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 17272 | (when tests? | ||
| 17273 | (apply invoke | ||
| 17274 | "rspec" | ||
| 17275 | (find-files "spec" "_spec\\.rb$")))))))) | ||
| 17276 | (home-page "https://github.com/berkmancenter/namae") | ||
| 17277 | (synopsis "Parser for human names") | ||
| 17278 | (description | ||
| 17279 | "Namae (名前) is a parser for human names. It recognizes personal names | ||
| 17280 | of various cultural backgrounds and tries to split them into their component | ||
| 17281 | parts (e.g., given and family names, honorifics etc.).") | ||
| 17282 | (license (list license:bsd-2 license:agpl3+)))) | ||
| 17283 | |||
| 17284 | (define-public ruby-latex-decode | ||
| 17285 | (package | ||
| 17286 | (name "ruby-latex-decode") | ||
| 17287 | (version "0.4.0") | ||
| 17288 | (source (origin | ||
| 17289 | (method git-fetch) | ||
| 17290 | (uri (git-reference | ||
| 17291 | (url "https://github.com/inukshuk/latex-decode") | ||
| 17292 | (commit (string-append "v" version)))) | ||
| 17293 | (sha256 | ||
| 17294 | (base32 | ||
| 17295 | "1f5j67ayd04pjkmzvn0hk7cr8yqvn0gyg9ns6a0vhzj2gwna9ihy")) | ||
| 17296 | (file-name (git-file-name name version)))) | ||
| 17297 | (build-system ruby-build-system) | ||
| 17298 | (native-inputs | ||
| 17299 | (list ruby-cucumber | ||
| 17300 | ruby-rspec)) | ||
| 17301 | (arguments | ||
| 17302 | (list | ||
| 17303 | #:test-target "cucumber" | ||
| 17304 | #:phases | ||
| 17305 | #~(modify-phases %standard-phases | ||
| 17306 | (add-after 'extract-gemspec 'avoid-bundler | ||
| 17307 | (lambda args | ||
| 17308 | (substitute* "Rakefile" | ||
| 17309 | (("require 'bundler" orig) | ||
| 17310 | (string-append "# " orig " # patched for Guix")) | ||
| 17311 | (("Cucumber::Rake::Task\\.new[(]:cucumber[)]" orig) | ||
| 17312 | (string-append orig " do |c|\n" | ||
| 17313 | " c.bundler = false # patched for Guix\n" | ||
| 17314 | "end")) | ||
| 17315 | (("Bundler\\.setup" orig) | ||
| 17316 | (string-append "true # " orig " # patched for Guix"))) | ||
| 17317 | (substitute* "cucumber.yml" | ||
| 17318 | ;; thanks to avoiding bundler, we can't use this option | ||
| 17319 | ((" --publish-quiet") | ||
| 17320 | "")))) | ||
| 17321 | (add-after 'replace-git-ls-files 'replace-another-git-ls-files | ||
| 17322 | (lambda args | ||
| 17323 | (substitute* "latex-decode.gemspec" | ||
| 17324 | (("`git ls-files -- [{]test,spec,features[}]/\\*`") | ||
| 17325 | "`find {test,spec,features} -type f | sort`"))))))) | ||
| 17326 | (home-page "https://github.com/inukshuk/latex-decode") | ||
| 17327 | (synopsis "Convert LaTeX to Unicode") | ||
| 17328 | (description | ||
| 17329 | "This package provides a gem to convert LaTeX input to Unicode. Its | ||
| 17330 | original use was as an input filter for BibTeX-Ruby, but it can be used | ||
| 17331 | independently to decode LaTeX. Many of the patterns used by this Ruby gem are | ||
| 17332 | based on François Charette's equivalent Perl module @code{LaTeX::Decode}.") | ||
| 17333 | (license license:gpl3+))) | ||
| 17334 | |||
| 17335 | (define-public ruby-link-header | ||
| 17336 | (package | ||
| 17337 | (name "ruby-link-header") | ||
| 17338 | (version "0.0.8") | ||
| 17339 | (source (origin | ||
| 17340 | (method url-fetch) | ||
| 17341 | (uri (rubygems-uri "link_header" version)) | ||
| 17342 | (sha256 | ||
| 17343 | (base32 | ||
| 17344 | "1yamrdq4rywmnpdhbygnkkl9fdy249fg5r851nrkkxr97gj5rihm")))) | ||
| 17345 | (build-system ruby-build-system) | ||
| 17346 | (home-page "https://github.com/asplake/link_header") | ||
| 17347 | (synopsis "Parse and format HTTP @code{Link} headers") | ||
| 17348 | (description | ||
| 17349 | "This gem provides the classes @code{LinkHeader} and | ||
| 17350 | @code{LinkHeader::Link}, which represent HTTP @code{Link} headers conforming | ||
| 17351 | to RFC 5988. Objects can be constructed from and converted to text or a | ||
| 17352 | JSON-friendly @code{Array} representation. They can also be used to generate | ||
| 17353 | corresponding HTML @code{link} elements.") | ||
| 17354 | (license license:expat))) | ||
| 17355 | |||
| 17356 | (define-public ruby-lint-roller | ||
| 17357 | (package | ||
| 17358 | (name "ruby-lint-roller") | ||
| 17359 | (version "1.1.0") | ||
| 17360 | (source | ||
| 17361 | (origin | ||
| 17362 | (method url-fetch) | ||
| 17363 | (uri (rubygems-uri "lint_roller" version)) | ||
| 17364 | (sha256 | ||
| 17365 | (base32 "11yc0d84hsnlvx8cpk4cbj6a4dz9pk0r1k29p0n1fz9acddq831c")))) | ||
| 17366 | (build-system ruby-build-system) | ||
| 17367 | (arguments '(#:tests? #f)) ;Circular dependency on ruby-standard. | ||
| 17368 | (native-inputs (list ruby-minitest)) | ||
| 17369 | (synopsis "Specification for linter and formatter rulesets") | ||
| 17370 | (description | ||
| 17371 | "This package provides a plugin specification for Ruby linter and | ||
| 17372 | formatter rulesets.") | ||
| 17373 | (home-page "https://github.com/standardrb/lint_roller") | ||
| 17374 | (license license:expat))) | ||
| 17375 | |||
| 17376 | (define-public ruby-rdf | ||
| 17377 | (package | ||
| 17378 | (name "ruby-rdf") | ||
| 17379 | (version "3.2.8") | ||
| 17380 | (source (origin | ||
| 17381 | (method url-fetch) | ||
| 17382 | (uri (rubygems-uri "rdf" version)) | ||
| 17383 | (sha256 | ||
| 17384 | (base32 | ||
| 17385 | "1cj0k8ryd8hgbkgqb5swvy6fiygxny3y5bln0my5gv6dbfv3gm20")))) | ||
| 17386 | (build-system ruby-build-system) | ||
| 17387 | (propagated-inputs (list ruby-link-header)) | ||
| 17388 | (arguments | ||
| 17389 | (list #:tests? #f)) ;; tests have many cyclic dependencies | ||
| 17390 | (home-page "https://ruby-rdf.github.io/") | ||
| 17391 | (synopsis "Linked Data for Ruby") | ||
| 17392 | (description | ||
| 17393 | "This gem contains the core algorithms and classes used for doing basic | ||
| 17394 | programming with @acronym{RDF, Resource Description Framework} data, | ||
| 17395 | implemented in pure Ruby.") | ||
| 17396 | (license license:unlicense))) | ||
| 17397 | |||
| 17398 | (define-public ruby-rdf-vocab | ||
| 17399 | (package | ||
| 17400 | (name "ruby-rdf-vocab") | ||
| 17401 | (version "3.2.1") | ||
| 17402 | (source (origin | ||
| 17403 | (method url-fetch) | ||
| 17404 | (uri (rubygems-uri "rdf-vocab" version)) | ||
| 17405 | (sha256 | ||
| 17406 | (base32 | ||
| 17407 | "1bqmp9rfjvd56ajjz68ij6jla1wjf1fqg7bi4dpnjrsmn4pwaq7l")))) | ||
| 17408 | (build-system ruby-build-system) | ||
| 17409 | (propagated-inputs | ||
| 17410 | (list ruby-rdf)) | ||
| 17411 | (arguments | ||
| 17412 | (list #:tests? #f)) ;; tests have many cyclic dependencies | ||
| 17413 | (home-page "https://github.com/ruby-rdf/rdf-vocab") | ||
| 17414 | (synopsis "Common RDF vocabularies") | ||
| 17415 | (description | ||
| 17416 | "This gem extends @code{ruby-rdf} with several common @acronym{RDF, | ||
| 17417 | Resource Description Framework} vocabularies.") | ||
| 17418 | (license license:unlicense))) | ||
| 17419 | |||
| 17420 | (define-public ruby-rdiscount | ||
| 17421 | (package | ||
| 17422 | (name "ruby-rdiscount") | ||
| 17423 | (version "2.2.7") | ||
| 17424 | (source (origin | ||
| 17425 | (method git-fetch) ;for the full test suite | ||
| 17426 | (uri (git-reference | ||
| 17427 | (url "https://github.com/davidfstr/rdiscount") | ||
| 17428 | (commit version))) | ||
| 17429 | (file-name (git-file-name name version)) | ||
| 17430 | (sha256 | ||
| 17431 | (base32 | ||
| 17432 | "1lpfxq3gv0dgmnki9jgfnc8n9k4x9vyq9miqdxv6g4kp90qyfifc")))) | ||
| 17433 | (build-system ruby-build-system) | ||
| 17434 | (native-inputs (list perl)) | ||
| 17435 | (synopsis "Discount Markdown Processor for Ruby") | ||
| 17436 | (description "Discount is an implementation of John Gruber's Markdown | ||
| 17437 | markup language in C. It implements all of the language described in the | ||
| 17438 | markdown syntax document and passes the Markdown 1.0 test suite.") | ||
| 17439 | (home-page "https://dafoster.net/projects/rdiscount/") | ||
| 17440 | (license license:bsd-3))) | ||
| 17441 | |||
| 17442 | (define-public ruby-bibtex-ruby | ||
| 17443 | (package | ||
| 17444 | (name "ruby-bibtex-ruby") | ||
| 17445 | (version "6.0.0") | ||
| 17446 | (source (origin | ||
| 17447 | (method url-fetch) | ||
| 17448 | (uri (rubygems-uri "bibtex-ruby" version)) | ||
| 17449 | (sha256 | ||
| 17450 | (base32 | ||
| 17451 | "0vynqa8q9hwghw6sdljr304b5gh11nqzy5nwqqwxmgy7pqyf7qw5")))) | ||
| 17452 | (build-system ruby-build-system) | ||
| 17453 | (propagated-inputs | ||
| 17454 | (list ruby-latex-decode | ||
| 17455 | ruby-rdf | ||
| 17456 | ruby-rdf-vocab)) | ||
| 17457 | (native-inputs | ||
| 17458 | (list ruby-cucumber | ||
| 17459 | ruby-minitest | ||
| 17460 | ruby-yard)) | ||
| 17461 | (arguments | ||
| 17462 | (list | ||
| 17463 | #:phases | ||
| 17464 | #~(modify-phases %standard-phases | ||
| 17465 | (add-after 'extract-gemspec 'avoid-bundler | ||
| 17466 | (lambda args | ||
| 17467 | (substitute* "Rakefile" | ||
| 17468 | (("require 'bundler" orig) | ||
| 17469 | (string-append "# " orig " # patched for Guix")) | ||
| 17470 | (("Bundler\\.setup" orig) | ||
| 17471 | (string-append "true # " orig " # patched for Guix")))))))) | ||
| 17472 | (home-page "https://github.com/inukshuk/bibtex-ruby") | ||
| 17473 | (synopsis "Rubyist's Swiss Army knife for all things BibTeX") | ||
| 17474 | (description | ||
| 17475 | "BibTeX-Ruby is the Rubyist's Swiss Army knife for all things BibTeX. | ||
| 17476 | It includes a parser for all common BibTeX objects and a sophisticated name | ||
| 17477 | parser that tokenizes correctly formatted names. BibTeX-Ruby recognizes | ||
| 17478 | BibTeX string replacements, joins values containing multiple strings or | ||
| 17479 | variables, supports cross-references, and decodes common LaTeX formatting | ||
| 17480 | instructions to unicode. If you are in a hurry, it also allows for easy | ||
| 17481 | export/conversion to formats such as YAML, JSON, CSL, and XML (BibTeXML).") | ||
| 17482 | (license license:gpl3+))) | ||
| 17483 | |||
| 17484 | (define-public ruby-unicode-scripts | ||
| 17485 | (package | ||
| 17486 | (name "ruby-unicode-scripts") | ||
| 17487 | (version "1.8.0") | ||
| 17488 | (source (origin | ||
| 17489 | (method url-fetch) | ||
| 17490 | (uri (rubygems-uri "unicode-scripts" version)) | ||
| 17491 | (sha256 | ||
| 17492 | (base32 | ||
| 17493 | "0rl6mn908yryhrg8j3mmna54gnrid2nph2kym00lbz6jwdih2a1b")))) | ||
| 17494 | (build-system ruby-build-system) | ||
| 17495 | (native-inputs (list ruby-minitest)) | ||
| 17496 | (arguments (list #:test-target "spec")) | ||
| 17497 | (home-page "https://github.com/janlelis/unicode-scripts") | ||
| 17498 | (synopsis "Unicode script classification library") | ||
| 17499 | (description "This gem provides a simple interface for classifying Ruby | ||
| 17500 | strings using the Unicode @code{Script} and @code{Script_Extensions} | ||
| 17501 | properties.") | ||
| 17502 | (license license:expat))) | ||
| 17503 | |||
| 17504 | (define-public ruby-citeproc | ||
| 17505 | (package | ||
| 17506 | (name "ruby-citeproc") | ||
| 17507 | (version "1.0.10") | ||
| 17508 | (source (origin | ||
| 17509 | (method url-fetch) | ||
| 17510 | (uri (rubygems-uri "citeproc" version)) | ||
| 17511 | (sha256 | ||
| 17512 | (base32 | ||
| 17513 | "13vl5sjmksk5a8kjcqnjxh7kn9gn1n4f9p1rvqfgsfhs54p0m6l2")))) | ||
| 17514 | (build-system ruby-build-system) | ||
| 17515 | (propagated-inputs | ||
| 17516 | (list ruby-namae)) | ||
| 17517 | (arguments | ||
| 17518 | (list #:tests? #f)) ;; tests have a cyclic dependency | ||
| 17519 | (home-page "https://github.com/inukshuk/citeproc") | ||
| 17520 | (synopsis "Interface for Ruby citation processors") | ||
| 17521 | (description | ||
| 17522 | "CiteProc is a citation processor interface and citation data API based | ||
| 17523 | on the @acronym{CSL, Citation Style Language} specifications. To actually | ||
| 17524 | process citations, a dedicated processor engine is required: a pure Ruby | ||
| 17525 | engine is available in the @code{citeproc-ruby} gem.") | ||
| 17526 | (license (list license:agpl3+ license:bsd-2)))) | ||
| 17527 | |||
| 17528 | (define-public ruby-ed25519 | ||
| 17529 | (package | ||
| 17530 | (name "ruby-ed25519") | ||
| 17531 | (version "1.3.0") | ||
| 17532 | (source (origin | ||
| 17533 | (method git-fetch) | ||
| 17534 | (uri (git-reference | ||
| 17535 | (url "https://github.com/RubyCrypto/ed25519") | ||
| 17536 | (commit (string-append "v" version)))) | ||
| 17537 | (file-name (git-file-name name version)) | ||
| 17538 | (sha256 | ||
| 17539 | (base32 | ||
| 17540 | "1jm5w2dyhyrndcx0d02v0gjbzl1abhbx2wkp3gxzwcndghmkz98r")))) | ||
| 17541 | (build-system ruby-build-system) | ||
| 17542 | (arguments | ||
| 17543 | (list | ||
| 17544 | #:test-target "spec" | ||
| 17545 | #:phases | ||
| 17546 | #~(modify-phases %standard-phases | ||
| 17547 | (add-before 'build 'compile | ||
| 17548 | (lambda _ | ||
| 17549 | (invoke "rake" "compile"))) | ||
| 17550 | (add-after 'unpack 'remove-unnecessary-dependencies | ||
| 17551 | (lambda _ | ||
| 17552 | ;; Coveralls relates to a network service, and RuboCop to code | ||
| 17553 | ;; linting and both are unnecessary to run the tests | ||
| 17554 | (substitute* "Gemfile" | ||
| 17555 | ((".*coveralls.*") | ||
| 17556 | "\n") | ||
| 17557 | ((".*rubocop.*") | ||
| 17558 | "\n")) | ||
| 17559 | (substitute* "spec/spec_helper.rb" | ||
| 17560 | (("require \"coveralls\"") | ||
| 17561 | "") | ||
| 17562 | (("Coveralls.wear!") | ||
| 17563 | "")) | ||
| 17564 | (substitute* "Rakefile" | ||
| 17565 | (("require \"rubocop/rake_task\"") | ||
| 17566 | "") | ||
| 17567 | (("RuboCop::RakeTask.new") | ||
| 17568 | ""))))))) | ||
| 17569 | (native-inputs (list ruby-rake-compiler ruby-rspec)) | ||
| 17570 | (synopsis | ||
| 17571 | "Ruby binding to the Ed25519 elliptic curve public-key signature system") | ||
| 17572 | (description | ||
| 17573 | "This package provides a Ruby binding to the Ed25519 elliptic curve | ||
| 17574 | public-key signature system described in | ||
| 17575 | @url{https://www.ietf.org/rfc/rfc8032.txt, RFC 8032}.") | ||
| 17576 | (home-page "https://github.com/RubyCrypto/ed25519") | ||
| 17577 | (license license:expat))) | ||
| 17578 | |||
| 17579 | (define-public ruby-edtf | ||
| 17580 | (package | ||
| 17581 | (name "ruby-edtf") | ||
| 17582 | (version "3.1.0") | ||
| 17583 | (source (origin | ||
| 17584 | (method git-fetch) | ||
| 17585 | (uri (git-reference | ||
| 17586 | (url "https://github.com/inukshuk/edtf-ruby") | ||
| 17587 | (commit (string-append "v" version)))) | ||
| 17588 | (sha256 | ||
| 17589 | (base32 | ||
| 17590 | "18j8xq8zmrn41cs2gpd1i87agi9905asvnjqndky2cqb5zg3q14g")) | ||
| 17591 | (snippet | ||
| 17592 | ;; remove generated file | ||
| 17593 | #~(delete-file "lib/edtf/parser.rb")) | ||
| 17594 | (file-name (git-file-name name version)))) | ||
| 17595 | (build-system ruby-build-system) | ||
| 17596 | (propagated-inputs | ||
| 17597 | (list ruby-activesupport)) | ||
| 17598 | (native-inputs | ||
| 17599 | (list ruby-cucumber | ||
| 17600 | ruby-rspec)) | ||
| 17601 | (arguments | ||
| 17602 | (list | ||
| 17603 | #:phases | ||
| 17604 | #~(modify-phases %standard-phases | ||
| 17605 | (add-after 'extract-gemspec 'avoid-bundler | ||
| 17606 | (lambda args | ||
| 17607 | (substitute* "Rakefile" | ||
| 17608 | (("require 'bundler" orig) | ||
| 17609 | (string-append "# " orig " # patched for Guix")) | ||
| 17610 | (("bundle exec racc") | ||
| 17611 | "racc") | ||
| 17612 | (("Cucumber::Rake::Task\\.new[(]:cucumber[)]" orig) | ||
| 17613 | (string-append orig " do |c|\n" | ||
| 17614 | " c.bundler = false # patched for Guix\n" | ||
| 17615 | "end")) | ||
| 17616 | (("Bundler\\.setup" orig) | ||
| 17617 | (string-append "true # " orig " # patched for Guix"))))) | ||
| 17618 | (add-after 'avoid-bundler 'patch-cucumber-options | ||
| 17619 | (lambda args | ||
| 17620 | (substitute* "cucumber.yml" | ||
| 17621 | ;; this option is not supported, at least in our configuration | ||
| 17622 | ((" --publish-quiet") | ||
| 17623 | "")))) | ||
| 17624 | (add-before 'build 'compile | ||
| 17625 | (lambda args | ||
| 17626 | (invoke "rake" "racc"))) | ||
| 17627 | (replace 'check | ||
| 17628 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 17629 | (when tests? | ||
| 17630 | (invoke "rake"))))))) | ||
| 17631 | (home-page "https://github.com/inukshuk/edtf-ruby") | ||
| 17632 | (synopsis "Ruby implementation of Extended Date/Time Format") | ||
| 17633 | (description | ||
| 17634 | "EDTF-Ruby provides a parser and an API for the @acronym{EDTF, Extended | ||
| 17635 | Date/Time Format} standard, implemented as an extension to Ruby's @code{Date} | ||
| 17636 | class.") | ||
| 17637 | (license license:bsd-2))) | ||
| 17638 | |||
| 17639 | (define-public ruby-gli | ||
| 17640 | (package | ||
| 17641 | (name "ruby-gli") | ||
| 17642 | (version "2.21.0") | ||
| 17643 | (source (origin | ||
| 17644 | (method git-fetch) | ||
| 17645 | (uri (git-reference | ||
| 17646 | (url "https://github.com/davetron5000/gli") | ||
| 17647 | (commit (string-append "v" version)))) | ||
| 17648 | (sha256 | ||
| 17649 | (base32 | ||
| 17650 | "09b1r9hlx4dy2yq036nk7hc2nbswhia6q3na9v11z94yibc8mgja")) | ||
| 17651 | (file-name (git-file-name name version)))) | ||
| 17652 | (build-system ruby-build-system) | ||
| 17653 | (native-inputs | ||
| 17654 | (list ruby-minitest | ||
| 17655 | ruby-rainbow | ||
| 17656 | ruby-rdoc | ||
| 17657 | ruby-sdoc)) | ||
| 17658 | (arguments | ||
| 17659 | (list | ||
| 17660 | #:phases | ||
| 17661 | #~(modify-phases %standard-phases | ||
| 17662 | (add-after 'extract-gemspec 'patch-gemspec-version | ||
| 17663 | (lambda args | ||
| 17664 | (substitute* "gli.gemspec" | ||
| 17665 | ;; this trick fails in our build environment | ||
| 17666 | (("require File\\.join[(]\\[" orig) | ||
| 17667 | (string-append "# patched for Guix # " orig)) | ||
| 17668 | (("s\\.version = GLI::VERSION") | ||
| 17669 | #$(string-append "s.version = '" | ||
| 17670 | (package-version this-package) | ||
| 17671 | "' # patched for Guix"))))) | ||
| 17672 | (add-after 'replace-git-ls-files 'replace-another-git-ls-files | ||
| 17673 | (lambda args | ||
| 17674 | (substitute* "gli.gemspec" | ||
| 17675 | (("`git ls-files -- [{]test,spec,features[}]/\\*`") | ||
| 17676 | "`find {test,spec,features} -type f | sort`")))) | ||
| 17677 | (add-after 'replace-another-git-ls-files 'fix-rubyopt | ||
| 17678 | (lambda args | ||
| 17679 | (substitute* "Rakefile" | ||
| 17680 | (("ENV\\[\"RUBYOPT\"]") | ||
| 17681 | "(ENV['RUBYOPT'] || '')"))))))) | ||
| 17682 | (home-page "https://davetron5000.github.io/gli/") | ||
| 17683 | (synopsis "Git-Like Interface command-line parser") | ||
| 17684 | (description | ||
| 17685 | "GLI allows you to create command-line applications in Ruby with Git-Like | ||
| 17686 | Interfaces: that is, they take subcommands in the style of @command{git} and | ||
| 17687 | @command{gem}. GLI uses a simple domain-specific language, but retains all | ||
| 17688 | the power of the built-in @code{OptionParser}.") | ||
| 17689 | (license license:asl2.0))) | ||
| 17690 | |||
| 17691 | (define-public ruby-anystyle-data | ||
| 17692 | (package | ||
| 17693 | (name "ruby-anystyle-data") | ||
| 17694 | (version "1.3.0") | ||
| 17695 | (source (origin | ||
| 17696 | (method git-fetch) | ||
| 17697 | (uri (git-reference | ||
| 17698 | (url "https://github.com/inukshuk/anystyle-data") | ||
| 17699 | (commit (string-append "v" version)))) | ||
| 17700 | (sha256 | ||
| 17701 | (base32 | ||
| 17702 | "1jh880310m3gjdrk4m8rwwnsf0824zkf26clpr8p64sac2fyy907")) | ||
| 17703 | (snippet | ||
| 17704 | ;; remove pre-built file | ||
| 17705 | #~(delete-file "lib/anystyle/data/dict.txt.gz")) | ||
| 17706 | (patches | ||
| 17707 | (search-patches "ruby-anystyle-data-immutable-install.patch")) | ||
| 17708 | (file-name (git-file-name name version)))) | ||
| 17709 | (build-system ruby-build-system) | ||
| 17710 | (arguments | ||
| 17711 | (list | ||
| 17712 | #:tests? #f ;; there are none | ||
| 17713 | #:modules | ||
| 17714 | `((guix build ruby-build-system) | ||
| 17715 | (guix build utils) | ||
| 17716 | (srfi srfi-26)) | ||
| 17717 | #:phases | ||
| 17718 | #~(modify-phases %standard-phases | ||
| 17719 | (add-after 'replace-git-ls-files 'replace-another-git-ls-files | ||
| 17720 | (lambda args | ||
| 17721 | (substitute* "anystyle-data.gemspec" | ||
| 17722 | (("`git ls-files lib README\\.md LICENSE`\\.split[(][^)]*[)]") | ||
| 17723 | (string-append | ||
| 17724 | "[" | ||
| 17725 | (string-join | ||
| 17726 | (map (cut string-append "\"" <> "\"") | ||
| 17727 | `("README.md" | ||
| 17728 | "LICENSE" | ||
| 17729 | "lib/anystyle/data.rb" | ||
| 17730 | "lib/anystyle/data/dict.txt.gz" | ||
| 17731 | "lib/anystyle/data/setup.rb" | ||
| 17732 | "lib/anystyle/data/version.rb")) | ||
| 17733 | ", ") | ||
| 17734 | "]"))))) | ||
| 17735 | (add-before 'build 'compile-dict | ||
| 17736 | (lambda args | ||
| 17737 | (invoke "rake" "compile")))))) | ||
| 17738 | (home-page "https://anystyle.io") | ||
| 17739 | (synopsis "AnyStyle parser dictionary data") | ||
| 17740 | (description | ||
| 17741 | "This gem provides parser dictionary data for AnyStyle.") | ||
| 17742 | (license license:bsd-2))) | ||
| 17743 | |||
| 17744 | (define-public ruby-anystyle | ||
| 17745 | (package | ||
| 17746 | (name "ruby-anystyle") | ||
| 17747 | (version "1.4.2") | ||
| 17748 | (source (origin | ||
| 17749 | (method git-fetch) | ||
| 17750 | (uri (git-reference | ||
| 17751 | (url "https://github.com/inukshuk/anystyle") | ||
| 17752 | (commit (string-append "v" version)))) | ||
| 17753 | (sha256 | ||
| 17754 | (base32 | ||
| 17755 | "0xhy7wj8v7iahikck6vxbdpncaz5w2gb11b32kmvg5ckgi2kz23p")) | ||
| 17756 | (snippet | ||
| 17757 | ;; There is an optional dependency on | ||
| 17758 | ;; <https://github.com/feedbackmine/language_detector>, which | ||
| 17759 | ;; seems like it was intended to be free software, but | ||
| 17760 | ;; doesn't have a clear license statement. Maybe someone can | ||
| 17761 | ;; do more sleuthing, or else find a replacement? See also | ||
| 17762 | ;; <https://github.com/inukshuk/anystyle/issues/186>. For | ||
| 17763 | ;; now, patch it out, but leave a pointer to follow up. | ||
| 17764 | #~(begin | ||
| 17765 | (use-modules (guix build utils)) | ||
| 17766 | (substitute* "Gemfile" | ||
| 17767 | (("gem 'language_detector', github: '[^']*'" orig) | ||
| 17768 | (string-append "# " orig " # unclear license"))) | ||
| 17769 | (substitute* "spec/anystyle/parser_spec.rb" | ||
| 17770 | (("language: 'en'," orig) | ||
| 17771 | (string-append "# " orig " # no lanugage_detector"))))) | ||
| 17772 | (patches | ||
| 17773 | (search-patches | ||
| 17774 | "ruby-anystyle-fix-dictionary-populate.patch")) | ||
| 17775 | (file-name (git-file-name name version)))) | ||
| 17776 | (build-system ruby-build-system) | ||
| 17777 | (propagated-inputs | ||
| 17778 | (list ruby-anystyle-data | ||
| 17779 | ruby-bibtex-ruby | ||
| 17780 | ruby-namae | ||
| 17781 | ruby-wapiti)) | ||
| 17782 | (native-inputs | ||
| 17783 | (list ruby-byebug | ||
| 17784 | ruby-citeproc | ||
| 17785 | ruby-edtf | ||
| 17786 | ruby-gdbm | ||
| 17787 | ruby-rspec | ||
| 17788 | ruby-unicode-scripts)) | ||
| 17789 | (arguments | ||
| 17790 | (list | ||
| 17791 | #:test-target "spec" | ||
| 17792 | #:phases | ||
| 17793 | #~(modify-phases %standard-phases | ||
| 17794 | (add-after 'extract-gemspec 'avoid-bundler | ||
| 17795 | (lambda args | ||
| 17796 | (substitute* "Rakefile" | ||
| 17797 | (("require 'bundler" orig) | ||
| 17798 | (string-append "# " orig " # patched for Guix")) | ||
| 17799 | (("Bundler\\.setup" orig) | ||
| 17800 | (string-append "true # " orig " # patched for Guix"))))) | ||
| 17801 | (add-after 'replace-git-ls-files 'replace-another-git-ls-files | ||
| 17802 | (lambda args | ||
| 17803 | (substitute* "anystyle.gemspec" | ||
| 17804 | (("`git ls-files spec`") | ||
| 17805 | "`find spec -type f | sort`")))) | ||
| 17806 | (add-after 'wrap 'populate-dictionaries | ||
| 17807 | (lambda args | ||
| 17808 | ;; We must initialize these files here, or they will never be | ||
| 17809 | ;; usable with the default settings. A more flexible approach | ||
| 17810 | ;; might use something like `Gem.find_files()` or | ||
| 17811 | ;; XDG_DATA_DIRS. | ||
| 17812 | (with-output-to-file "initialize-dictionaries.rb" | ||
| 17813 | (lambda () | ||
| 17814 | (display "\ | ||
| 17815 | require 'anystyle/dictionary' # must come before 'anystyle/data' | ||
| 17816 | require 'anystyle/data' | ||
| 17817 | [:marshal, :gdbm].each do |adapter| | ||
| 17818 | AnyStyle::Dictionary.create({adapter: adapter}).open().close() | ||
| 17819 | end | ||
| 17820 | "))) | ||
| 17821 | (let* ((old-gems (getenv "GEM_PATH")) | ||
| 17822 | (new-gems (string-append #$output | ||
| 17823 | "/lib/ruby/vendor_ruby:" | ||
| 17824 | old-gems))) | ||
| 17825 | (dynamic-wind | ||
| 17826 | (lambda () | ||
| 17827 | (setenv "GEM_PATH" new-gems)) | ||
| 17828 | (lambda () | ||
| 17829 | (invoke "ruby" "initialize-dictionaries.rb")) | ||
| 17830 | (lambda () | ||
| 17831 | (setenv "GEM_PATH" old-gems))))))))) | ||
| 17832 | (home-page "https://anystyle.io") | ||
| 17833 | (synopsis "Fast and smart citation reference parsing (Ruby library)") | ||
| 17834 | (description | ||
| 17835 | "AnyStyle is a very fast and smart parser for academic reference lists | ||
| 17836 | and bibliographies. AnyStyle uses powerful machine learning heuristics based | ||
| 17837 | on Conditional Random Fields and aims to make it easy to train the model with | ||
| 17838 | data that is relevant to your parsing needs. | ||
| 17839 | |||
| 17840 | This package provides the Ruby module @code{AnyStyle}. AnyStyle can also be | ||
| 17841 | used via the @command{anystyle} command-line utility or a web application, | ||
| 17842 | though the later has not yet been packaged for Guix.") | ||
| 17843 | (license license:bsd-2))) | ||
| 17844 | |||
| 17845 | (define-public anystyle | ||
| 17846 | (package | ||
| 17847 | (name "anystyle") | ||
| 17848 | (version "1.4.5") | ||
| 17849 | (source (origin | ||
| 17850 | (method git-fetch) | ||
| 17851 | (uri (git-reference | ||
| 17852 | (url "https://github.com/inukshuk/anystyle-cli") | ||
| 17853 | (commit (string-append "v" version)))) | ||
| 17854 | (sha256 | ||
| 17855 | (base32 | ||
| 17856 | "10jx830mx9vh7rsz87ndvz8w5b5azd9s231vwyb0dqxs921v6qwy")) | ||
| 17857 | (file-name (git-file-name name version)))) | ||
| 17858 | (build-system ruby-build-system) | ||
| 17859 | (propagated-inputs | ||
| 17860 | (list ruby-anystyle | ||
| 17861 | ruby-bibtex-ruby | ||
| 17862 | ruby-gli)) | ||
| 17863 | (native-inputs | ||
| 17864 | (list ruby-gdbm | ||
| 17865 | txt2man)) | ||
| 17866 | (arguments | ||
| 17867 | (list | ||
| 17868 | #:modules | ||
| 17869 | `((guix build ruby-build-system) | ||
| 17870 | (ice-9 popen) | ||
| 17871 | (srfi srfi-1) | ||
| 17872 | (guix build utils)) | ||
| 17873 | #:phases | ||
| 17874 | #~(modify-phases %standard-phases | ||
| 17875 | (add-after 'extract-gemspec 'less-strict-dependencies | ||
| 17876 | (lambda args | ||
| 17877 | (substitute* "anystyle-cli.gemspec" | ||
| 17878 | (("'bibtex-ruby', '[^']*'") | ||
| 17879 | "'bibtex-ruby'")))) | ||
| 17880 | (add-before 'build 'change-default-dictionary-adapter | ||
| 17881 | (lambda args | ||
| 17882 | ;; Since we always have gdbm available, using it will give a | ||
| 17883 | ;; faster startup time, which is particularly worth-while for | ||
| 17884 | ;; a command-line tool. | ||
| 17885 | (substitute* "bin/anystyle" | ||
| 17886 | (("default_value: 'ruby',") | ||
| 17887 | "default_value: 'gdbm', # patched for Guix")))) | ||
| 17888 | (replace 'check | ||
| 17889 | (lambda* (#:key tests? #:allow-other-keys) | ||
| 17890 | ;; There are no tests, but let's use this opportunity to do a | ||
| 17891 | ;; basic test of our own that things run ok. It works especially | ||
| 17892 | ;; well to test this here since we know the 'ruby-anystile' | ||
| 17893 | ;; package is in its final, immutable installed form. | ||
| 17894 | (when tests? | ||
| 17895 | (let ((common | ||
| 17896 | `("require 'anystyle'" | ||
| 17897 | ,(string-append | ||
| 17898 | "pp AnyStyle.parse 'Derrida, J. (1967). L’écriture" | ||
| 17899 | " et la différence (1 éd.). Paris: Éditions du" | ||
| 17900 | " Seuil.'")))) | ||
| 17901 | (for-each | ||
| 17902 | (lambda (lines) | ||
| 17903 | (apply invoke "ruby" | ||
| 17904 | (fold-right (lambda (line lst) | ||
| 17905 | (cons* "-e" line lst)) | ||
| 17906 | '() | ||
| 17907 | lines))) | ||
| 17908 | `(,common | ||
| 17909 | ("require 'anystyle/dictionary'" | ||
| 17910 | "AnyStyle::Dictionary.defaults[:adapter] = :gdbm" | ||
| 17911 | ,@common))))))) | ||
| 17912 | (add-after 'wrap 'check-cli | ||
| 17913 | (lambda* (#:key tests? outputs #:allow-other-keys) | ||
| 17914 | (when tests? | ||
| 17915 | (with-output-to-file "check-cli.in" | ||
| 17916 | (lambda () | ||
| 17917 | (for-each | ||
| 17918 | display | ||
| 17919 | '("Derrida, J. (1967). L’écriture et la différence " | ||
| 17920 | "(1 éd.). Paris: Éditions du Seuil.\n")))) | ||
| 17921 | (invoke (search-input-file outputs "/bin/anystyle") | ||
| 17922 | "parse" | ||
| 17923 | "check-cli.in")))) | ||
| 17924 | (add-after 'wrap 'generate-man-page | ||
| 17925 | ;; generating a man page also tests that the command actually runs | ||
| 17926 | (lambda args | ||
| 17927 | (define (run-with-output-file file command . args) | ||
| 17928 | (format (current-output-port) | ||
| 17929 | "running: ~s\nwith output to: ~s\n" | ||
| 17930 | (cons command args) | ||
| 17931 | file) | ||
| 17932 | (unless (zero? | ||
| 17933 | (with-output-to-file file | ||
| 17934 | (lambda () | ||
| 17935 | (status:exit-val | ||
| 17936 | (close-pipe | ||
| 17937 | (apply open-pipe* OPEN_WRITE command args)))))) | ||
| 17938 | (error "command failed"))) | ||
| 17939 | (let ((anystyle (string-append #$output "/bin/anystyle"))) | ||
| 17940 | (run-with-output-file "intro.txt" | ||
| 17941 | anystyle "--help") | ||
| 17942 | (for-each (lambda (cmd) | ||
| 17943 | (let ((file (string-append cmd ".txt"))) | ||
| 17944 | (run-with-output-file file | ||
| 17945 | anystyle cmd "--help") | ||
| 17946 | ;; indent headings to create subsections | ||
| 17947 | (substitute* file | ||
| 17948 | (("^[A-Z]" orig) | ||
| 17949 | (string-append " " orig))) | ||
| 17950 | ;; generate a section heading | ||
| 17951 | (call-with-output-file | ||
| 17952 | (string-append "section-" file) | ||
| 17953 | (lambda (out) | ||
| 17954 | (format out "\n\n~a COMMAND\n\n" | ||
| 17955 | (string-upcase cmd)))))) | ||
| 17956 | '("check" "find" "parse" "train")) | ||
| 17957 | (substitute* `("intro.txt" | ||
| 17958 | "check.txt" "find.txt" "parse.txt" "train.txt") | ||
| 17959 | ;; format "tag list" for txt2man" | ||
| 17960 | ((" - ") | ||
| 17961 | " ") | ||
| 17962 | ;; restore formatting of the "name" sections | ||
| 17963 | (("(anystyle|check|find|parse|train) ([A-Z])" _ cmd post) | ||
| 17964 | (string-append cmd " - " post))) | ||
| 17965 | (run-with-output-file "anystyle.txt" | ||
| 17966 | "cat" | ||
| 17967 | "intro.txt" | ||
| 17968 | "section-check.txt" "check.txt" | ||
| 17969 | "section-find.txt" "find.txt" | ||
| 17970 | "section-parse.txt" "parse.txt" | ||
| 17971 | "section-train.txt" "train.txt") | ||
| 17972 | (run-with-output-file | ||
| 17973 | "anystyle.1" | ||
| 17974 | "txt2man" | ||
| 17975 | "-v" "General Commands Manual" "-t" "anystyle" "-s" "1" | ||
| 17976 | "-r" #$(string-append "anystyle-cli " | ||
| 17977 | (package-version this-package)) | ||
| 17978 | "-B" "check" "-B" "find" "-B" "parse" "-B" "train" | ||
| 17979 | "anystyle.txt") | ||
| 17980 | (install-file "anystyle.1" | ||
| 17981 | (string-append #$output "/share/man/man1")))))))) | ||
| 17982 | (home-page "https://anystyle.io") | ||
| 17983 | (synopsis "Fast and smart citation reference parsing") | ||
| 17984 | (description | ||
| 17985 | "AnyStyle is a very fast and smart parser for academic reference lists | ||
| 17986 | and bibliographies. AnyStyle uses powerful machine learning heuristics based | ||
| 17987 | on Conditional Random Fields and aims to make it easy to train the model with | ||
| 17988 | data that is relevant to your parsing needs. | ||
| 17989 | |||
| 17990 | This package provides the @command{anystyle} command-line utility. AnyStyle | ||
| 17991 | can also be used as a Ruby library or as a web application, though the later | ||
| 17992 | has not yet been packaged for Guix.") | ||
| 17993 | (license license:bsd-2) | ||
| 17994 | (properties `((upstream-name . "anystyle-cli"))))) | ||
| 17995 | |||
| 17996 | (define-public ruby-google-protobuf | ||
| 17997 | (package | ||
| 17998 | (name "ruby-google-protobuf") | ||
| 17999 | (version "3.25.3") | ||
| 18000 | (source (origin | ||
| 18001 | (method url-fetch) | ||
| 18002 | (uri (rubygems-uri "google-protobuf" version)) | ||
| 18003 | (sha256 | ||
| 18004 | (base32 | ||
| 18005 | "1mnxzcq8kmyfb9bkzqnp019d1hx1vprip3yzdkkha6b3qz5rgg9r")))) | ||
| 18006 | (build-system ruby-build-system) | ||
| 18007 | (arguments | ||
| 18008 | `(#:tests? #f)) ;; has no tests | ||
| 18009 | (native-inputs (list ruby-rake)) | ||
| 18010 | (synopsis "Protocol Buffers are Google's data interchange format") | ||
| 18011 | (description "This library contains the Ruby extension that implements | ||
| 18012 | Protocol Buffers functionality in Ruby. | ||
| 18013 | |||
| 18014 | The Ruby extension makes use of generated Ruby code that defines message and | ||
| 18015 | enum types in a Ruby DSL. You may write definitions in this DSL directly, but | ||
| 18016 | we recommend using protoc's Ruby generation support with @code{.proto} files. | ||
| 18017 | The build process in this directory only installs the extension; you need to | ||
| 18018 | install @code{protoc} (in package ruby-grpc-tools) as well to have Ruby code | ||
| 18019 | generation functionality.") | ||
| 18020 | (home-page "https://protobuf.dev") | ||
| 18021 | (license license:bsd-3))) | ||
| 18022 | |||
| 18023 | (define-public ruby-googleapis-common-protos-types | ||
| 18024 | (package | ||
| 18025 | (name "ruby-googleapis-common-protos-types") | ||
| 18026 | (version "1.13.0") | ||
| 18027 | (source (origin | ||
| 18028 | (method url-fetch) | ||
| 18029 | (uri (rubygems-uri "googleapis-common-protos-types" version)) | ||
| 18030 | (sha256 | ||
| 18031 | (base32 | ||
| 18032 | "1zrxnv9s2q39f2nh32x7nbfi8lpwzmmn3ji4adglg8dlfr1xrz16")))) | ||
| 18033 | (build-system ruby-build-system) | ||
| 18034 | (arguments | ||
| 18035 | `(#:tests? #f)) ;; has no tests | ||
| 18036 | (propagated-inputs (list ruby-google-protobuf)) | ||
| 18037 | (synopsis "Common protocol buffer types used by Google APIs") | ||
| 18038 | (description "Common protocol buffer types used by Google APIs") | ||
| 18039 | (home-page "https://github.com/googleapis/common-protos-ruby") | ||
| 18040 | (license license:asl2.0))) | ||
| 18041 | |||
| 18042 | (define-public ruby-grpc | ||
| 18043 | (package | ||
| 18044 | (name "ruby-grpc") | ||
| 18045 | (version "1.62.0") | ||
| 18046 | (source (origin | ||
| 18047 | (method url-fetch) | ||
| 18048 | (uri (rubygems-uri "grpc" version)) | ||
| 18049 | (sha256 | ||
| 18050 | (base32 | ||
| 18051 | "03z8yq0z228g6xxxq6s2mmslpv6psrdmi30dpmhysr4px16d897n")))) | ||
| 18052 | (build-system ruby-build-system) | ||
| 18053 | (arguments | ||
| 18054 | `(#:tests? #f)) ;; has no tests | ||
| 18055 | ;; TODO remove third-party sources (zlib, upb, utf8-range, re2, c-ares, | ||
| 18056 | ;; boringssl-with-bazel, address_sorting, abseil-cpp), see Makefile | ||
| 18057 | (propagated-inputs (list ruby-google-protobuf | ||
| 18058 | ruby-googleapis-common-protos-types)) | ||
| 18059 | (synopsis "GRPC system in Ruby") | ||
| 18060 | (description "GRPC is a high performance, open-source universal RPC | ||
| 18061 | framework. This package provides a ruby interface for it.") | ||
| 18062 | (home-page "https://github.com/grpc/grpc/tree/master/src/ruby") | ||
| 18063 | (license license:asl2.0))) | ||
| 18064 | |||
| 18065 | ;;; | 322 | ;;; |
| 18066 | ;;; Avoid adding new packages to the end of this file. To reduce the chances | 323 | ;;; Avoid adding new packages to the end of this file. To reduce the chances |
| 18067 | ;;; of a merge conflict, place them above by existing packages with similar | 324 | ;;; of a merge conflict, place them above by existing packages with similar |
diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm index 954e8a0c554..33336e66944 100644 --- a/gnu/packages/shellutils.scm +++ b/gnu/packages/shellutils.scm | |||
| @@ -74,6 +74,8 @@ | |||
| 74 | #:use-module (gnu packages python-xyz) | 74 | #:use-module (gnu packages python-xyz) |
| 75 | #:use-module (gnu packages readline) | 75 | #:use-module (gnu packages readline) |
| 76 | #:use-module (gnu packages ruby) | 76 | #:use-module (gnu packages ruby) |
| 77 | #:use-module (gnu packages ruby-check) | ||
| 78 | #:use-module (gnu packages ruby-xyz) | ||
| 77 | #:use-module (gnu packages shells) | 79 | #:use-module (gnu packages shells) |
| 78 | #:use-module (gnu packages textutils) | 80 | #:use-module (gnu packages textutils) |
| 79 | #:use-module (gnu packages tmux) | 81 | #:use-module (gnu packages tmux) |
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index c5825742d2e..c7d707213b5 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm | |||
| @@ -96,7 +96,8 @@ | |||
| 96 | #:use-module (gnu packages python-science) | 96 | #:use-module (gnu packages python-science) |
| 97 | #:use-module (gnu packages python-xyz) | 97 | #:use-module (gnu packages python-xyz) |
| 98 | #:use-module (gnu packages readline) | 98 | #:use-module (gnu packages readline) |
| 99 | #:use-module (gnu packages ruby) | 99 | #:use-module (gnu packages ruby-check) |
| 100 | #:use-module (gnu packages ruby-xyz) | ||
| 100 | #:use-module (gnu packages shells) | 101 | #:use-module (gnu packages shells) |
| 101 | #:use-module (gnu packages sphinx) | 102 | #:use-module (gnu packages sphinx) |
| 102 | #:use-module (gnu packages ssh) | 103 | #:use-module (gnu packages ssh) |
diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm index e8d4d09a561..2130cfb0da7 100644 --- a/gnu/packages/syndication.scm +++ b/gnu/packages/syndication.scm | |||
| @@ -65,7 +65,7 @@ | |||
| 65 | #:use-module (gnu packages python-xyz) | 65 | #:use-module (gnu packages python-xyz) |
| 66 | #:use-module (gnu packages python-web) | 66 | #:use-module (gnu packages python-web) |
| 67 | #:use-module (gnu packages qt) | 67 | #:use-module (gnu packages qt) |
| 68 | #:use-module (gnu packages ruby) | 68 | #:use-module (gnu packages ruby-check) |
| 69 | #:use-module (gnu packages rust) | 69 | #:use-module (gnu packages rust) |
| 70 | #:use-module (gnu packages sqlite) | 70 | #:use-module (gnu packages sqlite) |
| 71 | #:use-module (gnu packages time) | 71 | #:use-module (gnu packages time) |
| @@ -252,8 +252,8 @@ cards.") | |||
| 252 | openssl | 252 | openssl |
| 253 | pkg-config) | 253 | pkg-config) |
| 254 | ;; For building documentation. | 254 | ;; For building documentation. |
| 255 | (if (supported-package? ruby-asciidoctor) | 255 | (if (supported-package? ruby-asciidoctor/minimal) |
| 256 | (list ruby-asciidoctor) | 256 | (list ruby-asciidoctor/minimal) |
| 257 | '()))) | 257 | '()))) |
| 258 | (inputs | 258 | (inputs |
| 259 | (list curl | 259 | (list curl |
diff --git a/gnu/packages/task-management.scm b/gnu/packages/task-management.scm index a383dc8c5d8..342bffde38c 100644 --- a/gnu/packages/task-management.scm +++ b/gnu/packages/task-management.scm | |||
| @@ -59,7 +59,7 @@ | |||
| 59 | #:use-module (gnu packages python-xyz) | 59 | #:use-module (gnu packages python-xyz) |
| 60 | #:use-module (gnu packages qt) | 60 | #:use-module (gnu packages qt) |
| 61 | #:use-module (gnu packages readline) | 61 | #:use-module (gnu packages readline) |
| 62 | #:use-module (gnu packages ruby) | 62 | #:use-module (gnu packages ruby-check) |
| 63 | #:use-module (gnu packages time) | 63 | #:use-module (gnu packages time) |
| 64 | #:use-module (gnu packages tls) | 64 | #:use-module (gnu packages tls) |
| 65 | #:use-module (gnu packages version-control) | 65 | #:use-module (gnu packages version-control) |
| @@ -280,7 +280,7 @@ execution, and libreadline support.") | |||
| 280 | "../timew-1.4.3/completion/timew-completion.bash" | 280 | "../timew-1.4.3/completion/timew-completion.bash" |
| 281 | (string-append bash-completion-install-dir "/timew")))))))) | 281 | (string-append bash-completion-install-dir "/timew")))))))) |
| 282 | (native-inputs | 282 | (native-inputs |
| 283 | (list ruby-asciidoctor)) | 283 | (list ruby-asciidoctor/minimal)) |
| 284 | (inputs | 284 | (inputs |
| 285 | (list gnutls python `(,util-linux "lib"))) | 285 | (list gnutls python `(,util-linux "lib"))) |
| 286 | (home-page "https://timewarrior.net") | 286 | (home-page "https://timewarrior.net") |
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 8ff396c50eb..dc353ac678e 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm | |||
| @@ -98,6 +98,7 @@ | |||
| 98 | #:use-module (gnu packages qt) | 98 | #:use-module (gnu packages qt) |
| 99 | #:use-module (gnu packages readline) | 99 | #:use-module (gnu packages readline) |
| 100 | #:use-module (gnu packages ruby) | 100 | #:use-module (gnu packages ruby) |
| 101 | #:use-module (gnu packages ruby-xyz) | ||
| 101 | #:use-module (gnu packages shells) | 102 | #:use-module (gnu packages shells) |
| 102 | #:use-module (gnu packages tcl) | 103 | #:use-module (gnu packages tcl) |
| 103 | #:use-module (gnu packages time) | 104 | #:use-module (gnu packages time) |
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index 4ec548b6d40..b4468f71389 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm | |||
| @@ -121,7 +121,6 @@ | |||
| 121 | #:use-module (gnu packages python-xyz) | 121 | #:use-module (gnu packages python-xyz) |
| 122 | #:use-module (gnu packages qt) | 122 | #:use-module (gnu packages qt) |
| 123 | #:use-module (gnu packages regex) | 123 | #:use-module (gnu packages regex) |
| 124 | #:use-module (gnu packages ruby) | ||
| 125 | #:use-module (gnu packages sdl) | 124 | #:use-module (gnu packages sdl) |
| 126 | #:use-module (gnu packages slang) | 125 | #:use-module (gnu packages slang) |
| 127 | #:use-module (gnu packages sqlite) | 126 | #:use-module (gnu packages sqlite) |
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 35144f94209..a24545a17a7 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm | |||
| @@ -164,7 +164,7 @@ | |||
| 164 | #:use-module (gnu packages python-xyz) | 164 | #:use-module (gnu packages python-xyz) |
| 165 | #:use-module (gnu packages readline) | 165 | #:use-module (gnu packages readline) |
| 166 | #:use-module (gnu packages rsync) | 166 | #:use-module (gnu packages rsync) |
| 167 | #:use-module (gnu packages ruby) | 167 | #:use-module (gnu packages ruby-check) |
| 168 | #:use-module (gnu packages sqlite) | 168 | #:use-module (gnu packages sqlite) |
| 169 | #:use-module (gnu packages texinfo) | 169 | #:use-module (gnu packages texinfo) |
| 170 | #:use-module (gnu packages text-editors) | 170 | #:use-module (gnu packages text-editors) |
| @@ -4202,8 +4202,8 @@ will reconstruct the object along its delta-base chain and return it.") | |||
| 4202 | go-golang-org-x-sync | 4202 | go-golang-org-x-sync |
| 4203 | go-golang-org-x-sys) | 4203 | go-golang-org-x-sys) |
| 4204 | ;; make `ronn` available during build for man page generation | 4204 | ;; make `ronn` available during build for man page generation |
| 4205 | (if (supported-package? ruby-asciidoctor) | 4205 | (if (supported-package? ruby-asciidoctor/minimal) |
| 4206 | (list ronn-ng ruby-asciidoctor) | 4206 | (list ronn-ng ruby-asciidoctor/minimal) |
| 4207 | '()))) | 4207 | '()))) |
| 4208 | (home-page "https://git-lfs.github.com/") | 4208 | (home-page "https://git-lfs.github.com/") |
| 4209 | (synopsis "Git extension for versioning large files") | 4209 | (synopsis "Git extension for versioning large files") |
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index df61065c9dd..9b5fb7d9a27 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm | |||
| @@ -149,6 +149,8 @@ | |||
| 149 | #:use-module (gnu packages python-xyz) | 149 | #:use-module (gnu packages python-xyz) |
| 150 | #:use-module (gnu packages readline) | 150 | #:use-module (gnu packages readline) |
| 151 | #:use-module (gnu packages ruby) | 151 | #:use-module (gnu packages ruby) |
| 152 | #:use-module (gnu packages ruby-check) | ||
| 153 | #:use-module (gnu packages ruby-xyz) | ||
| 152 | #:use-module (gnu packages rsync) | 154 | #:use-module (gnu packages rsync) |
| 153 | #:use-module (gnu packages sdl) | 155 | #:use-module (gnu packages sdl) |
| 154 | #:use-module (gnu packages selinux) | 156 | #:use-module (gnu packages selinux) |
