summaryrefslogtreecommitdiff
path: root/gnu/packages/ruby.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/ruby.scm')
-rw-r--r--gnu/packages/ruby.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