summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Wen <jrw2175@columbia.edu>2016-05-18 00:05:26 -0400
committerJames Wen <jrw2175@columbia.edu>2016-05-18 00:45:44 -0400
commita95758f5139e7f7c8cdf100ddc8e590591110bd6 (patch)
tree826095543114f5f52f84ddf67eb1bf2adcc6a18c
parent8d3eb4aa0a3286d219c78a05bf1ab47c784fc25c (diff)
downloadbundler-a95758f5139e7f7c8cdf100ddc8e590591110bd6.tar.gz
Use the full expanded path of passed Gemfile during `eval_gemfile`
-rw-r--r--lib/bundler/dsl.rb2
-rw-r--r--spec/install/gemfile/eval_gemfile_spec.rb25
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