thoughtbot / appraisal

A Ruby library for testing your library against different versions of dependencies.
https://thoughtbot.com
MIT License
1.26k stars 107 forks source link

Fix `__FILE__` and `__dir__` in primary Gemfiles #193

Closed indirect closed 2 years ago

indirect commented 2 years ago

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.