summary refs log tree commit diff
path: root/gnu/packages/ruby.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/ruby.scm')
-rw-r--r--gnu/packages/ruby.scm304
1 files changed, 182 insertions, 122 deletions
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index eb84367d15..8c0e19d015 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -32,6 +32,7 @@
 ;;; Copyright © 2022, 2023 Remco van 't Veer <remco@remworks.net>
 ;;; Copyright © 2022 Taiju HIGASHI <higashi@taiju.info>
 ;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
+;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -320,27 +321,27 @@ matching.  mruby can be linked and embedded within your application.")
 (define-public ruby-commander
   (package
     (name "ruby-commander")
-    (version "4.4.7")
+    (version "4.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (rubygems-uri "commander" version))
        (sha256
         (base32
-         "1pxakz596fjqak3cdbha6iva1dlqis86i3kjrgg6lf3sp8i5vhwg"))))
+         "1n8k547hqq9hvbyqbx2qi08g0bky20bbjca1df8cqq5frhzxq7bx"))))
     (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)))))
+     (list
+      #: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.*") "")))))))
     (propagated-inputs
      (list ruby-highline))
     (native-inputs
@@ -1211,22 +1212,22 @@ next patch version for example.")
 (define-public ruby-rjb
   (package
     (name "ruby-rjb")
-    (version "1.5.5")
+    (version "1.6.7")
     (source (origin
               (method url-fetch)
               (uri (rubygems-uri "rjb" version))
               (sha256
                (base32
-                "1ppj8rbicj3w0nhh7f73mflq19yd7pzdzkh2a91hcvphriy5b0ca"))))
+                "0ck802bm8cklhmqsgzhsa0y8lg80qy52dp3m8rlld3zc5gv1rsb9"))))
     (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)))))
+     (list
+      #: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")))))))
     (native-inputs
      `(("jdk" ,icedtea "jdk")))
     (synopsis "Ruby-to-Java bridge using the Java Native Interface")
@@ -3239,29 +3240,35 @@ and inspect the environment.")
 (define-public ruby-ptools
   (package
     (name "ruby-ptools")
-    (version "1.3.5")
+    (version "1.5.0")
     (source (origin
               (method url-fetch)
               (uri (rubygems-uri "ptools" version))
               (sha256
                (base32
-                "1jb1h1nsk9zwykpniw8filbsk26kjsdlpk5wz6w0zyamcd41h87j"))))
+                "0damllbshkxycrwjv80sz78h76dw7r9z54d17mb5cbha1daq9q2d"))))
     (build-system ruby-build-system)
     (arguments
-     '(#:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'patch-/bin/ls
-                    (lambda _
-                      (substitute* "test/test_binary.rb"
-                        (("/bin/ls")
-                         (which "ls")))
-                      #t))
-                   (add-before 'install 'create-gem
-                     (lambda _
-                       ;; Do not attempt to sign the gem.
-                       (substitute* "Rakefile"
-                         (("spec\\.signing_key = .*")
-                          ""))
-                       (invoke "rake" "gem:create"))))))
+     (list
+      #:test-target "spec:all"
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch
+            (lambda _
+              (substitute* "Rakefile"
+                ;; Don't require rubocop
+                (("require 'rubocop/rake_task'") "")
+                (("RuboCop::RakeTask.new") "")
+                ;; Do not attempt to sign the gem.
+                (("spec\\.signing_key = .*") ""))
+
+              (substitute* "spec/binary_spec.rb"
+                (("/bin/ls")    (which "ls"))
+                (("/bin/cat")   (which "cat"))
+                (("/bin/chmod") (which "chmod"))
+                (("/bin/df")    (which "df"))))))))
+    (native-inputs
+     (list ruby-rspec))
     (synopsis "Extra methods for Ruby's @code{File} class")
     (description
      "The @dfn{ptools} (power tools) library extends Ruby's core @code{File}
@@ -3596,6 +3603,15 @@ two hashes.")
 It is a low-dependency variant of ruby-hydra.")
       (license license:expat))))
 
+;; Pinned variant for use by texlive
+(define-public ruby-hydra-minimal/pinned
+  (hidden-package
+   (package
+     (inherit ruby-hydra-minimal)
+     (arguments
+      (cons* #:ruby ruby-2.7
+             (package-arguments ruby-hydra-minimal))))))
+
 (define-public ruby-hydra
   (package
     (inherit ruby-hydra-minimal)
@@ -3619,28 +3635,28 @@ It is a low-dependency variant of ruby-hydra.")
 (define-public ruby-shindo
   (package
     (name "ruby-shindo")
-    (version "0.3.8")
+    (version "0.3.10")
     (source (origin
               (method url-fetch)
               (uri (rubygems-uri "shindo" version))
               (sha256
                (base32
-                "0s8v1jbz8i0jh92f2fgxb3p51l1azrpkc8nv4mhrqy4vndpvd7wq"))))
+                "0qnqixhi0g8v44v13f3gynpbvvw6xqi1wajsxdjsx5rhzizfsj91"))))
     (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)))))
+     (list
+      #: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") "")))))))
     (propagated-inputs
      (list ruby-formatador))
     (synopsis "Simple depth first Ruby testing")
@@ -4367,17 +4383,17 @@ assertion messages for tests.")
 (define-public ruby-powerpack
   (package
     (name "ruby-powerpack")
-    (version "0.1.2")
+    (version "0.1.3")
     (source
      (origin
        (method url-fetch)
        (uri (rubygems-uri "powerpack" version))
        (sha256
         (base32
-         "1r51d67wd467rpdfl6x43y84vwm8f5ql9l9m85ak1s2sp3nc5hyv"))))
+         "1f71axvlhnxja0k17qqxdi4qh5ck807hqg4i3j6cgy8fgzmyg7rg"))))
     (build-system ruby-build-system)
     (arguments
-     '(#:test-target "spec"))
+     (list #:test-target "spec"))
     (native-inputs
      (list bundler ruby-rspec ruby-yard))
     (synopsis "Useful extensions to core Ruby classes")
@@ -4543,13 +4559,16 @@ temporary files and directories during tests.")
 (define-public ruby-test-unit
   (package
     (name "ruby-test-unit")
-    (version "3.4.4")
+    (version "3.6.0")
     (source (origin
-              (method url-fetch)
-              (uri (rubygems-uri "test-unit" version))
+              (method git-fetch)        ;for tests
+              (uri (git-reference
+                    (url "https://github.com/test-unit/test-unit")
+                    (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "15isy7vhppbfd0032klirj9gxp65ygkzjdwrmm28xpirlcsk6qpd"))))
+                "0w1m432q3y5v9lkak8yyxadak3z17bsp6afni97i4zjdgfz7niz2"))))
     (build-system ruby-build-system)
     (propagated-inputs
      (list ruby-power-assert))
@@ -4691,16 +4710,27 @@ objects.")
 (define-public ruby-mkmf-lite
   (package
     (name "ruby-mkmf-lite")
-    (version "0.3.2")
+    (version "0.5.2")
     (source (origin
               (method url-fetch)
               (uri (rubygems-uri "mkmf-lite" version))
               (sha256
                (base32
-                "0br9k6zijj1zc25n8p7f2j1mwl58nfgdknf3q13h9k156jvrir06"))))
+                "0rqa5kzswhqkj7r9mqrqz4mjd2vdxsblgybb52gj3mwr1gwvl4c5"))))
     (build-system ruby-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          ;; Avoid rubocop dependency
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (invoke "rspec")))))))
     (propagated-inputs
      (list ruby-ptools))
+    (native-inputs
+     (list ruby-rspec))
     (synopsis "Lightweight alternative to @code{mkmf}")
     (description
      "@code{mkmf-lite} is a light version of Ruby's @code{mkmf.rb} designed
@@ -5258,6 +5288,36 @@ client protocol.")
     (home-page "https://github.com/net-ssh/net-scp")
     (license license:expat)))
 
+(define-public ruby-minima
+  (package
+    (name "ruby-minima")
+    (version "2.5.1")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "minima" version))
+              (sha256
+               (base32
+                "1gk7jmriiswda1ykjzpsw9cpiya4m9n0yrh0h6xnrc8zcfy543jj"))))
+    (arguments
+     (list #:phases #~(modify-phases %standard-phases
+                        (replace 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (invoke "jekyll" "build"))
+                            ;; Without the following, an attempt to remove
+                            ;; minima-<version>.gem is made during installation,
+                            ;; which will fail.
+                            (delete-file #$(string-append "_site/minima-"
+                                                          version ".gem")))))))
+    (build-system ruby-build-system)
+    (propagated-inputs (list jekyll ruby-jekyll-feed ruby-jekyll-seo-tag))
+    (synopsis "Beautiful, minimal theme for Jekyll")
+    (description
+     "Minima is a one-size-fits-all Jekyll theme for writers.  It's Jekyll's
+default (and first) theme.  It's what you get when you run @code{jekyll new}.")
+    (home-page "https://github.com/jekyll/minima")
+    (license license:expat)))
+
 (define-public ruby-minitest
   (package
     (name "ruby-minitest")
@@ -5923,7 +5983,7 @@ and manipulate Git repositories by wrapping system calls to the git binary.")
 (define-public ruby-hocon
   (package
     (name "ruby-hocon")
-    (version "1.3.1")
+    (version "1.4.0")
     (home-page "https://github.com/puppetlabs/ruby-hocon")
     (source (origin
               (method git-fetch)
@@ -5931,16 +5991,17 @@ and manipulate Git repositories by wrapping system calls to the git binary.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "172hh2zr0n9nnszv0qvlgwszgkrq84yahrg053m68asy79zpmbqr"))))
+                "04wgv0pwrghawnl6qp346z59fvp9v37jymq8p0lsrzxa6nvrykmk"))))
     (build-system ruby-build-system)
     (arguments
-     '(#:phases (modify-phases %standard-phases
-                  (replace 'check
-                    (lambda* (#:key tests? #:allow-other-keys)
-                      (if tests?
-                          (invoke "rspec")
-                          (format #t "test suite not run~%"))
-                      #t)))))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (if tests?
+                  (invoke "rspec")
+                  (format #t "test suite not run~%")))))))
     (native-inputs
      (list bundler ruby-rspec))
     (synopsis "HOCON config library")
@@ -6689,13 +6750,13 @@ invocation, and source and documentation browsing.")
 (define-public ruby-pry-doc
   (package
     (name "ruby-pry-doc")
-    (version "1.3.0")
+    (version "1.4.0")
     (source (origin
               (method url-fetch)
               (uri (rubygems-uri "pry-doc" version))
               (sha256
                (base32
-                "0wyvql6pb6m8jl8bsamabxhxhd86bnqblspaxzz05sl0fm2ynj0r"))))
+                "1pp43n69p6bjvc640wgcz295w1q2v9awcqgbwcqn082dbvq5xvnx"))))
     (build-system ruby-build-system)
     (propagated-inputs (list ruby-pry ruby-yard))
     (native-inputs (list ruby-latest-ruby ruby-rspec ruby-rake)) ;for tests
@@ -6971,7 +7032,7 @@ utilities for Ruby.")
 (define-public ruby-tzinfo
   (package
     (name "ruby-tzinfo")
-    (version "2.0.4")
+    (version "2.0.6")
     (source
      (origin
        (method git-fetch)
@@ -6982,31 +7043,29 @@ utilities for Ruby.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0jaq1givdaz5jxz47xngyj3j315n872rk97mnpm5njwm48wy45yh"))))
+         "1n1gzjqwwnx209h8d054miva0y7x17db2ahy7jav5r25ibhh7rgm"))))
     (build-system ruby-build-system)
     (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'skip-safe-tests
-           (lambda _
-             (substitute* "test/test_utils.rb"
-               (("def safe_test\\(options = \\{\\}\\)")
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'skip-safe-tests
+            (lambda _
+              (substitute* "test/test_utils.rb"
+                (("def safe_test\\(options = \\{\\}\\)")
                  "def safe_test(options = {})
-      skip('The Guix build environment has an unsafe load path')"))
-             #t))
-         (add-before 'check 'pre-check
-           (lambda _
-             (setenv "HOME" (getcwd))
-             (substitute* "Gemfile"
-               (("simplecov.*") "simplecov'\n"))
-             #t))
-         (replace 'check
-           (lambda* (#:key tests? test-target #:allow-other-keys)
-             (when tests?
-               (invoke "bundler" "exec" "rake" test-target))
-             #t)))))
+      skip('The Guix build environment has an unsafe load path')"))))
+          (add-before 'check 'pre-check
+            (lambda _
+              (setenv "HOME" (getcwd))
+              (substitute* "Gemfile"
+                (("simplecov.*") "simplecov'\n"))))
+          (replace 'check
+            (lambda* (#:key tests? test-target #:allow-other-keys)
+              (when tests?
+                (invoke "bundler" "exec" "rake" test-target)))))))
     (propagated-inputs
-     `(("ruby-concurrent-ruby" ,ruby-concurrent)))
+     (list ruby-concurrent))
     (native-inputs
      (list ruby-simplecov))
     (synopsis "Time zone library for Ruby")
@@ -7565,7 +7624,7 @@ you about the changes.")
 (define-public ruby-loofah
   (package
     (name "ruby-loofah")
-    (version "2.13.0")
+    (version "2.21.3")
     (home-page "https://github.com/flavorjones/loofah")
     (source
      (origin
@@ -7576,7 +7635,7 @@ you about the changes.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0rmsm7mckiq0gslfqdl02yvn500n42v84gq28qjqn4yq9jwfs9ga"))))
+         "1lh7cf56y1b0h090ahphvz7grq581phsamdl0rq59y0q9bqwrhg0"))))
     (build-system ruby-build-system)
     (native-inputs
      (list ruby-hoe ruby-hoe-markdown ruby-rr))
@@ -8430,7 +8489,7 @@ better performance than @code{Regexp} and @code{String} methods from the
 (define-public ruby-range-compressor
   (package
     (name "ruby-range-compressor")
-    (version "1.0.0")
+    (version "1.2.0")
     (source
       (origin
         (method git-fetch)
@@ -8440,17 +8499,18 @@ better performance than @code{Regexp} and @code{String} methods from the
         (file-name (git-file-name name version))
         (sha256
          (base32
-          "0y8slri2msyyg2szgwgriqd6qw9hkxycssdrcl5lk2dbcq5zvn54"))))
+          "1zmc44si5ac2h7r1x4f1j8z5yr6wz528c7dssh0g70fmczs3pfga"))))
     (build-system ruby-build-system)
     (arguments
-     `(#:test-target "spec"
-       #:phases (modify-phases %standard-phases
-                  (add-after 'extract-gemspec 'strip-version-requirements
-                    (lambda _
-                      (substitute* "range_compressor.gemspec"
-                        (("(.*add_.*dependency '[_A-Za-z0-9-]+').*" _ stripped)
-                         (string-append stripped "\n")))
-                      #t)))))
+     (list
+      #:test-target "spec"
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'extract-gemspec 'strip-version-requirements
+            (lambda _
+              (substitute* "range_compressor.gemspec"
+                (("(.*add_.*dependency '[_A-Za-z0-9-]+').*" _ stripped)
+                 (string-append stripped "\n"))))))))
     (native-inputs
      (list ruby-rspec))
     (synopsis "Simple arrays of objects to arrays of ranges compressor")
@@ -9162,7 +9222,7 @@ during shutdown.")
 (define-public ruby-memory-profiler
   (package
     (name "ruby-memory-profiler")
-    (version "1.0.0")
+    (version "1.0.1")
     (source
       (origin
         (method git-fetch)
@@ -9172,7 +9232,7 @@ during shutdown.")
         (file-name (git-file-name name version))
         (sha256
          (base32
-          "07yqv11q68xg2fqkrhs6ysngryk8b9zq6qzh24rgx9xqv6qfnj0w"))))
+          "1z1x0rymfv45gh1y3s46w5pga5y8cvgn228jiwlnhc8hin3zig84"))))
     (build-system ruby-build-system)
     (synopsis "Memory profiling routines for Ruby")
     (description
@@ -9802,25 +9862,25 @@ features such as filtering and fine grained logging.")
 (define-public ruby-yajl-ruby
   (package
     (name "ruby-yajl-ruby")
-    (version "1.4.1")
+    (version "1.4.3")
     (source
      (origin
        (method url-fetch)
        (uri (rubygems-uri "yajl-ruby" version))
        (sha256
         (base32
-         "16v0w5749qjp13xhjgr2gcsvjv6mf35br7iqwycix1n2h7kfcckf"))))
+         "1lni4jbyrlph7sz8y49q84pb0sbj82lgwvnjnsiv01xf26f4v5wc"))))
     (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)))))
+     (list
+      #: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'")))))))
      (native-inputs
       (list ruby-rake-compiler ruby-rspec))
      (synopsis "Streaming JSON parsing and encoding library for Ruby")
@@ -15056,13 +15116,13 @@ floating-point numbers or complex numbers as arguments.")
 (define-public ruby-sucker-punch
   (package
     (name "ruby-sucker-punch")
-    (version "3.0.1")
+    (version "3.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (rubygems-uri "sucker_punch" version))
        (sha256
-        (base32 "0yams24wndpj7dzdysvm4z1w6ggg4xvj4snxba66prahhxvik4xl"))))
+        (base32 "12by9vx8q6l4i56q62k1s1ymaxbpg4rny5zngj5i5h09kyh2yp4p"))))
     (build-system ruby-build-system)
     (arguments
      `(#:phases