dev-ruby/rspec-mocks: add ruby25
authorHans de Graaff <graaff@gentoo.org>
Fri, 9 Mar 2018 06:13:43 +0000 (07:13 +0100)
committerHans de Graaff <graaff@gentoo.org>
Fri, 9 Mar 2018 06:13:43 +0000 (07:13 +0100)
Package-Manager: Portage-2.3.19, Repoman-2.3.6

dev-ruby/rspec-mocks/files/rspec-mocks-3.7.0-ruby25-1.patch [new file with mode: 0644]
dev-ruby/rspec-mocks/files/rspec-mocks-3.7.0-ruby25-2.patch [new file with mode: 0644]
dev-ruby/rspec-mocks/rspec-mocks-3.7.0.ebuild

diff --git a/dev-ruby/rspec-mocks/files/rspec-mocks-3.7.0-ruby25-1.patch b/dev-ruby/rspec-mocks/files/rspec-mocks-3.7.0-ruby25-1.patch
new file mode 100644 (file)
index 0000000..6b545ae
--- /dev/null
@@ -0,0 +1,27 @@
+From 871eb31e3bfe50705ca57e754771aa1e0164f12d Mon Sep 17 00:00:00 2001
+From: Myron Marston <myron.marston@gmail.com>
+Date: Sat, 30 Dec 2017 17:45:43 -0800
+Subject: [PATCH] Skip spec that does not apply to Ruby 2.5.
+
+Ruby 2.5 has removed the ability to access top-level constants
+via a confusing nested form (e.g. `MyClass::Hash`), so we no
+longer need this spec there.
+
+For #1192.
+---
+ spec/rspec/mocks/mutate_const_spec.rb | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/spec/rspec/mocks/mutate_const_spec.rb b/spec/rspec/mocks/mutate_const_spec.rb
+index fe8d4128..9d80dd73 100644
+--- a/spec/rspec/mocks/mutate_const_spec.rb
++++ b/spec/rspec/mocks/mutate_const_spec.rb
+@@ -170,7 +170,7 @@ def change_const_value_to(value)
+             expect(::Hash).to equal(top_level_hash)
+           end
+-          it 'does not affect the ability to access the top-level constant from nested contexts', :silence_warnings do
++          it 'does not affect the ability to access the top-level constant from nested contexts', :silence_warnings, :if => RUBY_VERSION < '2.5' do
+             top_level_hash = ::Hash
+             hide_const("TestClass::Hash")
diff --git a/dev-ruby/rspec-mocks/files/rspec-mocks-3.7.0-ruby25-2.patch b/dev-ruby/rspec-mocks/files/rspec-mocks-3.7.0-ruby25-2.patch
new file mode 100644 (file)
index 0000000..3ac4489
--- /dev/null
@@ -0,0 +1,38 @@
+From 783923d6879a2f9df9fee8ef24cecca6ac21136e Mon Sep 17 00:00:00 2001
+From: Myron Marston <myron.marston@gmail.com>
+Date: Sat, 30 Dec 2017 23:35:27 -0800
+Subject: [PATCH] Make spec less brittle.
+
+On Ruby 2.5, this spec failed, apparently due to the fact that
+Method equality has changed on 2.5 slightly. The method instances
+have always been different but 2.4 and before considered them
+equivalent. Instead, we can show that the two method objects
+_behave_ the same, which is what we really care about.
+
+Fixes #1192.
+---
+ spec/rspec/mocks/and_wrap_original_spec.rb | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/spec/rspec/mocks/and_wrap_original_spec.rb b/spec/rspec/mocks/and_wrap_original_spec.rb
+index df9cae46..2d4d0a8b 100644
+--- a/spec/rspec/mocks/and_wrap_original_spec.rb
++++ b/spec/rspec/mocks/and_wrap_original_spec.rb
+@@ -26,12 +26,13 @@ def results
+         }.to raise_error NameError
+       end
+-      it "passes in the original method" do
+-        value = nil
++      it "passes along the original method" do
++        passed_method = nil
+         original_method = instance.method(:results)
+-        allow_it.to receive(:results).and_wrap_original { |m| value = m }
++        allow_it.to receive(:results).and_wrap_original { |m| passed_method = m }
+         instance.results
+-        expect(value).to eq original_method
++
++        expect(passed_method.call).to eq(original_method.call)
+       end
+       it "passes along the message arguments" do
index d7c6b8dbc4181edba9eef08b4d416108a3dc47ab..31797ab2b003e8fe2899a11229a1980c1ca5b77b 100644 (file)
@@ -1,8 +1,8 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
-USE_RUBY="ruby22 ruby23 ruby24"
+USE_RUBY="ruby22 ruby23 ruby24 ruby25"
 
 RUBY_FAKEGEM_RECIPE_TEST="rspec3"
 
@@ -22,6 +22,8 @@ IUSE=""
 
 SUBVERSION="$(get_version_component_range 1-2)"
 
+PATCHES=( "${FILESDIR}/${P}-ruby25-1.patch" "${FILESDIR}/${P}-ruby25-2.patch" )
+
 ruby_add_rdepend "=dev-ruby/rspec-support-${SUBVERSION}*
        >=dev-ruby/diff-lcs-1.2.0 =dev-ruby/diff-lcs-1*"