summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev-ruby/asciidoctor-diagram/Manifest1
-rw-r--r--dev-ruby/asciidoctor-diagram/asciidoctor-diagram-2.3.2.ebuild121
2 files changed, 122 insertions, 0 deletions
diff --git a/dev-ruby/asciidoctor-diagram/Manifest b/dev-ruby/asciidoctor-diagram/Manifest
index 89506e10a8a2..fa5813765829 100644
--- a/dev-ruby/asciidoctor-diagram/Manifest
+++ b/dev-ruby/asciidoctor-diagram/Manifest
@@ -1 +1,2 @@
DIST asciidoctor-diagram-2.2.14.tar.gz 14085153 BLAKE2B b62fbbc0ba5a5c53a92b1c9cd7d20047a0e6f4ec71ff7daeab379c3be2546b105b900e7fa6c49f00f6320de2087115d5944b9df9be443ad60cc0d330d5b12234 SHA512 8e343726788e61fa6846d756911f3df9ef276f706ec2668e7d74fc7b5b2cf3c8984f1d5031af5d8d2c55260f3bebf981d0bcd5dd1c032e504b32bee167cb626e
+DIST asciidoctor-diagram-2.3.2.tar.gz 24298535 BLAKE2B 3651fc0d79ff97d4cb33c09ce0968d5a95f2963bd1b8f3264892fc253f3468c52394cc65e93512271514fc2437daff560d294ba6a16cb4a9ba2d2cbf3e1a8a76 SHA512 135032af75e27a76a293230354ff99405f2fa4b5e8d1418c51d924028fffd54ea5b7d6dcd919097d7964cd82bafef155c2afcea53429f76b0c9fa5e5999ca586
diff --git a/dev-ruby/asciidoctor-diagram/asciidoctor-diagram-2.3.2.ebuild b/dev-ruby/asciidoctor-diagram/asciidoctor-diagram-2.3.2.ebuild
new file mode 100644
index 000000000000..ea4884f3fbb3
--- /dev/null
+++ b/dev-ruby/asciidoctor-diagram/asciidoctor-diagram-2.3.2.ebuild
@@ -0,0 +1,121 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33"
+
+RUBY_FAKEGEM_RECIPE_TEST="rspec3"
+
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.adoc LICENSE.txt README.adoc"
+
+RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="A set of Asciidoctor extensions that enable you to add diagrams"
+HOMEPAGE="https://github.com/asciidoctor/asciidoctor-diagram"
+SRC_URI="https://github.com/asciidoctor/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+# Supported backends dictionary: <backend-name> <dependencies> <removal-function>
+# backend-name: The name of the USE flag, a gem spec file in ./spec, a
+# directory in ./lib/asciidoctor-diagram/, and a require directive in
+# ./lib/asciidoctor.rb which will be removed if the former is unset.
+# dependencies: Dependencies for RDEPEND if the USE flag is set, and for
+# DEPEND if the "test" USE flag is set.
+# removal-function: Additional commands to evaluate, if the USE flag is unset.
+#
+# NB: Do not implicitly use functions following a naming scheme instead
+# of an explicit <removal-function> to prevent accidental or malicious
+# injection from functions exported in the parent environment.
+backend_dict_stride=3
+backends=(
+ "barcode" "dev-ruby/rqrcode dev-ruby/barby[qrcode]" ""
+ "ditaa" "media-gfx/ditaa" "remove_ditaa"
+ "gnuplot" "sci-visualization/gnuplot" ""
+ "graphviz" "media-gfx/graphviz" ""
+ "lilypond" "media-sound/lilypond" ""
+ "meme" "media-gfx/imagemagick[png]" ""
+ "mscgen" "media-gfx/mscgen[png]" ""
+ "plantuml" "media-gfx/plantuml" "remove_plantuml"
+ "tikz" "dev-tex/pgf media-gfx/pdf2svg" ""
+)
+
+remove_plantuml() {
+ rm -f "spec/salt.rb"
+ sed -i "/\\/salt'/d" "lib/asciidoctor-diagram.rb"
+ sed -i "/plantuml/d" "asciidoctor-diagram.gemspec"
+}
+
+remove_ditaa() {
+ sed -i "/ditaa/d" "asciidoctor-diagram.gemspec"
+}
+
+IUSE=""
+DEPEND+="test? ("
+
+i=0
+while (( i < ${#backends[@]} ))
+do
+ backend="${backends[i]}"
+ deps="${backends[i+1]}"
+
+ IUSE+=" $backend"
+ RDEPEND+=" $backend? ( $deps )"
+ DEPEND+=" $deps"
+
+ ((i+=backend_dict_stride))
+done
+
+DEPEND+=" )"
+
+ruby_add_rdepend ">=dev-ruby/asciidoctor-1.5.7 <dev-ruby/asciidoctor-3 dev-ruby/rexml"
+
+all_ruby_prepare() {
+ rm Gemfile || die
+ sed -e '/c.formatter/ s:^:#:' \
+ -e '/logger.*DEBUG/ s:^:#:' \
+ -i spec/test_helper_methods.rb || die
+
+ # Delete everything related to unsupported backends. Obtain list of backends from spec/
+ for spec in spec/*_spec.rb
+ do
+ backend="${spec##spec/}"
+ backend="${backend%%_spec.rb}"
+
+ backend_index=0
+
+ get_backend_index() {
+ local i=0
+ while (( i < ${#backends[@]} ))
+ do
+ if [[ "${backends[i]}" == "$backend" ]]
+ then
+ echo "$i"
+ return 1
+ fi
+ ((i+=backend_dict_stride))
+ done
+ }
+
+ if backend_index="$(get_backend_index)" || ! use "$backend"
+ then
+ rm -f "spec/${backend}_spec.rb"
+ rm -Rf "lib/asciidoctor-diagram/"{"$backend.rb","$backend"}
+ sed -i "/\\/$backend'/d" "lib/asciidoctor-diagram.rb"
+ removal="${backends[backend_index+2]}"
+ if [[ "$removal" ]]
+ then
+ "$removal"
+ fi
+ fi
+ done
+}
+
+all_ruby_install() {
+ all_fakegem_install
+}