diff options
-rw-r--r-- | lib/bundler/resolver.rb | 7 | ||||
-rw-r--r-- | spec/commands/exec_spec.rb | 2 | ||||
-rw-r--r-- | spec/commands/lock_spec.rb | 2 | ||||
-rw-r--r-- | spec/install/post_bundle_message_spec.rb | 17 |
4 files changed, 24 insertions, 4 deletions
diff --git a/lib/bundler/resolver.rb b/lib/bundler/resolver.rb index b8016b37..bdb8f488 100644 --- a/lib/bundler/resolver.rb +++ b/lib/bundler/resolver.rb @@ -365,8 +365,13 @@ module Bundler "Source does not contain any versions of '#{requirement}'" end else + cache_message = begin + " or in gems cached in #{Bundler.settings.app_cache_path}" if Bundler.app_cache.exist? + rescue GemfileNotFound + nil + end message = "Could not find gem '#{requirement}' in any of the gem sources " \ - "listed in your Gemfile or available on this machine." + "listed in your Gemfile#{cache_message}." end raise GemNotFound, message end diff --git a/spec/commands/exec_spec.rb b/spec/commands/exec_spec.rb index 5d1a63e6..cb4daa46 100644 --- a/spec/commands/exec_spec.rb +++ b/spec/commands/exec_spec.rb @@ -555,7 +555,7 @@ describe "bundle exec" do let(:exit_code) { Bundler::GemNotFound.new.status_code } let(:expected) { <<-EOS.strip } -\e[31mCould not find gem 'rack (= 2)' in any of the gem sources listed in your Gemfile or available on this machine.\e[0m +\e[31mCould not find gem 'rack (= 2)' in any of the gem sources listed in your Gemfile.\e[0m \e[33mRun `bundle install` to install missing gems.\e[0m EOS diff --git a/spec/commands/lock_spec.rb b/spec/commands/lock_spec.rb index b51003f2..52dfa23b 100644 --- a/spec/commands/lock_spec.rb +++ b/spec/commands/lock_spec.rb @@ -87,7 +87,7 @@ describe "bundle lock" do it "does not fetch remote specs when using the --local option" do bundle "lock --update --local" - expect(out).to include("available on this machine.") + expect(out).to include("sources listed in your Gemfile") end it "writes to a custom location using --lockfile" do diff --git a/spec/install/post_bundle_message_spec.rb b/spec/install/post_bundle_message_spec.rb index 10c71f0a..7e2eacfb 100644 --- a/spec/install/post_bundle_message_spec.rb +++ b/spec/install/post_bundle_message_spec.rb @@ -104,7 +104,22 @@ describe "post bundle message" do gem "rack" gem "not-a-gem", :group => :development G - expect(out).to include("Could not find gem 'not-a-gem' in any of the gem sources listed in your Gemfile or available on this machine.") + expect(out).to include("Could not find gem 'not-a-gem' in any of the gem sources listed in your Gemfile.") + end + + it "should report a helpful error message with reference to cache if available" do + install_gemfile <<-G + source "file://#{gem_repo1}" + gem "rack" + G + bundle :cache + expect(bundled_app("vendor/cache/rack-1.0.0.gem")).to exist + install_gemfile <<-G + source "file://#{gem_repo1}" + gem "rack" + gem "not-a-gem", :group => :development + G + expect(out).to include("Could not find gem 'not-a-gem' in any of the gem sources listed in your Gemfile or in gems cached in vendor/cache.") end end end |