aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/ruby.scm
diff options
context:
space:
mode:
authorLiliana Marie Prikler <liliana.prikler@gmail.com>2023-07-14 07:46:15 +0200
committerLiliana Marie Prikler <liliana.prikler@gmail.com>2023-07-14 07:46:15 +0200
commitd67507cacf934b970f67567bced4e044c3ca9753 (patch)
treeb1c3160946ceaf74a9a24c7360d28036230210e1 /gnu/packages/ruby.scm
parent3b3d9a13dd2bd67f34c890047680a1ce6e3af28e (diff)
parentdd4c1992103a65b8fbdc80fe07a9fe9be822769a (diff)
downloadguix-d67507cacf934b970f67567bced4e044c3ca9753.tar
guix-d67507cacf934b970f67567bced4e044c3ca9753.tar.gz
Merge branch 'master' into gnome-team
Diffstat (limited to 'gnu/packages/ruby.scm')
-rw-r--r--gnu/packages/ruby.scm2382
1 files changed, 1522 insertions, 860 deletions
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index f60a0ec537..45b102daa3 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -262,7 +262,7 @@ a focus on simplicity and productivity.")
(modify-inputs (package-inputs ruby-3.1)
(prepend libyaml)))))
-(define-public ruby ruby-2.7)
+(define-public ruby ruby-3.1)
(define-public mruby
(package
@@ -385,32 +385,18 @@ a menu system for providing multiple options to the user.")
(define-public ruby-hoe
(package
(name "ruby-hoe")
- (version "3.21.0")
+ (version "4.0.4")
(source (origin
(method url-fetch)
(uri (rubygems-uri "hoe" version))
(sha256
(base32
- "0qid0n56mgsjvq5ksxajv0gb92akky8imwgvw22ajms5g4fd6nf4"))))
+ "0r2hy7mq9jd9hsbvskd9sxfbagc92adnn7abzxbda05sscbf46hn"))))
(build-system ruby-build-system)
(arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; One of the tests fails if the SOURCE_DATE_EPOCH environment
- ;; variable is set, so unset it for the duration of the tests.
- ;;
- ;; TestHoe#test_possibly_better
- ;; [/tmp/guix-build-ruby-hoe-3.20.0.drv-0/gem/test/test_hoe.rb:250]:
- ;; Expected: 2019-11-12 00:00:00 UTC
- ;; Actual: 1970-01-01 00:00:00 UTC
- (add-before 'check 'unset-SOURCE-DATE-EPOCH
- (lambda _
- (unsetenv "SOURCE_DATE_EPOCH")
- #t))
- (add-after 'check 'set-SOURCE-DATE-EPOCH-again
- (lambda _
- (setenv "SOURCE_DATE_EPOCH" "1")
- #t)))))
+ (list
+ ;; Circular dependency with minitest
+ #:tests? #f))
(synopsis "Ruby project management helper")
(description
"Hoe is a rake/rubygems helper for project Rakefiles. It helps manage,
@@ -421,6 +407,17 @@ announcement.")
(home-page "https://www.zenspider.com/projects/hoe.html")
(license license:expat)))
+(define-public ruby-hoe-3
+ (package
+ (inherit ruby-hoe)
+ (version "3.26.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "hoe" version))
+ (sha256
+ (base32
+ "02vmphnfzna1dbb1l5nczcvlvvsg4flr26bdhmvdyf447bpswa63"))))))
+
(define-public ruby-rake-compiler
(package
(name "ruby-rake-compiler")
@@ -494,13 +491,13 @@ hosts by wrapping the @file{rsync} binary.")
(define-public ruby-i18n
(package
(name "ruby-i18n")
- (version "1.7.0")
+ (version "1.13.0")
(source (origin
(method url-fetch)
(uri (rubygems-uri "i18n" version))
(sha256
(base32
- "0hmypvx9iyc0b4hski7aic2xzm09cg1c7q1qlpnk3k8s5acxzyhl"))))
+ "1yk33slipi3i1kydzrrchbi7cgisaxym6pgwlzx7ir8vjk6wl90x"))))
(build-system ruby-build-system)
(arguments
'(#:tests? #f)) ; no tests
@@ -563,6 +560,17 @@ Eval Print Loop).")
(home-page "https://github.com/ruby/irb")
(license license:bsd-2)))
+(define-public ruby-irb-1.1.1
+ (package
+ (inherit ruby-irb)
+ (version "1.1.1")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "irb" version))
+ (sha256
+ (base32
+ "0h605w798s2bg9wg681ynvvzgdz1yy69gh387bl0khw9ll7wkn8v"))))))
+
(define-public ruby-iruby
(package
(name "ruby-iruby")
@@ -670,6 +678,15 @@ groups.")
(sha256
(base32
"0psjy5kdlz3ph39br0m01w65i1ikagnqlg39f8p65jh5q7dz8hwc"))))
+ (arguments
+ (cons*
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch
+ (lambda _
+ (substitute* "lib/rspec/core/ruby_project.rb"
+ (("File\\.exists\\?") "File.exist?")))))
+ (package-arguments ruby-rspec-core)))
(propagated-inputs `())))
(define-public ruby-date
@@ -768,6 +785,27 @@ re-sourced, but they will be rendered in a single-line format.")
(home-page "https://github.com/rspec-given/sorcerer")
(license license:expat)))
+(define-public ruby-sorted-set
+ (package
+ (name "ruby-sorted-set")
+ (version "1.0.3")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "sorted_set" version))
+ (sha256
+ (base32
+ "0brpwv68d7m9qbf5js4bg8bmg4v7h4ghz312jv9cnnccdvp8nasg"))))
+ (build-system ruby-build-system)
+ (propagated-inputs
+ (list ruby-rbtree ruby-set))
+ (synopsis
+ "Ruby Set variant whose elements are sorted in ascending order")
+ (description
+ "This package implements a variant of Set whose elements are sorted in
+ascending order")
+ (home-page "https://github.com/knu/sorted_set")
+ (license license:bsd-2)))
+
(define-public ruby-given-core
(package
(name "ruby-given-core")
@@ -934,7 +972,7 @@ support for stubbing and mocking.")
(define-public ruby-rspec-block-is-expected
(package
(name "ruby-rspec-block-is-expected")
- (version "1.0.2")
+ (version "1.0.5")
(source (origin
(method git-fetch) ;for tests
(uri (git-reference
@@ -943,7 +981,7 @@ support for stubbing and mocking.")
(file-name (git-file-name name version))
(sha256
(base32
- "1w8mj00k8am24yw7lbhg616m111p7h7bbfxaw7np4i7wnlwzm8fk"))))
+ "1zi5z12lkw3fiwgr7g61845wj73asr2vzw4zsjv45klnnfspwass"))))
(build-system ruby-build-system)
(arguments
(list #:phases #~(modify-phases %standard-phases
@@ -954,7 +992,12 @@ support for stubbing and mocking.")
(("RuboCop::RakeTask.new") ""))
;; Contains extraneous requirements not actually
;; needed for the test suite.
- (delete-file "Gemfile"))))))
+ (delete-file "Gemfile")))
+ (add-before 'build 'drop-signing-key-requirement
+ (lambda _
+ (substitute* "rspec-block_is_expected.gemspec"
+ (("spec.signing_key =.*")
+ "spec.signing_key = nil")))))))
(native-inputs (list ruby-rspec-pending-for ruby-rspec-expectations))
(propagated-inputs (list ruby-rspec-core))
(synopsis "Simplify testing of blocks in RSpec")
@@ -1174,18 +1217,28 @@ specified in a \"Gemfile\", as well as their dependencies.")
"045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr"))))
(build-system ruby-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'do-not-use-rvm
- (lambda _
- (substitute* "rakelib/tags.rake"
- (("RVM_GEMDIR = .*") "RVM_GEMDIR = 'no-rvm-please'\n"))
- #t)))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch
+ (lambda _
+ (substitute* "rakelib/tags.rake"
+ (("File\\.exists\\?") "File.exist?"))
+
+ ;; TODO This test is broken
+ ;; https://github.com/tenderlove/builder/issues/13
+ (substitute* "test/test_blankslate.rb"
+ (("test_late_included_module_in_kernel_is_ok")
+ "test_late_included_module_in_kernel_is_ok
+ skip(\"test expected to fail\")
+"))
+ (substitute* "rakelib/tags.rake"
+ (("RVM_GEMDIR = .*") "RVM_GEMDIR = 'no-rvm-please'\n")))))))
(synopsis "Ruby library to create structured data")
(description "Builder provides a number of builder objects that make it
easy to create structured data. Currently the following builder objects are
supported: XML Markup and XML Events.")
- (home-page "https://github.com/jimweirich/builder")
+ (home-page "https://github.com/tenderlove/builder")
(license license:expat)))
(define-public ruby-bump
@@ -1296,9 +1349,27 @@ script.")
(base32
"0kvd2nsxffbza61d3q4j94wrbnbv50r1zy3a7q26f6k706fw1f19"))))
(build-system ruby-build-system)
- ;; FIXME: There are no unit tests. The tests are demonstrations of the
- ;; "saikuro" tool.
- (arguments `(#:tests? #f))
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-module-resolution
+ (lambda _
+ (substitute* "lib/saikuro.rb"
+ ;; irb 1.2.0 or later doesn't have RubyToken
+ (("require 'irb/ruby-lex'")
+ "require 'rubygems'\ngem 'irb', '=1.1.1'\nrequire 'irb/ruby-lex'"))))
+ (delete 'check)
+ (add-after 'install 'check
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (saikuro (string-append out "/bin/saikuro")))
+ (setenv "GEM_PATH" (string-append
+ (getenv "GEM_PATH") ":"
+ #$output "/lib/ruby/vendor_ruby"))
+ (invoke saikuro "--cyclo" "--token" "--input_directory" "tests")))))))
+ (propagated-inputs (list ruby-irb-1.1.1
+ ruby-e2mmap)) ;required by rubygems
(synopsis "Cyclomatic complexity analyzer")
(description "Saikuro is a Ruby cyclomatic complexity analyzer. When
given Ruby source code Saikuro will generate a report listing the cyclomatic
@@ -1314,29 +1385,30 @@ line of code.")
(define-public ruby-awesome-print
(package
(name "ruby-awesome-print")
- (version "1.8.0")
+ (version "1.9.2")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "awesome_print" version))
(sha256
(base32
- "14arh1ixfsd6j5md0agyzvksm5svfkvchb90fp32nn7y3avcmc2h"))))
+ "0vkq6c8y2jvaw03ynds5vjzl1v9wg608cimkd3bidzxc0jvk56z9"))))
(build-system ruby-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
- ;; Remove failing test.
- (for-each delete-file
- '("spec/ext/nokogiri_spec.rb"
- "spec/colors_spec.rb"
- "spec/formats_spec.rb"
- "spec/methods_spec.rb"
- "spec/misc_spec.rb"
- "spec/objects_spec.rb"))
- (invoke "rspec" "-c" "spec"))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ ;; Remove failing test.
+ (for-each delete-file
+ '("spec/ext/nokogiri_spec.rb"
+ "spec/colors_spec.rb"
+ "spec/formats_spec.rb"
+ "spec/methods_spec.rb"
+ "spec/misc_spec.rb"
+ "spec/objects_spec.rb"))
+ (invoke "rspec" "-c" "spec"))))))
(native-inputs
(list ruby-nokogiri ruby-rspec ruby-simplecov))
(synopsis "Pretty print Ruby objects to visualize their structure")
@@ -1526,6 +1598,16 @@ converting AsciiDoc content to HTML5, DocBook 5, PDF, and other formats.")
(home-page "https://asciidoctor.org")
(license license:expat)))
+(define-public ruby-asciidoctor/minimal
+ (hidden-package
+ (package
+ (inherit ruby-asciidoctor)
+ (arguments
+ (ensure-keyword-arguments
+ (package-arguments ruby-asciidoctor)
+ (list #:tests? #f)))
+ (native-inputs '()))))
+
(define-public ruby-asciidoctor-multipage
(package
(name "ruby-asciidoctor-multipage")
@@ -1876,6 +1958,37 @@ enforcing & linting tool.")
ruby-rubocop-ast
ruby-rubocop-capybara))))
+(define-public ruby-rubocop-packaging
+ (package
+ (name "ruby-rubocop-packaging")
+ (version "0.5.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/utkarsh2102/rubocop-packaging")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "08jsfp42z0aj32002z2hz8vkmza0jvnrqk9rk2v0xb8qdxkgbx3l"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list #:test-target "spec"))
+ (propagated-inputs
+ (list ruby-rubocop))
+ (native-inputs
+ (list ruby-rspec
+ ruby-yard
+ ruby-bump))
+ (synopsis
+ "Collection of RuboCop checks for downstream compatibility issues")
+ (description
+ "This package provides a collection of RuboCop cops to check for
+downstream compatibility issues in the Ruby code.")
+ (home-page "https://github.com/utkarsh2102/rubocop-packaging")
+ (license license:expat)))
+
(define-public ruby-rubocop-performance
(package
(name "ruby-rubocop-performance")
@@ -2080,7 +2193,7 @@ to save time in the following ways:
(define-public ruby-chunky-png
(package
(name "ruby-chunky-png")
- (version "1.3.14")
+ (version "1.4.0")
(source
(origin
(method git-fetch)
@@ -2089,17 +2202,17 @@ to save time in the following ways:
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1m7y11ix38h5a2pj5v81qdmvqh980ql9hp62hk2dxwkwsa4nh22h"))))
+ (base32 "05qwj72dy2fcy0n2jnf3bfriybfj36m7s6pv9xash6295dbcp901"))))
(build-system ruby-build-system)
(arguments
- `(#:test-target "spec"
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'disable-bundler
- (lambda _
- (substitute* (find-files "." "\\.rb$")
- (("require.*bundler/setup.*") ""))
- #t)))))
+ (list
+ #:test-target "spec"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'disable-bundler
+ (lambda _
+ (substitute* (find-files "." "\\.rb$")
+ (("require.*bundler/setup.*") "")))))))
(native-inputs
(list bundler ruby-rspec ruby-standard ruby-yard))
(synopsis "Ruby library to handle PNG images")
@@ -2137,14 +2250,14 @@ or a background processing library.")
(define-public ruby-text-hyphen
(package
(name "ruby-text-hyphen")
- (version "1.4.1")
+ (version "1.5.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "text-hyphen" version))
(sha256
(base32
- "1gj4awvs9ryf960m0iawg43jyjmfwcqgfwrbcfp890a57b9ag7q1"))))
+ "01js0wxz84cc5hzxgqbcqnsa0y6crhdi6plmgkzyfm55p0rlajn4"))))
(build-system ruby-build-system)
(native-inputs
(list ruby-hoe))
@@ -2402,27 +2515,27 @@ features:
(define-public ruby-contracts
(package
(name "ruby-contracts")
- (version "0.16.0")
+ (version "0.17")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "contracts" version))
(sha256
(base32
- "119f5p1n6r5svbx8h09za6a4vrsnj5i1pzr9cqdn9hj3wrxvyl3a"))))
+ "0gfybfsb6kqxvvcrv1q7bfjaxmq73pf3vqy4bbzarkbajil05ii5"))))
(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.*") "")))))))
(native-inputs
(list ruby-rspec))
(synopsis "Method contracts for Ruby")
@@ -3000,14 +3113,14 @@ the GNOME Libxml2 XML toolkit.")
(define-public ruby-lino
(package
(name "ruby-lino")
- (version "1.1.0")
+ (version "3.1.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "lino" version))
(sha256
(base32
- "11d29g0fk372b9fcpyr0k6hxm2b4j4igpysmi542hgbbgqgp9cd3"))))
+ "1zq9dza040fgjvr9imh7z2lgxrcyc5ac100rqimsnsf9bpfz3fsm"))))
(build-system ruby-build-system)
(arguments
'(#:tests? #f)) ; No included tests
@@ -3021,6 +3134,47 @@ error streams.")
(home-page "https://github.com/tobyclemson/lino")
(license license:expat)))
+(define-public ruby-x25519
+ (package
+ (name "ruby-x25519")
+ (version "1.0.10")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/RubyCrypto/x25519")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1g0311ly32f6hfn4q5fvkbjbl2bhv1l9fx6s0kglxfsrwq51926y"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list #:test-target "spec"
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'remove-unnecessary-dependencies
+ (lambda _
+ (substitute* "Gemfile"
+ ((".*rubocop.*")
+ ""))
+ (substitute* "Rakefile"
+ (("require \"rubocop/rake_task\"")
+ "")
+ (("RuboCop::RakeTask.new")
+ ""))))
+ (add-before 'build 'compile
+ (lambda _
+ (invoke "rake" "compile"))))))
+ (native-inputs (list ruby-rake-compiler ruby-rspec))
+ (synopsis "Cryptography library for Ruby providing the X25519
+Diffie-Hellman function")
+ (description
+ "The x25519 gem is an efficient public key cryptography library for
+Ruby providing key exchange/agreement via the X25519 (as known as
+Curve25519) Elliptic Curve Diffie-Hellman function as described in
+@url{https://www.ietf.org/rfc/rfc7748.txt, RFC 7748}.")
+ (home-page "https://github.com/RubyCrypto/x25519")
+ (license license:bsd-3)))
+
(define-public ruby-xml-simple
(package
(name "ruby-xml-simple")
@@ -3067,7 +3221,7 @@ generating XPath expressions.")
(define-public ruby-thor
(package
(name "ruby-thor")
- (version "1.2.1")
+ (version "1.2.2")
(source (origin
;; Pull from git because the gem has no tests.
(method git-fetch)
@@ -3077,7 +3231,7 @@ generating XPath expressions.")
(file-name (git-file-name name version))
(sha256
(base32
- "1vjm628ks5kw8q6dskh38dqyz2j8c3n694wsqkj4jb4jrn6rkfzx"))))
+ "1k3z2mlhaig5ycapjxwybb19z7ca0q1876i6csfmv2j0hf1hnc0z"))))
(build-system ruby-build-system)
(arguments
(list
@@ -3137,57 +3291,89 @@ same log file.")
(define-public ruby-rbnacl
(package
(name "ruby-rbnacl")
- (version "6.0.1")
- (source
- (origin
- (method url-fetch)
- (uri (rubygems-uri "rbnacl" version))
- (sha256
- (base32
- "0ajxy5kj2jw09wdsla3jmha8w07vj5l14288xr9djpl327g3lzhn"))))
+ (version "7.1.1")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "rbnacl" version))
+ (sha256
+ (base32
+ "0y8yzianlkc9w6sbqy8iy8l0yym0y6x7p5rjflkfixq76fqmhvzk"))))
(build-system ruby-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'remove-unnecessary-dependencies
- (lambda _
- ;; Coveralls relates to a network service, and Rubocop to code
- ;; linting and both are unnecessary to run the tests
- (substitute* "Gemfile"
- ((".*rubocop.*") "\n")
- ((".*guard-rspec.*") "\n")
- ((".*coveralls.*") "\n"))
- (substitute* "spec/spec_helper.rb"
- (("require \"coveralls\"") "")
- (("Coveralls.wear!") ""))
- #t))
- (add-after 'unpack 'use-libsodium-from-store
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* '("lib/rbnacl/init.rb"
- "lib/rbnacl/sodium.rb")
- (("ffi_lib \\[.+\\]")
- (string-append "ffi_lib [\""
- (assoc-ref inputs "libsodium") "/lib/libsodium.so"
- "\"]")))
- #t))
- ;; Run Rspec directly to avoid the Rubocop dependency in the Rakefile
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "rspec"))
- #t)))))
- (propagated-inputs
- (list ruby-ffi))
- (inputs
- (list libsodium))
- (native-inputs
- (list bundler ruby-rspec))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'remove-unnecessary-dependencies
+ (lambda _
+ ;; Coveralls relates to a network service, and Rubocop to code
+ ;; linting and both are unnecessary to run the tests
+ (substitute* "Gemfile"
+ ((".*rubocop.*")
+ "\n")
+ ((".*guard-rspec.*")
+ "\n")
+ ((".*coveralls.*")
+ "\n"))
+ (substitute* "spec/spec_helper.rb"
+ (("require \"coveralls\"")
+ "")
+ (("Coveralls.wear!")
+ ""))))
+ (add-after 'unpack 'use-libsodium-from-store
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* '("lib/rbnacl/init.rb"
+ "lib/rbnacl/sodium.rb")
+ (("ffi_lib \\[.+\\]")
+ (string-append "ffi_lib [\""
+ (assoc-ref inputs "libsodium")
+ "/lib/libsodium.so" "\"]")))))
+ ;; Run Rspec directly to avoid the Rubocop dependency in the
+ ;; Rakefile
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "rspec")))))))
+ (propagated-inputs (list ruby-ffi))
+ (inputs (list libsodium))
+ (native-inputs (list bundler ruby-rspec))
(synopsis "Ruby FFI binding to libsodium")
(description
"This package provides Ruby FFI bindings to the Networking and
Cryptography (NaCl) library, also known as libsodium. This provides a
high-level toolkit for building cryptographic systems and protocols.")
- (home-page "https://github.com/crypto-rb/rbnacl")
+ (home-page "https://github.com/RubyCrypto/rbnacl")
+ (license license:expat)))
+
+(define-public ruby-rbtree
+ (package
+ (name "ruby-rbtree")
+ (version "0.4.6")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "rbtree" version))
+ (sha256
+ (base32
+ "1z0h1x7fpkzxamnvbw1nry64qd6n0nqkwprfair29z94kd3a9vhl"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'extconf
+ (lambda _
+ (invoke "ruby" "extconf.rb")
+ (invoke "make" "install" (string-append "prefix=" #$output))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "ruby" "-I." "test.rb")))))))
+ (synopsis "Ruby implementation of a sorted associative collection")
+ (description
+ "This package provides a RBTree is a sorted associative collection that
+is implemented with a Red-Black Tree. It maps keys to values like a Hash, but
+maintains its elements in ascending key order. The interface is the almost
+identical to that of Hash.")
+ (home-page "http://rbtree.rubyforge.org/")
(license license:expat)))
(define-public ruby-hkdf
@@ -3513,27 +3699,28 @@ engine.")
"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)))))
+ (list
+ ;; Only supports Ruby 2 currently
+ #:ruby ruby-2.7
+ #: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") ""))))
+ ;; No Rakefile is included, so run rspec directly.
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "ruby" (which "rspec"))))))))
(propagated-inputs
(list ruby-concurrent))
(native-inputs
@@ -3618,18 +3805,18 @@ It is a low-dependency variant of ruby-hydra.")
(inherit ruby-hydra-minimal)
(name "ruby-hydra")
(arguments
- '(#:phases (modify-phases %standard-phases
- (add-after 'unpack 'make-files-writable
- (lambda _
- (for-each make-file-writable (find-files "."))
- #t))
- (replace 'check
- (lambda _
- (invoke "rspec"))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'make-files-writable
+ (lambda _
+ (for-each make-file-writable (find-files "."))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "rspec")))))))
(native-inputs
(list ruby-rspec))
- (propagated-inputs
- (list ruby-byebug))
(description
"ruby-hydra is a Ruby library for working with hyphenation patterns.")))
@@ -3678,8 +3865,6 @@ It is a low-dependency variant of ruby-hydra.")
(build-system ruby-build-system)
;; Tests need Internet access.
(arguments `(#:tests? #f))
- (native-inputs
- (list ruby-rspec ruby-yard))
(synopsis "Rake tasks for managing and releasing Ruby Gems")
(description "Rubygems-task provides Rake tasks for managing and releasing
Ruby Gems.")
@@ -4083,14 +4268,26 @@ for breakage.")
(define-public ruby-connection-pool
(package
(name "ruby-connection-pool")
- (version "2.2.2")
+ (version "2.4.1")
(source (origin
- (method url-fetch)
- (uri (rubygems-uri "connection_pool" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mperham/connection_pool")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0lflx29mlznf1hn0nihkgllzbj8xp5qasn8j7h838465pi399k68"))))
+ "1iijshb1n9xl5knvpzzx0vqlw7v7mskiw1cpfj1cmdmssavyhsx5"))))
(build-system ruby-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch
+ (lambda _
+ (substitute* "Rakefile"
+ (("require \"standard/rake\"") "")
+ ((":\"standard:fix\",") "")))))))
(native-inputs
(list bundler))
(synopsis "Generic connection pool for Ruby")
@@ -4102,7 +4299,7 @@ interface for Ruby programs.")
(define-public ruby-fast-gettext
(package
(name "ruby-fast-gettext")
- (version "2.0.3")
+ (version "2.3.0")
(home-page "https://github.com/grosser/fast_gettext")
(source (origin
(method git-fetch)
@@ -4111,34 +4308,16 @@ interface for Ruby programs.")
(file-name (git-file-name name version))
(sha256
(base32
- "1dg14apq5sfjshhcq0idphhs7aq9ikzswhqmn689p1h76mxqr1v6"))))
+ "0ba1wv96qarvvh19s8m1cgd26a9jgil4wl8nwgv4sl9fg5sqgksm"))))
(build-system ruby-build-system)
(arguments
- '(#:test-target "spec"
- #:phases (modify-phases %standard-phases
- (add-before 'check 'remove-version-constraints
- (lambda _
- (delete-file "Gemfile.lock")
- #t))
- (add-before 'check 'remove-activerecord-test
- (lambda _
- ;; FIXME: This test fails because ActiveRecord depends on
- ;; a different version of ruby-sqlite than the currently
- ;; available one.
- (delete-file
- "spec/fast_gettext/translation_repository/db_spec.rb")
- #t))
- (add-before 'check 'disable-i18n-test
- (lambda _
- ;; XXX: This test checks i18n intricasies with Rails 3 and
- ;; automatically disables itself for Rails 4.0, but does
- ;; not know about newer versions as it has not been updated
- ;; since 2014. Disable for later versions of Rails too.
- (substitute* "spec/fast_gettext/vendor/string_spec.rb"
- (((string-append "ActiveRecord::VERSION::MAJOR == 4 and "
- "ActiveRecord::VERSION::MINOR == 0"))
- "ActiveRecord::VERSION::MAJOR >= 4"))
- #t)))))
+ (list
+ #:test-target "spec"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'remove-version-constraints
+ (lambda _
+ (delete-file "Gemfile.lock"))))))
(native-inputs
(list ;; For tests.
ruby-activerecord
@@ -4147,6 +4326,7 @@ interface for Ruby programs.")
ruby-forking-test-runner
ruby-i18n
ruby-rubocop
+ ruby-rubocop-packaging
ruby-rspec
ruby-single-cov
ruby-sqlite3
@@ -4207,12 +4387,13 @@ fiber, and defaults to a shared thread-local state.")
"0pd8gqgy67rp1baq5r7himl0r9jzv5kqlhdmqh8wngynv548w2ai"))))
(build-system ruby-build-system)
(arguments
- (list #:phases
+ (list #:ruby ruby-2.7
+ #:phases
#~(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
- (invoke "rspec")))))))
+ (invoke "ruby" (which "rspec"))))))))
(native-inputs (list ruby-rspec ruby-simplecov))
(synopsis "Fuzzing, randomization, and stress testing library")
(description "Flores is a fuzzing, randomization, and stress library to
@@ -4223,16 +4404,18 @@ help tests uncover more bugs.")
(define-public ruby-net-http-persistent
(package
(name "ruby-net-http-persistent")
- (version "3.0.0")
+ (version "4.0.2")
(source (origin
(method url-fetch)
(uri (rubygems-uri "net-http-persistent" version))
(sha256
(base32
- "156rv95bgxfz6qw5y1r7c7bswr77918hygl8dyl14qzbqc5vyp18"))))
+ "0i1as2lgnw7b4jid0gw5glv5hnxz36nmfsbr9rmxbcap72ijgy03"))))
(build-system ruby-build-system)
(native-inputs
- (list ruby-connection-pool ruby-hoe))
+ (list ruby-connection-pool
+ ruby-hoe
+ ruby-rake-manifest))
(synopsis "Persistent HTTP connection manager")
(description "Net::HTTP::Persistent manages persistent HTTP connections
using Net::HTTP, supporting reconnection and retry according to RFC 2616.")
@@ -4421,7 +4604,7 @@ including @code{Array}, @code{Enumerable}, @code{Hash}, @code{Numeric}, and
;; dependency cycle we disable tests.
(arguments `(#:tests? #f))
(native-inputs
- (list bundler ruby-yard))
+ (list bundler ruby-yard/minimal))
(synopsis "Ruby library providing basic localization APIs")
(description
"Ruby-Locale is the pure ruby library which provides basic APIs for
@@ -4488,22 +4671,22 @@ Soundex, Metaphone, Double Metaphone, Porter Stemming.")
(define-public ruby-gettext
(package
(name "ruby-gettext")
- (version "3.1.7")
+ (version "3.4.4")
(source (origin
(method url-fetch)
(uri (rubygems-uri "gettext" version))
(sha256
(base32
- "1hg9islkm324mb4sd4za1fgafj1hqnm3bdvzj3k4fqpnzqnbcfiq"))))
+ "11hlxkk2yr9wjwd3nf8kgmsjcd8wf35yqlxi9wpvrgmvrk9n9a2k"))))
(build-system ruby-build-system)
;; ruby-test-unit is required to run tests, but that needs ruby-packnga,
;; which needs ruby-gettext. To break the dependency cycle we disable
;; tests.
(arguments `(#:tests? #f))
(propagated-inputs
- (list ruby-locale ruby-text))
+ (list ruby-locale ruby-text ruby-erubi))
(native-inputs
- (list bundler ruby-yard))
+ (list bundler ruby-yard/minimal))
(synopsis "GNU gettext-like program for Ruby")
(description
"Gettext is a GNU gettext-like program for Ruby. The catalog
@@ -4539,17 +4722,17 @@ use GNU gettext tools for maintenance.")
(define-public ruby-test-construct
(package
(name "ruby-test-construct")
- (version "2.0.1")
+ (version "2.0.2")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "test_construct" version))
(sha256
(base32
- "1a2ym3l068d0pxzzr95kvqx87zpdsarxslz9ygd4qfm9frrz0kgj"))))
+ "17q7rw92l7r4zh6rkvzrn4dyl8p8p77217vaa1wf7nsv8k5541vy"))))
(build-system ruby-build-system)
(native-inputs
- (list bundler ruby-mocha ruby-rspec))
+ (list bundler ruby-mocha-1 ruby-rspec))
(synopsis "Creates temporary files and directories for testing")
(description
"TestConstruct is a @acronym{DSL, Domain Specific Language} for creating
@@ -4583,6 +4766,16 @@ It allows writing tests, checking results and automated testing in Ruby.")
(home-page "https://test-unit.github.io/")
(license (list license:psfl license:ruby))))
+(define-public ruby-test-unit/minimal
+ (hidden-package
+ (package
+ (inherit ruby-test-unit)
+ (arguments
+ (ensure-keyword-arguments
+ (package-arguments ruby-test-unit)
+ (list #:tests? #f)))
+ (native-inputs '()))))
+
(define-public ruby-mapping
(package
(name "ruby-mapping")
@@ -4597,7 +4790,16 @@ It allows writing tests, checking results and automated testing in Ruby.")
(base32
"0yhmqp8mprjqf9m7wzc4hhi50qbfax86r89w852csns0ijaffjjs"))))
(build-system ruby-build-system)
- (arguments (list #:test-target "spec"))
+ (arguments
+ (list
+ #:test-target "spec"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch
+ (lambda _
+ (substitute* "spec/mapping/model_spec.rb"
+ ;; From https://github.com/ioquatix/mapping/pull/2
+ (("offset:") "offset =")))))))
(native-inputs (list ruby-rspec))
(synopsis "Map model objects based on their class to a given output model")
(description "The @code{mapping} gem maps model objects based on their
@@ -4620,17 +4822,24 @@ another.")
"1j4jc31ycydbkh5h3q6zwidzpavg3g5mbb5lqyaczd3jrq78rd7i"))))
(build-system ruby-build-system)
(arguments
- '(#:phases
- (modify-phases %standard-phases
- ;; Run rspec manually without using the Rakefile, as the versions of
- ;; Rake and RSpec 2 are incompatible:
- ;;
- ;; NoMethodError: undefined method `last_comment'
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "rspec"))
- #t)))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; Run rspec manually without using the Rakefile, as the versions of
+ ;; Rake and RSpec 2 are incompatible:
+ ;;
+ ;; NoMethodError: undefined method `last_comment'
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ ;; Skip some broken tests, this should be redundant with the
+ ;; next release
+ (delete-file "spec/markaby/markaby_test_unit_spec.rb")
+ (substitute* "spec/markaby/markaby_spec.rb"
+ (("generated.should == str")
+ "# Test broken: generated.should == str"))
+
+ (when tests?
+ (invoke "rspec")))))))
(propagated-inputs
(list ruby-builder))
(native-inputs
@@ -4700,7 +4909,7 @@ HTML, and PDF through LaTeX.")
"/lib\""))))
#t)))))
(native-inputs
- (list bundler ruby-test-unit))
+ (list bundler ruby-test-unit/minimal))
(synopsis "Ruby library adding metaclass method to all objects")
(description
"Metaclass is a Ruby library adding a @code{metaclass} method to all Ruby
@@ -4992,42 +5201,6 @@ definitions more readable.")
(home-page "https://github.com/jordansissel/ruby-insist/")
(license license:asl2.0)))
-(define-public ruby-instantiator
- (package
- (name "ruby-instantiator")
- (version "0.0.7")
- (source (origin
- (method url-fetch)
- (uri (rubygems-uri "instantiator" version))
- (sha256
- (base32
- "0w07w3gkyqr7m0vz5h13vm8b411660qywjm2xxxgdjv4wb3fazbr"))))
- (build-system ruby-build-system)
- (arguments
- `(#: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)))))
- (propagated-inputs
- (list ruby-blankslate))
- (native-inputs
- (list bundler ruby-test-unit))
- (synopsis "Instantiate an arbitrary Ruby class")
- (description
- "Instantiator lets you instantiate an arbitrary Ruby class without
-knowing anything about the constructor.")
- (home-page "https://github.com/floehopper/instantiator")
- (license license:expat)))
-
(define-public ruby-introspection
(package
(name "ruby-introspection")
@@ -5039,24 +5212,11 @@ knowing anything about the constructor.")
(base32
"1y2nbijkc0zlfmn9ss6588ilarq2kbn2i7w7pwwsli66dj84zgca"))))
(build-system ruby-build-system)
- (arguments
- `(#: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)))))
(propagated-inputs
- (list ruby-instantiator ruby-metaclass))
+ (list ruby-metaclass))
(native-inputs
- (list bundler ruby-blankslate ruby-test-unit))
+ (list bundler
+ ruby-blankslate))
(synopsis "Dynamic inspection of the method hierarchy on a Ruby object")
(description
"Introspection provides tools to inspect the hierarchy of method
@@ -5142,7 +5302,7 @@ Ruby, but can be used for all programs.")
(define-public ruby-maxitest
(package
(name "ruby-maxitest")
- (version "4.4.1")
+ (version "5.1.0")
(home-page "https://github.com/grosser/maxitest")
(source (origin
;; Pull from git because the gem does not contain tests.
@@ -5153,31 +5313,32 @@ Ruby, but can be used for all programs.")
(file-name (git-file-name name version))
(sha256
(base32
- "0l646lgrgsfgg9qh05b8a3jd43kgrmr6xzbdvyspmdlhchk1qszg"))))
+ "0qj410krfm497ggmf71xpnabbb6814y0585by4nlzyjvg9hpgg3m"))))
(build-system ruby-build-system)
(arguments
- '(#:test-target "default"
- #:phases (modify-phases %standard-phases
- (replace 'replace-git-ls-files
- (lambda _
- (substitute* "maxitest.gemspec"
- (("`git ls-files lib/ bin/ MIT-LICENSE Readme.md`")
- "`find lib/ bin/ MIT-LICENSE Readme.md -type f | sort`"))))
- (add-before 'check 'remove-version-constraints
- (lambda _
- ;; Don't use specific versions of dependencies, instead
- ;; take whatever is available in Guix.
- (delete-file "Gemfile.lock")))
- (add-before 'check 'add-mtest-on-PATH
- (lambda _
- ;; Tests use 'mtest' which is not automatically added on
- ;; PATH.
- (setenv "PATH" (string-append (getcwd) "/bin:"
- (getenv "PATH"))))))))
+ (list
+ #:test-target "default"
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'replace-git-ls-files
+ (lambda _
+ (substitute* "maxitest.gemspec"
+ (("`git ls-files lib/ bin/ MIT-LICENSE Readme.md`")
+ "`find lib/ bin/ MIT-LICENSE Readme.md -type f | sort`"))))
+ (add-before 'check 'remove-version-constraints
+ (lambda _
+ ;; Don't use specific versions of dependencies, instead
+ ;; take whatever is available in Guix.
+ (delete-file "Gemfile.lock")))
+ (add-before 'check 'add-mtest-on-PATH
+ (lambda _
+ ;; Tests use 'mtest' which is not automatically added on
+ ;; PATH.
+ (setenv "PATH" (string-append (getcwd) "/bin:"
+ (getenv "PATH"))))))))
(native-inputs
(list procps
ruby-bump
- ruby-byebug
ruby-rspec
ruby-wwtd))
(propagated-inputs
@@ -5192,27 +5353,29 @@ number, support for interrupted tests, better backtraces, and more.")
(define-public ruby-mocha
(package
(name "ruby-mocha")
- (version "1.13.0")
+ (version "2.0.4")
(source (origin
(method url-fetch)
(uri (rubygems-uri "mocha" version))
(sha256
(base32
- "15s53ggsykk69kxqvs4416s8yxdhz6caggva55n8sjgy4ixzwp10"))))
+ "18xn9gm9yypavy9yck71fplan19hy5697mwd1rwzz7vizh3ip7bd"))))
(build-system ruby-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-before 'check 'remove-rubocop-dependency
- (lambda _
- ;; Disable dependency on Rubocop, which is just a linter,
- ;; and would introduce a circular dependency.
- (substitute* "mocha.gemspec"
- ((".*rubocop.*")
- "true\n"))
- #t)))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'remove-rubocop-dependency
+ (lambda _
+ ;; Disable dependency on Rubocop, which is just a linter,
+ ;; and would introduce a circular dependency.
+ (substitute* "Gemfile"
+ ((".*rubocop.*") "")))))))
+ (propagated-inputs
+ (list ruby-ruby2-keywords))
(native-inputs
- (list ruby-introspection))
+ (list ruby-psych-3
+ ruby-introspection))
(synopsis "Mocking and stubbing library for Ruby")
(description
"Mocha is a mocking and stubbing library with JMock/SchMock syntax, which
@@ -5221,6 +5384,19 @@ allows mocking and stubbing of methods on real (non-mock) classes.")
;; Mocha can be used with either license at the users choice.
(license (list license:expat license:ruby))))
+(define-public ruby-mocha-1
+ (package
+ (inherit ruby-mocha)
+ (version "1.13.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "mocha" version))
+ (sha256
+ (base32
+ "15s53ggsykk69kxqvs4416s8yxdhz6caggva55n8sjgy4ixzwp10"))))
+ (arguments
+ '(#:tests? #f))))
+
(define-public ruby-mocha-on-bacon
(package
(name "ruby-mocha-on-bacon")
@@ -5248,16 +5424,25 @@ Mocha stubbing and mocking library with Bacon, a small RSpec clone.")
(define-public ruby-net-ssh
(package
(name "ruby-net-ssh")
- (version "4.2.0")
+ (version "7.1.0")
(source (origin
- (method url-fetch)
- (uri (rubygems-uri "net-ssh" version))
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://github.com/net-ssh/net-ssh")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "07c4v97zl1daabmri9zlbzs6yvkl56z1q14bw74d53jdj0c17nhx"))))
+ "1dkbyzpl31jygnnva5sa754vk42q1fih4qz5ipqw5gqiafrrlb91"))))
(build-system ruby-build-system)
(native-inputs
- (list bundler ruby-mocha ruby-test-unit))
+ (list bundler
+ ruby-bcrypt-pbkdf
+ ruby-ed25519
+ ruby-mocha
+ ruby-rbnacl
+ ruby-test-unit
+ ruby-x25519))
(synopsis "Ruby implementation of the SSH2 client protocol")
(description "@code{Net::SSH} is a pure-Ruby implementation of the SSH2
client protocol. It allows you to write programs that invoke and interact
@@ -5280,7 +5465,7 @@ with processes on remote servers, via SSH2.")
(base32 "1mdxh81z2hkcc359g6z96fywbr57azlv2yj4zq76adn5lyqq4hgw"))))
(build-system ruby-build-system)
(native-inputs
- (list bundler ruby-test-unit ruby-mocha))
+ (list bundler ruby-test-unit ruby-mocha-1))
(propagated-inputs
(list ruby-net-ssh))
(synopsis "Pure-Ruby SCP client library")
@@ -5322,13 +5507,13 @@ default (and first) theme. It's what you get when you run @code{jekyll new}.")
(define-public ruby-minitest
(package
(name "ruby-minitest")
- (version "5.18.0")
+ (version "5.18.1")
(source (origin
(method url-fetch)
(uri (rubygems-uri "minitest" version))
(sha256
(base32
- "0ic7i5z88zcaqnpzprf7saimq2f6sad57g5mkkqsrqrcd6h3mx06"))))
+ "1kg9wh7jlc9zsr3hkhpzkbn0ynf4np5ap9m2d8xdrb8shy0y6pmb"))))
(build-system ruby-build-system)
(native-inputs (list ruby-hoe))
(home-page "https://github.com/minitest/minitest")
@@ -5337,17 +5522,6 @@ default (and first) theme. It's what you get when you run @code{jekyll new}.")
facilities supporting TDD, BDD, mocking, and benchmarking.")
(license license:expat)))
-(define-public ruby-minitest-5.15
- (package
- (inherit ruby-minitest)
- (version "5.15.0")
- (source (origin
- (method url-fetch)
- (uri (rubygems-uri "minitest" version))
- (sha256
- (base32
- "06xf558gid4w8lwx13jwfdafsch9maz8m0g85wnfymqj63x5nbbd"))))))
-
;; This is the last release of Minitest 4, which is used by some packages.
(define-public ruby-minitest-4
(package
@@ -5360,17 +5534,26 @@ facilities supporting TDD, BDD, mocking, and benchmarking.")
(base32
"03p6iban9gcpcflzp4z901s1hgj9369p6515h967ny6hlqhcf2iy"))))
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'remove-unsupported-method
- (lambda _
- (substitute* "Rakefile"
- (("self\\.rubyforge_name = .*") ""))))
- (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"))))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'remove-unsupported-method
+ (lambda _
+ (substitute* "Rakefile"
+ (("self\\.rubyforge_name = .*") ""))))
+ (add-after 'build 'patch-tests
+ (lambda _
+ ;; test_no_method_error_on_unexpected_methods
+ ;; This test fails due to some extra information in the message
+ (substitute* "test/minitest/test_minitest_mock.rb"
+ (("assert_equal expected, e.message")
+ "assert_equal expected, e.message.lines.first.strip"))
+ ;; Some tests are failing on Ruby 2.4 due to the deprecation of
+ ;; Fixnum.
+ (delete-file "test/minitest/test_minitest_spec.rb"))))))
+ (native-inputs
+ (list ruby-minitest
+ ruby-hoe))))
(define-public ruby-minitest-around
(package
@@ -5484,14 +5667,14 @@ functionality, making it easier to migrate test suites from bacon to minitest.")
(define-public ruby-minitest-focus
(package
(name "ruby-minitest-focus")
- (version "1.1.2")
+ (version "1.3.1")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "minitest-focus" version))
(sha256
(base32
- "1zgjslp6d7dzcn8smj595idymgd5j603p9g2jqkfgi28sqbhz6m0"))))
+ "13kd2dkd9akfb99ziqndz9mir5iynyfyj2l45mcibab6mq5k8g67"))))
(build-system ruby-build-system)
(propagated-inputs
(list ruby-minitest))
@@ -5643,18 +5826,19 @@ MiniTest @code{Object#stub} with a global @code{stub} method.")
"1hbq9jk904xkz868yha1bqcm6azm7kmjsll2k4pn2nrcib508h2a"))))
(build-system ruby-build-system)
(arguments
- `(#:tests? #f ; Test suite has bitrotted.
- #:phases
- (modify-phases %standard-phases
- (add-before 'check 'clean-dependencies
- (lambda _
- ;; Remove unneeded require statement that would entail another
- ;; dependency.
- (substitute* "test/minitest_config.rb"
- (("require 'minitest/bisect'") ""))
- #t)))))
+ (list
+ #:tests? #f ; Test suite has bitrotted.
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'clean-dependencies
+ (lambda _
+ ;; Remove unneeded require statement that would entail another
+ ;; dependency.
+ (substitute* "test/minitest_config.rb"
+ (("require 'minitest/bisect'") "")))))))
(native-inputs
- (list ruby-hoe ruby-minitest-pretty-diff ruby-minitest-focus
+ (list ruby-hoe
+ ruby-minitest-focus
ruby-minitest-moar))
(synopsis "Bonus assertions for @code{Minitest}")
(description
@@ -5935,7 +6119,8 @@ you to merge elements inside a hash together recursively.")
ruby-rspec
ruby-simplecov
ruby-simplecov-lcov
- ruby-zeitwerk))
+ ruby-zeitwerk
+ ruby-mini-portile-2))
(propagated-inputs
(list ruby-activesupport))
(synopsis "Asynchronous background tasks execution library")
@@ -6016,16 +6201,14 @@ objects back to a @code{String}.")
(define-public ruby-slop
(package
(name "ruby-slop")
- (version "4.5.0")
+ (version "4.10.1")
(source (origin
(method url-fetch)
(uri (rubygems-uri "slop" version))
(sha256
(base32
- "0bfm8535g0rkn9cbjndkckf0f7a3wj0rg4rqhrpsgxnbfdf2lm0p"))))
+ "1iyrjskgxyn8i1679qwkzns85p909aq77cgx2m4fs5ygzysj4hw4"))))
(build-system ruby-build-system)
- (native-inputs
- (list ruby-minitest))
(synopsis "Ruby command line option parser")
(description "Slop provides a Ruby domain specific language for gathering
options and parsing command line flags.")
@@ -6135,12 +6318,15 @@ net/http library.")
"0mkdvy6i00yyksjvnv6znh7wf89j9506qzzjq6bsbmbkyqrszp4d"))))
(build-system ruby-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-before 'check 'pre-check
- (lambda _
- ;; As seen in the .travis.yml file.
- (setenv "SKIP_ADAPTERS" "gson,jr_jackson,nsjsonserialization"))))))
+ (list
+ ;; TODO Tests don't currently work with Ruby 3
+ #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'pre-check
+ (lambda _
+ ;; As seen in the .travis.yml file.
+ (setenv "SKIP_ADAPTERS" "gson,jr_jackson,nsjsonserialization"))))))
(native-inputs
(list ruby-rspec ruby-json-pure ruby-oj ruby-yajl-ruby))
(synopsis "Common interface to multiple JSON libraries for Ruby")
@@ -6274,49 +6460,59 @@ to reproduce user environments.")
(define-public ruby-mini-portile-2
(package
(inherit ruby-mini-portile)
- (version "2.8.1")
+ (version "2.8.2")
(source (origin
(method url-fetch)
(uri (rubygems-uri "mini_portile2" version))
(sha256
(base32
- "1af4yarhbbx62f7qsmgg5fynrik0s36wjy3difkawy536xg343mp"))))))
+ "0z7f38iq37h376n9xbl4gajdrnwzq284c9v1py4imw3gri2d5cj6"))))))
(define-public ruby-nokogiri
(package
(name "ruby-nokogiri")
- (version "1.13.10")
+ (version "1.15.2")
(source (origin
- (method url-fetch)
- (uri (rubygems-uri "nokogiri" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sparklemotion/nokogiri")
+ (commit "a6ad20b3edc8f020043ccfe5d9ec6ae9af103720")))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0n79k78c5vdcyl0m3y3l5x9kxl6xf5lgriwi2vd665qmdkr01vnk"))))
+ "1n0vlg6v58jw3qzgyihz1dh5fvp4js1qgdh75j0kn47nvyiw3jxj"))
+ (patches (search-patches "ruby-nokogiri.patch"))))
(build-system ruby-build-system)
(arguments
- ;; Tests fail because Nokogiri can only test with an installed extension,
- ;; and also because many test framework dependencies are missing.
- (list
- #:tests? #f
- #:gem-flags #~(list "--" "--use-system-libraries"
- (string-append "--with-xml2-include="
- #$(this-package-input "libxml2")
- "/include/libxml2" ))
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'install 'delete-mkmf.log
- (lambda _
- ;; Rubygems installs build log files that embed volatile file
- ;; names (see:
- ;; https://github.com/rubygems/rubygems/issues/6259).
- (for-each delete-file (find-files #$output "^mkmf\\.log$")))))))
- (native-inputs (list ruby-hoe))
+ (list #:gem-flags #~(list "--" "--use-system-libraries"
+ (string-append "--with-xml2-include="
+ #$(this-package-input "libxml2")
+ "/include/libxml2"))
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'install 'delete-mkmf.log
+ (lambda _
+ ;; Rubygems installs build log files that embed volatile file
+ ;; names (see:
+ ;; https://github.com/rubygems/rubygems/issues/6259).
+ (for-each delete-file
+ (find-files #$output "^mkmf\\.log$"))))
+ (delete 'check)
+ (add-after 'install 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (setenv "GEM_PATH" (string-append
+ (getenv "GEM_PATH") ":"
+ #$output "/lib/ruby/vendor_ruby"))
+ (when tests?
+ (for-each (lambda (file)
+ (invoke "ruby" "-Itest" file))
+ (find-files "test" "^test_.*\\.rb"))))))))
+ (native-inputs (list ruby-hoe ruby-rubyzip))
(inputs (list zlib libxml2 libxslt))
(propagated-inputs (list ruby-mini-portile-2 ruby-pkg-config))
(synopsis "HTML, XML, SAX, and Reader parser for Ruby")
(description "Nokogiri (鋸) parses and searches XML/HTML, and features
both CSS3 selector and XPath 1.0 support.")
- (home-page "https://www.nokogiri.org/")
+ (home-page "https://nokogiri.org/")
(license license:expat)))
(define-public ruby-method-source
@@ -6522,21 +6718,41 @@ across multiple CPU cores.")
(home-page "https://github.com/whitequark/parser")
(license license:expat)))
+(define-public ruby-set
+ (package
+ (name "ruby-set")
+ (version "1.0.3")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "set" version))
+ (sha256
+ (base32
+ "07kc057nrkddrybqmlbmgf9x7nsmbc3ni6gy1z6xjx5b838vlj33"))))
+ (build-system ruby-build-system)
+ (synopsis
+ "Ruby class to deal with collections of unordered, unique values")
+ (description
+ "This package provides a class to deal with collections of unordered,
+unique values")
+ (home-page "https://github.com/ruby/set")
+ (license license:bsd-2)))
+
(define-public ruby-sexp-processor
(package
(name "ruby-sexp-processor")
- (version "4.15.0")
+ (version "4.17.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "sexp_processor" version))
(sha256
(base32
- "0d1vks77xnd0m3s94a58f9bkdwlaml5qdkmprx279m2s0pc2gv55"))))
+ "0vzz9mhg4kkdqf179pm30i204h7iskanxrk53j0csf0qrrs4iajd"))))
(build-system ruby-build-system)
(native-inputs
- ;; TODO: Add ruby-minitest-proveit once available.
- (list ruby-hoe))
+ (list ruby-hoe
+ ruby-minitest
+ ruby-minitest-proveit))
(synopsis "ParseTree fork which includes generic S-exp processing tools")
(description "The sexp_processor package is derived from ParseTree, but
contrary to ParseTree, it includes all the generic S-exp processing tools.
@@ -6548,17 +6764,32 @@ Amongst the included tools are @code{Sexp}, @code{SexpProcessor} and
(define-public ruby-ruby-parser
(package
(name "ruby-ruby-parser")
- (version "3.14.2")
+ (version "3.20.2")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "ruby_parser" version))
(sha256
(base32
- "09qcdyjjw3p7g6cjm5m9swkms1xnv35ndiy7yw24cas16qrhha6c"))))
+ "0q851n8654wkjrq8jawq8vi5yhr1y9vpyr2vj7cnn3sa4ikg6d3z"))))
(build-system ruby-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch
+ (lambda _
+ (substitute* "Rakefile"
+ (("`which bison`")
+ (string-append "\"" (which "bison") "\""))
+ (("which unifdef")
+ (which "unifdef"))))))))
(native-inputs
- (list ruby-hoe ruby-racc unifdef))
+ (list ruby-hoe
+ ruby-racc
+ unifdef
+ bison
+ ruby-minitest))
(propagated-inputs
(list ruby-sexp-processor))
(home-page "https://github.com/seattlerb/ruby_parser/")
@@ -6678,7 +6909,9 @@ rate.")
"1c1bkl97i9mkcvkn1jks346ksnvnnp84cs22gwl0vd7radybrgy5"))))
(build-system ruby-build-system)
(arguments
- '(#:tests? #f)) ; No included tests
+ (list
+ #:ruby ruby-2.7
+ #:tests? #f)) ; No included tests
(synopsis "Creates a version constraint of supported Rubies")
(description
"This package helps create a version constraint of supported Rubies,
@@ -6728,14 +6961,14 @@ The output can be customized with a formatting system.")
(define-public ruby-pry
(package
(name "ruby-pry")
- (version "0.13.1")
+ (version "0.14.2")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "pry" version))
(sha256
(base32
- "0iyw4q4an2wmk8v5rn2ghfy2jaz9vmw2nk8415nnpx2s866934qk"))))
+ "0k9kqkd9nps1w1r1rb7wjr31hqzkka2bhi8b518x78dcxppm9zn4"))))
(build-system ruby-build-system)
(arguments
'(#:tests? #f)) ; no tests
@@ -6825,16 +7058,18 @@ development tools to catch coverage problems early.")
(define-public ruby-oedipus-lex
(package
(name "ruby-oedipus-lex")
- (version "2.6.0")
+ (version "2.6.1")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "oedipus_lex" version))
(sha256
(base32
- "094nd7jd3klv45mvprfn2ivcgw8cckq3jhlly77j903vlamfi0df"))))
+ "06l4d3l75vhdcmnavnkzr7bd39rb0njxhkbmwrw6ni64z2hlj7w7"))))
(build-system ruby-build-system)
- (native-inputs (list ruby-hoe))
+ (native-inputs
+ (list ruby-hoe
+ ruby-minitest))
(synopsis "Ruby lexer")
(description
"Oedipus Lex is a lexer generator in the same family as Rexical and Rex.
@@ -6967,7 +7202,7 @@ intended for use with event loops such as async.")
(define-public ruby-tilt
(package
(name "ruby-tilt")
- (version "2.0.10")
+ (version "2.0.11")
(source
(origin
(method git-fetch) ;the distributed gem lacks tests
@@ -6977,28 +7212,44 @@ intended for use with event loops such as async.")
(file-name (git-file-name name version))
(sha256
(base32
- "0adb7fg7925n2rd9a8kkqz3mgylw2skp9hkh9qc1rnph72mqsm6r"))))
+ "0a75s6ci2rwai5q1bnlqbz8kxqnfp2497jhkcry1n4g29lcxq9ja"))))
(build-system ruby-build-system)
(arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'remove-some-dependencies
- (lambda _
- (substitute* "Gemfile"
- ;; TODO ronn is used for generating the manual
- (("gem 'ronn'.*") "\n")
- ;; ruby-haml has a runtime dependency on ruby-tilt, so don't
- ;; pass it in as a native-input
- (("gem 'haml'.*") "\n")
- ;; TODO Not all of these gems are packaged for Guix yet:
- ;; less, coffee-script, livescript, babel-transpiler,
- ;; typescript-node
- (("if can_execjs") "if false")
- ;; Disable the secondary group to reduce the number of
- ;; dependencies. None of the normal approaches work, so patch
- ;; the Gemfile instead.
- (("group :secondary") "[].each"))
- #t)))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-tests
+ (lambda _
+ ;; Patch some tests
+ (substitute* "test/tilt_sasstemplate_test.rb"
+ (("}\",") "}
+\","))))
+ (add-after 'unpack 'remove-some-dependencies
+ (lambda _
+ (substitute* "Gemfile"
+ (("gem 'less'") "\n")
+ (("gem 'coffee-script'") "\n")
+ (("gem 'livescript'") "\n")
+ (("gem 'babel-transpiler'") "\n")
+ (("gem 'typescript-node'") "\n")
+ (("gem 'typescript-node'") "\n")
+ (("gem 'duktape'.*") "\n")
+ ;; TODO ronn is used for generating the manual
+ (("gem 'ronn'.*") "\n")
+ ;; ruby-haml has a runtime dependency on ruby-tilt, so don't
+ ;; pass it in as a native-input
+ (("gem 'haml'.*") "\n")
+ ;; TODO Not all of these gems are packaged for Guix yet:
+ ;; less, coffee-script, livescript, babel-transpiler,
+ ;; typescript-node
+ (("if can_execjs") "if false")
+ ;; Disable the secondary group to reduce the number of
+ ;; dependencies. None of the normal approaches work, so patch
+ ;; the Gemfile instead.
+ (("group :secondary") "[].each"))))
+ (add-before 'check 'set-SASS_IMPLEMENTATION
+ (lambda _
+ (setenv "SASS_IMPLEMENTATION" "sassc"))))))
(propagated-inputs
(list ruby-pandoc-ruby ruby-sassc))
(native-inputs
@@ -7078,7 +7329,7 @@ aware transformations between times in different time zones.")
(define-public ruby-tzinfo-data
(package
(name "ruby-tzinfo-data")
- (version "1.2021.1")
+ (version "1.2023.3")
(source
(origin
(method git-fetch)
@@ -7090,59 +7341,62 @@ aware transformations between times in different time zones.")
(file-name (git-file-name name version))
(sha256
(base32
- "0yzyr3rf8qaw6kxfc0gwpxsb7gl3rhfpx9g1c2z15vapyminhi60"))))
+ "1v3fpfmw485lsc9bfqfcasb9j25g9ywfpmmk648l2vdsh7nipilf"))))
(build-system ruby-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-source
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "Rakefile"
- (("https://data.iana.org/time-zones/releases")
- (assoc-ref inputs "tzdata")))))
- (add-before 'check 'pre-check
- (lambda _
- (setenv "HOME" (getcwd))
- (substitute* "Rakefile"
- ;; Don't need gpg, and it may break after a time.
- (("gpg ") "echo ")
- ((" sh\\(\\\"make -C" text)
- (string-append " sh(\"sed -i 's@/bin/sh@sh@' #{tzdb_combined_path}/Makefile \")\n"
- " sh(\"sed -i 's@cc=@cc?=@' #{tzdb_combined_path}/Makefile \")\n" text)))
- (setenv "cc" ,(cc-for-target)))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-source
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "Rakefile"
+ (("URI\\.parse\\(url\\)\\.open")
+ "URI.open(url)")
+ (("https://data.iana.org/time-zones/releases")
+ (assoc-ref inputs "tzdata")))))
+ (add-before 'check 'pre-check
+ (lambda _
+ (setenv "HOME" (getcwd))
+ (substitute* "Rakefile"
+ ;; Don't need gpg, and it may break after a time.
+ (("gpg ") "echo ")
+ ((" sh\\(\\\"make -C" text)
+ (string-append " sh(\"sed -i 's@/bin/sh@sh@' #{tzdb_combined_path}/Makefile \")\n"
+ " sh(\"sed -i 's@cc=@cc?=@' #{tzdb_combined_path}/Makefile \")\n" text)))
+ (setenv "cc" #$(cc-for-target)))))))
(propagated-inputs
(list ruby-tzinfo))
(native-inputs
`(("tzdata"
,(file-union "tzdata-for-ruby-tzdata-info"
- `(("tzdata2021a.tar.gz"
+ `(("tzdata2023c.tar.gz"
,(origin
(method url-fetch)
- (uri "https://data.iana.org/time-zones/releases/tzdata2021a.tar.gz")
+ (uri "https://data.iana.org/time-zones/releases/tzdata2023c.tar.gz")
(sha256
(base32
- "022fn6gkmp7pamlgab04x0dm5hnyn2m2fcnyr3pvm36612xd5rrr"))))
- ("tzdata2021a.tar.gz.asc"
+ "0p4nvp5bdxxdqh269nvvcfrpycbbfwm31al5whwbpsaa3dfhnl9z"))))
+ ("tzdata2023c.tar.gz.asc"
,(origin
(method url-fetch)
- (uri "https://data.iana.org/time-zones/releases/tzdata2021a.tar.gz.asc")
+ (uri "https://data.iana.org/time-zones/releases/tzdata2023c.tar.gz.asc")
(sha256
(base32
- "0n7h2w8ji1lrxpk0d44wyfshlhr7c9jmwj6lqbxlyvqnfi3gbicx"))))
- ("tzcode2021a.tar.gz"
+ "0mrmhczs5qnj1zp6gh4pg6fm0iblr2jmzy0fgh9slinwxmn7pv6m"))))
+ ("tzcode2023c.tar.gz"
,(origin
(method url-fetch)
- (uri "https://data.iana.org/time-zones/releases/tzcode2021a.tar.gz")
+ (uri "https://data.iana.org/time-zones/releases/tzcode2023c.tar.gz")
(sha256
(base32
- "1l02b0jiwp3fl0xd6227i69d26rmx3yrnq0ssq9vvdmm4jhvyipb"))))
- ("tzcode2021a.tar.gz.asc"
+ "1rqln88ki0jagi372nqyn7bs03rf2l33081sy2835mwsn4mpzla6"))))
+ ("tzcode2023c.tar.gz.asc"
,(origin
(method url-fetch)
- (uri "https://data.iana.org/time-zones/releases/tzcode2021a.tar.gz.asc")
+ (uri "https://data.iana.org/time-zones/releases/tzcode2023c.tar.gz.asc")
(sha256
(base32
- "1qhlj4lr810s47s1lwcvv1sgvg2sflf98w4sbg1lc8wzv5qxxv7g")))))))))
+ "0jbx8xjv75qfh7bxa2xmrf97r37057y89rhmrq1gz8s6b8qlzb2i")))))))))
(synopsis "Data from the IANA Time Zone database")
(description
"This library provides @code{TZInfo::Data}, which contains data from the
@@ -7153,26 +7407,27 @@ IANA Time Zone database packaged as Ruby modules for use with @code{TZInfo}.")
(define-public ruby-rb-inotify
(package
(name "ruby-rb-inotify")
- (version "0.9.10")
+ (version "0.10.1")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "rb-inotify" version))
(sha256
(base32
- "0yfsgw5n7pkpyky6a9wkf1g9jafxb0ja7gz0qw0y14fd2jnzfh71"))))
+ "1jm76h8f8hji38z3ggf4bzi8vps6p7sagxn3ab57qc0xyga64005"))))
(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"))))))
+ (list
+ #: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"))))))
(propagated-inputs
(list ruby-ffi))
(native-inputs
@@ -7312,34 +7567,33 @@ development of Ruby gems.")
"0xlyh94iirvssix157ng2akr9nqhdygdd0c6094hhv7dqcfrn9fn"))))
(build-system ruby-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-test-include-path
- (lambda* (#:key inputs #:allow-other-keys)
- (let* ((minitest (assoc-ref inputs "ruby-minitest-4")))
- (substitute* "Rakefile"
- (("Hoe\\.add_include_dirs .*")
- (string-append "Hoe.add_include_dirs \""
- minitest "/lib/ruby/vendor_ruby"
- "/gems/minitest-"
- ,(package-version ruby-minitest-4)
- "/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)))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-test-include-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let* ((minitest (assoc-ref inputs "ruby-minitest")))
+ (substitute* "Rakefile"
+ (("Hoe\\.add_include_dirs .*")
+ (string-append "Hoe.add_include_dirs \""
+ minitest "/lib/ruby/vendor_ruby"
+ "/gems/minitest-"
+ #$(package-version ruby-minitest-4)
+ "/lib" "\""))))))
+ (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')")))))))
(propagated-inputs
- `(("ruby-minitest-4" ,ruby-minitest-4)))
+ (list ruby-minitest-4))
(native-inputs
- (list ruby-hoe))
+ (list ruby-hoe-3))
(synopsis "Adapter library between minitest and test/unit")
(description
"This library bridges the gap between the small and fast minitest and
@@ -7361,20 +7615,21 @@ Ruby's large and slower test/unit.")
;; Rebuilding the gemspec seems to require git, even though this is not a
;; git repository, so we just build the gem from the existing gemspec.
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-test
- (lambda -
- (substitute* "tests/hsl_triple_test.rb"
- (("0\\\\\\.0%")
- "0\\.?0?%"))))
- (replace 'build
- (lambda _
- (invoke "gem" "build" "term-ansicolor.gemspec"))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-test
+ (lambda -
+ (substitute* "tests/hsl_triple_test.rb"
+ (("0\\\\\\.0%")
+ "0\\.?0?%"))))
+ (replace 'build
+ (lambda _
+ (invoke "gem" "build" "term-ansicolor.gemspec"))))))
(propagated-inputs
(list ruby-tins))
(native-inputs
- (list ruby-gem-hadar ruby-minitest-tu-shim))
+ (list ruby-gem-hadar))
(synopsis "Ruby library to control the attributes of terminal output")
(description
"This Ruby library uses ANSI escape sequences to control the attributes
@@ -7383,22 +7638,112 @@ of terminal output.")
;; There is no mention of the "or later" clause.
(license license:gpl2)))
+(define-public ruby-immutable-struct
+ (package
+ (name "ruby-immutable-struct")
+ (version "2.4.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/stitchfix/immutable-struct")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "17hlmy9jfwn3i5h2rwv832ycwcdqwxq7dkkd2yly28klwj0l52rq"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ ;; Issues with the lack of Set in Ruby 3
+ #:ruby ruby-2.7
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "ruby" (which "rspec"))))))))
+ (native-inputs
+ (list ruby-rspec))
+ (synopsis "Ruby library for creating immutable struct classes")
+ (description
+ "Easily create value objects without the pain of Ruby's Struct (or its setters)")
+ (home-page "https://stitchfix.github.io/immutable-struct/")
+ (license license:expat)))
+
+(define-public ruby-faker
+ (package
+ (name "ruby-faker")
+ (version "3.2.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/faker-ruby/faker")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1wwdwh5qwaxnd9dl6732mj6b953l5r32r4936pj5680963iagq59"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'remove-rubocop-from-rakefile
+ (lambda _
+ (substitute* "Rakefile"
+ (("require 'rubocop/rake_task'") "")
+ (("RuboCop::RakeTask\\.new") "")))))))
+ (native-inputs (list ruby-yard ruby-simplecov ruby-timecop))
+ (propagated-inputs (list ruby-i18n))
+ (synopsis "Library for generating fake data")
+ (description "Faker is a port of Data::Faker from Perl. It is used to
+easily generate fake data: names, addresses, phone numbers, etc.")
+ (home-page "https://github.com/faker-ruby/faker")
+ (license license:expat)))
+
(define-public ruby-terraform
(package
(name "ruby-terraform")
- (version "0.22.0")
+ (version "1.7.0")
(source
(origin
- (method url-fetch)
- (uri (rubygems-uri "ruby-terraform" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/infrablocks/ruby_terraform")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "13zjkp71cd19j2ds2h9rqwcfr1zdg5nsh63p89l6qcsc9z39z324"))))
+ "18d1qkf2rbbvc2f0dxni85i2l2g8zn5kzh0v8zr1b86r1wjy6rvd"))))
(build-system ruby-build-system)
(arguments
- '(#:tests? #f)) ; No included tests
+ (list
+ #:test-target "spec"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'disable-bundler
+ (lambda _
+ (substitute* "spec/spec_helper.rb"
+ (("require 'bundler/setup'") ""))))
+ (add-before 'check 'disable-falinig-tests
+ (lambda _
+ (substitute* "spec/ruby_terraform/commands/plan_spec.rb"
+ (("it 'logs an error raised when running the command'")
+ "xit 'logs an error raised when running the command'")
+ (("it 'raises execution error when an error occurs running the command'")
+ "xit 'raises execution error when an error occurs running the command'"))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "rspec")))))))
+ (native-inputs
+ (list ruby-rspec
+ ruby-faker
+ ruby-simplecov))
(propagated-inputs
- (list ruby-lino))
+ (list ruby-lino ruby-immutable-struct))
(synopsis "Ruby wrapper around the Terraform command line interface")
(description
"This package provides a Ruby wrapper around the Terraform command line
@@ -7427,6 +7772,55 @@ process tree data structure for the current host.")
;; There is no mention of the "or later" clause.
(license license:gpl2)))
+(define-public ruby-psych
+ (package
+ (name "ruby-psych")
+ (version "5.1.0")
+ (source (origin
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://github.com/ruby/psych")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0m3668y79jcv2h9p7w74awwdyz13rpfr24w4nzh3iz96kxwssz83"))))
+ (build-system ruby-build-system)
+ (inputs
+ (list libyaml))
+ (native-inputs
+ (list ruby-rake-compiler))
+ (synopsis "Ruby YAML parser and emitter")
+ (description
+ "Psych is a YAML parser and emitter. Psych leverages libyaml for its
+YAML parsing and emitting capabilities. In addition to wrapping libyaml,
+Psych also knows how to serialize and de-serialize most Ruby objects to and
+from the YAML format.")
+ (home-page "https://github.com/ruby/psych")
+ (license license:expat)))
+
+(define-public ruby-psych-3
+ (package
+ (inherit ruby-psych)
+ (version "3.3.4")
+ (source (origin
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://github.com/ruby/psych")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "ruby-psych" version))
+ (sha256
+ (base32
+ "11f7bxbhaj5697izap7hfbiln6lfk5cks78a498mkyhs2ylhl0fc"))))
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "bundle" "exec" "rake" "default")))))))))
+
(define-public ruby-utils
(package
(name "ruby-utils")
@@ -7493,57 +7887,75 @@ a native C extension.")
(define-public ruby-json-pure
(package
(name "ruby-json-pure")
- (version "2.3.1")
- (source (origin
- (method url-fetch)
- (uri (rubygems-uri "json_pure" version))
- (sha256
- (base32
- "00pziwkfqwk8vj19s65sdki31q1wvmf5v9b3sfglxm94qfvas1lx"))))
+ (version "2.6.3")
+ (source
+ (origin
+ ;; For tests
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/flori/json.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0551269c98a07m6bl594syh5vknrm3c636a4dxis9jpsb7vf7lfx"))))
(build-system ruby-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-rakefile
- (lambda _
- (substitute* "Rakefile"
- ;; Since this is not a git repository, do not call 'git'.
- (("`git ls-files`") "`find . -type f |sort`")))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-rakefile
+ (lambda _
+ (substitute* "Rakefile"
+ ;; Since this is not a git repository, do not call 'git'.
+ (("`git ls-files`") "`find . -type f |sort`")))))))
(native-inputs
(list bundler ragel ruby-simplecov ruby-test-unit which))
(synopsis "JSON implementation in pure Ruby")
(description
"This package provides a JSON implementation written in pure Ruby.")
- (home-page "https://flori.github.com/json/")
+ (home-page "https://flori.github.io/json/")
(license license:ruby)))
(define-public ruby-jwt
(package
(name "ruby-jwt")
- (version "2.1.0")
+ (version "2.7.1")
(source
(origin
- (method url-fetch)
- (uri (rubygems-uri "jwt" version))
+ ;; For tests
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jwt/ruby-jwt")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1w0kaqrbl71cq9sbnixc20x5lqah3hs2i93xmhlfdg2y3by7yzky"))))
+ "12ss6knfis6a6a41qndalnlvq3yykhpg6igzll8qyssnnwi9zdw7"))))
(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)))))
+ (list
+ #:test-target "test"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'remove-unnecessary-dependencies
+ (lambda _
+ (substitute* "ruby-jwt.gemspec"
+ (("spec\\.add_development_dependency 'appraisal'") "")
+ (("spec\\.add_development_dependency 'simplecov'") ""))
+ (substitute* "Gemfile"
+ (("gem 'rubocop'.*") ""))
+ (substitute* "Rakefile"
+ (("require 'rubocop/rake_task'") "")
+ (("RuboCop::RakeTask\\.new\\(:rubocop\\)") ""))
+ (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") "")))))))
(native-inputs
(list bundler ruby-rspec ruby-rbnacl))
(synopsis "Ruby implementation of the JSON Web Token standard")
@@ -7578,7 +7990,7 @@ a native C extension.")
(define-public ruby-listen
(package
(name "ruby-listen")
- (version "3.2.0")
+ (version "3.8.0")
(source
(origin
;; The gem does not include a Rakefile, so fetch from the Git
@@ -7590,24 +8002,24 @@ a native C extension.")
(file-name (git-file-name name version))
(sha256
(base32
- "1hkp1g6hk5clsmbd001gkc12ma6s459x820piajyasv61m87if24"))))
+ "1skkglml094dw1xr4742in1rwwa84ld0mz4nkw6qa8pwhx48x2n5"))))
(build-system ruby-build-system)
(arguments
- `(#:test-target "spec"
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-files-in-gemspec
- (lambda _
- (substitute* "listen.gemspec"
- (("`git ls-files -z`") "`find . -type f -printf '%P\\\\0' |sort -z`"))
- #t))
- (add-before 'check 'remove-unnecessary-dependencies'
- (lambda _
- (substitute* "Rakefile"
- ;; Rubocop is for code linting, and is unnecessary for running
- ;; the tests.
- ((".*rubocop.*") ""))
- #t)))))
+ (list
+ #:test-target "spec"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-files-in-gemspec
+ (lambda _
+ (substitute* "listen.gemspec"
+ (("`git ls-files -z`")
+ "`find . -type f -printf '%P\\\\0' |sort -z`"))))
+ (add-before 'check 'remove-unnecessary-dependencies'
+ (lambda _
+ (substitute* "Rakefile"
+ ;; Rubocop is for code linting, and is unnecessary for running
+ ;; the tests.
+ ((".*rubocop.*") "")))))))
(native-inputs
(list bundler ruby-rspec))
(inputs
@@ -7901,36 +8313,35 @@ with PostgreSQL 9.3 and later.")
(("require \"bundler/setup\".*") "")))))))
(build-system ruby-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'sanitize-dependencies
- (lambda _
- (substitute* "Rakefile"
- ((".*chandler/tasks.*") ""))))
- (add-after 'unpack 'skip-tmp-path-sensitive-test
- (lambda _
- (substitute* "test/commands/where_test.rb"
- (("unless /cygwin\\|mswin\\|mingw\\|darwin/.*")
- "unless true\n"))))
- (add-before 'build 'compile
- (lambda _
- (invoke "rake" "compile")))
- (add-before 'check 'disable-misbehaving-test
- ;; Expects 5, gets 162. From a file containing ~10 lines.
- (lambda _
- (substitute* "test/commands/finish_test.rb"
- (("test_finish_inside_autoloaded_files")
- "finish_inside_autoloaded_files"))))
- (add-before 'check 'set-home
- (lambda _
- (setenv "HOME" (getcwd)))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'sanitize-dependencies
+ (lambda _
+ (substitute* "Rakefile"
+ ((".*chandler/tasks.*") ""))))
+ (add-after 'unpack 'skip-tmp-path-sensitive-test
+ (lambda _
+ (substitute* "test/commands/where_test.rb"
+ (("unless /cygwin\\|mswin\\|mingw\\|darwin/.*")
+ "unless true\n"))))
+ (add-before 'build 'compile
+ (lambda _
+ (invoke "rake" "compile")))
+ (add-before 'check 'patch-tests
+ (lambda _
+ ;; srand': no implicit conversion of nil into Integer (TypeError)
+ (delete-file "test/minitest_runner_test.rb")
+ ;; Expects 5, gets 162. From a file containing ~10 lines.
+ (substitute* "test/commands/finish_test.rb"
+ (("test_finish_inside_autoloaded_files")
+ "finish_inside_autoloaded_files"))))
+ (add-before 'check 'set-home
+ (lambda _
+ (setenv "HOME" (getcwd)))))))
(native-inputs
(list bundler
- ;; Using minitest 5.17 would cause 5 new bug failures. This is
- ;; probably related to
- ;; https://github.com/deivid-rodriguez/byebug/pull/837. Use
- ;; minitest 5.15 until this is resolved and released.
- ruby-minitest-5.15
+ ruby-minitest
ruby-pry
ruby-rake-compiler
ruby-rubocop
@@ -8025,7 +8436,7 @@ including comments and whitespace.")
"0n3gq8rx49f7ln6zqlshqfg2mgqyy30rsdjlnki5mv307ykc7ad4"))))
(build-system ruby-build-system)
(native-inputs
- (list ruby-rspec ruby-yard ruby-rubygems-tasks))
+ (list ruby-rspec ruby-yard/minimal ruby-rubygems-tasks))
(synopsis "Calculate the differences between two tree-like structures")
(description
"This library provides functions to calculate the differences between two
@@ -8053,7 +8464,7 @@ tree-like structures. It is similar to Ruby's built-in @code{TSort} module.")
(list ruby-tdiff
ruby-nokogiri))
(native-inputs
- (list ruby-rspec ruby-yard ruby-rubygems-tasks))
+ (list ruby-rspec ruby-yard/minimal ruby-rubygems-tasks))
(synopsis "Calculate the differences between two XML/HTML documents")
(description
"@code{Nokogiri::Diff} adds the ability to calculate the
@@ -8092,7 +8503,7 @@ generates Ruby program.")
(package
(name "ruby-rack")
;; Do not upgrade to version 3, as Rails doesn't support it yet.
- (version "2.2.6.3")
+ (version "2.2.7")
(source
(origin
(method git-fetch) ;for tests
@@ -8102,7 +8513,7 @@ generates Ruby program.")
(file-name (git-file-name name version))
(sha256
(base32
- "19n33q0v15qjh7kbp2painyzyqg16kkf0mp68vcnlswghmmjcyzq"))))
+ "02r41fr61x0jfhraizc6bsgs40p8mlpvnzix71zwmcvibg384ify"))))
(build-system ruby-build-system)
(arguments
(list
@@ -8130,7 +8541,10 @@ generates Ruby program.")
(number->string (+ 22 size-diff))
"-"
(number->string (+ 33 size-diff)))))))))))
- (native-inputs (list ruby-minitest ruby-minitest-global-expectations))
+ (native-inputs
+ (list ruby-minitest
+ ruby-minitest-global-expectations
+ ruby-webrick))
(synopsis "Unified web application interface for Ruby")
(description "Rack provides a minimal, modular and adaptable interface for
developing web applications in Ruby. By wrapping HTTP requests and responses,
@@ -8344,39 +8758,49 @@ techniques and a terse syntax.")
(define-public ruby-rest-client
(package
(name "ruby-rest-client")
- (version "2.0.2")
+ (version "2.1.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "rest-client" version))
(sha256
(base32
- "1hzcs2r7b5bjkf2x2z3n8z6082maz0j8vqjiciwgg3hzb63f958j"))))
+ "1qs74yzl58agzx9dgjhcpgmzfn61fqkk33k1js2y5yhlvc5l19im"))))
(build-system ruby-build-system)
(arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-before 'check 'remove-unnecessary-development-dependencies
- (lambda _
- (substitute* "rest-client.gemspec"
- ;; Remove rubocop as it's unused. Rubocop also indirectly
- ;; depends on this package through ruby-parser and ruby-ast so
- ;; this avoids a dependency loop.
- ((".*rubocop.*") "\n")
- ;; Remove pry as it's unused, it's a debugging tool
- ((".*pry.*") "\n")
- ;; Remove an unnecessarily strict rdoc dependency
- ((".*rdoc.*") "\n"))
- #t))
- (add-before 'check 'delete-network-dependent-tests
- (lambda _
- (delete-file "spec/integration/request_spec.rb")
- (delete-file "spec/integration/httpbin_spec.rb")
- #t)))))
+ (list
+ ;; TODO Some tests are currently broken
+ #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'remove-unnecessary-development-dependencies
+ (lambda _
+ (substitute* "rest-client.gemspec"
+ ;; Remove rubocop as it's unused. Rubocop also indirectly
+ ;; depends on this package through ruby-parser and ruby-ast so
+ ;; this avoids a dependency loop.
+ ((".*rubocop.*") "\n")
+ ;; Remove pry as it's unused, it's a debugging tool
+ ((".*pry.*") "\n")
+ ;; Remove an unnecessarily strict rdoc dependency
+ ((".*rdoc.*") "\n"))))
+ (add-before 'check 'delete-network-dependent-tests
+ (lambda _
+ (delete-file "spec/integration/request_spec.rb")
+ (delete-file "spec/integration/httpbin_spec.rb")))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "rspec")))))))
(propagated-inputs
- (list ruby-http-cookie ruby-mime-types ruby-netrc))
+ (list ruby-http-accept-1
+ ruby-http-cookie
+ ruby-mime-types
+ ruby-netrc))
(native-inputs
- (list bundler ruby-webmock-2 ruby-rspec))
+ (list bundler
+ ruby-webmock-2
+ ruby-rspec))
(synopsis "Simple HTTP and REST client for Ruby")
(description
"@code{rest-client} provides a simple HTTP and REST client for Ruby,
@@ -8513,7 +8937,8 @@ better performance than @code{Regexp} and @code{String} methods from the
(("(.*add_.*dependency '[_A-Za-z0-9-]+').*" _ stripped)
(string-append stripped "\n"))))))))
(native-inputs
- (list ruby-rspec))
+ (list ruby-rspec
+ ruby-sorted-set))
(synopsis "Simple arrays of objects to arrays of ranges compressor")
(description "RangeCompresses is a tiny library that allows compressing
arrays of objects into arrays of ranges. For example, it can turn the
@@ -8781,15 +9206,30 @@ abstraction for Ruby.")
(define-public ruby-benchmark-ips
(package
(name "ruby-benchmark-ips")
- (version "2.8.2")
+ (version "2.12.0")
(source
(origin
- (method url-fetch)
- (uri (rubygems-uri "benchmark-ips" version))
+ (method git-fetch) ;no tests in distributed gem
+ (uri (git-reference
+ (url "https://github.com/evanphx/benchmark-ips")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1n9397j7kh4vvikfann1467qgksc679imlr50hax3lk1q3af8kdw"))))
+ "19pa2a1lgjzrxcz6vxwfiq5qq337vr15bbbpc2mfwzljdlx5059s"))))
(build-system ruby-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch
+ (lambda _
+ (substitute* "Gemfile"
+ (("gem 'rake'.*")
+ "gem 'rake'"))
+ (substitute* "benchmark-ips.gemspec"
+ (("git ls-files -- examples lib")
+ "find examples lib -type f | sort")))))))
(native-inputs
(list ruby-hoe))
(synopsis "Iterations per second enhancement for the Ruby Benchmark module")
@@ -8888,7 +9328,7 @@ top of Faraday.")
(define-public ruby-octokit
(package
(name "ruby-octokit")
- (version "6.1.0")
+ (version "6.1.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -8897,15 +9337,22 @@ top of Faraday.")
(file-name (git-file-name name version))
(sha256
(base32
- "01njrd17bz28mlsa8hi9gad7s6d1d0vpyn0g66p3d42zgplr9qkq"))))
+ "02bcmh0b0v80cis1l80lhzxw8adb69xkz6qgg4m7qcmj3y5arwmk"))))
(build-system ruby-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'remove-unnecessary-dependencies
+ (lambda _
+ (substitute* "spec/spec_helper.rb"
+ (("require 'pry-byebug'") "")))))))
(native-inputs
(list ruby-faraday-multipart
ruby-jwt
ruby-mime-types
ruby-multi-json
ruby-netrc
- ruby-pry-byebug
ruby-rbnacl
ruby-rspec
ruby-simplecov
@@ -8953,33 +9400,42 @@ navigation capabilities to @code{pry}, using @code{byebug}.")
(define-public ruby-stackprof
(package
(name "ruby-stackprof")
- (version "0.2.17")
+ (version "0.2.25")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "stackprof" version))
(sha256
- (base32 "06lz70k8c0r7fyxk1nc3idh14x7nvsr21ydm1bsmbj00jyhmfzsn"))))
+ (base32 "0bhdgfb0pmw9mav1kw9fn0ka012sa0i3h5ppvqssw5xq48nhxnr8"))))
(build-system ruby-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-before 'check 'skip-dubious-test
- (lambda _
- ,@(if (or (target-riscv64?)
- (target-ppc32?))
- ;; This unreliable test can fail with "Expected 32 to be <= 25."
- '((substitute* "test/test_stackprof.rb"
- ((".*assert_operator profile\\[:missed_samples.*") "")))
- ;; This unreliable test can fail with "Expected 0 to be >= 1."
- '((substitute* "test/test_stackprof.rb"
- (("def test_(cputime)" _ name)
- (string-append "def skip_" name)))))))
- (add-before 'check 'build-tests
- (lambda _
- (invoke "rake" "compile"))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'patch-gemspec
+ (lambda _
+ (substitute* "stackprof.gemspec"
+ (("rake-compiler.*")
+ "rake-compiler>.freeze, [\"> 0.9\"])\n")
+ (("mocha.*")
+ "mocha>.freeze, [\"> 0.14\"])\n"))))
+ (add-before 'check 'skip-dubious-test
+ (lambda _
+ (substitute* "test/test_stackprof.rb"
+ ;; This unreliable test can fail with "Expected 0 to be >= 1."
+ (("def test_(cputime)" _ name)
+ (string-append "def skip_" name))
+ ;; This test often fails
+ (("def test_gc") "def skip_test_gc"))))
+ (add-before 'check 'build-tests
+ (lambda _
+ (invoke "rake" "compile")))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "bundle" "exec" "rake" "default")))))))
(native-inputs
- (list ruby-mocha ruby-rake-compiler))
+ (list bundler ruby-mocha-1 ruby-rake-compiler))
(synopsis "Sampling profiler for Ruby code")
(description
"@code{stackprof} is a fast sampling profiler for Ruby code, with cpu,
@@ -9054,7 +9510,7 @@ variable length integers (varint) in Ruby Protocol Buffers.")
(define-public ruby-version-gem
(package
(name "ruby-version-gem")
- (version "1.1.2")
+ (version "1.1.3")
(source (origin
(method git-fetch) ;for tests
(uri (git-reference
@@ -9063,39 +9519,31 @@ variable length integers (varint) in Ruby Protocol Buffers.")
(file-name (git-file-name name version))
(sha256
(base32
- "17y4dydlczd5xvvwfy94x63d5wi14cdkfhi6g94fm1sgsxxzzmq0"))))
+ "1wazx2jr9vx5wm48fy8bccvfwhg7y2s8shfw9q81dhb4yvwk6gbf"))))
(build-system ruby-build-system)
(arguments
- (list #:phases #~(modify-phases %standard-phases
- (add-after 'unpack 'relax-requirements
- (lambda _
- (substitute* "Gemfile"
- (("^linting = .*")
- "linting = false\n")
- (("^coverage = .*")
- "coverage = false\n")
- (("^debug = .*")
- "debug = false\n"))
- (substitute* "spec/spec_helper.rb"
- (("^RUN_COVERAGE = .*")
- "RUN_COVERAGE = false\n")
- (("^ALL_FORMATTERS = .*")
- "ALL_FORMATTERS = false\n"))))
- (add-before 'build 'drop-signing-key-requirement
- (lambda _
- (substitute* "version_gem.gemspec"
- (("spec.signing_key =.*")
- "spec.signing_key = nil"))))
- (add-before 'check 'disable-problematic-tests
- (lambda _
- (substitute* "spec/version_gem/ruby_spec.rb"
- ;; The test validates the minimum version of
- ;; Ruby to be 2.7.7, but because our Ruby is
- ;; 2.7.4 grafted with 2.7.7, the version seen is
- ;; 2.7.4 and it fails.
- (("it 'returns true when current ruby greater \
-than minimum'" all)
- (string-append "x" all))))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'relax-requirements
+ (lambda _
+ (substitute* "Gemfile"
+ (("^linting = .*")
+ "linting = false\n")
+ (("^coverage = .*")
+ "coverage = false\n")
+ (("^debug = .*")
+ "debug = false\n"))
+ (substitute* "spec/spec_helper.rb"
+ (("^RUN_COVERAGE = .*")
+ "RUN_COVERAGE = false\n")
+ (("^ALL_FORMATTERS = .*")
+ "ALL_FORMATTERS = false\n"))))
+ (add-before 'build 'drop-signing-key-requirement
+ (lambda _
+ (substitute* "version_gem.gemspec"
+ (("spec.signing_key =.*")
+ "spec.signing_key = nil")))))))
(native-inputs (list ruby-rspec ruby-rspec-block-is-expected))
(synopsis "Improved @code{Version} module for Ruby")
(description "VersionGem aims to provide introspection of a @code{Version}
@@ -9183,7 +9631,7 @@ Profiling multiple threads simultaneously is supported.
(define-public ruby-ruby-memcheck
(package
(name "ruby-ruby-memcheck")
- (version "1.2.0")
+ (version "1.3.2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -9192,10 +9640,13 @@ Profiling multiple threads simultaneously is supported.
(file-name (git-file-name name version))
(sha256
(base32
- "1sx8nhx7w4z5s5vj6kq6caqsfznswqzwca372j82cd80hf9iznra"))))
+ "0fj4j4d062sw2kx2qlj877gjbj1xbb691njr8x9nbah6615idlni"))))
(build-system ruby-build-system)
(arguments
(list
+ ;; The tests seem to fail on 32bit x86
+ #:tests? (not (or (target-x86-32?)
+ (%current-target-system)))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-valgrind-path
@@ -9564,6 +10015,7 @@ CI environment from environment variables.")
(list ruby-cucumber-compatibility-kit
ruby-nokogiri
ruby-pry
+ ruby-webrick
ruby-rspec))
(synopsis "Describe automated tests in plain language")
(description "Cucumber is a tool for running automated tests written in
@@ -9814,28 +10266,38 @@ is an infix boolean expression used by Cucumber.")
(home-page "https://github.com/cucumber/tag-expressions")
(license license:expat)))
-(define-public ruby-bindex
+(define-public ruby-skiptrace
(package
- (name "ruby-bindex")
- (version "0.5.0")
+ (name "ruby-skiptrace")
+ (version "0.8.1")
(source
(origin
(method url-fetch)
- (uri (rubygems-uri "bindex" version))
+ (uri (rubygems-uri "skiptrace" version))
(sha256
(base32
- "1wvhf4v8sk5x8li03pcc0v0wglmyv7ikvvg05bnms83dfy7s4k8i"))))
+ "1qpjy6pqd8hx4w7bai64jsr10mwbpnnb65wcbssyqcnalimi1s12"))))
(build-system ruby-build-system)
(arguments
- '(#:test-target "default"))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'remove-git-from-gemspec
+ (lambda _
+ (substitute* "skiptrace.gemspec"
+ (("`git ls-files -z`") "`find . -type f -print0 |sort -z`"))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "bundle" "exec" "rake" "default")))))))
(native-inputs
(list bundler ruby-rake-compiler))
(synopsis "Provides access for bindings relating to Ruby exceptions")
(description
- "@code{bindex} provides a way to access the bindings that relate to
+ "@code{skiptrace} provides a way to access the bindings that relate to
exceptions in Ruby, providing more information about the context in which the
exception occurred.")
- (home-page "https://github.com/gsamokovarov/bindex")
+ (home-page "https://github.com/gsamokovarov/skiptrace")
(license license:expat)))
(define-public ruby-bio-logger
@@ -9898,7 +10360,7 @@ A modified copy of yajl is used, and included in the package.")
(define-public ruby-yard
(package
(name "ruby-yard")
- (version "0.9.25")
+ (version "0.9.34")
(source
(origin
(method git-fetch)
@@ -9909,20 +10371,42 @@ A modified copy of yajl is used, and included in the package.")
(file-name (git-file-name name version))
(sha256
(base32
- "1x7y4s557hrnq439lih7nqg1y7ximardw75jx9i92x3yzpviqqwa"))))
+ "10jq0hyzyy0d6l63jxld32g36fhrclkb3rwnyp47igcik73kbagb"))))
(build-system ruby-build-system)
(arguments
- ;; Note: Tests are willfully disabled to alleviate dependency cycle
- ;; problems.
- `(#:tests? #f
- #:phases (modify-phases %standard-phases
- (add-after 'unpack 'do-not-set-date-in-gemspec
- ;; Fix a reproducibility issue (see:
- ;; https://github.com/lsegal/yard/issues/1343).
- (lambda _
- (substitute* "yard.gemspec"
- ((".*s\\.date.*") ""))
- #t)))))
+ (list
+ #:test-target "default"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'do-not-set-date-in-gemspec
+ ;; Fix a reproducibility issue (see:
+ ;; https://github.com/lsegal/yard/issues/1343).
+ (lambda _
+ (substitute* "yard.gemspec"
+ ((".*s\\.date.*") ""))))
+ (add-before 'check 'prepare-for-tests
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (substitute* "Rakefile"
+ ((".*[Ss]amus.*") ""))
+ ;; Delete the Gemfile to avoid errors relating to it.
+ (delete-file "Gemfile")
+ ;; $HOME needs to be set to somewhere writeable for tests to
+ ;; run.
+ (setenv "HOME" "/tmp")
+ ;; This test fails
+ ;; #<File (class)> received :open with unexpected arguments
+ ;; expected: ("gem1.gem", "rb")
+ ;; got: ("/gnu/store/.../lib/ruby/vendor_ruby/specifications/asciidoctor-2.0.18.gemspec", "r:UTF-8:-")
+ (substitute* "spec/cli/diff_spec.rb"
+ (("it \"searches for .gem file")
+ "xit \"searches for .gem file"))))))))
+ (native-inputs
+ (list ruby-rspec
+ ruby-rack
+ ruby-redcloth
+ ruby-webrick
+ ruby-asciidoctor/minimal))
(synopsis "Documentation generation tool for Ruby")
(description "YARD is a documentation generation tool for the Ruby
programming language. It enables the user to generate consistent, usable
@@ -9932,27 +10416,15 @@ definitions.")
(home-page "https://yardoc.org")
(license license:expat)))
-(define-public ruby-yard-with-tests
- (package
- (inherit ruby-yard)
- (name "ruby-yard-with-tests")
- (arguments
- (substitute-keyword-arguments
- (strip-keyword-arguments '(#:tests?) (package-arguments ruby-yard))
- ((#:test-target _ "default") "default")
- ((#:phases phases '%standard-phases)
- `(modify-phases ,phases
- (add-before 'check 'prepare-for-tests
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (substitute* "Rakefile"
- ((".*[Ss]amus.*") ""))
- ;; Delete the Gemfile to avoid errors relating to it.
- (delete-file "Gemfile")
- ;; $HOME needs to be set to somewhere writeable for tests to
- ;; run.
- (setenv "HOME" "/tmp"))))))))
- (native-inputs (list ruby-rspec ruby-rack ruby-redcloth ruby-asciidoctor))))
+(define-public ruby-yard/minimal
+ (hidden-package
+ (package
+ (inherit ruby-yard)
+ (arguments
+ (ensure-keyword-arguments
+ (package-arguments ruby-yard)
+ (list #:tests? #f)))
+ (native-inputs '()))))
(define-public ruby-spectroscope
(package
@@ -10308,14 +10780,14 @@ look up the likely MIME type definitions.")
(define-public ruby-mime-types
(package
(name "ruby-mime-types")
- (version "3.1")
+ (version "3.4.1")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "mime-types" version))
(sha256
(base32
- "0087z9kbnlqhci7fxh9f6il63hj1k02icq2rs0c6cppmqchr753m"))))
+ "0ipw892jbksbxxcrlx9g5ljq60qx47pm24ywgfbyjskbcl78pkvb"))))
(build-system ruby-build-system)
(propagated-inputs
(list ruby-mime-types-data))
@@ -10323,7 +10795,6 @@ look up the likely MIME type definitions.")
(list ruby-hoe
ruby-fivemat
ruby-minitest-focus
- ruby-minitest-rg
ruby-minitest-bonus-assertions
ruby-minitest-hooks))
(synopsis "Library and registry for MIME content type definitions")
@@ -10413,25 +10884,40 @@ neither too verbose nor too minimal.")
(define-public ruby-sqlite3
(package
(name "ruby-sqlite3")
- (version "1.4.4")
+ (version "1.6.3")
(source
(origin
- (method url-fetch)
- (uri (rubygems-uri "sqlite3" version))
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://github.com/sparklemotion/sqlite3-ruby")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1z1wa639c278bsipczn6kv8b13fj85pi8gk7x462chqx6k0wm0ax"))))
+ "0ijj8z8fpk2lczydkxv71k250g5gd8ip8klsscxc9f16b01gh9qs"))))
(build-system ruby-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-before 'check 'add-gemtest-file
- ;; This file exists in the repository but is not distributed.
- (lambda _ (invoke "touch" ".gemtest"))))))
+ (list
+ #:gem-flags #~(list "--" "--enable-system-libraries")
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'check)
+ (add-after 'install 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (setenv "GEM_PATH"
+ (string-append (getenv "GEM_PATH") ":"
+ #$output "/lib/ruby/vendor_ruby"))
+ (invoke "rake" "test")))))))
+ (propagated-inputs
+ (list ruby-mini-portile-2))
(inputs
(list sqlite))
(native-inputs
- (list ruby-hoe ruby-rake-compiler ruby-mini-portile-2))
+ (list ruby-hoe
+ ruby-ruby-memcheck
+ ruby-rake-compiler
+ ruby-rake-compiler-dock))
(synopsis "Interface with SQLite3 databases")
(description
"This module allows Ruby programs to interface with the SQLite3 database
@@ -10992,35 +11478,87 @@ defined in a @file{.env} file.")
defined in a @file{.env} file. This is the Rails variant, adapted for use
with Ruby on Rails projects.")))
+(define-public ruby-http-accept
+ (package
+ (name "ruby-http-accept")
+ (version "2.2.0")
+ (source (origin
+ (method git-fetch) ;for the tests
+ (uri (git-reference
+ (url "https://github.com/socketry/http-accept")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1d69cy12hqbcqrhw4dibvdq5pqklxsa59kih6pzl479nxq79rgs7"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'remove-missing-key-directive
+ ;; This seem to be a common problem in Ruby projects (see:
+ ;; https://github.com/prawnpdf/ttfunk/issues/99).
+ (lambda _
+ (substitute* "http-accept.gemspec"
+ ((".*spec.signing_key.*") ""))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "rspec")))))))
+ (native-inputs
+ (list ruby-rspec
+ ruby-covered))
+ (synopsis "Parse Accept and Accept-Language HTTP headers")
+ (description
+ "This package provides a set of parsers for Accept and Accept-Language
+HTTP headers.")
+ (home-page "https://github.com/socketry/http-accept")
+ (license license:expat)))
+
+(define-public ruby-http-accept-1
+ (package
+ (inherit ruby-http-accept)
+ (version "1.7.0")
+ (source (origin
+ (method git-fetch) ;for the tests
+ (uri (git-reference
+ (url "https://github.com/ioquatix/http-accept")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "ruby-http-accept" version))
+ (sha256
+ (base32
+ "1hnqmqpa135s3xgcvv30qzqm8zp88my1aj05m72d2q9cvc31g92z"))))))
+
(define-public ruby-http-cookie
(package
(name "ruby-http-cookie")
- (version "1.0.3")
+ (version "1.0.5")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "http-cookie" version))
(sha256
(base32
- "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g"))))
+ "13rilvlv8kwbzqfb644qp6hrbsj82cbqmnzcvqip1p6vqx36sxbk"))))
(build-system ruby-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-before 'check 'add-dependency-to-bundler
- (lambda _
- ;; Fix NameError
- (substitute* "Rakefile"
- (("HTTP::Cookie::VERSION")
- "Bundler::GemHelper.gemspec.version"))
- #t)))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'add-dependency-to-bundler
+ (lambda _
+ ;; Fix NameError
+ (substitute* "Rakefile"
+ (("HTTP::Cookie::VERSION")
+ "Bundler::GemHelper.gemspec.version")))))))
(propagated-inputs
(list ruby-domain-name))
(native-inputs
- `(("rubysimplecov" ,ruby-simplecov)
- ("bundler" ,bundler)
- ("ruby-sqlite3" ,ruby-sqlite3)
- ("ruby-test-unit" ,ruby-test-unit)))
+ (list ruby-simplecov
+ bundler
+ ruby-sqlite3
+ ruby-test-unit))
(synopsis "Handle HTTP Cookies based on RFC 6265")
(description
"@code{HTTP::Cookie} is a Ruby library to handle HTTP Cookies based on
@@ -11171,6 +11709,33 @@ secure hash algorithm for hashing passwords.")
(home-page "https://github.com/bcrypt-ruby/bcrypt-ruby")
(license license:expat)))
+(define-public ruby-bcrypt-pbkdf
+ (package
+ (name "ruby-bcrypt-pbkdf")
+ (version "1.1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "bcrypt_pbkdf" version))
+ (sha256
+ (base32
+ "0ndamfaivnkhc6hy0yqyk2gkwr6f3bz6216lh74hsiiyk3axz445"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list #:phases #~(modify-phases %standard-phases
+ (add-before 'build 'compile
+ (lambda _
+ (invoke "rake" "compile"))))))
+ (native-inputs (list ruby-minitest ruby-rake-compiler
+ ruby-rake-compiler-dock ruby-rdoc))
+ (synopsis "Reading password encrypted Ed25519 keys in Ruby")
+ (description
+ "This gem implements @samp{bcrypt_pbkdf}, which is a variant of
+PBKDF2 (Password-Based Key Derivation Function 2) with bcrypt-based
+pseudorandom function. This is currently used by @samp{net-ssh} to
+read password encrypted Ed25519 keys.")
+ (home-page "https://github.com/net-ssh/bcrypt_pbkdf-ruby")
+ (license license:expat)))
+
(define-public ruby-bio-commandeer
(package
(name "ruby-bio-commandeer")
@@ -11574,7 +12139,7 @@ part of the Prawn PDF generator.")
(define-public ruby-puma
(package
(name "ruby-puma")
- (version "6.2.0")
+ (version "6.3.0")
(source
(origin
(method git-fetch) ;for tests
@@ -11584,17 +12149,23 @@ part of the Prawn PDF generator.")
(file-name (git-file-name name version))
(sha256
(base32
- "0d71h5ggvfgnxq9msd1hmcz3s8mspzf7kqas1hzr0w9pfafddyv3"))))
+ "0qnayzgyr23w87jc849r00394hv1gw2rk9080nws43ilnycagzxq"))))
(build-system ruby-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-Gemfile
+ (lambda _
+ (substitute* "Gemfile"
+ (("gem \"rake-compiler\".*")
+ "gem 'rake-compiler'\n"))))
(add-after 'unpack 'disable-rubocop
(lambda _
(setenv "PUMA_NO_RUBOCOP" "1")))
(add-after 'unpack 'use-rack-2
(lambda _
+ (setenv "PUMA_CI_RACK" "rack2")
(setenv "PUMA_CI_RACK_2" "1")))
(add-before 'build 'increase-resource-limits
(lambda _
@@ -11707,7 +12278,7 @@ or JRuby.")
"10jmmbjm0lkglwxbn4rpqghgg1ipjxrswm117n50adhmy8yij650"))))
(build-system ruby-build-system)
(propagated-inputs
- (list ruby-hoe))
+ (list ruby-hoe-3))
(synopsis "Hoe plugins for tighter Git integration")
(description
"This package provides a set of Hoe plugins for tighter Git integration.
@@ -11774,25 +12345,29 @@ associated records.")
(define-public ruby-timecop
(package
(name "ruby-timecop")
- (version "0.9.1")
+ (version "0.9.6")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "timecop" version))
(sha256
(base32
- "0d7mm786180v4kzvn1f77rhfppsg5n0sq2bdx63x9nv114zm8jrp"))))
+ "0dlx4gx0zh836i7nzna03xdl7fc233s5z6plnr6k3kw46ah8d1fc"))))
(build-system ruby-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-before 'check 'set-check-rubylib
- (lambda _
- ;; Set RUBYLIB so timecop tests finds its own lib.
- (setenv "RUBYLIB" "lib")
- #t)))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'set-check-rubylib
+ (lambda _
+ ;; Set RUBYLIB so timecop tests finds its own lib.
+ (setenv "RUBYLIB" "lib"))))))
(native-inputs
- (list bundler ruby-minitest-rg ruby-mocha ruby-activesupport))
+ (list bundler
+ ruby-minitest-rg
+ ruby-mocha
+ ruby-activesupport
+ ruby-pry))
(synopsis "Test mocks for time-dependent functions")
(description
"Timecop provides \"time travel\" and \"time freezing\" capabilities,
@@ -11941,7 +12516,8 @@ libraries for compiling Ruby native extensions.")
"1nq859b0gh2vjhvl1qh1zrk09pc7p54r9i6nnn6sb06iv07db2jb"))))
(build-system ruby-build-system)
(native-inputs
- (list ruby-hoe))
+ (list ruby-hoe
+ ruby-minitest))
(synopsis "RFC 2617 HTTP digest authentication library")
(description
"This library implements HTTP's digest authentication scheme based on
@@ -12247,7 +12823,7 @@ programs running in the background, in Ruby.")
(("RuboCop::RakeTask\\.new") ""))
#t)))))
(native-inputs
- (list bundler ruby-yard ruby-mocha ruby-minitest-reporters))
+ (list bundler ruby-yard/minimal ruby-mocha ruby-minitest-reporters))
(home-page "https://simonecarletti.com/code/publicsuffix-ruby/")
(synopsis "Domain name parser")
(description "The gem @code{public_suffix} is a domain name parser,
@@ -12294,7 +12870,7 @@ all known public suffixes.")
ruby-rspec-its-minimal
ruby-simplecov
ruby-sporkmonger-rack-mount
- ruby-yard))
+ ruby-yard/minimal))
(propagated-inputs
(list ruby-public-suffix))
(home-page "https://github.com/sporkmonger/addressable")
@@ -12401,14 +12977,14 @@ your application.")
(define-public ruby-kpeg
(package
(name "ruby-kpeg")
- (version "1.1.0")
+ (version "1.3.3")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "kpeg" version))
(sha256
(base32
- "0x2kpfrcagj931masm5y1kwbnc6nxl60cqdcd3lyd1d2hz7kzlia"))))
+ "0jxddpyb23digcd8b1b02gn94057a7mw17680c3c8s3bcb5xqfnp"))))
(build-system ruby-build-system)
(native-inputs
(list ruby-hoe))
@@ -12424,7 +13000,7 @@ technique.")
(define-public ruby-rdoc
(package
(name "ruby-rdoc")
- (version "6.2.0")
+ (version "6.5.0")
(source
(origin
(method git-fetch)
@@ -12434,7 +13010,7 @@ technique.")
(file-name (git-file-name name version))
(sha256
(base32
- "0dhk29nidv93b5vnjvlm9gcixgn4i0jcyzrgxdk6pdg019bw4cj6"))))
+ "06dcjs4s2phvg9bq42mlfqv4c4zpdr8w7aq107lm2q0qqqw7xjlr"))))
(build-system ruby-build-system)
(arguments
`(#:phases
@@ -12485,20 +13061,35 @@ about the changes.")
(define-public ruby-terminfo
(package
(name "ruby-terminfo")
- (version "0.1.1")
+ (version "0.2")
(source
(origin
(method url-fetch)
- (uri (rubygems-uri "ruby-terminfo" version))
+ (uri (string-append
+ "http://www.a-k-r.org/" name "/" name "-" version ".tar.gz"))
(sha256
(base32
- "0rl4ic5pzvrpgd42z0c1s2n3j39c9znksblxxvmhkzrc0ckyg2cm"))))
+ "1n59dw351z6nzylgj0gpx4rpz6qhf8lrhzcbp1xqfpqvryhaxrjh"))))
(build-system ruby-build-system)
(arguments
- `(#:test-target "test"
- ;; Rakefile requires old packages and would need modification to
- ;; work with current software.
- #:tests? #f))
+ (list
+ #:test-target "test"
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'replace-git-ls-files)
+ (replace 'build
+ (lambda _
+ (invoke "ruby" "extconf.rb")
+ (invoke "make")))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (for-each (lambda (f)
+ (invoke "ruby" "-I" "test" f))
+ (find-files "test" "^test_.*\\.rb$")))))
+ (replace 'install
+ (lambda _
+ (invoke "make" "install" (string-append "prefix=" #$output)))))))
(inputs
(list ncurses))
(native-inputs
@@ -12546,20 +13137,20 @@ strings or files.")
(base32 "1zsw66830w0xlc7kxz6fm4b5nyb44vdsdgm9mgy06s5aixx83pwr"))))
(build-system ruby-build-system)
(propagated-inputs
- `(("ruby-command-line-reporter-3" ,ruby-command-line-reporter-3)
- ("ruby-diffy" ,ruby-diffy)
- ("ruby-terminfo" ,ruby-terminfo)))
+ (list ruby-command-line-reporter-3
+ ruby-diffy))
(arguments
- `(;; 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")))))))
+ (list
+ ;; 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")))))))
(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
@@ -12569,14 +13160,19 @@ the @file{spec} directory.")
(define-public ruby-sass
(package
(name "ruby-sass")
- (version "3.6.0")
- (source (origin
- (method url-fetch)
- (uri (rubygems-uri "sass" version))
- (sha256
- (base32
- "18c6prbw9wl8bqhb2435pd9s0lzarl3g7xf8pmyla28zblvwxmyh"))))
+ (version "3.7.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sass/ruby-sass")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "03215h9jkni3l9w6lq28p8adaj3qzb47qgxd20l6kldjnm1a1yky"))))
(build-system ruby-build-system)
+ (arguments
+ (list #:test-target "test:ruby"))
(propagated-inputs
(list ruby-sass-listen))
(native-inputs
@@ -13271,7 +13867,7 @@ hashes more powerful.")
"14ijr2fsjwhrkjkcaz81d5xnfa4vvgvcflrff83avqw9klm011yw"))))
(build-system ruby-build-system)
(native-inputs
- (list ruby-hoe))
+ (list ruby-hoe-3))
(home-page "https://github.com/adrianomitre/heredoc_unindent")
(synopsis "Heredoc indentation cleaner")
(description "This gem removes common margin from indented strings, such
@@ -13303,17 +13899,18 @@ indentation will probably be an issue and hence this gem.")
(native-inputs
(list ruby-rspec ruby-hashie 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)))))
+ (list
+ #:ruby ruby-2.7
+ #: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"))))))
(home-page "https://github.com/dtao/safe_yaml")
(synopsis "YAML parser")
(description "The SafeYAML gem provides an alternative implementation of
@@ -13950,6 +14547,10 @@ for scalable network clients and servers.")
(list
#:phases
#~(modify-phases %standard-phases
+ (add-after 'unpack 'remove-unnecessary-dependencies
+ (lambda _
+ (substitute* "Gemfile"
+ (("gem \"pry-byebug\"") ""))))
(replace 'replace-git-ls-files
(lambda _
(substitute* "language_server-protocol.gemspec"
@@ -13962,8 +14563,7 @@ for scalable network clients and servers.")
ruby-benchmark-ips
ruby-m
ruby-minitest
- ruby-minitest-power-assert
- ruby-pry-byebug))
+ ruby-minitest-power-assert))
(synopsis "Language Server Protocol (LSP) development kit for Ruby")
(description "This package provides a Language Server Protocol (LSP)
development kit for Ruby.")
@@ -13985,6 +14585,10 @@ development kit for Ruby.")
(list #:phases #~(modify-phases %standard-phases
(add-after 'extract-gemspec 'relax-requirements
(lambda _
+ (substitute* "spy.gemspec"
+ ((".*pry-byebug.*") ""))
+ (substitute* "test/test_helper.rb"
+ ((".*pry-byebug.*") ""))
(substitute* "Gemfile"
((".*redcarpet.*") "")
((".*yard.*") "")))))))
@@ -13992,7 +14596,6 @@ development kit for Ruby.")
(list ruby-coveralls
ruby-minitest-reporters
ruby-pry
- ruby-pry-byebug
ruby-rspec-core
ruby-rspec-expectations))
(synopsis "Mocking library for Ruby")
@@ -14153,7 +14756,6 @@ can be used to build formatters, linters, language servers, and more.")
ruby-rubocop-performance
ruby-concurrent-ruby
ruby-pry
- ruby-pry-byebug
ruby-parser
ruby-subprocess))
(synopsis "Runtime type checking component for Sorbet")
@@ -14588,27 +15190,27 @@ is also included.")
(define-public swagger-diff
(package
(name "swagger-diff")
- (version "1.1.2")
+ (version "2.0.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "swagger-diff" version))
(sha256
(base32
- "1hxx50nga1bqn254iqjcdwkc9c72364ks9lyjyw10ajz0l0ly7sn"))))
+ "18kbrijkafs3vfsbaqz0cqfj7jrz3aj8xr4fgn5if63wlximybv2"))))
(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-json-schema))
(native-inputs
@@ -15719,29 +16321,36 @@ HTTPS server, a proxy server, and a virtual-host server.")
(license license:bsd-2)))
(define-public ruby-websocket
- (package
- (name "ruby-websocket")
- (version "1.2.9")
- (source (origin
- (method url-fetch)
- (uri (rubygems-uri "websocket" version))
- (sha256
- (base32
- "0dib6p55sl606qb4vpwrvj5wh881kk4aqn2zpfapf8ckx7g14jw8"))))
- (build-system ruby-build-system)
- (arguments (list #:test-target "spec"
- #:phases #~(modify-phases %standard-phases
- (add-after 'unpack 'disable-rubocop
- (lambda _
- (substitute* "Rakefile"
- (("require 'rubocop/rake_task'") "")
- (("RuboCop::RakeTask.new") "")))))))
- (native-inputs (list ruby-rspec))
- (synopsis "WebSocket protocol Ruby library")
- (description "This package provides a Ruby library to handle the WebSocket
+ (let ((commit "950e416a19a76c7e6a673a7e5baa6283476dbec1")
+ (revision "1"))
+ (package
+ (name "ruby-websocket")
+ (version (git-version "1.2.9" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/imanel/websocket-ruby")
+ (commit commit)))
+ (sha256
+ (base32
+ "1i6r0glpxy47zdf76aqgcpjgcgydla0733hfdhp628pmrinnkgwv"))
+ (file-name (git-file-name name version))))
+ (build-system ruby-build-system)
+ (arguments (list #:test-target "spec"
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'disable-rubocop
+ (lambda _
+ (substitute* "Rakefile"
+ (("require 'rubocop/rake_task'") "")
+ (("RuboCop::RakeTask.new") "")))))))
+ (native-inputs
+ (list ruby-rspec
+ ruby-webrick))
+ (synopsis "WebSocket protocol Ruby library")
+ (description "This package provides a Ruby library to handle the WebSocket
protocol.")
- (home-page "https://github.com/imanel/websocket-ruby")
- (license license:expat)))
+ (home-page "https://github.com/imanel/websocket-ruby")
+ (license license:expat))))
(define-public ruby-interception
(package
@@ -15795,7 +16404,7 @@ any unhandled exceptions.")
(define-public ruby-braintree
(package
(name "ruby-braintree")
- (version "4.10.0")
+ (version "4.12.0")
(source
(origin
(method git-fetch) ;for tests
@@ -15804,27 +16413,30 @@ any unhandled exceptions.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "01b5bp8q038ray5wwg3qhg4hj3r5a48vnfzs3gxkdjm5ky6bmn4p"))))
+ (base32 "0gfgkymy3655drwgs42bj9ap9qib1l30sajxmypmp6s75m9w3gsh"))))
(build-system ruby-build-system)
(arguments
- `(#:test-target "test:unit"
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'disable-rubocop
- (lambda _
- (substitute* "Rakefile"
- (("sh \"rubocop\"") ""))))
- (add-after 'unpack 'relax-requirements
- (lambda _
- (substitute* "Gemfile"
- (("gem \"libxml-ruby\", \"3.2.0\"")
- "gem \"libxml-ruby\", \"~> 3.0.0\"")
- (("gem \"rspec\", \"3.9.0\"")
- "gem \"rspec\", \">= 3.9.0\"")
- (("gem \"webrick\", \"~>1.7.0\"")
- "gem \"webrick\", \">=1.7.0\"")
- ((".*gem \"rubocop\".*") "")
- ((".*gem \"rspec_junit_formatter\".*") "")))))))
+ (list
+ #:test-target "test:unit"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'disable-rubocop
+ (lambda _
+ (substitute* "Rakefile"
+ (("sh \"rubocop\"") ""))))
+ (add-after 'unpack 'relax-requirements
+ (lambda _
+ (substitute* "Gemfile"
+ (("gem \"pry\".*") "gem 'pry'\n")
+ (("gem \"rake\".*") "gem 'rake'\n")
+ (("gem \"libxml-ruby\", \"3.2.0\"")
+ "gem \"libxml-ruby\", \"~> 3.0.0\"")
+ (("gem \"rspec\", \"3.9.0\"")
+ "gem \"rspec\", \">= 3.9.0\"")
+ (("gem \"webrick\", \"~>1.7.0\"")
+ "gem \"webrick\", \">=1.7.0\"")
+ ((".*gem \"rubocop\".*") "")
+ ((".*gem \"rspec_junit_formatter\".*") "")))))))
(native-inputs
(list ruby-libxml
ruby-pry
@@ -15906,24 +16518,23 @@ and Nokogiri.")
(define-public ruby-wapiti
(package
(name "ruby-wapiti")
- (version "2.0.0")
+ (version "2.1.0")
;; the gem archive lacks tests
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/inukshuk/wapiti-ruby")
- (commit version)))
+ (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "1kawqw45j7mqk5zmwbn67x1vxiapdgm2ypqqz2bs9l5s7nglzr5b"))))
+ "1273dqvn6flq2qv9qbp104rgc7zp1gqx4096s0v0z5f0qnhzc7d6"))))
(build-system ruby-build-system)
(propagated-inputs
(list ruby-builder
ruby-rexml))
(native-inputs
- (list ruby-byebug
- ruby-pry
+ (list ruby-pry
ruby-rake-compiler
ruby-rspec
ruby-simplecov))
@@ -16003,6 +16614,7 @@ parts (e.g., given and family names, honorifics etc.).")
(arguments
;; thanks to the Gentoo packagers for figuring this out
(list
+ #:ruby ruby-2.7
#:phases
#~(modify-phases %standard-phases
(add-after 'extract-gemspec 'fix-tests
@@ -16184,8 +16796,7 @@ markdown syntax document and passes the Markdown 1.0 test suite.")
ruby-rdf
ruby-rdf-vocab))
(native-inputs
- (list ruby-byebug
- ruby-cucumber
+ (list ruby-cucumber
ruby-minitest
ruby-yard))
(arguments
@@ -16255,6 +16866,57 @@ process citations, a dedicated processor engine is required: a pure Ruby
engine is available in the @code{citeproc-ruby} gem.")
(license (list license:agpl3+ license:bsd-2))))
+(define-public ruby-ed25519
+ (package
+ (name "ruby-ed25519")
+ (version "1.3.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/RubyCrypto/ed25519")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1jm5w2dyhyrndcx0d02v0gjbzl1abhbx2wkp3gxzwcndghmkz98r"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:test-target "spec"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'compile
+ (lambda _
+ (invoke "rake" "compile")))
+ (add-after 'unpack 'remove-unnecessary-dependencies
+ (lambda _
+ ;; Coveralls relates to a network service, and RuboCop to code
+ ;; linting and both are unnecessary to run the tests
+ (substitute* "Gemfile"
+ ((".*coveralls.*")
+ "\n")
+ ((".*rubocop.*")
+ "\n"))
+ (substitute* "spec/spec_helper.rb"
+ (("require \"coveralls\"")
+ "")
+ (("Coveralls.wear!")
+ ""))
+ (substitute* "Rakefile"
+ (("require \"rubocop/rake_task\"")
+ "")
+ (("RuboCop::RakeTask.new")
+ "")))))))
+ (native-inputs (list ruby-rake-compiler ruby-rspec))
+ (synopsis
+ "Ruby binding to the Ed25519 elliptic curve public-key signature system")
+ (description
+ "This package provides a Ruby binding to the Ed25519 elliptic curve
+public-key signature system described in
+@url{https://www.ietf.org/rfc/rfc8032.txt, RFC 8032}.")
+ (home-page "https://github.com/RubyCrypto/ed25519")
+ (license license:expat)))
+
(define-public ruby-edtf
(package
(name "ruby-edtf")