summaryrefslogtreecommitdiff
path: root/dev-ruby
diff options
context:
space:
mode:
Diffstat (limited to 'dev-ruby')
-rw-r--r--dev-ruby/actioncable/actioncable-7.0.4.3.ebuild2
-rw-r--r--dev-ruby/actionmailbox/actionmailbox-7.0.4.3.ebuild2
-rw-r--r--dev-ruby/actiontext/actiontext-7.0.4.3.ebuild2
-rw-r--r--dev-ruby/activestorage/activestorage-7.0.4.3.ebuild2
-rw-r--r--dev-ruby/ae/ae-1.8.2-r1.ebuild6
-rw-r--r--dev-ruby/ansi/ansi-1.5.0-r2.ebuild (renamed from dev-ruby/ansi/ansi-1.5.0-r1.ebuild)5
-rw-r--r--dev-ruby/async-container/async-container-0.16.12-r1.ebuild42
-rw-r--r--dev-ruby/async-io/async-io-1.34.3-r1.ebuild36
-rw-r--r--dev-ruby/async-process/Manifest1
-rw-r--r--dev-ruby/async-process/async-process-1.3.1.ebuild37
-rw-r--r--dev-ruby/async-process/metadata.xml10
-rw-r--r--dev-ruby/async-rspec/async-rspec-1.16.1-r1.ebuild38
-rw-r--r--dev-ruby/async/Manifest1
-rw-r--r--dev-ruby/async/async-2.2.1.ebuild7
-rw-r--r--dev-ruby/async/async-2.5.0.ebuild43
-rw-r--r--dev-ruby/brass/brass-1.2.1-r1.ebuild8
-rw-r--r--dev-ruby/coffee-rails/coffee-rails-5.0.0-r2.ebuild (renamed from dev-ruby/coffee-rails/coffee-rails-5.0.0-r1.ebuild)13
-rw-r--r--dev-ruby/console/console-1.16.2-r1.ebuild42
-rw-r--r--dev-ruby/console/files/console-1.16.2-tests.patch155
-rw-r--r--dev-ruby/io-event/io-event-1.1.7.ebuild2
-rw-r--r--dev-ruby/lemon/lemon-0.9.1-r1.ebuild9
-rw-r--r--dev-ruby/localhost/Manifest1
-rw-r--r--dev-ruby/localhost/localhost-1.1.10.ebuild39
-rw-r--r--dev-ruby/loquacious/loquacious-1.9.1-r4.ebuild5
-rw-r--r--dev-ruby/net-http-persistent/Manifest1
-rw-r--r--dev-ruby/net-http-persistent/net-http-persistent-4.0.2.ebuild33
-rw-r--r--dev-ruby/nio4r/Manifest1
-rw-r--r--dev-ruby/nio4r/nio4r-2.5.8.ebuild4
-rw-r--r--dev-ruby/nio4r/nio4r-2.5.9.ebuild31
-rw-r--r--dev-ruby/patron/patron-0.13.3-r2.ebuild40
-rw-r--r--dev-ruby/pcaprub/pcaprub-0.13.1.ebuild3
-rw-r--r--dev-ruby/qed/qed-2.9.2-r1.ebuild8
-rw-r--r--dev-ruby/rack-cache/files/rack-cache-1.13.0-mocha2.patch20
-rw-r--r--dev-ruby/rack-cache/files/rack-cache-1.13.0-test-require.patch28
-rw-r--r--dev-ruby/rack-cache/rack-cache-1.13.0-r1.ebuild51
-rw-r--r--dev-ruby/rails-dom-testing/rails-dom-testing-2.0.3-r2.ebuild4
-rw-r--r--dev-ruby/rails-html-sanitizer/rails-html-sanitizer-1.5.0.ebuild3
-rw-r--r--dev-ruby/rails/rails-7.0.4.3.ebuild2
-rw-r--r--dev-ruby/rb-readline/rb-readline-0.5.5-r1.ebuild6
-rw-r--r--dev-ruby/rubytest/rubytest-0.8.1-r1.ebuild5
-rw-r--r--dev-ruby/rubyzip/rubyzip-2.3.2-r1.ebuild2
-rw-r--r--dev-ruby/shoulda-matchers/shoulda-matchers-5.3.0.ebuild2
-rw-r--r--dev-ruby/slim/slim-4.1.0-r4.ebuild (renamed from dev-ruby/slim/slim-4.1.0-r3.ebuild)7
-rw-r--r--dev-ruby/slim/slim-5.1.0-r1.ebuild (renamed from dev-ruby/slim/slim-5.1.0.ebuild)3
-rw-r--r--dev-ruby/sprockets/files/sprockets-3.7.2-ruby31-host-uri.patch65
-rw-r--r--dev-ruby/sprockets/sprockets-3.7.2-r3.ebuild65
-rw-r--r--dev-ruby/sus-fixtures-async/Manifest1
-rw-r--r--dev-ruby/sus-fixtures-async/files/sus-fixtures-async-0.1.1-tests-require.patch43
-rw-r--r--dev-ruby/sus-fixtures-async/metadata.xml10
-rw-r--r--dev-ruby/sus-fixtures-async/sus-fixtures-async-0.1.1.ebuild37
50 files changed, 934 insertions, 49 deletions
diff --git a/dev-ruby/actioncable/actioncable-7.0.4.3.ebuild b/dev-ruby/actioncable/actioncable-7.0.4.3.ebuild
index cfbbeb23ae85..a766b8129b22 100644
--- a/dev-ruby/actioncable/actioncable-7.0.4.3.ebuild
+++ b/dev-ruby/actioncable/actioncable-7.0.4.3.ebuild
@@ -23,7 +23,7 @@ SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz
LICENSE="MIT"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
IUSE=""
RUBY_S="rails-${PV}/${PN}"
diff --git a/dev-ruby/actionmailbox/actionmailbox-7.0.4.3.ebuild b/dev-ruby/actionmailbox/actionmailbox-7.0.4.3.ebuild
index 887ad756d590..d99b51207331 100644
--- a/dev-ruby/actionmailbox/actionmailbox-7.0.4.3.ebuild
+++ b/dev-ruby/actionmailbox/actionmailbox-7.0.4.3.ebuild
@@ -20,7 +20,7 @@ SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz
LICENSE="MIT"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
IUSE=""
RUBY_S="rails-${PV}/${PN}"
diff --git a/dev-ruby/actiontext/actiontext-7.0.4.3.ebuild b/dev-ruby/actiontext/actiontext-7.0.4.3.ebuild
index 00f3788c9c82..b0617b74cdfa 100644
--- a/dev-ruby/actiontext/actiontext-7.0.4.3.ebuild
+++ b/dev-ruby/actiontext/actiontext-7.0.4.3.ebuild
@@ -20,7 +20,7 @@ SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz
LICENSE="MIT"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
IUSE=""
RUBY_S="rails-${PV}/${PN}"
diff --git a/dev-ruby/activestorage/activestorage-7.0.4.3.ebuild b/dev-ruby/activestorage/activestorage-7.0.4.3.ebuild
index 9224b5386d8f..901b4d713f49 100644
--- a/dev-ruby/activestorage/activestorage-7.0.4.3.ebuild
+++ b/dev-ruby/activestorage/activestorage-7.0.4.3.ebuild
@@ -23,7 +23,7 @@ SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz
LICENSE="MIT"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
IUSE=""
RUBY_S="rails-${PV}/${PN}"
diff --git a/dev-ruby/ae/ae-1.8.2-r1.ebuild b/dev-ruby/ae/ae-1.8.2-r1.ebuild
index 1ccd2233b466..b6a97f3ecd49 100644
--- a/dev-ruby/ae/ae-1.8.2-r1.ebuild
+++ b/dev-ruby/ae/ae-1.8.2-r1.ebuild
@@ -1,8 +1,9 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-USE_RUBY="ruby26 ruby27 ruby30 ruby31"
+
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
RUBY_FAKEGEM_TASK_TEST=""
RUBY_FAKEGEM_EXTRADOC="README.md"
@@ -18,4 +19,5 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
IUSE=""
# Tests cause circular dependencies with dev-ruby/qed
+# ... and not in gem/last release?
RESTRICT="test"
diff --git a/dev-ruby/ansi/ansi-1.5.0-r1.ebuild b/dev-ruby/ansi/ansi-1.5.0-r2.ebuild
index a72fb394da1a..8d5e9716b8e1 100644
--- a/dev-ruby/ansi/ansi-1.5.0-r1.ebuild
+++ b/dev-ruby/ansi/ansi-1.5.0-r2.ebuild
@@ -1,9 +1,9 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-USE_RUBY="ruby27 ruby30 ruby31"
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
RUBY_FAKEGEM_TASK_TEST=""
RUBY_FAKEGEM_RECIPE_DOC="rdoc"
@@ -17,7 +17,6 @@ HOMEPAGE="https://rubyworks.github.io/ansi/"
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
-IUSE=""
# Tests cause circular dependencies with dev-ruby/qed & dev-ruby/rubytest
RESTRICT="test"
diff --git a/dev-ruby/async-container/async-container-0.16.12-r1.ebuild b/dev-ruby/async-container/async-container-0.16.12-r1.ebuild
new file mode 100644
index 000000000000..366f3cb3c727
--- /dev/null
+++ b/dev-ruby/async-container/async-container-0.16.12-r1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
+
+RUBY_FAKEGEM_RECIPE_TEST="rspec3"
+RUBY_FAKEGEM_EXTRADOC="README.md"
+RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Abstract container-based parallelism using threads and processes"
+HOMEPAGE="https://github.com/socketry/async-container"
+SRC_URI="https://github.com/socketry/async-container/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc"
+IUSE=""
+
+ruby_add_rdepend "dev-ruby/async
+ dev-ruby/async-io"
+
+ruby_add_bdepend "test? (
+ dev-ruby/bundler
+ >=dev-ruby/async-rspec-1.1:1
+)"
+
+all_ruby_prepare() {
+ sed -i -E 's/require_relative "(.+)"/require File.expand_path("\1")/g' "${RUBY_FAKEGEM_GEMSPEC}" || die
+
+ # spec/async/container/notify/pipe_spec.rb directly executes "bundler" command,
+ # so we can't just wipe out gems.rb as usual. also must remove covered from gemspec
+ # for this reason.
+ sed -i -E 's/gem ".+"//g' "gems.rb" || die
+ sed -i -e '/spec.add_development_dependency "covered"/ s:^:#:' ${RUBY_FAKEGEM_GEMSPEC} || die
+
+ # Avoid test dependency on unpackaged covered
+ sed -i -e '/covered/ s:^:#:' spec/spec_helper.rb || die
+}
diff --git a/dev-ruby/async-io/async-io-1.34.3-r1.ebuild b/dev-ruby/async-io/async-io-1.34.3-r1.ebuild
new file mode 100644
index 000000000000..a664fe46b31c
--- /dev/null
+++ b/dev-ruby/async-io/async-io-1.34.3-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
+
+RUBY_FAKEGEM_RECIPE_TEST="rspec3"
+RUBY_FAKEGEM_EXTRA_DOC="README.md"
+RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Provides support for asynchronous TCP, UDP, UNIX and SSL sockets"
+HOMEPAGE="https://github.com/socketry/async-io"
+SRC_URI="https://github.com/socketry/async-io/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc"
+IUSE=""
+
+ruby_add_rdepend "dev-ruby/async"
+
+ruby_add_bdepend "test? (
+ >=dev-ruby/async-container-0.15:0
+ >=dev-ruby/async-rspec-1.10:1
+ dev-ruby/rack-test
+)"
+
+all_ruby_prepare() {
+ sed -i -E 's/require_relative "(.+)"/require File.expand_path("\1")/g' "${RUBY_FAKEGEM_GEMSPEC}" || die
+
+ # Avoid test dependency on covered
+ sed -i -e '/covered/ s:^:#:' spec/spec_helper.rb || die
+}
diff --git a/dev-ruby/async-process/Manifest b/dev-ruby/async-process/Manifest
new file mode 100644
index 000000000000..f94fae72a921
--- /dev/null
+++ b/dev-ruby/async-process/Manifest
@@ -0,0 +1 @@
+DIST async-process-1.3.1.tar.gz 4138 BLAKE2B 8c3b3109e016e135005dd25db96fb2d38c568ce88410ca8d1c22cfd23ea8f34f926447cb36a75d3a60fa11d8bb08cab6b46e45d88b8a42f2585e7ab0c6179c81 SHA512 13f6ded2f9001c8759350b6ade002703f3ba58dcc2960055c5e52c7e44c22af9c59c69713c55cb7e7244a7f09e3557a75f41161a7aafd5f6c279f4bdbb698e3c
diff --git a/dev-ruby/async-process/async-process-1.3.1.ebuild b/dev-ruby/async-process/async-process-1.3.1.ebuild
new file mode 100644
index 000000000000..7d7f639f6b3e
--- /dev/null
+++ b/dev-ruby/async-process/async-process-1.3.1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
+
+RUBY_FAKEGEM_RECIPE_TEST="rspec3"
+RUBY_FAKEGEM_EXTRADOC="README.md"
+RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Abstract container-based parallelism using threads and processes"
+HOMEPAGE="https://github.com/socketry/async-process"
+SRC_URI="https://github.com/socketry/async-process/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc"
+IUSE=""
+
+ruby_add_rdepend "dev-ruby/async
+ dev-ruby/async-io"
+
+ruby_add_bdepend "test? (
+ >=dev-ruby/async-rspec-1.1:1
+)"
+
+all_ruby_prepare() {
+ sed -i -E 's/require_relative "(.+)"/require File.expand_path("\1")/g' "${RUBY_FAKEGEM_GEMSPEC}" || die
+
+ rm gems.rb || die
+
+ # Avoid test dependency on unpackaged covered
+ sed -i -e '/covered/ s:^:#:' spec/spec_helper.rb || die
+}
diff --git a/dev-ruby/async-process/metadata.xml b/dev-ruby/async-process/metadata.xml
new file mode 100644
index 000000000000..246d194b7ec0
--- /dev/null
+++ b/dev-ruby/async-process/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>ruby@gentoo.org</email>
+ <name>Gentoo Ruby Project</name>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-ruby/async-rspec/async-rspec-1.16.1-r1.ebuild b/dev-ruby/async-rspec/async-rspec-1.16.1-r1.ebuild
new file mode 100644
index 000000000000..7e2ec2c97046
--- /dev/null
+++ b/dev-ruby/async-rspec/async-rspec-1.16.1-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
+
+RUBY_FAKEGEM_RECIPE_TEST="rspec3"
+RUBY_FAKEGEM_EXTRADOC="README.md"
+RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Helpers for writing specs against the async gem"
+HOMEPAGE="https://github.com/socketry/async-rspec"
+SRC_URI="https://github.com/socketry/async-rspec/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc"
+IUSE=""
+
+ruby_add_rdepend "dev-ruby/rspec:3
+ dev-ruby/rspec-files:1
+ dev-ruby/rspec-memory:1
+"
+
+ruby_add_bdepend "test? (
+ dev-ruby/async
+ dev-ruby/async-io
+)"
+
+all_ruby_prepare() {
+ sed -i -E 's/require_relative "(.+)"/require File.expand_path("\1")/g' "${RUBY_FAKEGEM_GEMSPEC}" || die
+
+ # Avoid dependency on unpackaged covered
+ sed -i -e '/covered/ s:^:#:' spec/spec_helper.rb || die
+}
diff --git a/dev-ruby/async/Manifest b/dev-ruby/async/Manifest
index ad41c68e4fa9..311f37c156ba 100644
--- a/dev-ruby/async/Manifest
+++ b/dev-ruby/async/Manifest
@@ -1,2 +1,3 @@
DIST async-1.30.3.tar.gz 92599 BLAKE2B 69db66676adf2dd0f77142bffc55b1e90a6983c53c7fac444f72b9365f6907e4d2ec45579ea267f3a8f31fc45af63c3517908c353749b288d1873e2cf720f96b SHA512 337a51ca8fd0e6685528e2eca9b584344ba583f7254f2600110ee62da6e4ccabeb471e7d94f36ab6f8d0eb3eada9e23335a262a50c8d035f67708fce0a590e5e
DIST async-2.2.1.tar.gz 75671 BLAKE2B a652bbb99d49c569fd864015059391a013f35c888be1e3b32ae06900bb861274390543c64ac9687689cb012c9b4c82df7764e4aaa50d2e76b595fdc7736ec8f5 SHA512 329862fa30f56371092666bef199b949e6325d99696a7ef2029cf9524a5cea31fc361cfaf438e15731c8e09c06ca47261fd3fcdce306a464332def9897c8dec5
+DIST async-2.5.0.tar.gz 84307 BLAKE2B 0aa9042e6e63087c08def6a5bd66f51565addaf8caf1db3ce5cc94afd397e164dfd0e7af40d4f55d05b0bb08cec3c98dc89b5e4345ff053f06617a8ba6a9b0c8 SHA512 caa16d07b2863f236bdd31fc87aa29216a5e32c8182a6e6bf9fd5203cd223350bb1746be02a617f8930c31f2941ce4204f01c5f2fd902c215a1898192afd01c3
diff --git a/dev-ruby/async/async-2.2.1.ebuild b/dev-ruby/async/async-2.2.1.ebuild
index 6e2688dbe2b7..6162faacb4c3 100644
--- a/dev-ruby/async/async-2.2.1.ebuild
+++ b/dev-ruby/async/async-2.2.1.ebuild
@@ -1,8 +1,11 @@
-# Copyright 2022 Gentoo Authors
+# Copyright 2022-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
+# It really is ruby31 only, see:
+# https://github.com/socketry/async/issues/141
+# https://github.com/socketry/async/issues/136
USE_RUBY="ruby31"
RUBY_FAKEGEM_RECIPE_TEST="rspec3"
@@ -17,7 +20,7 @@ SRC_URI="https://github.com/socketry/async/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="MIT"
SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64 ~sparc"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86"
IUSE=""
ruby_add_rdepend ">=dev-ruby/console-1.10:1
diff --git a/dev-ruby/async/async-2.5.0.ebuild b/dev-ruby/async/async-2.5.0.ebuild
new file mode 100644
index 000000000000..ba7c4f2e796e
--- /dev/null
+++ b/dev-ruby/async/async-2.5.0.ebuild
@@ -0,0 +1,43 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# It really is >=ruby31 only, see:
+# https://github.com/socketry/async/issues/141
+# https://github.com/socketry/async/issues/136
+USE_RUBY="ruby31 ruby32"
+
+RUBY_FAKEGEM_RECIPE_TEST="sus"
+RUBY_FAKEGEM_EXTRADOC="readme.md"
+RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="A concurrency framework for Ruby"
+HOMEPAGE="https://github.com/socketry/async"
+SRC_URI="https://github.com/socketry/async/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc"
+
+ruby_add_rdepend ">=dev-ruby/console-1.10:1
+ dev-ruby/io-event:1.1
+ >=dev-ruby/timers-4.1:4"
+
+ruby_add_bdepend "test? (
+ dev-ruby/benchmark-ips
+ dev-ruby/sus-fixtures-async
+)"
+
+all_ruby_prepare() {
+ sed -i -E 's/require_relative "(.+)"/require File.expand_path("\1")/g' "${RUBY_FAKEGEM_GEMSPEC}" || die
+
+ # network tests
+ rm test/net/http.rb \
+ test/async/scheduler/address.rb \
+ test/async/scheduler/io.rb || die
+
+ sed -i -e '/covered/Id' config/sus.rb || die
+}
diff --git a/dev-ruby/brass/brass-1.2.1-r1.ebuild b/dev-ruby/brass/brass-1.2.1-r1.ebuild
index 4c4b0a54f0b1..3e2e6d1a8a7a 100644
--- a/dev-ruby/brass/brass-1.2.1-r1.ebuild
+++ b/dev-ruby/brass/brass-1.2.1-r1.ebuild
@@ -1,10 +1,11 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-USE_RUBY="ruby26 ruby27 ruby30 ruby31"
-RUBY_FAKEGEM_TASK_TEST=""
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
+
+RUBY_FAKEGEM_TASK_TEST="" # it's a tiny stub test
RUBY_FAKEGEM_EXTRADOC="README.md"
inherit ruby-fakegem
@@ -15,4 +16,3 @@ HOMEPAGE="https://rubyworks.github.io/brass/"
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
-IUSE=""
diff --git a/dev-ruby/coffee-rails/coffee-rails-5.0.0-r1.ebuild b/dev-ruby/coffee-rails/coffee-rails-5.0.0-r2.ebuild
index 92dfe57d44e1..3f65eca46761 100644
--- a/dev-ruby/coffee-rails/coffee-rails-5.0.0-r1.ebuild
+++ b/dev-ruby/coffee-rails/coffee-rails-5.0.0-r2.ebuild
@@ -1,8 +1,8 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-USE_RUBY="ruby26 ruby27 ruby30"
+USE_RUBY="ruby27 ruby30 ruby31"
RUBY_FAKEGEM_TASK_DOC=""
RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
@@ -19,11 +19,12 @@ LICENSE="MIT"
SLOT="$(ver_cut 1-2)"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux"
-IUSE=""
-
-ruby_add_rdepend ">=dev-ruby/coffee-script-2.2.0
- >dev-ruby/railties-5.2:*"
+ruby_add_rdepend "
+ >=dev-ruby/coffee-script-2.2.0
+ <dev-ruby/railties-7:*
+"
+# sprockets:3 for https://github.com/rails/coffee-rails/issues/122
ruby_add_bdepend "test? ( dev-ruby/sprockets-rails dev-ruby/sprockets:3 )"
all_ruby_prepare() {
diff --git a/dev-ruby/console/console-1.16.2-r1.ebuild b/dev-ruby/console/console-1.16.2-r1.ebuild
new file mode 100644
index 000000000000..0d935fd76672
--- /dev/null
+++ b/dev-ruby/console/console-1.16.2-r1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
+
+RUBY_FAKEGEM_EXTRADOC="readme.md"
+RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Beautiful logging for Ruby"
+HOMEPAGE="https://github.com/socketry/console"
+SRC_URI="https://github.com/socketry/console/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+ruby_add_rdepend "dev-ruby/fiber-local"
+
+ruby_add_bdepend "test? ( dev-ruby/sus )"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-tests.patch
+)
+
+all_ruby_prepare() {
+ sed -i -E 's/require_relative "(.+)"/require File.expand_path("\1")/g' "${RUBY_FAKEGEM_GEMSPEC}" || die
+
+ # Avoid dependency on covered.
+ rm -f config/sus.rb || die
+
+ # Avoid sandbox violation during tests
+ sed -i -e 's:/tmp/:'"${TMPDIR}"'/:' test/console/output.rb || die
+}
+
+each_ruby_test() {
+ ${RUBY} -S sus-parallel || die
+}
diff --git a/dev-ruby/console/files/console-1.16.2-tests.patch b/dev-ruby/console/files/console-1.16.2-tests.patch
new file mode 100644
index 000000000000..cbbaaa69dff1
--- /dev/null
+++ b/dev-ruby/console/files/console-1.16.2-tests.patch
@@ -0,0 +1,155 @@
+https://github.com/socketry/console/commit/01438b0390ccd0beead0a6ca828a8dd5ffc710b9
+https://github.com/socketry/console/commit/c2121ed574d846361fcc0cfde97f88ad841a306c
+
+From 01438b0390ccd0beead0a6ca828a8dd5ffc710b9 Mon Sep 17 00:00:00 2001
+From: Samuel Williams <samuel.williams@oriontransfer.co.nz>
+Date: Fri, 24 Feb 2023 09:28:43 +1300
+Subject: [PATCH] Add log level tests.
+
+--- a/test/console.rb
++++ b/test/console.rb
+@@ -10,7 +10,7 @@
+
+ describe Console do
+ it "has a version number" do
+- expect(Console::VERSION).not.to be nil
++ expect(Console::VERSION).to be =~ /\d+\.\d+\.\d+/
+ end
+
+ with MyModule do
+--- a/test/console/compatible/logger.rb
++++ b/test/console/compatible/logger.rb
+@@ -37,4 +37,9 @@
+
+ expect(io.string).to be(:include?, "Hello World")
+ end
++
++ it "has a default log level" do
++ expect(logger.level).to be_a(Integer)
++ expect(logger.level).to be == ::Logger::DEBUG
++ end
+ end
+
+From c2121ed574d846361fcc0cfde97f88ad841a306c Mon Sep 17 00:00:00 2001
+From: Samuel Williams <samuel.williams@oriontransfer.co.nz>
+Date: Fri, 24 Feb 2023 18:26:17 +1300
+Subject: [PATCH] Fix tests when run interactively and incrementally.
+
+--- a/lib/console/terminal/logger.rb
++++ b/lib/console/terminal/logger.rb
+@@ -6,6 +6,7 @@
+
+ require_relative '../buffer'
+ require_relative '../event'
++require_relative '../clock'
+
+ require_relative 'text'
+ require_relative 'xterm'
+--- a/test/console/capture.rb
++++ b/test/console/capture.rb
+@@ -4,6 +4,7 @@
+ # Copyright, 2020-2022, by Samuel Williams.
+
+ require 'console/capture'
++require 'console/logger'
+
+ describe Console::Capture do
+ let(:capture) {subject.new}
+--- a/test/console/compatible/logger.rb
++++ b/test/console/compatible/logger.rb
+@@ -4,6 +4,7 @@
+ # Copyright, 2022, by Samuel Williams.
+
+ require 'console/compatible/logger'
++require 'console/terminal/logger'
+
+ describe Console::Compatible::Logger do
+ let(:io) {StringIO.new}
+--- a/test/console/logger.rb
++++ b/test/console/logger.rb
+@@ -70,15 +70,6 @@
+ end
+ end
+
+- Console::Logger::LEVELS.each do |name, level|
+- it "can log #{name} messages" do
+- expect(output).to receive(:call).with(message, severity: name)
+-
+- logger.level = level
+- logger.send(name, message)
+- end
+- end
+-
+ with '#enable' do
+ let(:object) {Object.new}
+
+@@ -94,23 +85,34 @@
+ end
+
+ Console::Logger::LEVELS.each do |name, level|
+- with '#off!', unique: name do
+- it "doesn't log #{name} messages" do
+- logger.off!
++ with "log level #{name}", unique: name do
++ with "#send" do
++ it "can log #{name} messages" do
++ expect(output).to receive(:call).with(message, severity: name)
+
+- expect(output).not.to receive(:call)
+- logger.send(name, message)
+- expect(logger.send("#{name}?")).to be == false
++ logger.level = level
++ logger.send(name, message)
++ end
+ end
+- end
+-
+- with '#all!', unique: name do
+- it "can log #{name} messages" do
+- logger.all!
+-
+- expect(output).to receive(:call).with(message, severity: name)
+- logger.send(name, message)
+- expect(logger.send("#{name}?")).to be == true
++
++ with '#off!' do
++ it "doesn't log #{name} messages" do
++ logger.off!
++
++ expect(output).not.to receive(:call)
++ logger.send(name, message)
++ expect(logger.send("#{name}?")).to be == false
++ end
++ end
++
++ with '#all!' do
++ it "can log #{name} messages" do
++ logger.all!
++
++ expect(output).to receive(:call).with(message, severity: name)
++ logger.send(name, message)
++ expect(logger.send("#{name}?")).to be == true
++ end
+ end
+ end
+ end
+--- a/test/console/resolver.rb
++++ b/test/console/resolver.rb
+@@ -4,6 +4,7 @@
+ # Copyright, 2019-2022, by Samuel Williams.
+ # Copyright, 2021, by Robert Schulze.
+
++require 'console'
+ require 'console/resolver'
+ require 'resolver_classes'
+
+--- a/test/console/serialized/logger.rb
++++ b/test/console/serialized/logger.rb
+@@ -4,6 +4,7 @@
+ # Copyright, 2019-2022, by Samuel Williams.
+
+ require 'console/serialized/logger'
++require 'console/event/spawn'
+
+ describe Console::Serialized::Logger do
+ let(:io) {StringIO.new}
diff --git a/dev-ruby/io-event/io-event-1.1.7.ebuild b/dev-ruby/io-event/io-event-1.1.7.ebuild
index 0c6fe7608048..78f3076e585d 100644
--- a/dev-ruby/io-event/io-event-1.1.7.ebuild
+++ b/dev-ruby/io-event/io-event-1.1.7.ebuild
@@ -17,7 +17,7 @@ SRC_URI="https://github.com/socketry/io-event/archive/v${PV}.tar.gz -> ${P}.tar.
LICENSE="MIT"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~amd64 ~sparc"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86"
IUSE=""
ruby_add_bdepend "test? ( >=dev-ruby/sus-0.6:0 )"
diff --git a/dev-ruby/lemon/lemon-0.9.1-r1.ebuild b/dev-ruby/lemon/lemon-0.9.1-r1.ebuild
index ff5cb7eec5bf..bf39ba5eb4ca 100644
--- a/dev-ruby/lemon/lemon-0.9.1-r1.ebuild
+++ b/dev-ruby/lemon/lemon-0.9.1-r1.ebuild
@@ -1,8 +1,9 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-USE_RUBY="ruby26 ruby27 ruby30 ruby31"
+
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
RUBY_FAKEGEM_TASK_TEST=""
RUBY_FAKEGEM_RECIPE_DOC="yard"
@@ -16,13 +17,13 @@ HOMEPAGE="https://rubyworks.github.io/lemon/"
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
-IUSE=""
ruby_add_bdepend "test? ( dev-ruby/qed )"
ruby_add_rdepend "
dev-ruby/ae
>=dev-ruby/ansi-1.3
- dev-ruby/rubytest"
+ dev-ruby/rubytest
+"
each_ruby_test() {
${RUBY} -S qed || die 'tests failed'
diff --git a/dev-ruby/localhost/Manifest b/dev-ruby/localhost/Manifest
index ed63740a7d32..8e95559775d1 100644
--- a/dev-ruby/localhost/Manifest
+++ b/dev-ruby/localhost/Manifest
@@ -1 +1,2 @@
+DIST localhost-1.1.10.tar.gz 2128142 BLAKE2B 06e4ab07bc273b8beba5fb3ee3f64e171a6c4a2e944c6d5e432417560283230277213732bf23ddd12e9737b2803582a11fdaa76356d14d2bdbd4e90d402c6204 SHA512 946ef247b256165cf5c849a32c0ba8dd2007164bd1549a20aca595328174709e9213ba8a98448dc41a57558b00147c3b7428b7bc625059ab24f89c94ff8850e9
DIST localhost-1.1.9.tar.gz 2125545 BLAKE2B 5843b3857a11d9f56412f67cb15e424332b07cf81a29ae0a05a3ff20c6f06af56f6a02d8315f97c2d57fe76f7359c737cf19f116868ff532ac083070430fa22e SHA512 d46fd016957fd34309d50488dc61f23e9d47a5a6bfdeda5c049f6ffc112c13cd21394ada3e15c56f14913cba6ab503f60e32237431f7ff824fbbab8cd8a2d746
diff --git a/dev-ruby/localhost/localhost-1.1.10.ebuild b/dev-ruby/localhost/localhost-1.1.10.ebuild
new file mode 100644
index 000000000000..ea6771c4f3d1
--- /dev/null
+++ b/dev-ruby/localhost/localhost-1.1.10.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
+
+RUBY_FAKEGEM_EXTRADOC="readme.md"
+RUBY_FAKEGEM_GEMSPEC="localhost.gemspec"
+RUBY_FAKEGEM_RECIPE_TEST="sus"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Manage a local CA for self-signed localhost development servers"
+HOMEPAGE="https://github.com/socketry/localhost"
+SRC_URI="https://github.com/socketry/localhost/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc"
+
+ruby_add_bdepend "
+ test? (
+ dev-ruby/async-io
+ dev-ruby/async-process
+ dev-ruby/sus-fixtures-async
+ )
+"
+
+all_ruby_prepare() {
+ sed -i -e 's:_relative ": "./:' ${RUBY_FAKEGEM_GEMSPEC} || die
+ sed -i -e '/covered/Id' config/sus.rb || die
+}
+
+each_ruby_test() {
+ # Tests fail in parallel as it tries to use the same port so
+ # manually replicate ruby-ng_sus for now, as ruby-ng_sus runs sus-parallel.
+ ${RUBY} -S sus || die
+}
diff --git a/dev-ruby/loquacious/loquacious-1.9.1-r4.ebuild b/dev-ruby/loquacious/loquacious-1.9.1-r4.ebuild
index 63f45cc4568d..f7e039fd9981 100644
--- a/dev-ruby/loquacious/loquacious-1.9.1-r4.ebuild
+++ b/dev-ruby/loquacious/loquacious-1.9.1-r4.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-USE_RUBY="ruby26 ruby27 ruby30 ruby31"
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
RUBY_FAKEGEM_RECIPE_TEST="rspec3"
@@ -16,7 +16,6 @@ inherit ruby-fakegem
DESCRIPTION="Descriptive configuration files for Ruby written in Ruby"
HOMEPAGE="https://github.com/TwP/loquacious"
-IUSE=""
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~x86"
diff --git a/dev-ruby/net-http-persistent/Manifest b/dev-ruby/net-http-persistent/Manifest
index 6cef2d4de01a..300e4ecc8fb7 100644
--- a/dev-ruby/net-http-persistent/Manifest
+++ b/dev-ruby/net-http-persistent/Manifest
@@ -1,2 +1,3 @@
DIST net-http-persistent-3.1.0.gem 31744 BLAKE2B fdd9c36ab5216c1cd1fe358207a689276e109845ac374ea16011469b6cb2b165115e78e701cce98c280e7f878c23d8016e75cac4508c7e579209012671b64101 SHA512 65b5afc4ad0729ec14b642e0e36363cecfff3dc25b26308d632866e93fed3eccfb83ce85da78f631553c6a1fe3ee834fcbc9d3681c85db6387463abbc30e60fa
DIST net-http-persistent-4.0.1.gem 27136 BLAKE2B b88151498c401cc20983c86859d7ef7ae3688ee12a5fcc69544d9716c3aeed55f4339d35ec08e9c0a6a16b4b4ab807d7155425c3056b9634185c255472ad93c5 SHA512 d3c86c9c58affac8cde1513dd899527406c0baafd3a620b80011e3babf51a4bfd6fb2bd8998fd9c4696d49aad2d014bdf666b9626e06fe4413cb4010f94e5e91
+DIST net-http-persistent-4.0.2.tar.gz 23779 BLAKE2B 7ea0140ed9baf97f05f13816ddd836cc874a1861a0ca4d84d98fd8d5665163e96d74c6eef602088a12577addda8fad5c2194c7f679c59917255979c5618c1c8d SHA512 4ef028245092a15f5e017ed6f2723cb82a2ed1fdbcb55217e5807068a40601151c29f929c95ffb5bdaae12fe34dca6658e674e282be42e7b0909c0ff2ea984fd
diff --git a/dev-ruby/net-http-persistent/net-http-persistent-4.0.2.ebuild b/dev-ruby/net-http-persistent/net-http-persistent-4.0.2.ebuild
new file mode 100644
index 000000000000..f9324771a495
--- /dev/null
+++ b/dev-ruby/net-http-persistent/net-http-persistent-4.0.2.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
+
+RUBY_FAKEGEM_EXTRADOC="History.txt README.rdoc"
+RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Manages persistent connections using Net::HTTP plus a speed fix for Ruby 1.8"
+HOMEPAGE="https://github.com/drbrain/net-http-persistent"
+SRC_URI="https://github.com/drbrain/net-http-persistent/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-solaris"
+IUSE="doc test"
+
+ruby_add_rdepend ">=dev-ruby/connection_pool-2.2:0"
+
+ruby_add_bdepend "test? ( dev-ruby/minitest )"
+
+all_ruby_prepare() {
+ # Not relevant for us (we're just using rake for the tests)
+ sed -i -e '/require "rake\/manifest"/,/^end/ s:^:#:' Rakefile || die
+
+ # avoid test with implicit dependency on net-http-pipeline which
+ # fails and is not tested upstream
+ sed -i -e '/net-http-pipeline not installed/ s/unless.*$//' test/test_net_http_persistent.rb || die
+}
diff --git a/dev-ruby/nio4r/Manifest b/dev-ruby/nio4r/Manifest
index 80d05987f8c6..ee049c38ccdd 100644
--- a/dev-ruby/nio4r/Manifest
+++ b/dev-ruby/nio4r/Manifest
@@ -1 +1,2 @@
DIST nio4r-2.5.8.gem 121856 BLAKE2B be79548761f52abab632b8e4660ab8557946079a51fe7f30c346f4f656ed2f8d0c8f2f463ed76a89bd4278bdfc0a0646ff2b8e0a815f97750836cb0bb250b9ef SHA512 3942403147882380b86f42c54a6d4e92c4e85dd3c0b5b9f473a05fcf98c041853e21d11d0481d1973342b5a4bfb59e02cfd523a44e9e45c3740627a45f7f99c7
+DIST nio4r-2.5.9.gem 122368 BLAKE2B 4238e2963604539207e1adc7ee78430e4f501ea8b71d807ee4f3c44322d16612779777f11b76313aaad6d252321435854f5b4905f83a2fe03c9d71be20b7a718 SHA512 d1c52896f186d19eb089a94d74ccadb427e64c204af149aa83a5a4dda3f0edd1bd2bae94afd21fcd58e3c2b9e2c17278a18717c0905de80e45540d13eeefd9e5
diff --git a/dev-ruby/nio4r/nio4r-2.5.8.ebuild b/dev-ruby/nio4r/nio4r-2.5.8.ebuild
index aa6e308dfce1..c4aba48c5253 100644
--- a/dev-ruby/nio4r/nio4r-2.5.8.ebuild
+++ b/dev-ruby/nio4r/nio4r-2.5.8.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-USE_RUBY="ruby26 ruby27 ruby30 ruby31"
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
RUBY_FAKEGEM_RECIPE_TEST="rspec3"
diff --git a/dev-ruby/nio4r/nio4r-2.5.9.ebuild b/dev-ruby/nio4r/nio4r-2.5.9.ebuild
new file mode 100644
index 000000000000..a3db5042c074
--- /dev/null
+++ b/dev-ruby/nio4r/nio4r-2.5.9.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
+
+RUBY_FAKEGEM_RECIPE_TEST="rspec3"
+
+RUBY_FAKEGEM_RECIPE_DOC=""
+RUBY_FAKEGEM_EXTRADOC="CHANGES.md README.md"
+
+RUBY_FAKEGEM_EXTENSIONS=(ext/nio4r/extconf.rb)
+
+inherit ruby-fakegem
+
+DESCRIPTION="A high performance selector API for monitoring IO objects"
+HOMEPAGE="https://github.com/socketry/nio4r"
+
+LICENSE="MIT || ( BSD GPL-2 )"
+SLOT="2"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86 ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+# Note that nio4r bundles a patched copy of libev, and without these
+# patches the tests fail: https://github.com/celluloid/nio4r/issues/15
+
+all_ruby_prepare() {
+ sed -i -e '/[Bb]undler/d' spec/spec_helper.rb || die
+ sed -e '/extension/ s:^:#:' -i Rakefile || die
+}
diff --git a/dev-ruby/patron/patron-0.13.3-r2.ebuild b/dev-ruby/patron/patron-0.13.3-r2.ebuild
new file mode 100644
index 000000000000..5c3884367749
--- /dev/null
+++ b/dev-ruby/patron/patron-0.13.3-r2.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
+
+RUBY_FAKEGEM_RECIPE_TEST="rspec3"
+RUBY_FAKEGEM_EXTRADOC="README.md"
+
+RUBY_FAKEGEM_EXTENSIONS=(ext/patron/extconf.rb)
+RUBY_FAKEGEM_EXTENSION_DIR="lib/patron"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Patron is a Ruby HTTP client library based on libcurl"
+HOMEPAGE="https://github.com/toland/patron"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND+=" net-misc/curl"
+RDEPEND+=" net-misc/curl"
+
+ruby_add_bdepend "test? ( dev-ruby/rack www-servers/puma )"
+
+all_ruby_prepare() {
+ # Fix Rakefile
+ sed -i -e 's:rake/rdoctask:rdoc/task:' \
+ -e 's/README.txt/README.md/' \
+ -e '/bundler/I s:^:#:' \
+ -e '/extensiontask/ s:^:#:' \
+ -e '/ExtensionTask/,/^end/ s:^:#:' \
+ Rakefile || die
+
+ # Avoid specs with failures. We were not running any specs before.
+ rm spec/session_ssl_spec.rb spec/session_spec.rb spec/response_spec.rb || die
+}
diff --git a/dev-ruby/pcaprub/pcaprub-0.13.1.ebuild b/dev-ruby/pcaprub/pcaprub-0.13.1.ebuild
index b977b4d6165b..956a9758de6b 100644
--- a/dev-ruby/pcaprub/pcaprub-0.13.1.ebuild
+++ b/dev-ruby/pcaprub/pcaprub-0.13.1.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-USE_RUBY="ruby27 ruby30"
+USE_RUBY="ruby27 ruby30 ruby31"
RUBY_FAKEGEM_EXTRADOC="FAQ.rdoc README.rdoc USAGE.rdoc"
RUBY_FAKEGEM_EXTENSIONS=(ext/pcaprub_c/extconf.rb)
@@ -23,6 +23,7 @@ RDEPEND+="net-libs/libpcap"
ruby_add_bdepend "
test? (
>=dev-ruby/rake-compiler-0.6.0
+ dev-ruby/shoulda-context
)
"
diff --git a/dev-ruby/qed/qed-2.9.2-r1.ebuild b/dev-ruby/qed/qed-2.9.2-r1.ebuild
index ce4d35cb1fe6..5f303f027f51 100644
--- a/dev-ruby/qed/qed-2.9.2-r1.ebuild
+++ b/dev-ruby/qed/qed-2.9.2-r1.ebuild
@@ -1,8 +1,9 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-USE_RUBY="ruby26 ruby27 ruby30 ruby31"
+
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
RUBY_FAKEGEM_TASK_TEST=""
RUBY_FAKEGEM_RECIPE_DOC="yard"
@@ -21,7 +22,8 @@ IUSE=""
ruby_add_bdepend "test? ( dev-ruby/ae )"
ruby_add_rdepend "
dev-ruby/ansi
- dev-ruby/brass"
+ dev-ruby/brass
+"
each_ruby_test() {
${RUBY} -Ilib bin/qed || die 'tests failed'
diff --git a/dev-ruby/rack-cache/files/rack-cache-1.13.0-mocha2.patch b/dev-ruby/rack-cache/files/rack-cache-1.13.0-mocha2.patch
new file mode 100644
index 000000000000..62bd028eedf7
--- /dev/null
+++ b/dev-ruby/rack-cache/files/rack-cache-1.13.0-mocha2.patch
@@ -0,0 +1,20 @@
+https://github.com/rack/rack-cache/commit/8b22b6e532ed21ba30fdfbc62907f58db052e767
+
+From 8b22b6e532ed21ba30fdfbc62907f58db052e767 Mon Sep 17 00:00:00 2001
+From: Peter Goldstein <peter.m.goldstein@gmail.com>
+Date: Mon, 2 Jan 2023 06:32:20 -0500
+Subject: [PATCH] Adds Ruby 3.2 to the CI matrix (#12)
+
+* Update mocha require for modern version of mocha
+--- a/test/test_helper.rb
++++ b/test/test_helper.rb
+@@ -7,7 +7,7 @@
+
+ require 'maxitest/global_must'
+ require 'maxitest/autorun'
+-require 'mocha/setup'
++require 'mocha/minitest'
+
+ # Set the MEMCACHED environment variable as follows to enable testing
+ # of the MemCached meta and entity stores.
+
diff --git a/dev-ruby/rack-cache/files/rack-cache-1.13.0-test-require.patch b/dev-ruby/rack-cache/files/rack-cache-1.13.0-test-require.patch
new file mode 100644
index 000000000000..3d7d04deaa25
--- /dev/null
+++ b/dev-ruby/rack-cache/files/rack-cache-1.13.0-test-require.patch
@@ -0,0 +1,28 @@
+https://github.com/rack/rack-cache/pull/14
+
+From db34e2b5ab7b16051f7158b2896e56502992c33e Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Mon, 3 Apr 2023 03:31:31 +0100
+Subject: [PATCH] test: Add explicit 'timeout' require
+
+Fixes the following when running tests individually:
+```
+ 1) Error:
+Rack::Cache::Context#test_0078_passes if there was a metastore exception:
+NameError: uninitialized constant Timeout
+ test/context_test.rb:981:in `block (3 levels) in <top (required)>'
+ test/test_helper.rb:170:in `request'
+ test/test_helper.rb:177:in `get'
+ test/context_test.rb:980:in `block (2 levels) in <top (required)>'
+```
+
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/test/context_test.rb
++++ b/test/context_test.rb
+@@ -1,4 +1,5 @@
+ require_relative 'test_helper'
++require 'timeout'
+ require 'rack/cache/context'
+
+ describe Rack::Cache::Context do
+
diff --git a/dev-ruby/rack-cache/rack-cache-1.13.0-r1.ebuild b/dev-ruby/rack-cache/rack-cache-1.13.0-r1.ebuild
new file mode 100644
index 000000000000..a816afabdb35
--- /dev/null
+++ b/dev-ruby/rack-cache/rack-cache-1.13.0-r1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
+
+# no documentation is generable, it needs hanna, which is broken
+RUBY_FAKEGEM_RECIPE_DOC="none"
+
+RUBY_FAKEGEM_TASK_TEST="none"
+
+RUBY_FAKEGEM_EXTRADOC="CHANGES README.md doc/*"
+
+RUBY_FAKEGEM_GEMSPEC="rack-cache.gemspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Enable HTTP caching for Rack-based applications that produce freshness info"
+HOMEPAGE="https://github.com/rtomayko/rack-cache"
+SRC_URI="https://github.com/rtomayko/rack-cache/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="1.2"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+ruby_add_rdepend "dev-ruby/rack:*"
+
+ruby_add_bdepend "test? (
+ >=dev-ruby/maxitest-3.4.0
+ >=dev-ruby/minitest-5.7.0:5
+ >=dev-ruby/mocha-2 )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.13.0-test-require.patch
+ "${FILESDIR}"/${PN}-1.13.0-mocha2.patch
+)
+
+all_ruby_prepare() {
+ sed -i -e '/bundler/ s:^:#:' \
+ test/test_helper.rb || die
+}
+
+all_ruby_prepare() {
+ sed -i -e 's/git ls-files/find/' ${RUBY_FAKEGEM_GEMSPEC} || die
+ sed -i -e '/bundler/ s:^:#:' test/test_helper.rb || die
+}
+
+each_ruby_test() {
+ ${RUBY} -I.:lib:test -e 'Dir["test/*_test.rb"].each{|f| require f}' || die
+}
diff --git a/dev-ruby/rails-dom-testing/rails-dom-testing-2.0.3-r2.ebuild b/dev-ruby/rails-dom-testing/rails-dom-testing-2.0.3-r2.ebuild
index 27f64b453065..9c898a51498f 100644
--- a/dev-ruby/rails-dom-testing/rails-dom-testing-2.0.3-r2.ebuild
+++ b/dev-ruby/rails-dom-testing/rails-dom-testing-2.0.3-r2.ebuild
@@ -1,8 +1,8 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-USE_RUBY="ruby26 ruby27 ruby30 ruby31"
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
RUBY_FAKEGEM_EXTRADOC="README.md"
diff --git a/dev-ruby/rails-html-sanitizer/rails-html-sanitizer-1.5.0.ebuild b/dev-ruby/rails-html-sanitizer/rails-html-sanitizer-1.5.0.ebuild
index ca256db68a38..1b3a9b71d304 100644
--- a/dev-ruby/rails-html-sanitizer/rails-html-sanitizer-1.5.0.ebuild
+++ b/dev-ruby/rails-html-sanitizer/rails-html-sanitizer-1.5.0.ebuild
@@ -2,7 +2,8 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-USE_RUBY="ruby27 ruby30 ruby31"
+
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
diff --git a/dev-ruby/rails/rails-7.0.4.3.ebuild b/dev-ruby/rails/rails-7.0.4.3.ebuild
index 639011de6b4e..d177a90cf9b5 100644
--- a/dev-ruby/rails/rails-7.0.4.3.ebuild
+++ b/dev-ruby/rails/rails-7.0.4.3.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="https://rubyonrails.org"
LICENSE="MIT"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
IUSE=""
diff --git a/dev-ruby/rb-readline/rb-readline-0.5.5-r1.ebuild b/dev-ruby/rb-readline/rb-readline-0.5.5-r1.ebuild
index 96b7e3a4e22b..e7c60f06e725 100644
--- a/dev-ruby/rb-readline/rb-readline-0.5.5-r1.ebuild
+++ b/dev-ruby/rb-readline/rb-readline-0.5.5-r1.ebuild
@@ -1,8 +1,9 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-USE_RUBY="ruby26 ruby27 ruby30 ruby31"
+
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
inherit ruby-fakegem
@@ -12,7 +13,6 @@ HOMEPAGE="https://rubygems.org/gems/rb-readline"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~arm ~x86"
-IUSE=""
ruby_add_bdepend "dev-ruby/rake
>=dev-ruby/minitest-5.2"
diff --git a/dev-ruby/rubytest/rubytest-0.8.1-r1.ebuild b/dev-ruby/rubytest/rubytest-0.8.1-r1.ebuild
index 1cb7dbb3504c..3912236739f7 100644
--- a/dev-ruby/rubytest/rubytest-0.8.1-r1.ebuild
+++ b/dev-ruby/rubytest/rubytest-0.8.1-r1.ebuild
@@ -1,8 +1,9 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-USE_RUBY="ruby26 ruby27 ruby30 ruby31"
+
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
RUBY_FAKEGEM_TASK_TEST=""
RUBY_FAKEGEM_RECIPE_DOC="yard"
diff --git a/dev-ruby/rubyzip/rubyzip-2.3.2-r1.ebuild b/dev-ruby/rubyzip/rubyzip-2.3.2-r1.ebuild
index 255ec7d2b699..cbcaa1942c90 100644
--- a/dev-ruby/rubyzip/rubyzip-2.3.2-r1.ebuild
+++ b/dev-ruby/rubyzip/rubyzip-2.3.2-r1.ebuild
@@ -21,7 +21,7 @@ SRC_URI="https://github.com/rubyzip/rubyzip/archive/v${PV}.tar.gz -> ${P}-git.tg
LICENSE="Ruby-BSD"
SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64 arm arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE=""
RDEPEND=""
diff --git a/dev-ruby/shoulda-matchers/shoulda-matchers-5.3.0.ebuild b/dev-ruby/shoulda-matchers/shoulda-matchers-5.3.0.ebuild
index 428331095b72..f4717a8de584 100644
--- a/dev-ruby/shoulda-matchers/shoulda-matchers-5.3.0.ebuild
+++ b/dev-ruby/shoulda-matchers/shoulda-matchers-5.3.0.ebuild
@@ -17,7 +17,7 @@ SRC_URI="https://github.com/thoughtbot/shoulda-matchers/archive/v${PV}.tar.gz ->
LICENSE="MIT"
SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
ruby_add_rdepend ">=dev-ruby/activesupport-5.2.0:*"
diff --git a/dev-ruby/slim/slim-4.1.0-r3.ebuild b/dev-ruby/slim/slim-4.1.0-r4.ebuild
index fbe924a5660e..9ede38c06816 100644
--- a/dev-ruby/slim/slim-4.1.0-r3.ebuild
+++ b/dev-ruby/slim/slim-4.1.0-r4.ebuild
@@ -22,8 +22,11 @@ SLOT="$(ver_cut 1)"
KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 ~riscv x86"
IUSE="doc"
-ruby_add_rdepend ">=dev-ruby/tilt-2.0.6:* =dev-ruby/tilt-2.0*:*
- >=dev-ruby/temple-0.7.6:0.7"
+ruby_add_rdepend "
+ !dev-ruby/slim:5
+ >=dev-ruby/tilt-2.0.6:* =dev-ruby/tilt-2.0*:*
+ >=dev-ruby/temple-0.7.6:0.7
+"
ruby_add_bdepend "doc? ( dev-ruby/yard dev-ruby/redcarpet )"
diff --git a/dev-ruby/slim/slim-5.1.0.ebuild b/dev-ruby/slim/slim-5.1.0-r1.ebuild
index d556bffba84e..34faaf560467 100644
--- a/dev-ruby/slim/slim-5.1.0.ebuild
+++ b/dev-ruby/slim/slim-5.1.0-r1.ebuild
@@ -19,11 +19,12 @@ DESCRIPTION="A template language aiming to reduce the syntax to the essential pa
HOMEPAGE="https://slim-template.github.io/"
LICENSE="MIT"
-SLOT="$(ver_cut 1)"
+SLOT="4"
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~x86"
IUSE="doc"
ruby_add_rdepend "
+ !dev-ruby/slim:5
>=dev-ruby/tilt-2.0.6:*
>=dev-ruby/temple-0.7.6:0.7
"
diff --git a/dev-ruby/sprockets/files/sprockets-3.7.2-ruby31-host-uri.patch b/dev-ruby/sprockets/files/sprockets-3.7.2-ruby31-host-uri.patch
new file mode 100644
index 000000000000..1594c18fc8ec
--- /dev/null
+++ b/dev-ruby/sprockets/files/sprockets-3.7.2-ruby31-host-uri.patch
@@ -0,0 +1,65 @@
+https://github.com/rails/sprockets/commit/39490de3bdda3cb0b3aed16544b38b3771fbcca7
+
+From 39490de3bdda3cb0b3aed16544b38b3771fbcca7 Mon Sep 17 00:00:00 2001
+From: Benoit Daloze <eregontp@gmail.com>
+Date: Mon, 19 Dec 2022 21:16:29 +0100
+Subject: [PATCH] Make the URI tests pass with ruby-head
+
+* host is "" instead of nil, following the upstream change:
+ https://github.com/ruby/uri/commit/81263c9e94bd67ca01deee238842a88c2c8885f3
+
+--- a/lib/sprockets/uri_utils.rb
++++ b/lib/sprockets/uri_utils.rb
+@@ -50,7 +50,7 @@ module Sprockets
+ # Hack for parsing Windows "file:///C:/Users/IEUser" paths
+ path.gsub!(/^\/([a-zA-Z]:)/, '\1'.freeze)
+
+- [scheme, host, path, query]
++ [scheme, host || '', path, query]
+ end
+
+ # Internal: Join file: URI component parts into String.
+--- a/test/test_uri_utils.rb
++++ b/test/test_uri_utils.rb
+@@ -38,22 +38,22 @@ class TestURIUtils < MiniTest::Test
+ assert_equal ['file', 'localhost', '/etc/fstab', nil], parts
+
+ parts = split_file_uri("file:///etc/fstab")
+- assert_equal ['file', nil, '/etc/fstab', nil], parts
++ assert_equal ['file', '', '/etc/fstab', nil], parts
+
+ parts = split_file_uri("file:///usr/local/bin/ruby%20on%20rails")
+- assert_equal ['file', nil, '/usr/local/bin/ruby on rails', nil], parts
++ assert_equal ['file', '', '/usr/local/bin/ruby on rails', nil], parts
+
+ parts = split_file_uri("file:///usr/local/var/github/app/assets/javascripts/application.js")
+- assert_equal ['file', nil, '/usr/local/var/github/app/assets/javascripts/application.js', nil], parts
++ assert_equal ['file', '', '/usr/local/var/github/app/assets/javascripts/application.js', nil], parts
+
+ parts = split_file_uri("file:///C:/Documents%20and%20Settings/davris/FileSchemeURIs.doc")
+- assert_equal ['file', nil, 'C:/Documents and Settings/davris/FileSchemeURIs.doc', nil], parts
++ assert_equal ['file', '', 'C:/Documents and Settings/davris/FileSchemeURIs.doc', nil], parts
+
+ parts = split_file_uri("file:///D:/Program%20Files/Viewer/startup.htm")
+- assert_equal ['file', nil, 'D:/Program Files/Viewer/startup.htm', nil], parts
++ assert_equal ['file', '', 'D:/Program Files/Viewer/startup.htm', nil], parts
+
+ parts = split_file_uri("file:///C:/Program%20Files/Music/Web%20Sys/main.html?REQUEST=RADIO")
+- assert_equal ['file', nil, 'C:/Program Files/Music/Web Sys/main.html', 'REQUEST=RADIO'], parts
++ assert_equal ['file', '', 'C:/Program Files/Music/Web Sys/main.html', 'REQUEST=RADIO'], parts
+ end
+
+ def test_join_uri_path
+@@ -61,10 +61,10 @@ class TestURIUtils < MiniTest::Test
+ join_file_uri('file', 'localhost', '/etc/fstab', nil)
+
+ assert_equal "file:///etc/fstab",
+- join_file_uri('file', nil, '/etc/fstab', nil)
++ join_file_uri('file', '', '/etc/fstab', nil)
+
+ assert_equal "file:///usr/local/bin/ruby%20on%20rails",
+- join_file_uri('file', nil, '/usr/local/bin/ruby on rails', nil)
++ join_file_uri('file', '', '/usr/local/bin/ruby on rails', nil)
+ end
+
+ def test_inverse_file_uri_functions
diff --git a/dev-ruby/sprockets/sprockets-3.7.2-r3.ebuild b/dev-ruby/sprockets/sprockets-3.7.2-r3.ebuild
new file mode 100644
index 000000000000..81d0d002ca66
--- /dev/null
+++ b/dev-ruby/sprockets/sprockets-3.7.2-r3.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+USE_RUBY="ruby26 ruby27 ruby30 ruby31"
+
+RUBY_FAKEGEM_TASK_DOC=""
+RUBY_FAKEGEM_EXTRADOC="README.md"
+
+RUBY_FAKEGEM_GEMSPEC="sprockets.gemspec"
+
+RUBY_FAKEGEM_BINWRAP=""
+
+inherit ruby-fakegem
+
+DESCRIPTION="Ruby library for compiling and serving web assets"
+HOMEPAGE="https://github.com/rails/sprockets"
+SRC_URI="https://github.com/rails/sprockets/archive/v${PV}.tar.gz -> ${P}-git.tgz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+
+PATCHES=(
+ "${FILESDIR}/${P}-erb-deprecation.patch"
+ "${FILESDIR}/${P}-kwargs.patch"
+ "${FILESDIR}/${P}-ruby31-host-uri.patch"
+)
+
+ruby_add_rdepend "
+ dev-ruby/concurrent-ruby:1
+ >=dev-ruby/rack-1:* <dev-ruby/rack-3:*"
+
+ruby_add_bdepend "test? (
+ dev-ruby/json
+ dev-ruby/rack-test
+ =dev-ruby/coffee-script-2*
+ =dev-ruby/execjs-2*
+ =dev-ruby/sass-3* >=dev-ruby/sass-3.1
+ dev-ruby/uglifier
+ )"
+
+all_ruby_prepare() {
+ # Avoid tests for template types that we currently don't package:
+ # eco and ejs.
+ sed -i -e '/eco templates/,/end/ s:^:#:' \
+ -e '/ejs templates/,/end/ s:^:#:' test/test_environment.rb || die
+ sed -i -e '/.ejs/ s:^:#:' test/test_asset.rb || die
+ rm -f test/test_require.rb test/test_{closure,eco,ejs,yui}_{compressor,processor}.rb || die
+ sed -i -e "/bundler/d" Rakefile || die
+}
+
+each_ruby_prepare() {
+ sed -i -e "s:ruby:${RUBY}:" test/test_sprocketize.rb || die
+}
+
+each_ruby_test() {
+ # Make sure we have completely separate copies. Hardlinks won't work
+ # for this test suite.
+ cp -R test test-new || die
+ rm -rf test || die
+ mv test-new test || die
+
+ each_fakegem_test
+}
diff --git a/dev-ruby/sus-fixtures-async/Manifest b/dev-ruby/sus-fixtures-async/Manifest
new file mode 100644
index 000000000000..3b8571b90174
--- /dev/null
+++ b/dev-ruby/sus-fixtures-async/Manifest
@@ -0,0 +1 @@
+DIST sus-fixtures-async-0.1.1.tar.gz 5017 BLAKE2B f293d9fe336b05e510a82c4337250f48b871eab8c38b7d9587a6402d19689197eb6a2b1f7f14e7b5823246b6f14d104e7e49f14f84a980392dd545543ffcd733 SHA512 cca073491d143b0ceaff34ada08d416ea43a035bc887c6dec02f62372724d891f47e9dfa8d749f6e485e7d14da8c395dc67185ed0a91d9ea0eb5466d3164c378
diff --git a/dev-ruby/sus-fixtures-async/files/sus-fixtures-async-0.1.1-tests-require.patch b/dev-ruby/sus-fixtures-async/files/sus-fixtures-async-0.1.1-tests-require.patch
new file mode 100644
index 000000000000..af89916b7c5f
--- /dev/null
+++ b/dev-ruby/sus-fixtures-async/files/sus-fixtures-async-0.1.1-tests-require.patch
@@ -0,0 +1,43 @@
+https://github.com/socketry/sus-fixtures-async/pull/2
+
+From 3d3a1016c1718a8a5eca6ee76cd65d88a66e2481 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Mon, 3 Apr 2023 00:36:26 +0100
+Subject: [PATCH] test: Fix version require
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+When running e.g. 'ruby32 -S sus', I had:
+```
+🔥 Errored assertions:
+file test/sus/fixtures/async.rb:8
+ âš  NameError: uninitialized constant Sus::Fixtures::Async::VERSION
+ test/sus/fixtures/async.rb:8 block in <top (required)>
+ /usr/lib64/ruby/gems/3.2.0/gems/sus-0.20.3/lib/sus/file.rb:10 class_eval
+ /usr/lib64/ruby/gems/3.2.0/gems/sus-0.20.3/lib/sus/file.rb:10 block in <top (required)>
+ /usr/lib64/ruby/gems/3.2.0/gems/sus-0.20.3/lib/sus/file.rb:39 build
+ /usr/lib64/ruby/gems/3.2.0/gems/sus-0.20.3/lib/sus/file.rb:105 file
+ /usr/lib64/ruby/gems/3.2.0/gems/sus-0.20.3/lib/sus/registry.rb:50 load_file
+ /usr/lib64/ruby/gems/3.2.0/gems/sus-0.20.3/lib/sus/registry.rb:45 load
+ /usr/lib64/ruby/gems/3.2.0/gems/sus-0.20.3/lib/sus/config.rb:95 block in load_registry
+ /usr/lib64/ruby/gems/3.2.0/gems/sus-0.20.3/lib/sus/config.rb:94 each
+ /usr/lib64/ruby/gems/3.2.0/gems/sus-0.20.3/lib/sus/config.rb:94 load_registry
+ /usr/lib64/ruby/gems/3.2.0/gems/sus-0.20.3/lib/sus/config.rb:82 registry
+ /usr/lib64/ruby/gems/3.2.0/gems/sus-0.20.3/bin/sus:10 <top (required)>
+ /usr/bin/sus:9 load
+ /usr/bin/sus:9 <main>
+```
+
+It turns out we're missing a direct require, so chuck it in.
+--- a/test/sus/fixtures/async.rb
++++ b/test/sus/fixtures/async.rb
+@@ -4,6 +4,7 @@
+ # Copyright, 2022, by Samuel Williams.
+
+ require 'sus/fixtures/async'
++require 'sus/fixtures/async/version'
+
+ describe Sus::Fixtures::Async::VERSION do
+ it 'is a version string' do
+
diff --git a/dev-ruby/sus-fixtures-async/metadata.xml b/dev-ruby/sus-fixtures-async/metadata.xml
new file mode 100644
index 000000000000..246d194b7ec0
--- /dev/null
+++ b/dev-ruby/sus-fixtures-async/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>ruby@gentoo.org</email>
+ <name>Gentoo Ruby Project</name>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-ruby/sus-fixtures-async/sus-fixtures-async-0.1.1.ebuild b/dev-ruby/sus-fixtures-async/sus-fixtures-async-0.1.1.ebuild
new file mode 100644
index 000000000000..86447527d3cc
--- /dev/null
+++ b/dev-ruby/sus-fixtures-async/sus-fixtures-async-0.1.1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
+
+RUBY_FAKEGEM_EXTRADOC="readme.md"
+RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
+RUBY_FAKEGEM_RECIPE_TEST="sus"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Convenient fixture for testing async components in a reactor"
+HOMEPAGE="https://github.com/socketry/sus-fixtures-async"
+SRC_URI="https://github.com/socketry/sus-fixtures-async/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc"
+
+ruby_add_rdepend "
+ dev-ruby/async
+ dev-ruby/sus
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.1.1-tests-require.patch
+)
+
+all_ruby_prepare() {
+ sed -i -E 's/require_relative "(.+)"/require File.expand_path("\1")/g' "${RUBY_FAKEGEM_GEMSPEC}" || die
+
+ # Remove the sus configuration which enabled coverage checks.
+ # Its dependency is not packaged.
+ rm -f config/sus.rb || die
+}