diff options
author | James Wen <jrw2175@columbia.edu> | 2016-05-18 00:05:26 -0400 |
---|---|---|
committer | James Wen <jrw2175@columbia.edu> | 2016-05-18 00:45:44 -0400 |
commit | a95758f5139e7f7c8cdf100ddc8e590591110bd6 (patch) | |
tree | 826095543114f5f52f84ddf67eb1bf2adcc6a18c | |
parent | 8d3eb4aa0a3286d219c78a05bf1ab47c784fc25c (diff) | |
download | bundler-a95758f5139e7f7c8cdf100ddc8e590591110bd6.tar.gz |
Use the full expanded path of passed Gemfile during `eval_gemfile`
-rw-r--r-- | lib/bundler/dsl.rb | 2 | ||||
-rw-r--r-- | spec/install/gemfile/eval_gemfile_spec.rb | 25 |
2 files changed, 26 insertions, 1 deletions
diff --git a/lib/bundler/dsl.rb b/lib/bundler/dsl.rb index 224e642bd4..b201e097c6 100644 --- a/lib/bundler/dsl.rb +++ b/lib/bundler/dsl.rb @@ -34,7 +34,7 @@ module Bundler end def eval_gemfile(gemfile, contents = nil) - @gemfile = Pathname.new(gemfile) + @gemfile = Pathname.new(gemfile).expand_path contents ||= Bundler.read_file(gemfile.to_s) instance_eval(contents, gemfile.to_s, 1) rescue Exception => e diff --git a/spec/install/gemfile/eval_gemfile_spec.rb b/spec/install/gemfile/eval_gemfile_spec.rb new file mode 100644 index 0000000000..ed6ecec467 --- /dev/null +++ b/spec/install/gemfile/eval_gemfile_spec.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true +require "spec_helper" + +describe "bundle install with gemfile that uses eval_gemfile" do + context "eval-ed Gemfile points to an internal gemspec" do + before do + build_lib("gunks", :path => bundled_app.join("gems/gunks")) do |s| + s.name = "gunks" + s.version = "0.0.1" + end + create_file "Gemfile-other", <<-G + gemspec :path => 'gems/gunks' + G + end + + it "should install the gemspec specified gem" do + install_gemfile <<-G + eval_gemfile 'Gemfile-other' + G + expect(out).to include("Resolving dependencies") + expect(out).to include("Using gunks 0.0.1 from source at `gems/gunks`") + expect(out).to include("Bundle complete") + end + end +end |