From 7fb694fdb0fb56f8e2b3bf800c5f7117f0400f0d Mon Sep 17 00:00:00 2001 From: bronzdoc Date: Sun, 26 Apr 2020 11:55:37 -0600 Subject: [rubygems/rubygems] Show gemspec location when a Gem::MissingSpecError is raised while trying to activate a gem https://github.com/rubygems/rubygems/commit/4da54a8e8b --- lib/rubygems/specification.rb | 6 +++++- test/rubygems/test_gem.rb | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb index ad988a5a1e..bcb5da52a3 100644 --- a/lib/rubygems/specification.rb +++ b/lib/rubygems/specification.rb @@ -1395,7 +1395,11 @@ class Gem::Specification < Gem::BasicSpecification raise e end - specs = spec_dep.to_specs + begin + specs = spec_dep.to_specs + rescue Gem::MissingSpecError => e + raise Gem::MissingSpecError.new(e.name, e.requirement, "at: #{self.spec_file}") + end if specs.size == 1 specs.first.activate diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb index 6b18bb9eb5..430c3a6eeb 100644 --- a/test/rubygems/test_gem.rb +++ b/test/rubygems/test_gem.rb @@ -1275,6 +1275,7 @@ class TestGem < Gem::TestCase end assert_match %r{Could not find 'b' }, e.message + assert_match %r{at: #{a.spec_file}}, e.message end def test_self_try_activate_missing_prerelease -- cgit v1.2.3