Appraisal is good! I found a bug: I have the habit of using ruby Pathname.new(__dir__).join(".ruby-version").read in my Gemfile, so that I can write my ruby version in just one place, in the .ruby-version file.
Unfortunately, the Gemfile classes calls instance_eval without telling Ruby what file the string came from, and so Ruby thinks that FILE should point to appraisal/lib/appraisal/gemfile.rb instead of the Gemfile itself, and that breaks anything inside the Gemfile that references either __FILE__ or __dir__.
This PR adds a test and passes in the path to the Gemfile, if it is known, to fix that.
Appraisal is good! I found a bug: I have the habit of using
ruby Pathname.new(__dir__).join(".ruby-version").read
in myGemfile
, so that I can write my ruby version in just one place, in the.ruby-version
file.Unfortunately, the Gemfile classes calls
instance_eval
without telling Ruby what file the string came from, and so Ruby thinks that FILE should point to appraisal/lib/appraisal/gemfile.rb instead of the Gemfile itself, and that breaks anything inside the Gemfile that references either__FILE__
or__dir__
.This PR adds a test and passes in the path to the Gemfile, if it is known, to fix that.