summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans de Graaff <graaff@gentoo.org>2023-11-09 14:57:45 +0100
committerHans de Graaff <graaff@gentoo.org>2023-11-09 14:57:45 +0100
commitbab51a396f24349976d57cb787bef774808c1693 (patch)
treed36ddadb777f67965000ac5d6a26d7dfb468f461 /dev-ruby/yard
parentdev-ruby/yard: drop 0.9.29, 0.9.32 (diff)
downloadgentoo-bab51a396f24349976d57cb787bef774808c1693.tar.gz
gentoo-bab51a396f24349976d57cb787bef774808c1693.tar.bz2
gentoo-bab51a396f24349976d57cb787bef774808c1693.zip
dev-ruby/yard: fix error about beginless range
Signed-off-by: Hans de Graaff <graaff@gentoo.org>
Diffstat (limited to 'dev-ruby/yard')
-rw-r--r--dev-ruby/yard/files/yard-0.9.34-beginless-range.patch38
-rw-r--r--dev-ruby/yard/yard-0.9.34-r1.ebuild70
2 files changed, 108 insertions, 0 deletions
diff --git a/dev-ruby/yard/files/yard-0.9.34-beginless-range.patch b/dev-ruby/yard/files/yard-0.9.34-beginless-range.patch
new file mode 100644
index 000000000000..4284ad83acb9
--- /dev/null
+++ b/dev-ruby/yard/files/yard-0.9.34-beginless-range.patch
@@ -0,0 +1,38 @@
+From 8481180b935922f76a36e29e83914ee6fad782cd Mon Sep 17 00:00:00 2001
+From: Brad Feehan <git@bradfeehan.com>
+Date: Tue, 21 Jun 2022 17:05:20 +1000
+Subject: [PATCH] Fix "cannot get the first element of beginless range" error
+
+This implements the fix suggested by @akimd:
+
+See https://github.com/lsegal/yard/issues/1434#issuecomment-1087817139
+
+Fixes lsegal/yard#1434.
+---
+ lib/yard/parser/ruby/ast_node.rb | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/lib/yard/parser/ruby/ast_node.rb b/lib/yard/parser/ruby/ast_node.rb
+index c9deb3ed1..d10bdfa3a 100644
+--- a/lib/yard/parser/ruby/ast_node.rb
++++ b/lib/yard/parser/ruby/ast_node.rb
+@@ -271,7 +271,7 @@ def has_line?
+
+ # @return [Fixnum] the starting line number of the node
+ def line
+- line_range && line_range.first
++ line_range && line_range.begin || 1
+ end
+
+ # @return [String] the first line of source represented by the node.
+@@ -345,8 +345,8 @@ def reset_line_info
+ elsif !children.empty?
+ f = children.first
+ l = children.last
+- self.line_range = Range.new(f.line_range.first, l.line_range.last)
+- self.source_range = Range.new(f.source_range.first, l.source_range.last)
++ self.line_range = Range.new(f.line_range.begin || 1, l.line_range.last)
++ self.source_range = Range.new(f.source_range.begin || 1, l.source_range.last)
+ elsif @fallback_line || @fallback_source
+ self.line_range = @fallback_line
+ self.source_range = @fallback_source
diff --git a/dev-ruby/yard/yard-0.9.34-r1.ebuild b/dev-ruby/yard/yard-0.9.34-r1.ebuild
new file mode 100644
index 000000000000..e42ad56e8339
--- /dev/null
+++ b/dev-ruby/yard/yard-0.9.34-r1.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby31 ruby32"
+
+RUBY_FAKEGEM_RECIPE_TEST="rspec3"
+RUBY_FAKEGEM_TASK_DOC="yard"
+
+RUBY_FAKEGEM_EXTRADOC="README.md"
+RUBY_FAKEGEM_DOCDIR="doc docs"
+
+RUBY_FAKEGEM_EXTRAINSTALL="templates .yardopts"
+
+RUBY_FAKEGEM_GEMSPEC="yard.gemspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Documentation generation tool for the Ruby programming language"
+HOMEPAGE="https://yardoc.org/"
+
+# The gem lacks the gemspec file needed to pass tests.
+SRC_URI="https://github.com/lsegal/yard/archive/v${PV}.tar.gz -> ${P}-git.tgz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE=""
+
+PATCHES=( "${FILESDIR}/${P}-beginless-range.patch" )
+
+ruby_add_bdepend "doc? ( || ( dev-ruby/maruku dev-ruby/rdiscount dev-ruby/kramdown ) )"
+
+ruby_add_bdepend "test? ( dev-ruby/rack:2.2 >=dev-ruby/rspec-3.11.0 )"
+
+all_ruby_prepare() {
+ sed -i -e '/[Bb]undler/ s:^:#:' -e '3igem "rack", "~> 2.2.0"' spec/spec_helper.rb || die
+
+ sed -i -e '/samus/I s:^:#:' Rakefile || die
+
+ sed -i -e 's/git ls-files/find/' ${RUBY_FAKEGEM_GEMSPEC} || die
+
+ # Avoid specs that make assumptions on load ordering that are not
+ # true for us. This may be related to how we install in Gentoo. This
+ # also drops a test requirement on dev-ruby/rack.
+ rm -f spec/cli/server_spec.rb || die
+
+ # Avoid specs that only work with bundler
+ sed -i -e '/#initialize/,/^ end/ s:^:#:' spec/cli/yri_spec.rb || die
+ sed -e '/overwrites options with data in/askip "wrong assumptions on file access"' \
+ -e '/loads any gem plugins starting with/askip "wrong assumptions on file access"' \
+ -i spec/config_spec.rb || die
+
+ # Avoid specs making assumptions about how rubygems works internally
+ sed -i -e '/searches for .gem file/askip "rubygems internals"' spec/cli/diff_spec.rb || die
+
+ # Fix broken spec
+ sed -i -e '/:exist?/aallow(File).to receive(:exist?).and_call_original' spec/i18n/locale_spec.rb || die
+
+ # Avoid ruby31 failure on whitespace-only differences
+ sed -i -e '/shows a list of nodes/askip "Whitespace differences on ruby31"' spec/parser/ruby/ast_node_spec.rb || die
+
+ # Avoid redcarpet-specific spec that is not optional
+ sed -i -e '/autolinks URLs/askip "make redcarpet optional"' spec/templates/helpers/html_helper_spec.rb || die
+
+ # Avoid asciidoc-specific spec that is not optional
+ sed -e '/\(AsciiDoc specific\|AsciiDoc header\)/askip "skipping asciidoc test"' \
+ -i spec/templates/helpers/html_helper_spec.rb || die
+}