summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans de Graaff <graaff@gentoo.org>2023-03-26 11:23:55 +0200
committerHans de Graaff <graaff@gentoo.org>2023-03-26 12:42:32 +0200
commit08de07e693f0c6eebf15a466d5f673c066bcdeb9 (patch)
tree61d46e4dc5401e44179ddb904d1000807d17979b /dev-ruby/flexmock
parentdev-libs/link-grammar: do not enable SAT solver anymore (diff)
downloadgentoo-08de07e693f0c6eebf15a466d5f673c066bcdeb9.tar.gz
gentoo-08de07e693f0c6eebf15a466d5f673c066bcdeb9.tar.bz2
gentoo-08de07e693f0c6eebf15a466d5f673c066bcdeb9.zip
dev-ruby/flexmock: add ruby30, ruby31, ruby32
Use debian patches from upstream pull request that is still pending. Signed-off-by: Hans de Graaff <graaff@gentoo.org>
Diffstat (limited to 'dev-ruby/flexmock')
-rw-r--r--dev-ruby/flexmock/files/flexmock-2.3.6-ruby30-1.patch25
-rw-r--r--dev-ruby/flexmock/files/flexmock-2.3.6-ruby30-2.patch25
-rw-r--r--dev-ruby/flexmock/files/flexmock-2.3.6-ruby30-3.patch23
-rw-r--r--dev-ruby/flexmock/flexmock-2.3.6-r2.ebuild44
4 files changed, 117 insertions, 0 deletions
diff --git a/dev-ruby/flexmock/files/flexmock-2.3.6-ruby30-1.patch b/dev-ruby/flexmock/files/flexmock-2.3.6-ruby30-1.patch
new file mode 100644
index 000000000000..f43c4d454992
--- /dev/null
+++ b/dev-ruby/flexmock/files/flexmock-2.3.6-ruby30-1.patch
@@ -0,0 +1,25 @@
+From f63ba0916132e16d5eeb1a5c1ad868b0169bf7fc Mon Sep 17 00:00:00 2001
+From: Daniel Leidert <dleidert@debian.org>
+Date: Mon, 22 Nov 2021 01:34:25 +0100
+Subject: [PATCH] Properly accept argument and keywords
+
+---
+ lib/flexmock/composite_expectation.rb | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/lib/flexmock/composite_expectation.rb b/lib/flexmock/composite_expectation.rb
+index 370046f..fbc8e54 100644
+--- a/lib/flexmock/composite_expectation.rb
++++ b/lib/flexmock/composite_expectation.rb
+@@ -16,9 +16,9 @@ def add(expectation)
+ end
+
+ # Apply the constraint method to all expectations in the composite.
+- def method_missing(sym, *args, &block)
++ def method_missing(sym, *args, **keywords, &block)
+ @expectations.each do |expectation|
+- expectation.send(sym, *args, &block)
++ expectation.send(sym, *args, **keywords, &block)
+ end
+ self
+ end
diff --git a/dev-ruby/flexmock/files/flexmock-2.3.6-ruby30-2.patch b/dev-ruby/flexmock/files/flexmock-2.3.6-ruby30-2.patch
new file mode 100644
index 000000000000..f7964b072df9
--- /dev/null
+++ b/dev-ruby/flexmock/files/flexmock-2.3.6-ruby30-2.patch
@@ -0,0 +1,25 @@
+From b3a2d7984803d70778c1f585ca48fb1fd374e44c Mon Sep 17 00:00:00 2001
+From: Daniel Leidert <dleidert@debian.org>
+Date: Mon, 22 Nov 2021 01:34:48 +0100
+Subject: [PATCH] Use binding.source_location for test
+
+Fixes the warning:
+
+ warning: __FILE__ in eval may not return location in binding; use Binding#source_location instead
+---
+ test/test_helper.rb | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/test/test_helper.rb b/test/test_helper.rb
+index 9eb3310..c4fd622 100644
+--- a/test/test_helper.rb
++++ b/test/test_helper.rb
+@@ -50,7 +50,7 @@ def assert_failure(klass, options={}, &block)
+ # added.
+ def assert_mock_failure(klass, options={}, &block)
+ ex = assert_failure(klass, options, &block)
+- file = eval("__FILE__", block.binding)
++ file = block.binding.source_location.first
+ assert_matching_line(ex, file, options)
+ end
+
diff --git a/dev-ruby/flexmock/files/flexmock-2.3.6-ruby30-3.patch b/dev-ruby/flexmock/files/flexmock-2.3.6-ruby30-3.patch
new file mode 100644
index 000000000000..2e69627c5060
--- /dev/null
+++ b/dev-ruby/flexmock/files/flexmock-2.3.6-ruby30-3.patch
@@ -0,0 +1,23 @@
+From 8a4be2142b37a6ab4b6b8a3f38a07f2b06752acf Mon Sep 17 00:00:00 2001
+From: Daniel Leidert <dleidert@debian.org>
+Date: Mon, 22 Nov 2021 01:35:53 +0100
+Subject: [PATCH] Relax error message on test a bit
+
+---
+ test/partial_mock_test.rb | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/test/partial_mock_test.rb b/test/partial_mock_test.rb
+index 065ecb5..3564db3 100644
+--- a/test/partial_mock_test.rb
++++ b/test/partial_mock_test.rb
+@@ -634,7 +634,8 @@ def test_partial_mocks_leaves_NoMethodError_exceptions_raised_by_the_original_me
+ exception = assert_raises(NameError) do
+ obj.mocked_method
+ end
+- assert_equal "undefined method `does_not_exist' for #{obj}", exception.message
++ assert(/undefined method `does_not_exist' for #<#<Class:/ === exception.message,
++ "expected #{exception.message} to match /undefined method `does_not_exist' for #<#<Class:/")
+ end
+
+ def test_it_checks_whether_mocks_are_forbidden_before_forwarding_the_call
diff --git a/dev-ruby/flexmock/flexmock-2.3.6-r2.ebuild b/dev-ruby/flexmock/flexmock-2.3.6-r2.ebuild
new file mode 100644
index 000000000000..8afc3e2e6d73
--- /dev/null
+++ b/dev-ruby/flexmock/flexmock-2.3.6-r2.ebuild
@@ -0,0 +1,44 @@
+# 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_DOCDIR="html"
+RUBY_FAKEGEM_EXTRADOC="CHANGES README.md doc/*.rdoc doc/releases/*"
+
+RUBY_FAKEGEM_RECIPE_TEST="none"
+RUBY_FAKEGEM_RECIPE_DOC="none"
+
+RUBY_FAKEGEM_GEMSPEC="flexmock.gemspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Simple mock object library for Ruby unit testing"
+HOMEPAGE="https://github.com/doudou/flexmock"
+SRC_URI="https://github.com/doudou/flexmock/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="flexmock"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+PATCHES=( "${FILESDIR}"/flexmock-2.3.6-ruby30-{1,2,3}.patch )
+
+ruby_add_bdepend "
+ test? (
+ dev-ruby/minitest:5
+ dev-ruby/rspec:3
+ )"
+
+each_ruby_test() {
+ RSPEC_VERSION=3 ruby-ng_rspec test/rspec_integration
+ ${RUBY} -Ilib:.:test -e 'Dir["test/*_test.rb"].each{|f| require f}' || die
+}
+
+all_ruby_prepare() {
+ sed -i -e '1igem "minitest", "~>5.0"' test/test_helper.rb || die
+
+ sed -i -e 's/git ls-files -z/find * -print0/' ${RUBY_FAKEGEM_GEMSPEC} || die
+}