[bug#34830] Patches for ruby.scm

Message ID CADX-DQF76_3EgCnSa0KrwSV6JqFztbfkLS5AwBrNtN7iPZaxAw@mail.gmail.com
State Accepted
Headers show
Series [bug#34830] Patches for ruby.scm | expand

Checks

Context Check Description
cbaines/applying patch fail Apply failed

Commit Message

keerthi suresh March 12, 2019, 5:40 p.m. UTC
On Tue, Mar 12, 2019 at 10:34 PM keerthi suresh <kota.keerthi1998@gmail.com>
wrote:

> I am Keerthi kota . I wrote two package named ruby-bounce and
> ruby-skinny-jeans
> and I sending those patches to NNN@debbugs.gnu.org
>

Comments

Ricardo Wurmus March 12, 2019, 9:40 p.m. UTC | #1
Hi Keerthi,

>> I am Keerthi kota . I wrote two package named ruby-bounce and
>> ruby-skinny-jeans

Thank you!  This seems to be your first patch submission to Guix.  Thank
you for taking the time to package something and sharing the results
with us!

I have a couple of comments about the patches that I hope will be useful
for your future contributions.

> From 596a48d092b6450eba7a965ee23f1cfb6309ba4b Mon Sep 17 00:00:00 2001
> From: Keerthi Kota <kota.keerthi1998@gmail.com>
> Date: Mon, 11 Mar 2019 18:51:49 +0530
> Subject: [PATCH] gnu: Add ruby-bounce.
>
>         * gnu/packages/ruby.scm (ruby-bounce): New variable.

Please don’t indent the commit message.

>
> +(define-public ruby-bounce
> +  (package
> +    (name "ruby-bounce")
> +    (version "0.1.2")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (rubygems-uri "bounce" version))
> +       (sha256
> +        (base32
> +         "1rlafvk1h5pb9k16lslqrfmfv6rl0hrskkhlliifd9dbm9s54cqg"))))
> +    (build-system ruby-build-system)
> +    (arguments
> +     '(;; No included tests
> +       #:tests? #f))
> +

I would prefer not to have this empty line here.

> +    (propagated-inputs
> +     `(("ruby-activerecord" ,ruby-activerecord)))
> +    (synopsis
> +     "Bounce will save and return an active record object. This results in a nice refactor of update and create actions in your controllers when used with respond_with.")

This is a *very* long synopsis :) If you take a look at other packages
you will see that a synopsis is to be a very short, general explanation
of what the package is about, without going into any detail.

> +    (description "bounce will save and return an active record object.  This results in a nice refactor of update and create actions in your controllers when used with respond_with.")

This is a very long line.  We suggest running the linter before
submitting a patch, because it will give you a couple of hints:

    ./pre-inst-env guix lint ruby-bounce

> +    (home-page
> +     "http://github.com/johnnytommy/bounce")

Please use https here and join these two lines.  Curiously this URL
cannot be found.  Is there another home page?

> +    (license license:expat)))

I haven’t checked this yet.

> From 0742fb40e7742349ce8b0e346c403cd7d85857c5 Mon Sep 17 00:00:00 2001
> From: Keerthi Kota <kota.keerthi1998@gmail.com>
> Date: Mon, 11 Mar 2019 18:43:25 +0530
> Subject: [PATCH]     gnu: Add ruby-skinny-jeans.
>
>     * gnu/packages/ruby.scm (ruby-skinny-jeans): New variable.

Same as above; please don’t indent these lines.

>  gnu/packages/ruby.scm | 2262 +++++++++++++++++++++++++------------------------
>  1 file changed, 1146 insertions(+), 1116 deletions(-)
>
> diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
> index 818553848..e6e0f09c2 100644
> --- a/gnu/packages/ruby.scm
> +++ b/gnu/packages/ruby.scm
> @@ -14,6 +14,7 @@
>  ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
>  ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
>  ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
> +;;; Copyright © 2019 Keerthi Kota <kota.keerthi1998@gmail.com>

Good! :)

>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -89,23 +90,23 @@
>      (build-system gnu-build-system)
>      (arguments
>       `(#:test-target "test"
> -       #:phases
> -       (modify-phases %standard-phases
> -         (add-before 'configure 'replace-bin-sh-and-remove-libffi
> -           (lambda _
…

You accidentally included hundreds of lines of unrelated changes in your
patch.

> +
> +(define-public ruby-skinny-jeans
> +  (package
> +    (name "ruby-skinny-jeans")
> +    (version "0.2.1")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (rubygems-uri "skinny-jeans" version))
> +       (sha256
> +        (base32
> +         "0lbhrkigypxikgzfzplsffilrpkym0snkznlqlba024y5m37w70m"))))
> +    (build-system ruby-build-system)
> +    (arguments
> +     '(;; No included tests
> +       #:tests? #f))
> +

Please remove this extra line.

> +    (propagated-inputs
> +     `(("ruby-activerecord" ,ruby-activerecord)
> +       ("ruby-sqlite3" ,ruby-sqlite3)))
> +    (synopsis
> +     "Fast webserver log parser for persisting daily pageviews per path to sqlite")
> +    (description
> +     "Fast webserver log parser for persisting daily pageviews per path to sqlite")

Please update both synopsis and description.  The synopsis should be
shorter and the description should consist of complete sentences.
Please also break long lines — guix lint will tell you when a line is
too long.

> +    (home-page
> +     "http://github.com/jotto/skinny-jeans")

Same as above: please use https and merge these two lines.  As before
this URL also does not exist any more.  Is there another home page?

> +    (license license:expat)))
> +
> +

I haven’t checked the license yet.  Please remove the extra empty lines
before and after the package definition.

Could you please send revised patches as a reply to this message?

Thanks again!

--
Ricardo

Patch

From 0742fb40e7742349ce8b0e346c403cd7d85857c5 Mon Sep 17 00:00:00 2001
From: Keerthi Kota <kota.keerthi1998@gmail.com>
Date: Mon, 11 Mar 2019 18:43:25 +0530
Subject: [PATCH]     gnu: Add ruby-skinny-jeans.

    * gnu/packages/ruby.scm (ruby-skinny-jeans): New variable.
---
 gnu/packages/ruby.scm | 2262 +++++++++++++++++++++++++------------------------
 1 file changed, 1146 insertions(+), 1116 deletions(-)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 818553848..e6e0f09c2 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -14,6 +14,7 @@ 
 ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2019 Keerthi Kota <kota.keerthi1998@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -89,23 +90,23 @@ 
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'replace-bin-sh-and-remove-libffi
-           (lambda _
-             (substitute* '("Makefile.in"
-                            "ext/pty/pty.c"
-                            "io.c"
-                            "lib/mkmf.rb"
-                            "process.c"
-                            "test/rubygems/test_gem_ext_configure_builder.rb"
-                            "test/rdoc/test_rdoc_parser.rb"
-                            "test/ruby/test_rubyoptions.rb"
-                            "test/ruby/test_process.rb"
-                            "test/ruby/test_system.rb"
-                            "tool/rbinstall.rb")
-               (("/bin/sh") (which "sh")))
-             #t)))))
+                     #:phases
+                     (modify-phases %standard-phases
+                       (add-before 'configure 'replace-bin-sh-and-remove-libffi
+                         (lambda _
+                           (substitute* '("Makefile.in"
+                                          "ext/pty/pty.c"
+                                          "io.c"
+                                          "lib/mkmf.rb"
+                                          "process.c"
+                                          "test/rubygems/test_gem_ext_configure_builder.rb"
+                                          "test/rdoc/test_rdoc_parser.rb"
+                                          "test/ruby/test_rubyoptions.rb"
+                                          "test/ruby/test_process.rb"
+                                          "test/ruby/test_system.rb"
+                                          "tool/rbinstall.rb")
+                             (("/bin/sh") (which "sh")))
+                           #t)))))
     (inputs
      `(("readline" ,readline)
        ("openssl" ,openssl)
@@ -178,39 +179,39 @@  a focus on simplicity and productivity.")
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure)
-         (add-after 'unpack 'enable-verbose-tests
-           (lambda _
-             (substitute* "Makefile"
-               (("ruby ./minirake" m)
-                (string-append m " --verbose")))
-             #t))
-         (add-after 'unpack 'disable-broken-tests
-           (lambda _
-             (substitute* "mrbgems/mruby-io/test/io.rb"
-               (("assert\\('IO.popen.+$" m)
-                (string-append m "skip \"Hangs in the Guix build environment\"\n"))
-               (("assert\\('IO#isatty.+$" m)
-                (string-append m "skip \"Disable for Guix; there is no /dev/tty\"\n"))
-               ;; This one is really weird.  The *expected* output is all wrong.
-               (("assert\\('`cmd`.*" m)
-                (string-append m "skip \"Disable for Guix\"\n"))
-               (("echo foo")
-                (string-append (which "echo") " foo")))
-             #t))
-         ;; There is no install target
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (bin (string-append out "/bin"))
-                    (lib (string-append out "/lib")))
-               (mkdir-p bin)
-               (copy-recursively "build/host/bin" bin)
-               (mkdir-p lib)
-               (copy-recursively "build/host/lib" lib))
-             #t)))))
+                     #:phases
+                     (modify-phases %standard-phases
+                       (delete 'configure)
+                       (add-after 'unpack 'enable-verbose-tests
+                         (lambda _
+                           (substitute* "Makefile"
+                             (("ruby ./minirake" m)
+                              (string-append m " --verbose")))
+                           #t))
+                       (add-after 'unpack 'disable-broken-tests
+                         (lambda _
+                           (substitute* "mrbgems/mruby-io/test/io.rb"
+                             (("assert\\('IO.popen.+$" m)
+                              (string-append m "skip \"Hangs in the Guix build environment\"\n"))
+                             (("assert\\('IO#isatty.+$" m)
+                              (string-append m "skip \"Disable for Guix; there is no /dev/tty\"\n"))
+                             ;; This one is really weird.  The *expected* output is all wrong.
+                             (("assert\\('`cmd`.*" m)
+                              (string-append m "skip \"Disable for Guix\"\n"))
+                             (("echo foo")
+                              (string-append (which "echo") " foo")))
+                           #t))
+                       ;; There is no install target
+                       (replace 'install
+                         (lambda* (#:key outputs #:allow-other-keys)
+                           (let* ((out (assoc-ref outputs "out"))
+                                  (bin (string-append out "/bin"))
+                                  (lib (string-append out "/lib")))
+                             (mkdir-p bin)
+                             (copy-recursively "build/host/bin" bin)
+                             (mkdir-p lib)
+                             (copy-recursively "build/host/lib" lib))
+                           #t)))))
     (native-inputs
      `(("ruby" ,ruby)
        ("bison" ,bison)))
@@ -235,16 +236,16 @@  embedded within your application.")
     (build-system ruby-build-system)
     (arguments
      `(#:test-target "spec"
-       #:phases
-       (modify-phases %standard-phases
-         ;; Don't run or require rubocop, the code linting tool, as this is a
-         ;; bit unnecessary.
-         (add-after 'unpack 'dont-run-rubocop
-           (lambda _
-             (substitute* "Rakefile"
-               ((".*rubocop.*") "")
-               ((".*RuboCop.*") ""))
-             #t)))))
+                     #:phases
+                     (modify-phases %standard-phases
+                       ;; Don't run or require rubocop, the code linting tool, as this is a
+                       ;; bit unnecessary.
+                       (add-after 'unpack 'dont-run-rubocop
+                         (lambda _
+                           (substitute* "Rakefile"
+                             ((".*rubocop.*") "")
+                             ((".*RuboCop.*") ""))
+                           #t)))))
     (propagated-inputs
      `(("ruby-highline" ,ruby-highline)))
     (native-inputs
@@ -342,14 +343,14 @@  packaging native C and Java extensions in Ruby.")
     (build-system ruby-build-system)
     (arguments
      '(#:test-target "spec"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'remove-coveralls-requirement
-           (lambda _
-             (substitute* "spec/spec_helper.rb"
-               (("require 'coveralls'") "")
-               (("Coveralls.wear!") ""))
-             #t)))))
+                     #:phases
+                     (modify-phases %standard-phases
+                       (add-after 'unpack 'remove-coveralls-requirement
+                         (lambda _
+                           (substitute* "spec/spec_helper.rb"
+                             (("require 'coveralls'") "")
+                             (("Coveralls.wear!") ""))
+                           #t)))))
     (native-inputs
      `(("bundler" ,bundler)
        ("rsync" ,rsync)
@@ -410,22 +411,22 @@  an extensible architecture with a swappable backend.")
      ;;
      ;; 2 runs, 9 assertions, 1 failures, 0 errors, 0 skips
      '(#:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-ipython
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "lib/iruby/command.rb"
-               (("version = `")
-                (string-append
-                 "version = `"
-                 (assoc-ref inputs "python-ipython")
-                 "/bin/"))
-               (("Kernel\\.exec\\('")
-                (string-append
-                 "Kernel.exec('"
-                 (assoc-ref inputs "python-ipython")
-                 "/bin/")))
-             #t)))))
+                #:phases
+                (modify-phases %standard-phases
+                  (add-after 'unpack 'patch-ipython
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      (substitute* "lib/iruby/command.rb"
+                        (("version = `")
+                         (string-append
+                          "version = `"
+                          (assoc-ref inputs "python-ipython")
+                          "/bin/"))
+                        (("Kernel\\.exec\\('")
+                         (string-append
+                          "Kernel.exec('"
+                          (assoc-ref inputs "python-ipython")
+                          "/bin/")))
+                      #t)))))
     (inputs
      `(("python-ipython" ,python-ipython)))
     (propagated-inputs
@@ -487,14 +488,14 @@  groups.")
 
 (define-public ruby-rspec-core-2
   (package (inherit ruby-rspec-core)
-    (version "2.14.8")
-    (source (origin
-              (method url-fetch)
-              (uri (rubygems-uri "rspec-core" version))
-              (sha256
-               (base32
-                "0psjy5kdlz3ph39br0m01w65i1ikagnqlg39f8p65jh5q7dz8hwc"))))
-    (propagated-inputs `())))
+           (version "2.14.8")
+           (source (origin
+                     (method url-fetch)
+                     (uri (rubygems-uri "rspec-core" version))
+                     (sha256
+                      (base32
+                       "0psjy5kdlz3ph39br0m01w65i1ikagnqlg39f8p65jh5q7dz8hwc"))))
+           (propagated-inputs `())))
 
 (define-public ruby-diff-lcs
   (package
@@ -541,15 +542,15 @@  outcomes of a code example.")
 
 (define-public ruby-rspec-expectations-2
   (package (inherit ruby-rspec-expectations)
-    (version "2.14.5")
-    (source (origin
-              (method url-fetch)
-              (uri (rubygems-uri "rspec-expectations" version))
-              (sha256
-               (base32
-                "1ni8kw8kjv76jvwjzi4jba00k3qzj9f8wd94vm6inz0jz3gwjqf9"))))
-    (propagated-inputs
-     `(("ruby-diff-lcs" ,ruby-diff-lcs)))))
+           (version "2.14.5")
+           (source (origin
+                     (method url-fetch)
+                     (uri (rubygems-uri "rspec-expectations" version))
+                     (sha256
+                      (base32
+                       "1ni8kw8kjv76jvwjzi4jba00k3qzj9f8wd94vm6inz0jz3gwjqf9"))))
+           (propagated-inputs
+            `(("ruby-diff-lcs" ,ruby-diff-lcs)))))
 
 (define-public ruby-rspec-its
   (package
@@ -578,22 +579,22 @@  outcomes of a code example.")
     (build-system ruby-build-system)
     (arguments
      `(#:test-target "spec"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'dont-install-gems-from-gemfile
-           (lambda _
-             (substitute* "Gemfile"
-               (("rspec rspec-core rspec-expectations rspec-mocks rspec-support")
-                ""))
-             #t))
-         (add-before 'build 'remove-unnecessary-dependency-versions-from-gemfile
-           (lambda _
-             (substitute* "rspec-its.gemspec"
-               (("rake.*") "rake'\n")
-               (("cucumber.*") "cucumber'\n")
-               (("bundler.*") "bundler'\n")
-               (("aruba.*") "aruba'\n"))
-             #t)))))
+                     #:phases
+                     (modify-phases %standard-phases
+                       (add-after 'unpack 'dont-install-gems-from-gemfile
+                         (lambda _
+                           (substitute* "Gemfile"
+                             (("rspec rspec-core rspec-expectations rspec-mocks rspec-support")
+                              ""))
+                           #t))
+                       (add-before 'build 'remove-unnecessary-dependency-versions-from-gemfile
+                         (lambda _
+                           (substitute* "rspec-its.gemspec"
+                             (("rake.*") "rake'\n")
+                             (("cucumber.*") "cucumber'\n")
+                             (("bundler.*") "bundler'\n")
+                             (("aruba.*") "aruba'\n"))
+                           #t)))))
     (propagated-inputs
      `(("ruby-rspec-core" ,ruby-rspec-core)
        ("ruby-rspec-expectations" ,ruby-rspec-expectations)))
@@ -633,15 +634,15 @@  support for stubbing and mocking.")
 
 (define-public ruby-rspec-mocks-2
   (package (inherit ruby-rspec-mocks)
-    (version "2.14.6")
-    (source (origin
-              (method url-fetch)
-              (uri (rubygems-uri "rspec-mocks" version))
-              (sha256
-               (base32
-                "1fwsmijd6w6cmqyh4ky2nq89jrpzh56hzmndx9wgkmdgfhfakv30"))))
-    (propagated-inputs
-     `(("ruby-diff-lcs" ,ruby-diff-lcs)))))
+           (version "2.14.6")
+           (source (origin
+                     (method url-fetch)
+                     (uri (rubygems-uri "rspec-mocks" version))
+                     (sha256
+                      (base32
+                       "1fwsmijd6w6cmqyh4ky2nq89jrpzh56hzmndx9wgkmdgfhfakv30"))))
+           (propagated-inputs
+            `(("ruby-diff-lcs" ,ruby-diff-lcs)))))
 
 (define-public ruby-rspec-rerun
   (package
@@ -692,17 +693,17 @@  expectations and mocks frameworks.")
 
 (define-public ruby-rspec-2
   (package (inherit ruby-rspec)
-    (version "2.14.1")
-    (source (origin
-              (method url-fetch)
-              (uri (rubygems-uri "rspec" version))
-              (sha256
-               (base32
-                "134y4wzk1prninb5a0bhxgm30kqfzl8dg06af4js5ylnhv2wd7sg"))))
-    (propagated-inputs
-     `(("ruby-rspec-core" ,ruby-rspec-core-2)
-       ("ruby-rspec-mocks" ,ruby-rspec-mocks-2)
-       ("ruby-rspec-expectations" ,ruby-rspec-expectations-2)))))
+           (version "2.14.1")
+           (source (origin
+                     (method url-fetch)
+                     (uri (rubygems-uri "rspec" version))
+                     (sha256
+                      (base32
+                       "134y4wzk1prninb5a0bhxgm30kqfzl8dg06af4js5ylnhv2wd7sg"))))
+           (propagated-inputs
+            `(("ruby-rspec-core" ,ruby-rspec-core-2)
+              ("ruby-rspec-mocks" ,ruby-rspec-mocks-2)
+              ("ruby-rspec-expectations" ,ruby-rspec-expectations-2)))))
 
 ;; Bundler is yet another source of circular dependencies, so we must disable
 ;; its test suite as well.
@@ -740,10 +741,10 @@  specified in a \"Gemfile\", as well as their dependencies.")
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'do-not-use-rvm
-          (lambda _
-            (substitute* "rakelib/tags.rake"
-              (("RVM_GEMDIR = .*") "RVM_GEMDIR = 'no-rvm-please'\n"))
-            #t)))))
+           (lambda _
+             (substitute* "rakelib/tags.rake"
+               (("RVM_GEMDIR = .*") "RVM_GEMDIR = 'no-rvm-please'\n"))
+             #t)))))
     (synopsis "Ruby library to create structured data")
     (description "Builder provides a number of builder objects that make it
 easy to create structured data.  Currently the following builder objects are
@@ -786,12 +787,12 @@  next patch version for example.")
     (build-system ruby-build-system)
     (arguments
      `(#:tests? #f ; no rakefile
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'set-java-home
-          (lambda* (#:key inputs #:allow-other-keys)
-            (setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
-            #t)))))
+                #:phases
+                (modify-phases %standard-phases
+                  (add-before 'build 'set-java-home
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      (setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
+                      #t)))))
     (native-inputs
      `(("jdk" ,icedtea "jdk")))
     (synopsis "Ruby-to-Java bridge using the Java Native Interface")
@@ -805,12 +806,12 @@  Java Native Interface.")
     (name "ruby-log4r")
     (version "1.1.10")
     (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "log4r" version))
-        (sha256
-          (base32
-            "0ri90q0frfmigkirqv5ihyrj59xm8pq5zcmf156cbdv4r4l2jicv"))))
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "log4r" version))
+       (sha256
+        (base32
+         "0ri90q0frfmigkirqv5ihyrj59xm8pq5zcmf156cbdv4r4l2jicv"))))
     (build-system ruby-build-system)
     (arguments
      '(#:tests? #f)) ; no Rakefile in gem
@@ -821,8 +822,8 @@  system of any number of levels, custom level names, logger
 inheritance, multiple output destinations per log event, execution
 tracing, custom formatting, thread safteyness, XML and YAML
 configuration, and more.")
-     (home-page "http://log4r.rubyforge.org/")
-     (license license:bsd-3)))
+    (home-page "http://log4r.rubyforge.org/")
+    (license license:bsd-3)))
 
 (define-public ruby-atoulme-antwrap
   (package
@@ -876,38 +877,38 @@  line of code.")
 
 (define-public ruby-asciidoctor
   (package
-  (name "ruby-asciidoctor")
-  (version "1.5.7.1")
-  (source
-    (origin
-      (method url-fetch)
-      (uri (rubygems-uri "asciidoctor" version))
-      (sha256
-        (base32
-          "0v52bzc72cvg7zfgq27pa4mgyf29dx9m20fghrw1xmvwgd519n1w"))))
-  (build-system ruby-build-system)
-  (arguments
-   `(#:test-target "test:all"
-     #:phases
-     (modify-phases %standard-phases
-       (add-before 'check 'remove-circular-tests
-         (lambda _
-           ;; Remove tests that require circular dependencies to load or pass.
-           (delete-file "test/invoker_test.rb")
-           (delete-file "test/converter_test.rb")
-           (delete-file "test/options_test.rb")
-           #t)))))
-  (native-inputs
-   `(("ruby-minitest" ,ruby-minitest)
-     ("ruby-nokogiri" ,ruby-nokogiri)
-     ("ruby-asciimath" ,ruby-asciimath)
-     ("ruby-coderay" ,ruby-coderay)))
-  (synopsis "Converter from AsciiDoc content to other formats")
-  (description
-    "Asciidoctor is a text processor and publishing toolchain for converting
+    (name "ruby-asciidoctor")
+    (version "1.5.7.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "asciidoctor" version))
+       (sha256
+        (base32
+         "0v52bzc72cvg7zfgq27pa4mgyf29dx9m20fghrw1xmvwgd519n1w"))))
+    (build-system ruby-build-system)
+    (arguments
+     `(#:test-target "test:all"
+                     #:phases
+                     (modify-phases %standard-phases
+                       (add-before 'check 'remove-circular-tests
+                         (lambda _
+                           ;; Remove tests that require circular dependencies to load or pass.
+                           (delete-file "test/invoker_test.rb")
+                           (delete-file "test/converter_test.rb")
+                           (delete-file "test/options_test.rb")
+                           #t)))))
+    (native-inputs
+     `(("ruby-minitest" ,ruby-minitest)
+       ("ruby-nokogiri" ,ruby-nokogiri)
+       ("ruby-asciimath" ,ruby-asciimath)
+       ("ruby-coderay" ,ruby-coderay)))
+    (synopsis "Converter from AsciiDoc content to other formats")
+    (description
+     "Asciidoctor is a text processor and publishing toolchain for converting
 AsciiDoc content to HTML5, DocBook 5 (or 4.5), PDF, and other formats.")
-  (home-page "https://asciidoctor.org")
-  (license license:expat)))
+    (home-page "https://asciidoctor.org")
+    (license license:expat)))
 
 (define-public ruby-ast
   (package
@@ -1028,16 +1029,16 @@  format.")
     (build-system ruby-build-system)
     (arguments
      '(#:test-target "spec"
-       #:phases
-       (modify-phases %standard-phases
-         ;; Don't run or require rubocop, the code linting tool, as this is a
-         ;; bit unnecessary.
-         (add-after 'unpack 'dont-run-rubocop
-          (lambda _
-            (substitute* "Rakefile"
-              ((".*rubocop.*") "")
-              ((".*RuboCop.*") ""))
-            #t)))))
+                     #:phases
+                     (modify-phases %standard-phases
+                       ;; Don't run or require rubocop, the code linting tool, as this is a
+                       ;; bit unnecessary.
+                       (add-after 'unpack 'dont-run-rubocop
+                         (lambda _
+                           (substitute* "Rakefile"
+                             ((".*rubocop.*") "")
+                             ((".*RuboCop.*") ""))
+                           #t)))))
     (native-inputs
      `(("ruby-rspec" ,ruby-rspec)))
     (synopsis "Method contracts for Ruby")
@@ -1146,20 +1147,20 @@  dependencies, including versions.")
     (build-system ruby-build-system)
     (arguments
      '(#:tests? #f ;; Tests are not included in the release on rubygems.org
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-lib_dirs
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "lib/czmq-ffi-gen/czmq/ffi.rb"
-               (("lib\\_dirs = \\[.*\\]")
-                (string-append "lib_dirs = ['"
-                               (assoc-ref inputs "czmq") "/lib"
-                               "']")))
-             (substitute* "lib/czmq-ffi-gen/libzmq.rb"
-               (("lib\\_dirs = \\[.*\\]")
-                (string-append "lib_dirs = ['"
-                               (assoc-ref inputs "zeromq") "/lib"
-                               "']"))))))))
+                #:phases
+                (modify-phases %standard-phases
+                  (add-after 'unpack 'patch-lib_dirs
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      (substitute* "lib/czmq-ffi-gen/czmq/ffi.rb"
+                        (("lib\\_dirs = \\[.*\\]")
+                         (string-append "lib_dirs = ['"
+                                        (assoc-ref inputs "czmq") "/lib"
+                                        "']")))
+                      (substitute* "lib/czmq-ffi-gen/libzmq.rb"
+                        (("lib\\_dirs = \\[.*\\]")
+                         (string-append "lib_dirs = ['"
+                                        (assoc-ref inputs "zeromq") "/lib"
+                                        "']"))))))))
     (inputs
      `(("zeromq" ,zeromq)
        ("czmq" ,czmq)))
@@ -1186,15 +1187,15 @@  used by higher level bindings like those provided by CZTop.")
     (build-system ruby-build-system)
     (arguments
      '(#:test-target "spec"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-lib_paths
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "lib/cztop/poller/zmq.rb"
-               (("lib\\_paths = \\[.*\\]")
-                (string-append "lib_paths = ['"
-                               (assoc-ref inputs "zeromq") "/lib"
-                               "']"))))))))
+                     #:phases
+                     (modify-phases %standard-phases
+                       (add-after 'unpack 'patch-lib_paths
+                         (lambda* (#:key inputs #:allow-other-keys)
+                           (substitute* "lib/cztop/poller/zmq.rb"
+                             (("lib\\_paths = \\[.*\\]")
+                              (string-append "lib_paths = ['"
+                                             (assoc-ref inputs "zeromq") "/lib"
+                                             "']"))))))))
     (native-inputs
      `(("bundler" ,bundler)
        ("ruby-rspec" ,ruby-rspec)))
@@ -1331,37 +1332,37 @@  building block for authentication strategies.")
 
 (define-public ruby-open4
   (package
-  (name "ruby-open4")
-  (version "1.3.4")
-  (source
-    (origin
-      (method url-fetch)
-      (uri (rubygems-uri "open4" version))
-      (sha256
-        (base32
-          "1cgls3f9dlrpil846q0w7h66vsc33jqn84nql4gcqkk221rh7px1"))))
-  (build-system ruby-build-system)
-  (arguments
-   '(#:phases
-     (modify-phases %standard-phases
-       (add-after 'unpack 'patch
-         (lambda _
-           (substitute* "rakefile"
-             ;; Update the Rakefile so it works
-             (("-rubygems") "-rrubygems")
-             (("Config") "RbConfig"))
-           #t))
-       (add-before 'check 'set-LIB
-         (lambda _
-           ;; This is used in the rakefile when running the tests
-           (setenv "LIB" "open4")
-           #t)))))
-  (synopsis "Open child processes from Ruby and manage them easily")
-  (description
-    "@code{Open4} is a Ruby library to run child processes and manage their
+    (name "ruby-open4")
+    (version "1.3.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "open4" version))
+       (sha256
+        (base32
+         "1cgls3f9dlrpil846q0w7h66vsc33jqn84nql4gcqkk221rh7px1"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch
+           (lambda _
+             (substitute* "rakefile"
+               ;; Update the Rakefile so it works
+               (("-rubygems") "-rrubygems")
+               (("Config") "RbConfig"))
+             #t))
+         (add-before 'check 'set-LIB
+           (lambda _
+             ;; This is used in the rakefile when running the tests
+             (setenv "LIB" "open4")
+             #t)))))
+    (synopsis "Open child processes from Ruby and manage them easily")
+    (description
+     "@code{Open4} is a Ruby library to run child processes and manage their
 input and output.")
-  (home-page "https://github.com/ahoward/open4")
-  (license license:ruby)))
+    (home-page "https://github.com/ahoward/open4")
+    (license license:ruby)))
 
 (define-public ruby-options
   (package
@@ -1377,14 +1378,14 @@  input and output.")
     (build-system ruby-build-system)
     (arguments
      '(#:tests? #f ;; TODO: NameError: uninitialized constant Config
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'set-LIB
-           (lambda _
-             ;; This is used in the Rakefile, and setting it avoids an issue
-             ;; with running the tests.
-             (setenv "LIB" "options")
-             #t)))))
+                #:phases
+                (modify-phases %standard-phases
+                  (add-before 'check 'set-LIB
+                    (lambda _
+                      ;; This is used in the Rakefile, and setting it avoids an issue
+                      ;; with running the tests.
+                      (setenv "LIB" "options")
+                      #t)))))
     (synopsis "Ruby library to parse options from *args cleanly")
     (description
      "The @code{options} library helps with parsing keyword options in Ruby
@@ -1471,11 +1472,11 @@  extensions.")
        ("libxml2" ,libxml2)))
     (arguments
      '(#:tests? #f ; test suite hangs for unknown reason
-       #:gem-flags
-       (list "--"
-             (string-append "--with-xml2-include="
-                            (assoc-ref %build-inputs "libxml2")
-                            "/include/libxml2" ))))
+                #:gem-flags
+                (list "--"
+                      (string-append "--with-xml2-include="
+                                     (assoc-ref %build-inputs "libxml2")
+                                     "/include/libxml2" ))))
     (synopsis "Ruby bindings for GNOME Libxml2")
     (description "The Libxml-Ruby project provides Ruby language bindings for
 the GNOME Libxml2 XML toolkit.")
@@ -1663,15 +1664,15 @@  and inspect the environment.")
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'fix-rakefile
-          (lambda _
-            (substitute* "Rakefile"
-              (("require 'rake/gempackagetask'")
-               "require 'rubygems/package_task'")
-              (("include Config") ""))
-            #t))
+           (lambda _
+             (substitute* "Rakefile"
+               (("require 'rake/gempackagetask'")
+                "require 'rubygems/package_task'")
+               (("include Config") ""))
+             #t))
          (replace 'check
-          (lambda _
-            (invoke "ruby" "-Ilib" "test/test.rb"))))))
+           (lambda _
+             (invoke "ruby" "-Ilib" "test/test.rb"))))))
     (synopsis "Library to perform operations with sequence permutations")
     (description "This package provides a Ruby library to perform different
 operations with permutations of sequences, such as strings and arrays.")
@@ -1691,13 +1692,13 @@  operations with permutations of sequences, such as strings and arrays.")
     (build-system ruby-build-system)
     (arguments
      `(#:test-target "default"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-version-test
-          (lambda _
-            (substitute* "spec/shellany_spec.rb"
-              (("^RSpec") "require \"shellany\"\nRSpec"))
-            #t)))))
+                     #:phases
+                     (modify-phases %standard-phases
+                       (add-after 'unpack 'fix-version-test
+                         (lambda _
+                           (substitute* "spec/shellany_spec.rb"
+                             (("^RSpec") "require \"shellany\"\nRSpec"))
+                           #t)))))
     (native-inputs
      `(("ruby-rspec" ,ruby-rspec)
        ("ruby-nenv" ,ruby-nenv)
@@ -1773,20 +1774,20 @@  standard output stream.")
      '(;; TODO: Some tests fail, unsure why.
        ;; 21 examples, 7 failures
        #:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'delete-certificate
-           (lambda _
-             ;; Remove 's.cert_chain' as we do not build with a private key
-             (substitute* "fuubar.gemspec"
-               ((".*cert_chain.*") "")
-               ((".*signing_key.*") ""))
-             #t))
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (invoke "rspec"))
-             #t)))))
+                #:phases
+                (modify-phases %standard-phases
+                  (add-before 'build 'delete-certificate
+                    (lambda _
+                      ;; Remove 's.cert_chain' as we do not build with a private key
+                      (substitute* "fuubar.gemspec"
+                        ((".*cert_chain.*") "")
+                        ((".*signing_key.*") ""))
+                      #t))
+                  (replace 'check
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (when tests?
+                        (invoke "rspec"))
+                      #t)))))
     (native-inputs
      `(("bundler" ,bundler)))
     (propagated-inputs
@@ -1829,49 +1830,49 @@  engine.")
 
 (define-public ruby-hamster
   (package
-  (name "ruby-hamster")
-  (version "3.0.0")
-  (source
-    (origin
-      (method url-fetch)
-      (uri (rubygems-uri "hamster" version))
-      (sha256
-        (base32
-          "1n1lsh96vnyc1pnzyd30f9prcsclmvmkdb3nm5aahnyizyiy6lar"))))
-  (build-system ruby-build-system)
-  (arguments
-   '(#:phases
-     (modify-phases %standard-phases
-       (add-after 'unpack 'remove-unnecessary-dependencies
-         (lambda _
-           ;; pry is a debugging tool, and is unnecessary when running the
-           ;; tests
-           (substitute* "spec/lib/hamster/vector/insert_spec.rb"
-             (("require 'pry'") ""))
-           (substitute* "spec/spec_helper.rb"
-             (("require \"pry\"") "")
-             ;; CodeClimate is an online service, and is unnecessary for
-             ;; running the tests
-             (("require \"codeclimate-test-reporter\"") "")
-             (("CodeClimate.*\n") ""))
-           #t))
-       ;; No Rakefile is included, so run rspec directly.
-       (replace 'check
-         (lambda* (#:key tests? #:allow-other-keys)
-           (when tests?
-             (invoke "rspec"))
-           #t)))))
-  (propagated-inputs
-   `(("ruby-concurrent" ,ruby-concurrent)))
-  (native-inputs
-   `(("ruby-rspec" ,ruby-rspec)))
-  (synopsis "Efficient, immutable, thread-safe collection classes for Ruby")
-  (description
-    "Hamster provides 6 persistent data structures: @code{Hash}, @code{Vector},
+    (name "ruby-hamster")
+    (version "3.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "hamster" version))
+       (sha256
+        (base32
+         "1n1lsh96vnyc1pnzyd30f9prcsclmvmkdb3nm5aahnyizyiy6lar"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-unnecessary-dependencies
+           (lambda _
+             ;; pry is a debugging tool, and is unnecessary when running the
+             ;; tests
+             (substitute* "spec/lib/hamster/vector/insert_spec.rb"
+               (("require 'pry'") ""))
+             (substitute* "spec/spec_helper.rb"
+               (("require \"pry\"") "")
+               ;; CodeClimate is an online service, and is unnecessary for
+               ;; running the tests
+               (("require \"codeclimate-test-reporter\"") "")
+               (("CodeClimate.*\n") ""))
+             #t))
+         ;; No Rakefile is included, so run rspec directly.
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "rspec"))
+             #t)))))
+    (propagated-inputs
+     `(("ruby-concurrent" ,ruby-concurrent)))
+    (native-inputs
+     `(("ruby-rspec" ,ruby-rspec)))
+    (synopsis "Efficient, immutable, thread-safe collection classes for Ruby")
+    (description
+     "Hamster provides 6 persistent data structures: @code{Hash}, @code{Vector},
 @code{Set}, @code{SortedSet}, @code{List}, and @code{Deque} (which works as an
 immutable queue or stack).")
-  (home-page "https://github.com/hamstergem/hamster")
-  (license license:expat)))
+    (home-page "https://github.com/hamstergem/hamster")
+    (license license:expat)))
 
 (define-public ruby-hashdiff
   (package
@@ -1918,18 +1919,18 @@  two hashes.")
     (build-system ruby-build-system)
     (arguments
      `(#:test-target "shindo_tests"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-tests
-           (lambda _
-             (substitute* "tests/tests_helper.rb"
-               (("-rubygems") ""))
-             (substitute* "Rakefile"
-               (("system \"shindo") "system \"./bin/shindo")
-               ;; This test doesn't work, so we disable it.
-               (("fail \"The build_error test should fail") "#")
-               ((" -rubygems") ""))
-             #t)))))
+                     #:phases
+                     (modify-phases %standard-phases
+                       (add-after 'unpack 'fix-tests
+                         (lambda _
+                           (substitute* "tests/tests_helper.rb"
+                             (("-rubygems") ""))
+                           (substitute* "Rakefile"
+                             (("system \"shindo") "system \"./bin/shindo")
+                             ;; This test doesn't work, so we disable it.
+                             (("fail \"The build_error test should fail") "#")
+                             ((" -rubygems") ""))
+                           #t)))))
     (propagated-inputs
      `(("ruby-formatador" ,ruby-formatador)))
     (synopsis "Simple depth first Ruby testing")
@@ -1961,38 +1962,38 @@  Ruby Gems.")
 
 (define-public ruby-rubyzip
   (package
-  (name "ruby-rubyzip")
-  (version "1.2.1")
-  (source
-    (origin
-      (method url-fetch)
-      (uri (rubygems-uri "rubyzip" version))
-      (sha256
-        (base32
-          "06js4gznzgh8ac2ldvmjcmg9v1vg9llm357yckkpylaj6z456zqz"))))
-  (build-system ruby-build-system)
-  (arguments
-   '(#:phases
-     (modify-phases %standard-phases
-       (add-before 'check 'patch-tests
-         (lambda* (#:key inputs #:allow-other-keys)
-           (substitute* "test/gentestfiles.rb"
-             (("/usr/bin/zip")
-              (string-append
-               (assoc-ref inputs "zip") "/bin/zip")))
-           (substitute* "test/input_stream_test.rb"
-             (("/usr/bin/env ruby") (which "ruby")))
-           #t)))))
-  (native-inputs
-   `(("bundler" ,bundler)
-     ("ruby-simplecov" ,ruby-simplecov)
-     ("zip" ,zip)
-     ("unzip" ,unzip)))
-  (synopsis "Ruby module is for reading and writing zip files")
-  (description
-    "The rubyzip module provides ways to read from and create zip files.")
-  (home-page "http://github.com/rubyzip/rubyzip")
-  (license license:bsd-2)))
+    (name "ruby-rubyzip")
+    (version "1.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "rubyzip" version))
+       (sha256
+        (base32
+         "06js4gznzgh8ac2ldvmjcmg9v1vg9llm357yckkpylaj6z456zqz"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'patch-tests
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "test/gentestfiles.rb"
+               (("/usr/bin/zip")
+                (string-append
+                 (assoc-ref inputs "zip") "/bin/zip")))
+             (substitute* "test/input_stream_test.rb"
+               (("/usr/bin/env ruby") (which "ruby")))
+             #t)))))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-simplecov" ,ruby-simplecov)
+       ("zip" ,zip)
+       ("unzip" ,unzip)))
+    (synopsis "Ruby module is for reading and writing zip files")
+    (description
+     "The rubyzip module provides ways to read from and create zip files.")
+    (home-page "http://github.com/rubyzip/rubyzip")
+    (license license:bsd-2)))
 
 (define-public ruby-simplecov-html
   (package
@@ -2062,28 +2063,28 @@  User Agents.")
 
 (define-public ruby-backports
   (package
-  (name "ruby-backports")
-  (version "3.11.4")
-  (source
-    (origin
-      (method url-fetch)
-      (uri (rubygems-uri "backports" version))
-      (sha256
-        (base32
-          "1hshjxww2h7s0dk57njrygq4zpp0nlqrjfya7zwm27iq3rhc3y8g"))))
-  (build-system ruby-build-system)
-  (arguments
-   '(;; TODO: This should be default, but there is one test failure
-     #:test-target "all_spec"))
-  (native-inputs
-   `(("ruby-mspec" ,ruby-mspec)
-     ("ruby-activesupport" ,ruby-activesupport)))
-  (synopsis "Backports of the features in newer Ruby versions")
-  (description
-    "Backports enables more compatibility across Ruby versions by providing
+    (name "ruby-backports")
+    (version "3.11.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "backports" version))
+       (sha256
+        (base32
+         "1hshjxww2h7s0dk57njrygq4zpp0nlqrjfya7zwm27iq3rhc3y8g"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(;; TODO: This should be default, but there is one test failure
+       #:test-target "all_spec"))
+    (native-inputs
+     `(("ruby-mspec" ,ruby-mspec)
+       ("ruby-activesupport" ,ruby-activesupport)))
+    (synopsis "Backports of the features in newer Ruby versions")
+    (description
+     "Backports enables more compatibility across Ruby versions by providing
 backports of some features.")
-  (home-page "https://github.com/marcandre/backports")
-  (license license:expat)))
+    (home-page "https://github.com/marcandre/backports")
+    (license license:expat)))
 
 (define-public ruby-bacon
   (package
@@ -2454,13 +2455,13 @@  mixture of HTML and additional ERB syntax.")
     (arguments
      '(;; TODO: 3 tests seem to fail due to HTML encoding issues
        #:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (invoke "rspec"))
-             #t)))))
+                #:phases
+                (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (when tests?
+                        (invoke "rspec"))
+                      #t)))))
     (native-inputs
      `(("ruby-rspec" ,ruby-rspec)
        ("ruby-simplecov" ,ruby-simplecov)
@@ -2525,19 +2526,19 @@  objects.")
        ;; ./spec/utils/name_map_spec.rb:151
        ;; ./spec/utils/name_map_spec.rb:155
        #:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'extract-gemspec 'change-dependency-constraints
-           (lambda _
-             (substitute* "mspec.gemspec"
-               (("rake.*") "rake>)\n")
-               (("rspec.*") "rspec>)\n"))
-             #t))
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (invoke "rspec" "spec"))
-             #t)))))
+                #:phases
+                (modify-phases %standard-phases
+                  (add-after 'extract-gemspec 'change-dependency-constraints
+                    (lambda _
+                      (substitute* "mspec.gemspec"
+                        (("rake.*") "rake>)\n")
+                        (("rspec.*") "rspec>)\n"))
+                      #t))
+                  (replace 'check
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (when tests?
+                        (invoke "rspec" "spec"))
+                      #t)))))
     (native-inputs
      `(("bundler" ,bundler)
        ("ruby-rake" ,ruby-rake)
@@ -2568,33 +2569,33 @@  specs for Ruby implementations in ruby/spec.")
     (arguments
      '(;; TODO: Tests require a running MySQL/MariaDB service
        #:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'replace-git-ls-files
-           (lambda _
-             (substitute* "mysql2.gemspec"
-               (("git ls-files .*`") "find . -type f |sort`"))
-             #t))
-         (add-before 'install 'set-MAKEFLAGS
-           (lambda* (#:key outputs #:allow-other-keys)
-             (setenv "MAKEFLAGS"
-                     (string-append
-                      "V=1 "
-                      "prefix=" (assoc-ref outputs "out")))
-             #t))
-         ;; Move the 'check phase to after 'install, as then you can test
-         ;; using the installed mysql2 gem in the store.
-         (delete 'check)
-         (add-after 'install 'check
-           (lambda* (#:key outputs tests? #:allow-other-keys)
-             (setenv "GEM_PATH"
-                     (string-append
-                      (getenv "GEM_PATH")
-                      ":"
-                      (assoc-ref outputs "out") "/lib/ruby/vendor_ruby"))
-             (when tests?
-               (invoke "rspec"))
-             #t)))))
+                #:phases
+                (modify-phases %standard-phases
+                  (replace 'replace-git-ls-files
+                    (lambda _
+                      (substitute* "mysql2.gemspec"
+                        (("git ls-files .*`") "find . -type f |sort`"))
+                      #t))
+                  (add-before 'install 'set-MAKEFLAGS
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (setenv "MAKEFLAGS"
+                              (string-append
+                               "V=1 "
+                               "prefix=" (assoc-ref outputs "out")))
+                      #t))
+                  ;; Move the 'check phase to after 'install, as then you can test
+                  ;; using the installed mysql2 gem in the store.
+                  (delete 'check)
+                  (add-after 'install 'check
+                    (lambda* (#:key outputs tests? #:allow-other-keys)
+                      (setenv "GEM_PATH"
+                              (string-append
+                               (getenv "GEM_PATH")
+                               ":"
+                               (assoc-ref outputs "out") "/lib/ruby/vendor_ruby"))
+                      (when tests?
+                        (invoke "rspec"))
+                      #t)))))
     (inputs
      `(("mariadb" ,mariadb)
        ("zlib" ,zlib)))
@@ -2623,7 +2624,7 @@  libmysql.")
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
-          (lambda _ (invoke "rspec" "spec/"))))))
+           (lambda _ (invoke "rspec" "spec/"))))))
     (native-inputs
      `(("bundler" ,bundler)
        ("ruby-rspec" ,ruby-rspec)))
@@ -2762,16 +2763,16 @@  knowing anything about the constructor.")
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'add-test-unit-to-search-path
-          (lambda* (#:key inputs #:allow-other-keys)
-            (let* ((test-unit (assoc-ref inputs "ruby-test-unit")))
-              (substitute* "Rakefile"
-                (("t\\.libs << \"test\"" line)
-                 (string-append line "; t.libs << \""
-                                test-unit "/lib/ruby/vendor_ruby"
-                                "/gems/test-unit-"
-                                ,(package-version ruby-test-unit)
-                                "/lib\""))))
-            #t)))))
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((test-unit (assoc-ref inputs "ruby-test-unit")))
+               (substitute* "Rakefile"
+                 (("t\\.libs << \"test\"" line)
+                  (string-append line "; t.libs << \""
+                                 test-unit "/lib/ruby/vendor_ruby"
+                                 "/gems/test-unit-"
+                                 ,(package-version ruby-test-unit)
+                                 "/lib\""))))
+             #t)))))
     (propagated-inputs
      `(("ruby-instantiator" ,ruby-instantiator)
        ("ruby-metaclass" ,ruby-metaclass)))
@@ -2802,11 +2803,11 @@  definitions on a Ruby object.")
        (modify-phases %standard-phases
          ;; The gem archive does not include the conformance tests.
          (add-after 'unpack 'disable-conformance-tests
-          (lambda _
-            (substitute* "Rakefile"
-              (("task :test => %w\\[test:unit test:conformance\\]")
-               "task :test => %w[test:unit]"))
-            #t)))))
+           (lambda _
+             (substitute* "Rakefile"
+               (("task :test => %w\\[test:unit test:conformance\\]")
+                "task :test => %w[test:unit]"))
+             #t)))))
     (native-inputs
      `(("bundler" ,bundler)
        ("ruby-test-unit" ,ruby-test-unit)
@@ -2833,33 +2834,33 @@  conversion to (X)HTML.")
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'add-test-unit-to-search-path
-          (lambda* (#:key inputs #:allow-other-keys)
-            (let* ((test-unit (assoc-ref inputs "ruby-test-unit")))
-              (substitute* "Rakefile"
-                (("t\\.libs << 'test'" line)
-                 (string-append line "; t.libs << \""
-                                test-unit "/lib/ruby/vendor_ruby"
-                                "/gems/test-unit-"
-                                ,(package-version ruby-test-unit)
-                                "/lib\""))))
-            #t))
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((test-unit (assoc-ref inputs "ruby-test-unit")))
+               (substitute* "Rakefile"
+                 (("t\\.libs << 'test'" line)
+                  (string-append line "; t.libs << \""
+                                 test-unit "/lib/ruby/vendor_ruby"
+                                 "/gems/test-unit-"
+                                 ,(package-version ruby-test-unit)
+                                 "/lib\""))))
+             #t))
          (add-before 'check 'use-latest-redcarpet
-          (lambda _
-            (substitute* "mocha.gemspec"
-              (("<redcarpet>.freeze, \\[\"~> 1\"\\]")
-               "<redcarpet>.freeze, [\">= 3\"]"))
-            #t))
+           (lambda _
+             (substitute* "mocha.gemspec"
+               (("<redcarpet>.freeze, \\[\"~> 1\"\\]")
+                "<redcarpet>.freeze, [\">= 3\"]"))
+             #t))
          (add-before 'check 'hardcode-version
-          (lambda _
-            ;; Mocha is undefined at build time
-            (substitute* "Rakefile"
-              (("#\\{Mocha::VERSION\\}") ,version))
-            #t))
+           (lambda _
+             ;; Mocha is undefined at build time
+             (substitute* "Rakefile"
+               (("#\\{Mocha::VERSION\\}") ,version))
+             #t))
          (add-before 'check 'remove-failing-test
-          ;; FIXME: This test fails for reasons unrelated to Guix packaging.
-          (lambda _
-            (delete-file "test/acceptance/stubbing_nil_test.rb")
-            #t)))))
+           ;; FIXME: This test fails for reasons unrelated to Guix packaging.
+           (lambda _
+             (delete-file "test/acceptance/stubbing_nil_test.rb")
+             #t)))))
     (propagated-inputs
      `(("ruby-metaclass" ,ruby-metaclass)))
     (native-inputs
@@ -2969,27 +2970,27 @@  facilities supporting TDD, BDD, mocking, and benchmarking.")
 ;; This is the last release of Minitest 4, which is used by some packages.
 (define-public ruby-minitest-4
   (package (inherit ruby-minitest)
-    (version "4.7.5")
-    (source (origin
-              (method url-fetch)
-              (uri (rubygems-uri "minitest" version))
-              (sha256
-               (base32
-                "03p6iban9gcpcflzp4z901s1hgj9369p6515h967ny6hlqhcf2iy"))))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'remove-unsupported-method
-          (lambda _
-            (substitute* "Rakefile"
-              (("self\\.rubyforge_name = .*") ""))
-            #t))
-         (add-after 'build 'exclude-failing-tests
-           (lambda _
-             ;; Some tests are failing on Ruby 2.4 due to the deprecation of
-             ;; Fixnum.
-             (delete-file "test/minitest/test_minitest_spec.rb")
-             #t)))))))
+           (version "4.7.5")
+           (source (origin
+                     (method url-fetch)
+                     (uri (rubygems-uri "minitest" version))
+                     (sha256
+                      (base32
+                       "03p6iban9gcpcflzp4z901s1hgj9369p6515h967ny6hlqhcf2iy"))))
+           (arguments
+            `(#:phases
+              (modify-phases %standard-phases
+                (add-after 'unpack 'remove-unsupported-method
+                  (lambda _
+                    (substitute* "Rakefile"
+                      (("self\\.rubyforge_name = .*") ""))
+                    #t))
+                (add-after 'build 'exclude-failing-tests
+                  (lambda _
+                    ;; Some tests are failing on Ruby 2.4 due to the deprecation of
+                    ;; Fixnum.
+                    (delete-file "test/minitest/test_minitest_spec.rb")
+                    #t)))))))
 
 (define-public ruby-minitest-around
   (package
@@ -3345,21 +3346,21 @@  URIs using the normal URI.parse method.")
     (build-system ruby-build-system)
     (arguments
      `(#:tests? #f ; no tests
-       #:phases (modify-phases %standard-phases
-                  (add-after 'install 'patch-git-binary
-                    (lambda* (#:key inputs outputs #:allow-other-keys)
-                      ;; Make the default git binary an absolute path to the
-                      ;; store.
-                      (let ((git    (string-append (assoc-ref inputs "git")
-                                                   "/bin/git"))
-                            (config (string-append
-                                     (assoc-ref outputs "out")
-                                     "/lib/ruby/vendor_ruby/gems/git-"
-                                     ,version "/lib/git/config.rb")))
-                        (substitute* (list config)
-                          (("'git'")
-                           (string-append "'" git "'")))
-                        #t))))))
+                #:phases (modify-phases %standard-phases
+                           (add-after 'install 'patch-git-binary
+                             (lambda* (#:key inputs outputs #:allow-other-keys)
+                               ;; Make the default git binary an absolute path to the
+                               ;; store.
+                               (let ((git    (string-append (assoc-ref inputs "git")
+                                                            "/bin/git"))
+                                     (config (string-append
+                                              (assoc-ref outputs "out")
+                                              "/lib/ruby/vendor_ruby/gems/git-"
+                                              ,version "/lib/git/config.rb")))
+                                 (substitute* (list config)
+                                   (("'git'")
+                                    (string-append "'" git "'")))
+                                 #t))))))
     (inputs
      `(("git" ,git)))
     (synopsis "Ruby wrappers for Git")
@@ -3389,13 +3390,13 @@  options and parsing command line flags.")
 
 (define-public ruby-slop-3
   (package (inherit ruby-slop)
-    (version "3.6.0")
-    (source (origin
-              (method url-fetch)
-              (uri (rubygems-uri "slop" version))
-              (sha256
-               (base32
-                "00w8g3j7k7kl8ri2cf1m58ckxk8rn350gp4chfscmgv6pq1spk3n"))))))
+           (version "3.6.0")
+           (source (origin
+                     (method url-fetch)
+                     (uri (rubygems-uri "slop" version))
+                     (sha256
+                      (base32
+                       "00w8g3j7k7kl8ri2cf1m58ckxk8rn350gp4chfscmgv6pq1spk3n"))))))
 
 (define-public ruby-multi-xml
   (package
@@ -3595,13 +3596,13 @@  to reproduce user environments.")
 
 (define-public ruby-mini-portile-2
   (package (inherit ruby-mini-portile)
-    (version "2.2.0")
-    (source (origin
-              (method url-fetch)
-              (uri (rubygems-uri "mini_portile2" version))
-              (sha256
-               (base32
-                "0g5bpgy08q0nc0anisg3yvwc1gc3inl854fcrg48wvg7glqd6dpm"))))))
+           (version "2.2.0")
+           (source (origin
+                     (method url-fetch)
+                     (uri (rubygems-uri "mini_portile2" version))
+                     (sha256
+                      (base32
+                       "0g5bpgy08q0nc0anisg3yvwc1gc3inl854fcrg48wvg7glqd6dpm"))))))
 
 (define-public ruby-nokogiri
   (package
@@ -3618,25 +3619,25 @@  to reproduce user environments.")
      ;; Tests fail because Nokogiri can only test with an installed extension,
      ;; and also because many test framework dependencies are missing.
      `(#:tests? #f
-       #:gem-flags (list "--" "--use-system-libraries"
-                         (string-append "--with-xml2-include="
-                                        (assoc-ref %build-inputs "libxml2")
-                                        "/include/libxml2" ))
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'patch-extconf
-           ;; 'pkg-config' is not included in the GEM_PATH during
-           ;; installation, so we add it directly to the load path.
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let* ((pkg-config (assoc-ref inputs "ruby-pkg-config")))
-               (substitute* "ext/nokogiri/extconf.rb"
-                 (("gem 'pkg-config'.*")
-                  (string-append "$:.unshift '"
-                                 pkg-config "/lib/ruby/vendor_ruby"
-                                 "/gems/pkg-config-"
-                                 ,(package-version ruby-pkg-config)
-                                 "/lib'\n"))))
-             #t)))))
+                #:gem-flags (list "--" "--use-system-libraries"
+                                  (string-append "--with-xml2-include="
+                                                 (assoc-ref %build-inputs "libxml2")
+                                                 "/include/libxml2" ))
+                #:phases
+                (modify-phases %standard-phases
+                  (add-before 'build 'patch-extconf
+                    ;; 'pkg-config' is not included in the GEM_PATH during
+                    ;; installation, so we add it directly to the load path.
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      (let* ((pkg-config (assoc-ref inputs "ruby-pkg-config")))
+                        (substitute* "ext/nokogiri/extconf.rb"
+                          (("gem 'pkg-config'.*")
+                           (string-append "$:.unshift '"
+                                          pkg-config "/lib/ruby/vendor_ruby"
+                                          "/gems/pkg-config-"
+                                          ,(package-version ruby-pkg-config)
+                                          "/lib'\n"))))
+                      #t)))))
     (native-inputs
      `(("ruby-hoe" ,ruby-hoe)))
     (inputs
@@ -3738,13 +3739,13 @@  for select languages.")
     (arguments
      '(;; No included tests
        #:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'extract-gemspec 'patch-gemspec
-           (lambda _
-             (substitute* ".gemspec"
-               ;; Loosen the requirement for pdf-inspector
-               (("~> 1\\.0\\.7") ">= 0")))))))
+                #:phases
+                (modify-phases %standard-phases
+                  (add-after 'extract-gemspec 'patch-gemspec
+                    (lambda _
+                      (substitute* ".gemspec"
+                        ;; Loosen the requirement for pdf-inspector
+                        (("~> 1\\.0\\.7") ">= 0")))))))
     (propagated-inputs
      `(("ruby-coderay" ,ruby-coderay)))
     (synopsis "Tool for writing manuals for Prawn and Prawn accessories")
@@ -3852,16 +3853,16 @@  invocation, and source and documentation browsing.")
     (build-system ruby-build-system)
     (arguments
      `(#:tests? #f ; tests require cucumber
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'remove-git-ls-files
-          (lambda* (#:key outputs #:allow-other-keys)
-            (substitute* "guard.gemspec"
-              (("git ls-files -z") "find . -type f -print0"))
-            #t))
-         (replace 'build
-          (lambda _
-            (invoke "gem" "build" "guard.gemspec"))))))
+                #:phases
+                (modify-phases %standard-phases
+                  (add-after 'unpack 'remove-git-ls-files
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (substitute* "guard.gemspec"
+                        (("git ls-files -z") "find . -type f -print0"))
+                      #t))
+                  (replace 'build
+                    (lambda _
+                      (invoke "gem" "build" "guard.gemspec"))))))
     (propagated-inputs
      `(("ruby-formatador" ,ruby-formatador)
        ("ruby-listen" ,ruby-listen)
@@ -4014,15 +4015,15 @@  IANA Time Zone database packaged as Ruby modules for use with @code{TZInfo}.")
     (build-system ruby-build-system)
     (arguments
      '(#:tests? #f ; there are no tests
-       #:phases
-       (modify-phases %standard-phases
-         ;; Building the gemspec with rake is not working here since it is
-         ;; generated with Jeweler.  It is also unnecessary because the
-         ;; existing gemspec does not use any development tools to generate a
-         ;; list of files.
-         (replace 'build
-          (lambda _
-            (invoke "gem" "build" "rb-inotify.gemspec"))))))
+                #:phases
+                (modify-phases %standard-phases
+                  ;; Building the gemspec with rake is not working here since it is
+                  ;; generated with Jeweler.  It is also unnecessary because the
+                  ;; existing gemspec does not use any development tools to generate a
+                  ;; list of files.
+                  (replace 'build
+                    (lambda _
+                      (invoke "gem" "build" "rb-inotify.gemspec"))))))
     (propagated-inputs
      `(("ruby-ffi" ,ruby-ffi)))
     (native-inputs
@@ -4069,15 +4070,15 @@  current line in an external editor.")
      `(#:phases
        (modify-phases %standard-phases
          (add-before 'check 'set-rubylib-and-patch-gemfile
-          (lambda _
-            (setenv "RUBYLIB" "lib")
-            (substitute* "sdoc.gemspec"
-              (("s.add_runtime_dependency.*") "\n")
-              (("s.add_dependency.*") "\n"))
-            (substitute* "Gemfile"
-              (("gem \"rake\".*")
-               "gem 'rake'\ngem 'rdoc'\ngem 'json'\n"))
-            #t)))))
+           (lambda _
+             (setenv "RUBYLIB" "lib")
+             (substitute* "sdoc.gemspec"
+               (("s.add_runtime_dependency.*") "\n")
+               (("s.add_dependency.*") "\n"))
+             (substitute* "Gemfile"
+               (("gem \"rake\".*")
+                "gem 'rake'\ngem 'rdoc'\ngem 'json'\n"))
+             #t)))))
     (propagated-inputs
      `(("ruby-json" ,ruby-json)))
     (native-inputs
@@ -4107,15 +4108,15 @@  documentation for Ruby code.")
     ;; the gemspec.
     (arguments
      `(#:tests? #f ; there are no tests
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'build
-          (lambda _
-            ;; "lib/spruz" is a symlink.  Leaving it in the gemspec file
-            ;; causes an error.
-            (substitute* "tins.gemspec"
-              (("\"lib/spruz\", ") ""))
-            (invoke "gem" "build" "tins.gemspec"))))))
+                #:phases
+                (modify-phases %standard-phases
+                  (replace 'build
+                    (lambda _
+                      ;; "lib/spruz" is a symlink.  Leaving it in the gemspec file
+                      ;; causes an error.
+                      (substitute* "tins.gemspec"
+                        (("\"lib/spruz\", ") ""))
+                      (invoke "gem" "build" "tins.gemspec"))))))
     (synopsis "Assorted tools for Ruby")
     (description "Tins is a Ruby library providing assorted tools.")
     (home-page "https://github.com/flori/tins")
@@ -4136,11 +4137,11 @@  documentation for Ruby code.")
     ;; gemspec to avoid this loop.
     (arguments
      `(#:tests? #f ; there are no tests
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'build
-          (lambda _
-            (invoke "gem" "build" "gem_hadar.gemspec"))))))
+                #:phases
+                (modify-phases %standard-phases
+                  (replace 'build
+                    (lambda _
+                      (invoke "gem" "build" "gem_hadar.gemspec"))))))
     (propagated-inputs
      `(("git" ,git)
        ("ruby-tins" ,ruby-tins)
@@ -4167,7 +4168,7 @@  development of Ruby gems.")
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'fix-test-include-path
-          (lambda* (#:key inputs #:allow-other-keys)
+           (lambda* (#:key inputs #:allow-other-keys)
              (let* ((minitest (assoc-ref inputs "ruby-minitest-4")))
                (substitute* "Rakefile"
                  (("Hoe\\.add_include_dirs .*")
@@ -4178,16 +4179,16 @@  development of Ruby gems.")
                                  "/lib" "\""))))
              #t))
          (add-before 'check 'fix-test-assumptions
-          (lambda _
-            ;; The test output includes the file name, so a couple of tests
-            ;; fail.  Changing the regular expressions slightly fixes this
-            ;; problem.
-            (substitute* "test/test_mini_test.rb"
-              (("output.sub!\\(.*, 'FILE:LINE'\\)")
-               "output.sub!(/\\/.+-[\\w\\/\\.]+:\\d+/, 'FILE:LINE')")
-              (("gsub\\(/.*, 'FILE:LINE'\\)")
-               "gsub(/\\/.+-[\\w\\/\\.]+:\\d+/, 'FILE:LINE')"))
-            #t)))))
+           (lambda _
+             ;; The test output includes the file name, so a couple of tests
+             ;; fail.  Changing the regular expressions slightly fixes this
+             ;; problem.
+             (substitute* "test/test_mini_test.rb"
+               (("output.sub!\\(.*, 'FILE:LINE'\\)")
+                "output.sub!(/\\/.+-[\\w\\/\\.]+:\\d+/, 'FILE:LINE')")
+               (("gsub\\(/.*, 'FILE:LINE'\\)")
+                "gsub(/\\/.+-[\\w\\/\\.]+:\\d+/, 'FILE:LINE')"))
+             #t)))))
     (propagated-inputs
      `(("ruby-minitest-4" ,ruby-minitest-4)))
     (native-inputs
@@ -4221,8 +4222,8 @@  Ruby's large and slower test/unit.")
                (("0\\\\\\.0%")
                 "0\\.?0?%"))))
          (replace 'build
-          (lambda _
-            (invoke "gem" "build" "term-ansicolor.gemspec"))))))
+           (lambda _
+             (invoke "gem" "build" "term-ansicolor.gemspec"))))))
     (propagated-inputs
      `(("ruby-tins" ,ruby-tins)))
     (native-inputs
@@ -4238,26 +4239,26 @@  of terminal output.")
 
 (define-public ruby-terraform
   (package
-  (name "ruby-terraform")
-  (version "0.22.0")
-  (source
-   (origin
-     (method url-fetch)
-     (uri (rubygems-uri "ruby-terraform" version))
-     (sha256
-      (base32
-       "13zjkp71cd19j2ds2h9rqwcfr1zdg5nsh63p89l6qcsc9z39z324"))))
-  (build-system ruby-build-system)
-  (arguments
-   '(#:tests? #f)) ; No included tests
-  (propagated-inputs
-   `(("ruby-lino" ,ruby-lino)))
-  (synopsis "Ruby wrapper around the Terraform command line interface")
-  (description
-   "This package provides a Ruby wrapper around the Terraform command line
+    (name "ruby-terraform")
+    (version "0.22.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "ruby-terraform" version))
+       (sha256
+        (base32
+         "13zjkp71cd19j2ds2h9rqwcfr1zdg5nsh63p89l6qcsc9z39z324"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:tests? #f)) ; No included tests
+    (propagated-inputs
+     `(("ruby-lino" ,ruby-lino)))
+    (synopsis "Ruby wrapper around the Terraform command line interface")
+    (description
+     "This package provides a Ruby wrapper around the Terraform command line
 interface so that Terraform can be more easily invoked from Ruby code.")
-  (home-page "https://github.com/infrablocks/ruby_terraform")
-  (license license:expat)))
+    (home-page "https://github.com/infrablocks/ruby_terraform")
+    (license license:expat)))
 
 (define-public ruby-pstree
   (package
@@ -4410,19 +4411,19 @@  a native C extension.")
     (build-system ruby-build-system)
     (arguments
      '(#:test-target "test"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'remove-unnecessary-dependencies
-           (lambda _
-             (substitute* "spec/spec_helper.rb"
-               (("require 'simplecov.*") "\n")
-               ;; Use [].each to disable running the SimpleCov configuration
-               ;; block
-               (("SimpleCov\\.configure") "[].each")
-               (("require 'codeclimate-test-reporter'") "")
-               (("require 'codacy-coverage'") "")
-               (("Codacy::Reporter\\.start") ""))
-             #t)))))
+                     #:phases
+                     (modify-phases %standard-phases
+                       (add-after 'unpack 'remove-unnecessary-dependencies
+                         (lambda _
+                           (substitute* "spec/spec_helper.rb"
+                             (("require 'simplecov.*") "\n")
+                             ;; Use [].each to disable running the SimpleCov configuration
+                             ;; block
+                             (("SimpleCov\\.configure") "[].each")
+                             (("require 'codeclimate-test-reporter'") "")
+                             (("require 'codacy-coverage'") "")
+                             (("Codacy::Reporter\\.start") ""))
+                           #t)))))
     (native-inputs
      `(("bundler" ,bundler)
        ("ruby-rspec" ,ruby-rspec)
@@ -4600,38 +4601,38 @@  multibyte strings, internationalization, time zones, and testing.")
        `(#:modules ((guix build ruby-build-system)
                     (guix build utils)
                     (ice-9 rdelim))
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'build-gemspec
-            (lambda _
-              (substitute* "Rakefile"
-                ;; Build Makefile even without a copy of gumbo-parser sources
-                (("'gumbo-parser/src',") "")
-                ;; We don't bundle gumbo-parser sources
-                (("'gumbo-parser/src/\\*',") "")
-                (("'gumbo-parser/visualc/include/\\*',") "")
-                ;; The definition of SOURCES will be cut in gemspec, and
-                ;; "FileList" will be undefined.
-                (("SOURCES \\+ FileList\\[")
-                 "['ext/nokogumboc/extconf.rb', 'ext/nokogumboc/nokogumbo.c', "))
-
-              ;; Copy the Rakefile and cut out the gemspec.
-              (copy-file "Rakefile" ".gemspec")
-              (with-atomic-file-replacement ".gemspec"
-                (lambda (in out)
-                  (let loop ((line (read-line in 'concat))
-                             (skipping? #t))
-                    (if (eof-object? line)
-                        #t
-                        (let ((skip-next? (if skipping?
-                                              (not (string-prefix? "SPEC =" line))
-                                              (string-prefix? "end" line))))
-                          (when (or (not skipping?)
-                                    (and skipping? (not skip-next?)))
-                                (format #t "~a" line)
-                                (display line out))
-                          (loop (read-line in 'concat) skip-next?))))))
-              #t)))))
+                   #:phases
+                   (modify-phases %standard-phases
+                     (add-after 'unpack 'build-gemspec
+                       (lambda _
+                         (substitute* "Rakefile"
+                           ;; Build Makefile even without a copy of gumbo-parser sources
+                           (("'gumbo-parser/src',") "")
+                           ;; We don't bundle gumbo-parser sources
+                           (("'gumbo-parser/src/\\*',") "")
+                           (("'gumbo-parser/visualc/include/\\*',") "")
+                           ;; The definition of SOURCES will be cut in gemspec, and
+                           ;; "FileList" will be undefined.
+                           (("SOURCES \\+ FileList\\[")
+                            "['ext/nokogumboc/extconf.rb', 'ext/nokogumboc/nokogumbo.c', "))
+
+                         ;; Copy the Rakefile and cut out the gemspec.
+                         (copy-file "Rakefile" ".gemspec")
+                         (with-atomic-file-replacement ".gemspec"
+                                                       (lambda (in out)
+                                                         (let loop ((line (read-line in 'concat))
+                                                                    (skipping? #t))
+                                                           (if (eof-object? line)
+                                                               #t
+                                                               (let ((skip-next? (if skipping?
+                                                                                     (not (string-prefix? "SPEC =" line))
+                                                                                     (string-prefix? "end" line))))
+                                                                 (when (or (not skipping?)
+                                                                           (and skipping? (not skip-next?)))
+                                                                   (format #t "~a" line)
+                                                                   (display line out))
+                                                                 (loop (read-line in 'concat) skip-next?))))))
+                         #t)))))
       (inputs
        `(("gumbo-parser" ,gumbo-parser)))
       (propagated-inputs
@@ -4693,13 +4694,13 @@  unacceptable HTML and/or CSS from a string.")
     (build-system ruby-build-system)
     (arguments
      '(#:test-target "test_all"
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'disable-bundler
-           (lambda _
-             (substitute* "Rakefile"
-               (("Bundler\\.with_clean_env") "1.times")
-               (("bundle exec ") "")))))))
+                     #:phases
+                     (modify-phases %standard-phases
+                       (add-before 'check 'disable-bundler
+                         (lambda _
+                           (substitute* "Rakefile"
+                             (("Bundler\\.with_clean_env") "1.times")
+                             (("bundle exec ") "")))))))
     (native-inputs
      `(("bundler" ,bundler)
        ("ruby-rspec" ,ruby-rspec)
@@ -4748,14 +4749,14 @@  alternative to Marshal for Object serialization. ")
     (build-system ruby-build-system)
     (arguments
      `(#:tests? #f ; no tests
-       #:phases
-       (modify-phases %standard-phases
-         ;; Redcloth has complicated rake tasks to build various versions for
-         ;; multiple targets using RVM.  We don't want this so we just use the
-         ;; existing gemspec.
-         (replace 'build
-          (lambda _
-            (invoke "gem" "build" "redcloth.gemspec"))))))
+                #:phases
+                (modify-phases %standard-phases
+                  ;; Redcloth has complicated rake tasks to build various versions for
+                  ;; multiple targets using RVM.  We don't want this so we just use the
+                  ;; existing gemspec.
+                  (replace 'build
+                    (lambda _
+                      (invoke "gem" "build" "redcloth.gemspec"))))))
     (native-inputs
      `(("bundler" ,bundler)
        ("ruby-diff-lcs" ,ruby-diff-lcs)
@@ -5270,12 +5271,12 @@  Ruby classes.")
     (name "ruby-gherkin")
     (version "5.1.0")
     (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "gherkin" version))
-        (sha256
-          (base32
-            "1cgcdchwwdm10rsk44frjwqd4ihprhxjbm799nscqy2q1raqfj5s"))))
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "gherkin" version))
+       (sha256
+        (base32
+         "1cgcdchwwdm10rsk44frjwqd4ihprhxjbm799nscqy2q1raqfj5s"))))
     (build-system ruby-build-system)
     (native-inputs
      `(("bundler" ,bundler)))
@@ -5302,45 +5303,45 @@  It is intended be used by all Cucumber implementations to parse
     (build-system ruby-build-system)
     (arguments
      '(#:test-target "spec"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch
-           (lambda _
-             (substitute* "spec/aruba/api_spec.rb"
-               ;; This resolves some errors in the specs
-               ;;
-               ;; undefined method `parse' for Time:Class
-               (("require 'spec_helper'")
-                "require 'spec_helper'\nrequire 'time'"))
-             ;; Avoid shebang issues in this spec file
-             (substitute* "spec/aruba/matchers/command_spec.rb"
-               (("/usr/bin/env bash")
-                (which "bash")))
-             #t))
-         (add-before 'check 'remove-unnecessary-dependencies
-           (lambda _
-             (substitute* "Gemfile"
-               ((".*byebug.*") "\n")
-               ((".*pry.*") "\n")
-               ((".*yaml.*") "\n")
-               ((".*bcat.*") "\n")
-               ((".*kramdown.*") "\n")
-               ((".*rubocop.*") "\n")
-               ((".*cucumber-pro.*") "\n")
-               ((".*cucumber.*") "\n")
-               ((".*license_finder.*") "\n")
-               ((".*rake.*") "gem 'rake'\n")
-               ((".*simplecov.*") "\n")
-               ((".*relish.*") "\n"))
-             (substitute* "spec/spec_helper.rb"
-               ((".*simplecov.*") "")
-               (("^SimpleCov.*") ""))
-             (substitute* "aruba.gemspec"
-               (("spec\\.add\\_runtime\\_dependency 'cucumber'.*")
-                "spec.add_runtime_dependency 'cucumber'"))
-             #t))
-         (add-before 'check 'set-home
-           (lambda _ (setenv "HOME" "/tmp") #t)))))
+                     #:phases
+                     (modify-phases %standard-phases
+                       (add-after 'unpack 'patch
+                         (lambda _
+                           (substitute* "spec/aruba/api_spec.rb"
+                             ;; This resolves some errors in the specs
+                             ;;
+                             ;; undefined method `parse' for Time:Class
+                             (("require 'spec_helper'")
+                              "require 'spec_helper'\nrequire 'time'"))
+                           ;; Avoid shebang issues in this spec file
+                           (substitute* "spec/aruba/matchers/command_spec.rb"
+                             (("/usr/bin/env bash")
+                              (which "bash")))
+                           #t))
+                       (add-before 'check 'remove-unnecessary-dependencies
+                         (lambda _
+                           (substitute* "Gemfile"
+                             ((".*byebug.*") "\n")
+                             ((".*pry.*") "\n")
+                             ((".*yaml.*") "\n")
+                             ((".*bcat.*") "\n")
+                             ((".*kramdown.*") "\n")
+                             ((".*rubocop.*") "\n")
+                             ((".*cucumber-pro.*") "\n")
+                             ((".*cucumber.*") "\n")
+                             ((".*license_finder.*") "\n")
+                             ((".*rake.*") "gem 'rake'\n")
+                             ((".*simplecov.*") "\n")
+                             ((".*relish.*") "\n"))
+                           (substitute* "spec/spec_helper.rb"
+                             ((".*simplecov.*") "")
+                             (("^SimpleCov.*") ""))
+                           (substitute* "aruba.gemspec"
+                             (("spec\\.add\\_runtime\\_dependency 'cucumber'.*")
+                              "spec.add_runtime_dependency 'cucumber'"))
+                           #t))
+                       (add-before 'check 'set-home
+                         (lambda _ (setenv "HOME" "/tmp") #t)))))
     (native-inputs
      `(("bundler" ,bundler)
        ("ruby-rspec" ,ruby-rspec)
@@ -5390,16 +5391,16 @@  language.")
     (build-system ruby-build-system)
     (arguments
      '(#:test-target "spec"
-       #:phases
-       (modify-phases %standard-phases
-         ;; Don't run or require rubocop, the code linting tool, as this is a
-         ;; bit unnecessary.
-         (add-after 'unpack 'dont-run-rubocop
-           (lambda _
-             (substitute* "Rakefile"
-               ((".*rubocop/rake\\_task.*") "")
-               ((".*RuboCop.*") ""))
-             #t)))))
+                     #:phases
+                     (modify-phases %standard-phases
+                       ;; Don't run or require rubocop, the code linting tool, as this is a
+                       ;; bit unnecessary.
+                       (add-after 'unpack 'dont-run-rubocop
+                         (lambda _
+                           (substitute* "Rakefile"
+                             ((".*rubocop/rake\\_task.*") "")
+                             ((".*RuboCop.*") ""))
+                           #t)))))
     (propagated-inputs
      `(("ruby-builder" ,ruby-builder)
        ("ruby-cucumber-core" ,ruby-cucumber-core)
@@ -5427,10 +5428,10 @@  software development workflow.")
 
 (define ruby-cucumber-without-tests
   (package (inherit ruby-cucumber)
-    (arguments
-     '(#:tests? #f))
-    (native-inputs
-     '())))
+           (arguments
+            '(#:tests? #f))
+           (native-inputs
+            '())))
 
 (define-public ruby-cucumber-core
   (package
@@ -5505,13 +5506,13 @@  Expressions are extensible with parameter types.")
      '(;; TODO: Currently, the tests can't be run as cucumber is required,
        ;; which would lead to a circular dependency.
        #:tests? #f
-       #:test-target "default"
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'set-CUCUMBER_USE_RELEASED_GEMS
-           (lambda _
-             (setenv "CUCUMBER_USE_RELEASED_GEMS" "true")
-             #t)))))
+                #:test-target "default"
+                #:phases
+                (modify-phases %standard-phases
+                  (add-before 'check 'set-CUCUMBER_USE_RELEASED_GEMS
+                    (lambda _
+                      (setenv "CUCUMBER_USE_RELEASED_GEMS" "true")
+                      #t)))))
     (native-inputs
      `(("bundler" ,bundler)
        ("ruby-rspec" ,ruby-rspec)))
@@ -5586,27 +5587,27 @@  features such as filtering and fine grained logging.")
     (build-system ruby-build-system)
     (arguments
      '(#:test-target "spec"
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'patch-test-to-update-load-path
-           (lambda _
-             (substitute* "spec/parsing/large_number_spec.rb"
-               (("require \"yajl\"")
-                "$LOAD_PATH << 'lib'; require 'yajl'"))
-             #t)))))
-     (native-inputs
-      `(("ruby-rake-compiler" ,ruby-rake-compiler)
-        ("ruby-rspec" ,ruby-rspec)))
-     (synopsis "Streaming JSON parsing and encoding library for Ruby")
-     (description
-      "Ruby C bindings to the Yajl JSON stream-based parser library.  The API
+                     #:phases
+                     (modify-phases %standard-phases
+                       (add-before 'check 'patch-test-to-update-load-path
+                         (lambda _
+                           (substitute* "spec/parsing/large_number_spec.rb"
+                             (("require \"yajl\"")
+                              "$LOAD_PATH << 'lib'; require 'yajl'"))
+                           #t)))))
+    (native-inputs
+     `(("ruby-rake-compiler" ,ruby-rake-compiler)
+       ("ruby-rspec" ,ruby-rspec)))
+    (synopsis "Streaming JSON parsing and encoding library for Ruby")
+    (description
+     "Ruby C bindings to the Yajl JSON stream-based parser library.  The API
 is compatible with the JSON gem, so yajl-ruby can act as a drop in
 replacement.
 
 A modified copy of yajl is used, and included in the package.")
-     (home-page "https://github.com/brianmario/yajl-ruby")
-     (license (list license:expat     ; Ruby code, yajl_ext.c and yajl_ext.h
-                    license:bsd-3)))) ; Included, modified copy of yajl
+    (home-page "https://github.com/brianmario/yajl-ruby")
+    (license (list license:expat     ; Ruby code, yajl_ext.c and yajl_ext.h
+                   license:bsd-3)))) ; Included, modified copy of yajl
 
 (define-public ruby-yard
   (package
@@ -5698,19 +5699,19 @@  simple case of executing code based on the flags or parameters passed.")
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'fix-pygmentize-path
-          (lambda _
-            (substitute* "lib/pygmentize.rb"
-              (("\"/usr/bin/env python.*")
-               (string-append "\"" (which "pygmentize") "\"\n")))
-            #t))
+           (lambda _
+             (substitute* "lib/pygmentize.rb"
+               (("\"/usr/bin/env python.*")
+                (string-append "\"" (which "pygmentize") "\"\n")))
+             #t))
          (add-after 'build 'do-not-use-vendor-directory
-          (lambda _
-            ;; Remove bundled pygments sources
-            ;; FIXME: ruby-build-system does not support snippets.
-            (delete-file-recursively "vendor")
-            (substitute* "pygmentize.gemspec"
-              (("\"vendor/\\*\\*/\\*\",") ""))
-            #t)))))
+           (lambda _
+             ;; Remove bundled pygments sources
+             ;; FIXME: ruby-build-system does not support snippets.
+             (delete-file-recursively "vendor")
+             (substitute* "pygmentize.gemspec"
+               (("\"vendor/\\*\\*/\\*\",") ""))
+             #t)))))
     (inputs
      `(("pygments" ,python-pygments)))
     (native-inputs
@@ -6146,27 +6147,27 @@  authentication in Ruby web applications.")
     (build-system ruby-build-system)
     (arguments
      '(#:test-target "spec"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'remove-unnecessary-dependencies
-           (lambda _
-             (substitute* "Gemfile"
-               ;; All of these gems relate to development, and are unnecessary
-               ;; when running the tests
-               (("gem 'guard-bundler'") "")
-               (("gem 'guard'") "")
-               (("gem 'guard-rspec'") "")
-               (("gem 'rb-fsevent'") "")
-               (("gem 'pry'") "")
-               (("gem 'growl'") ""))
-             #t))
-         ;; The test suite doesn't work with rspec@2, and this is incompatible
-         ;; with the current version of Rake, so invoke Rspec directly
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (invoke "bundle" "exec" "rspec"))
-             #t)))))
+                     #:phases
+                     (modify-phases %standard-phases
+                       (add-after 'unpack 'remove-unnecessary-dependencies
+                         (lambda _
+                           (substitute* "Gemfile"
+                             ;; All of these gems relate to development, and are unnecessary
+                             ;; when running the tests
+                             (("gem 'guard-bundler'") "")
+                             (("gem 'guard'") "")
+                             (("gem 'guard-rspec'") "")
+                             (("gem 'rb-fsevent'") "")
+                             (("gem 'pry'") "")
+                             (("gem 'growl'") ""))
+                           #t))
+                       ;; The test suite doesn't work with rspec@2, and this is incompatible
+                       ;; with the current version of Rake, so invoke Rspec directly
+                       (replace 'check
+                         (lambda* (#:key tests? #:allow-other-keys)
+                           (when tests?
+                             (invoke "bundle" "exec" "rspec"))
+                           #t)))))
     (propagated-inputs
      `(("ruby-warden" ,ruby-warden)))
     (native-inputs
@@ -6277,27 +6278,27 @@  checking for the right Ruby version in software.")
 
 (define-public ruby-websocket-driver
   (package
-   (name "ruby-websocket-driver")
-   (version "0.7.0")
-   (source
-    (origin
-     (method url-fetch)
-     (uri (rubygems-uri "websocket-driver" version))
-     (sha256
-      (base32
-       "1551k3fs3kkb3ghqfj3n5lps0ikb9pyrdnzmvgfdxy8574n4g1dn"))))
-   (build-system ruby-build-system)
-   (arguments
-    '(;; No included tests
-      #:tests? #f))
-   (propagated-inputs
-    `(("ruby-websocket-extensions" ,ruby-websocket-extensions)))
-   (synopsis "WebSocket protocol handler with pluggable I/O")
-   (description
-    "@code{websocket-driver} provides a complete implementation of the
+    (name "ruby-websocket-driver")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "websocket-driver" version))
+       (sha256
+        (base32
+         "1551k3fs3kkb3ghqfj3n5lps0ikb9pyrdnzmvgfdxy8574n4g1dn"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(;; No included tests
+       #:tests? #f))
+    (propagated-inputs
+     `(("ruby-websocket-extensions" ,ruby-websocket-extensions)))
+    (synopsis "WebSocket protocol handler with pluggable I/O")
+    (description
+     "@code{websocket-driver} provides a complete implementation of the
 WebSocket protocols that can be hooked up to any TCP library")
-   (home-page "https://github.com/faye/websocket-driver-ruby")
-   (license license:expat)))
+    (home-page "https://github.com/faye/websocket-driver-ruby")
+    (license license:expat)))
 
 (define-public ruby-websocket-extensions
   (package
@@ -6421,15 +6422,15 @@  It has built-in support for the legacy @code{cookies.txt} and
        ;; ------
        ;; 6.49 tests/s, 22.41 assertions/s
        #:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (if tests?
-                 (invoke "ruby"
-                         "-Ilib"
-                         "test/runner.rb")
-                 #t))))))
+                #:phases
+                (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (if tests?
+                          (invoke "ruby"
+                                  "-Ilib"
+                                  "test/runner.rb")
+                          #t))))))
     (native-inputs
      `(("ruby-rack" ,ruby-rack)))
     (synopsis
@@ -6716,12 +6717,12 @@  for reuse by other test frameworks.")
     (name "ruby-lemon")
     (version "0.9.1")
     (source
-    (origin
-      (method url-fetch)
-      (uri (rubygems-uri "lemon" version))
-      (sha256
-       (base32
-        "0gqhpgjavgpvx23rqpfqcv3d5bs8gc7lr9yvj8kxgp7mfbdc2jcm"))))
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "lemon" version))
+       (sha256
+        (base32
+         "0gqhpgjavgpvx23rqpfqcv3d5bs8gc7lr9yvj8kxgp7mfbdc2jcm"))))
     (build-system ruby-build-system)
     (arguments
      `(#:phases
@@ -6887,23 +6888,23 @@  binary-to-text encoding.  The main modern use of Ascii85 is in PostScript and
     (build-system ruby-build-system)
     (arguments
      `(#:test-target "spec"
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'remove-ssh
-           (lambda _
-             ;; remove dependency on an ssh key pair that doesn't exist
-             (substitute* "ttfunk.gemspec"
-               (("spec.signing_key.*") ""))
-             #t))
-         (add-before 'check 'remove-rubocop
-           (lambda _
-             ;; remove rubocop as a dependency as not needed for testing
-             (substitute* "ttfunk.gemspec"
-               (("spec.add_development_dependency\\('rubocop'.*") ""))
-             (substitute* "Rakefile"
-               (("require 'rubocop/rake_task'") "")
-               (("RuboCop::RakeTask.new") ""))
-             #t)))))
+                     #:phases
+                     (modify-phases %standard-phases
+                       (add-before 'build 'remove-ssh
+                         (lambda _
+                           ;; remove dependency on an ssh key pair that doesn't exist
+                           (substitute* "ttfunk.gemspec"
+                             (("spec.signing_key.*") ""))
+                           #t))
+                       (add-before 'check 'remove-rubocop
+                         (lambda _
+                           ;; remove rubocop as a dependency as not needed for testing
+                           (substitute* "ttfunk.gemspec"
+                             (("spec.add_development_dependency\\('rubocop'.*") ""))
+                           (substitute* "Rakefile"
+                             (("require 'rubocop/rake_task'") "")
+                             (("RuboCop::RakeTask.new") ""))
+                           #t)))))
     (native-inputs
      `(("ruby-rspec" ,ruby-rspec)
        ("ruby-yard" ,ruby-yard)
@@ -6934,13 +6935,13 @@  part of the Prawn PDF generator.")
     (build-system ruby-build-system)
     (arguments
      `(#:tests? #f ; Tests require an out-dated version of minitest.
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'fix-gemspec
-           (lambda _
-             (substitute* "puma.gemspec"
-               (("git ls-files") "find * |sort"))
-             #t)))))
+                #:phases
+                (modify-phases %standard-phases
+                  (add-before 'build 'fix-gemspec
+                    (lambda _
+                      (substitute* "puma.gemspec"
+                        (("git ls-files") "find * |sort"))
+                      #t)))))
     (synopsis "Simple, concurrent HTTP server for Ruby/Rack")
     (description
      "Puma is a simple, fast, threaded, and highly concurrent HTTP 1.1 server
@@ -7054,31 +7055,31 @@  call.")
     (build-system ruby-build-system)
     (arguments
      `(#:test-target "spec"
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'replace-git-ls-files 'remove-extra-gemspecs
-           (lambda _
-             ;; Delete extra gemspec files so 'first-gemspec' chooses the
-             ;; correct one.
-             (delete-file "concurrent-ruby-edge.gemspec")
-             (delete-file "concurrent-ruby-ext.gemspec")
-             #t))
-         (add-before 'build 'replace-git-ls-files2
-           (lambda _
-             (substitute* "support/file_map.rb"
-               (("git ls-files") "find * |sort"))
-             #t))
-         (add-before 'check 'rake-compile
-           ;; Fix the test error described at
-           ;; https://github.com/ruby-concurrency/concurrent-ruby/pull/408
-           (lambda _ (invoke "rake" "compile")))
-         (add-before 'check 'remove-timecop-dependency
-           ;; Remove timecop-dependent tests as having timecop as a depedency
-           ;; causes circular depedencies.
-           (lambda _
-             (delete-file "spec/concurrent/executor/timer_set_spec.rb")
-             (delete-file "spec/concurrent/scheduled_task_spec.rb")
-             #t)))))
+                     #:phases
+                     (modify-phases %standard-phases
+                       (add-before 'replace-git-ls-files 'remove-extra-gemspecs
+                         (lambda _
+                           ;; Delete extra gemspec files so 'first-gemspec' chooses the
+                           ;; correct one.
+                           (delete-file "concurrent-ruby-edge.gemspec")
+                           (delete-file "concurrent-ruby-ext.gemspec")
+                           #t))
+                       (add-before 'build 'replace-git-ls-files2
+                         (lambda _
+                           (substitute* "support/file_map.rb"
+                             (("git ls-files") "find * |sort"))
+                           #t))
+                       (add-before 'check 'rake-compile
+                         ;; Fix the test error described at
+                         ;; https://github.com/ruby-concurrency/concurrent-ruby/pull/408
+                         (lambda _ (invoke "rake" "compile")))
+                       (add-before 'check 'remove-timecop-dependency
+                         ;; Remove timecop-dependent tests as having timecop as a depedency
+                         ;; causes circular depedencies.
+                         (lambda _
+                           (delete-file "spec/concurrent/executor/timer_set_spec.rb")
+                           (delete-file "spec/concurrent/scheduled_task_spec.rb")
+                           #t)))))
     (native-inputs
      `(("ruby-rake-compiler" ,ruby-rake-compiler)
        ("ruby-rspec" ,ruby-rspec)))
@@ -7365,20 +7366,20 @@  all known public suffixes.")
     (build-system ruby-build-system)
     (arguments
      '(#:test-target "spec"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'remove-unnecessary-dependencies-from-Gemfile
-          (lambda _
-            (substitute* "Gemfile"
-              (("git: 'https://github.com/sporkmonger/rack-mount.git',") "")
-              ((".*launchy.*") "")
-              ((".*rake.*") "gem 'rake'\n")
-              ((".*redcarpet.*") ""))
-            #t))
-         (add-before 'check 'delete-network-dependent-test
-           (lambda _
-             (delete-file "spec/addressable/net_http_compat_spec.rb")
-             #t)))))
+                     #:phases
+                     (modify-phases %standard-phases
+                       (add-after 'unpack 'remove-unnecessary-dependencies-from-Gemfile
+                         (lambda _
+                           (substitute* "Gemfile"
+                             (("git: 'https://github.com/sporkmonger/rack-mount.git',") "")
+                             ((".*launchy.*") "")
+                             ((".*rake.*") "gem 'rake'\n")
+                             ((".*redcarpet.*") ""))
+                           #t))
+                       (add-before 'check 'delete-network-dependent-test
+                         (lambda _
+                           (delete-file "spec/addressable/net_http_compat_spec.rb")
+                           #t)))))
     (native-inputs
      `(("ruby-rspec" ,ruby-rspec)
        ("bundler" ,bundler)
@@ -7430,16 +7431,16 @@  for the terminal.")
     (arguments
      ;; No Rakefile
      `(#:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'fix-dependencies
-           (lambda _
-             (substitute* ".gemspec"
-               ;; colored is unmaintained
-               (("colored") "colorator")
-               ;; colorator version
-               (("= 1.2") "= 1.1"))
-             #t)))))
+                #:phases
+                (modify-phases %standard-phases
+                  (add-before 'build 'fix-dependencies
+                    (lambda _
+                      (substitute* ".gemspec"
+                        ;; colored is unmaintained
+                        (("colored") "colorator")
+                        ;; colorator version
+                        (("= 1.2") "= 1.1"))
+                      #t)))))
     (propagated-inputs `(("ruby-colorator" ,ruby-colorator)))
     (home-page "https://github.com/wbailey/command_line_reporter")
     (synopsis "Report production while executing Ruby scripts")
@@ -7465,12 +7466,12 @@  your application.")
     (name "ruby-rdoc")
     (version "6.0.4")
     (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "rdoc" version))
-        (sha256
-          (base32
-            "0anv42cqcdc6g4n386mrva7mgav5i0c2ry3yzvzzc6z6hymkmcr7"))))
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "rdoc" version))
+       (sha256
+        (base32
+         "0anv42cqcdc6g4n386mrva7mgav5i0c2ry3yzvzzc6z6hymkmcr7"))))
     (build-system ruby-build-system)
     (native-inputs
      `(("bundler" ,bundler)))
@@ -7509,18 +7510,18 @@  about the changes.")
     (name "ruby-terminfo")
     (version "0.1.1")
     (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "ruby-terminfo" version))
-        (sha256
-          (base32
-            "0rl4ic5pzvrpgd42z0c1s2n3j39c9znksblxxvmhkzrc0ckyg2cm"))))
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "ruby-terminfo" version))
+       (sha256
+        (base32
+         "0rl4ic5pzvrpgd42z0c1s2n3j39c9znksblxxvmhkzrc0ckyg2cm"))))
     (build-system ruby-build-system)
     (arguments
      `(#:test-target "test"
-       ;; Rakefile requires old packages and would need modification to
-       ;; work with current software.
-       #:tests? #f))
+                     ;; Rakefile requires old packages and would need modification to
+                     ;; work with current software.
+                     #:tests? #f))
     (inputs
      `(("ncurses" ,ncurses)))
     (native-inputs
@@ -7536,12 +7537,12 @@  about the changes.")
     (name "ruby-diffy")
     (version "3.2.1")
     (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "diffy" version))
-        (sha256
-          (base32
-            "119imrkn01agwhx5raxhknsi331y5i4yda7r0ws0an6905ximzjg"))))
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "diffy" version))
+       (sha256
+        (base32
+         "119imrkn01agwhx5raxhknsi331y5i4yda7r0ws0an6905ximzjg"))))
     (build-system ruby-build-system)
     (arguments
      ;; No tests
@@ -7575,13 +7576,13 @@  strings or files.")
      `(;; This package contains tests for a sass implementation, and the to
        ;; avoid any circular dependencies, the tests are not run here
        #:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-test
-           (lambda _
-             (delete-file "spec/values/colors/alpha_hex-3.5/error")
-             (substitute* "spec/values/colors/alpha_hex-3.5/expected_output.css"
-               (("string") "color")))))))
+                #:phases
+                (modify-phases %standard-phases
+                  (add-after 'unpack 'patch-test
+                    (lambda _
+                      (delete-file "spec/values/colors/alpha_hex-3.5/error")
+                      (substitute* "spec/values/colors/alpha_hex-3.5/expected_output.css"
+                        (("string") "color")))))))
     (home-page "https://github.com/sass/sass-spec")
     (synopsis "Test suite for Sass")
     (description "Sass Spec is a test suite for Sass.  Test cases are all in
@@ -7753,25 +7754,25 @@  interface.  It allows Jekyll to rebuild your site when a file changes.")
        ;; rspec './spec/parallel_spec.rb[1:9:16]' # Parallel.each works with
        ;; SQLite in threads
        #:tests? #f
-       #:test-target "rspec-rerun:spec"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-Gemfile
-           (lambda _
-             (substitute* "Gemfile"
-               (("gem 'rspec-legacy_formatters'") "")
-               (("gem 'activerecord.*$") "gem 'activerecord'\n"))))
-         (add-before 'check 'delete-Gemfile.lock
-           (lambda _
-             ;; Bundler isn't being used for fetching dependendencies, so
-             ;; delete the Gemfile.lock
-             (delete-file "Gemfile.lock")
-             #t))
-         (add-before 'build 'patch-gemspec
-           (lambda _
-             (substitute* "parallel.gemspec"
-               (("git ls-files") "find"))
-             #t)))))
+                #:test-target "rspec-rerun:spec"
+                #:phases
+                (modify-phases %standard-phases
+                  (add-after 'unpack 'patch-Gemfile
+                    (lambda _
+                      (substitute* "Gemfile"
+                        (("gem 'rspec-legacy_formatters'") "")
+                        (("gem 'activerecord.*$") "gem 'activerecord'\n"))))
+                  (add-before 'check 'delete-Gemfile.lock
+                    (lambda _
+                      ;; Bundler isn't being used for fetching dependendencies, so
+                      ;; delete the Gemfile.lock
+                      (delete-file "Gemfile.lock")
+                      #t))
+                  (add-before 'build 'patch-gemspec
+                    (lambda _
+                      (substitute* "parallel.gemspec"
+                        (("git ls-files") "find"))
+                      #t)))))
     (native-inputs
      `(("ruby-rspec" ,ruby-rspec)
        ("ruby-rspec-rerun" ,ruby-rspec-rerun)
@@ -7895,7 +7896,7 @@  support the tests found in Prawn, a pure Ruby PDF generation library.")
                 "15d6m99bc8bbzlkcg13qfpjjzphfg5x905pjbfygvpcxsm8gnsvg"))))
     (build-system ruby-build-system)
     (arguments
-     ; No test target
+                                        ; No test target
      `(#:tests? #f))
     (home-page "https://github.com/prawnpdf/pdf-core")
     (synopsis "Low level PDF features for Prawn")
@@ -7915,15 +7916,15 @@  functionality from Prawn.")
                 "1qdjf1v6sfl44g3rqxlg8k4jrzkwaxgvh2l4xws97a8f3xv4na4m"))))
     (build-system ruby-build-system)
     (arguments
-     ; No tests
+                                        ; No tests
      `(#:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'fix-dependencies
-           (lambda _
-             (substitute* "prawn.gemspec"
-               (("~> 0.7.0") "~> 0.7"))
-             #t)))))
+                #:phases
+                (modify-phases %standard-phases
+                  (add-before 'build 'fix-dependencies
+                    (lambda _
+                      (substitute* "prawn.gemspec"
+                        (("~> 0.7.0") "~> 0.7"))
+                      #t)))))
     (propagated-inputs
      `(("ruby-pdf-core" ,ruby-pdf-core)
        ("ruby-ttfunk" ,ruby-ttfunk)))
@@ -7969,20 +7970,20 @@  functionality from Prawn.")
        ;;
        ;; 225 examples, 1 failure
        #:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'patch-gemspec
-           (lambda _
-             (substitute* "prawn-table.gemspec"
-               ;; Loosen the requirement for pdf-inspector
-               (("~> 1\\.1\\.0") ">= 0")
-               ;; Loosen the requirement for pdf-reader
-               (("~> 1\\.2") ">= 0"))))
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (invoke "rspec"))
-             #t)))))
+                #:phases
+                (modify-phases %standard-phases
+                  (add-before 'check 'patch-gemspec
+                    (lambda _
+                      (substitute* "prawn-table.gemspec"
+                        ;; Loosen the requirement for pdf-inspector
+                        (("~> 1\\.1\\.0") ">= 0")
+                        ;; Loosen the requirement for pdf-reader
+                        (("~> 1\\.2") ">= 0"))))
+                  (replace 'check
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (when tests?
+                        (invoke "rspec"))
+                      #t)))))
     (home-page "https://github.com/prawnpdf/prawn-table")
     (synopsis "Tables support for Prawn")
     (description "This gem provides tables support for Prawn.")
@@ -8016,12 +8017,12 @@  popular by the PHP @code{Markdown Extra} package and @code{Maruku}.")
     (name "ruby-http-parser.rb")
     (version "0.6.0")
     (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "http_parser.rb" version))
-        (sha256
-          (base32
-            "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi"))))
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "http_parser.rb" version))
+       (sha256
+        (base32
+         "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi"))))
     (build-system ruby-build-system)
     (arguments
      ;; No tests
@@ -8040,19 +8041,19 @@  parser for writing http servers, clients and proxies.")
     (name "ruby-em-websocket")
     (version "0.5.1")
     (source
-      (origin
-        (method url-fetch)
-        (uri (rubygems-uri "em-websocket" version))
-        (sha256
-          (base32
-            "1bsw8vjz0z267j40nhbmrvfz7dvacq4p0pagvyp17jif6mj6v7n3"))))
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "em-websocket" version))
+       (sha256
+        (base32
+         "1bsw8vjz0z267j40nhbmrvfz7dvacq4p0pagvyp17jif6mj6v7n3"))))
     (build-system ruby-build-system)
     (arguments
      ;; No tests
      `(#:tests? #f))
     (propagated-inputs
-      `(("ruby-eventmachine" ,ruby-eventmachine)
-        ("ruby-http-parser.rb" ,ruby-http-parser.rb)))
+     `(("ruby-eventmachine" ,ruby-eventmachine)
+       ("ruby-http-parser.rb" ,ruby-http-parser.rb)))
     (native-inputs
      `(("bundler" ,bundler)
        ("ruby-rspec" ,ruby-rspec)))
@@ -8080,10 +8081,10 @@  implementation.")
 than 100 languages and outputs HTML or ANSI 256-color text.  Its HTML output
 is compatible with stylesheets designed for pygments.")
     (license (list
-               ;; rouge is licensed under expat
-               license:expat
-               ;; pygments is licensed under bsd-2
-               license:bsd-2))))
+              ;; rouge is licensed under expat
+              license:expat
+              ;; pygments is licensed under bsd-2
+              license:bsd-2))))
 
 (define-public ruby-rouge-2
   (package
@@ -8166,16 +8167,16 @@  indentation will probably be an issue and hence this gem.")
        ("ruby-heredoc-unindent" ,ruby-heredoc-unindent)))
     (arguments
      '(#:test-target "spec"
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'set-TZ
-           (lambda _
-             ;; This test is dependent on the timezone
-             ;; spec/transform/to_date_spec.rb:35
-             ;; # SafeYAML::Transform::ToDate converts times to the local
-             ;; timezone
-             (setenv "TZ" "UTC-11")
-             #t)))))
+                     #:phases
+                     (modify-phases %standard-phases
+                       (add-before 'check 'set-TZ
+                         (lambda _
+                           ;; This test is dependent on the timezone
+                           ;; spec/transform/to_date_spec.rb:35
+                           ;; # SafeYAML::Transform::ToDate converts times to the local
+                           ;; timezone
+                           (setenv "TZ" "UTC-11")
+                           #t)))))
     (home-page "https://github.com/dtao/safe_yaml")
     (synopsis "YAML parser")
     (description "The SafeYAML gem provides an alternative implementation of
@@ -8277,13 +8278,13 @@  Pathname.")
     (arguments
      ;; No rakefile, but a test subdirectory
      `(#:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'fix-i18n
-           (lambda _
-             (substitute* ".gemspec"
-               (("~> 0.7") ">= 0.7"))
-             #t)))))
+                #:phases
+                (modify-phases %standard-phases
+                  (add-before 'build 'fix-i18n
+                    (lambda _
+                      (substitute* ".gemspec"
+                        (("~> 0.7") ">= 0.7"))
+                      #t)))))
     (propagated-inputs
      `(("ruby-addressable" ,ruby-addressable)
        ("ruby-colorator" ,ruby-colorator)
@@ -8346,76 +8347,76 @@  interface over different adapters.")
 
 (define-public ruby-nio4r
   (package
-   (name "ruby-nio4r")
-   (version "2.3.1")
-   (source
-    (origin
-     (method url-fetch)
-     (uri (rubygems-uri "nio4r" version))
-     (sha256
-      (base32
-       "1a41ca1kpdmrypjp9xbgvckpy8g26zxphkja9vk7j5wl4n8yvlyr"))))
-   (build-system ruby-build-system)
-   (arguments
-    '(#:phases
-      (modify-phases %standard-phases
-        (add-after 'unpack 'remove-unnecessary-dependencies
-          (lambda _
-            (substitute* "spec/spec_helper.rb"
-              ;; Coveralls is for uploading test coverage information to an
-              ;; online service, and thus unnecessary for building the Guix
-              ;; package
-              (("require \"coveralls\"") "")
-              (("Coveralls\\.wear!") "")
-              ;; Remove rspec/retry as we are not retrying the tests
-              (("require \"rspec/retry\"") "")
-              (("config\\.display_try_failure_messages = true") "")
-              (("config\\.verbose_retry = true") ""))
-            #t))
-        (add-before 'check 'compile
-          (lambda _
-            (invoke "rake" "compile")
-            #t))
-        (replace 'check
-          (lambda* (#:key tests? #:allow-other-keys)
-            (when tests?
-              (invoke "rspec"))
-            #t)))))
-   (native-inputs
-    `(("bundler" ,bundler)
-      ("ruby-rake-compiler" ,ruby-rake-compiler)
-      ("ruby-rspec" ,ruby-rspec)
-      ("ruby-rubocop" ,ruby-rubocop)))
-   (synopsis "New I/O for Ruby")
-   (description
-    "@code{nio} provides cross-platform asynchronous I/O primitives in Ruby
+    (name "ruby-nio4r")
+    (version "2.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "nio4r" version))
+       (sha256
+        (base32
+         "1a41ca1kpdmrypjp9xbgvckpy8g26zxphkja9vk7j5wl4n8yvlyr"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-unnecessary-dependencies
+           (lambda _
+             (substitute* "spec/spec_helper.rb"
+               ;; Coveralls is for uploading test coverage information to an
+               ;; online service, and thus unnecessary for building the Guix
+               ;; package
+               (("require \"coveralls\"") "")
+               (("Coveralls\\.wear!") "")
+               ;; Remove rspec/retry as we are not retrying the tests
+               (("require \"rspec/retry\"") "")
+               (("config\\.display_try_failure_messages = true") "")
+               (("config\\.verbose_retry = true") ""))
+             #t))
+         (add-before 'check 'compile
+           (lambda _
+             (invoke "rake" "compile")
+             #t))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "rspec"))
+             #t)))))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-rake-compiler" ,ruby-rake-compiler)
+       ("ruby-rspec" ,ruby-rspec)
+       ("ruby-rubocop" ,ruby-rubocop)))
+    (synopsis "New I/O for Ruby")
+    (description
+     "@code{nio} provides cross-platform asynchronous I/O primitives in Ruby
 for scalable network clients and servers.")
-   (home-page "https://github.com/socketry/nio4r")
-   (license license:expat)))
+    (home-page "https://github.com/socketry/nio4r")
+    (license license:expat)))
 
 (define-public ruby-globalid
   (package
-   (name "ruby-globalid")
-   (version "0.4.2")
-   (source
-    (origin
-     (method url-fetch)
-     (uri (rubygems-uri "globalid" version))
-     (sha256
-      (base32
-       "1zkxndvck72bfw235bd9nl2ii0lvs5z88q14706cmn702ww2mxv1"))))
-   (build-system ruby-build-system)
-   (arguments
-    '(;; No included tests
-      #:tests? #f))
-   (propagated-inputs
-    `(("ruby-activesupport" ,ruby-activesupport)))
-   (synopsis "Generate URIs idenfitying model instances in Ruby")
-   (description
-    "@code{GlobalID} provides a way to generate URIs from a model in Ruby that
+    (name "ruby-globalid")
+    (version "0.4.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "globalid" version))
+       (sha256
+        (base32
+         "1zkxndvck72bfw235bd9nl2ii0lvs5z88q14706cmn702ww2mxv1"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(;; No included tests
+       #:tests? #f))
+    (propagated-inputs
+     `(("ruby-activesupport" ,ruby-activesupport)))
+    (synopsis "Generate URIs idenfitying model instances in Ruby")
+    (description
+     "@code{GlobalID} provides a way to generate URIs from a model in Ruby that
 uniquely identify it.")
-   (home-page "https://rubyonrails.org/")
-   (license license:expat)))
+    (home-page "https://rubyonrails.org/")
+    (license license:expat)))
 
 (define-public ruby-sprockets
   (package
@@ -8532,15 +8533,15 @@  and stability,
     (build-system ruby-build-system)
     (arguments
      '(#:tests? #f ; No included tests
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'patch-gemspec
-           (lambda _
-             (substitute* ".gemspec"
-               (("<eventmachine>.freeze, \\[\\\"~> 1.0.0\"")
-                "<eventmachine>, [\">= 1.0.0\"")
-               (("<thin>.freeze, \\[\\\"< 1.7\", ") "<thin>, ["))
-             #t)))))
+                #:phases
+                (modify-phases %standard-phases
+                  (add-before 'build 'patch-gemspec
+                    (lambda _
+                      (substitute* ".gemspec"
+                        (("<eventmachine>.freeze, \\[\\\"~> 1.0.0\"")
+                         "<eventmachine>, [\">= 1.0.0\"")
+                        (("<thin>.freeze, \\[\\\"< 1.7\", ") "<thin>, ["))
+                      #t)))))
     (propagated-inputs
      `(("ruby-eventmachine" ,ruby-eventmachine)
        ("ruby-thin" ,ruby-thin)))
@@ -8567,25 +8568,25 @@  the Thin library.")
      ;; might be able to fix this by adding the Git repository to the GEM_PATH
      ;; of the tests.  See ruby-mysql2.
      '(#:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'patch-gemspec
-           (lambda _
-             (substitute* ".gemspec"
-               (("<eventmachine>.freeze, \\[\\\"= 1.0.9.1")
-                "<eventmachine>, [\">= 1.0.9.1")
-               (("<rack>.freeze, \\[\\\"~> 1.5") "<rack>, [\">= 1.5")
-               (("<thin>.freeze, \\[\\\"~> 1.5.0") "<thin>, [\">= 1.5.0")
-               (("<sinatra>.freeze, \\[\\\"~> 1.2") "<sinatra>, [\">= 1.2"))
-             #t))
-         (add-before 'build 'loosen-dependency-contraint
-             (lambda _
-               (substitute* "lib/mail_catcher.rb"
-                 (("\"eventmachine\", \"1.0.9.1\"") "\"eventmachine\", \">= 1.0.9.1\"")
-                 (("\"rack\", \"~> 1.5\"") "\"rack\", \">= 1.5\"")
-                 (("\"thin\", \"~> 1.5.0\"") "\"thin\", \">= 1.5.0\"")
-                 (("\"sinatra\", \"~> 1.2\"") "\"sinatra\", \">= 1.2\""))
-               #t)))))
+                #:phases
+                (modify-phases %standard-phases
+                  (add-before 'build 'patch-gemspec
+                    (lambda _
+                      (substitute* ".gemspec"
+                        (("<eventmachine>.freeze, \\[\\\"= 1.0.9.1")
+                         "<eventmachine>, [\">= 1.0.9.1")
+                        (("<rack>.freeze, \\[\\\"~> 1.5") "<rack>, [\">= 1.5")
+                        (("<thin>.freeze, \\[\\\"~> 1.5.0") "<thin>, [\">= 1.5.0")
+                        (("<sinatra>.freeze, \\[\\\"~> 1.2") "<sinatra>, [\">= 1.2"))
+                      #t))
+                  (add-before 'build 'loosen-dependency-contraint
+                    (lambda _
+                      (substitute* "lib/mail_catcher.rb"
+                        (("\"eventmachine\", \"1.0.9.1\"") "\"eventmachine\", \">= 1.0.9.1\"")
+                        (("\"rack\", \"~> 1.5\"") "\"rack\", \">= 1.5\"")
+                        (("\"thin\", \"~> 1.5.0\"") "\"thin\", \">= 1.5.0\"")
+                        (("\"sinatra\", \"~> 1.2\"") "\"sinatra\", \">= 1.2\""))
+                      #t)))))
     (inputs
      `(("ruby-eventmachine" ,ruby-eventmachine)
        ("ruby-mail" ,ruby-mail)
@@ -8602,3 +8603,32 @@  app to deliver to smtp://127.0.0.1:1025 instead of your default SMTP server,
 then check out http://127.0.0.1:1080 to see the mail.")
     (home-page "https://mailcatcher.me")
     (license license:expat)))
+
+(define-public ruby-skinny-jeans
+  (package
+    (name "ruby-skinny-jeans")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "skinny-jeans" version))
+       (sha256
+        (base32
+         "0lbhrkigypxikgzfzplsffilrpkym0snkznlqlba024y5m37w70m"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(;; No included tests
+       #:tests? #f))
+    
+    (propagated-inputs
+     `(("ruby-activerecord" ,ruby-activerecord)
+       ("ruby-sqlite3" ,ruby-sqlite3)))
+    (synopsis
+     "Fast webserver log parser for persisting daily pageviews per path to sqlite")
+    (description
+     "Fast webserver log parser for persisting daily pageviews per path to sqlite")
+    (home-page
+     "http://github.com/jotto/skinny-jeans")
+    (license license:expat)))
+
+
-- 
2.11.0