Use full path for instance_eval
in Bundler::DSL#eval_gemfile
#7471
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What was the end-user or developer problem that led to this PR?
When using
eval_gemfile("../gemfile_prefix.rb")
with a Gemfile that's not in the current directory,__dir__
and__FILE__
end up being
".."
and"gemfile_prefix.rb"
respectively, which is not usable from within gemfile_prefix.rb in order to find other relative files, sinceDir.pwd
is not the Gemfile's directory.What is your fix for the problem, implemented in this PR?
eval_gemfile
already calculates the absolute path to the gemfile fragment; just pass that toinstance_eval
. This makes it behave the same wrt__dir__
and__FILE__
asrequire_relative
.Make sure the following tasks are checked