【Ruby】bundler/inline で dotenv が動作しない(しなくなった)
2023/07/03
問題
いつも書いている書き方で dotenv が動作しなくなった
.env
EXAMPLE=test
app.rb
require 'bundler/inline'
gemfile do
source 'https://rubygems.org'
gem 'dotenv', require: 'dotenv/load'
end
p ENV['EXAMPLE']
$ ruby app.rb
nil
nil が返ってくる
バージョンは以下
$ ruby -v
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-darwin20]
$ bundler -v
Bundler version 2.4.13
暫定対応
gemfile のブロック外で require してあげたら動く
app.rb
require 'bundler/inline'
gemfile do
source 'https://rubygems.org'
gem 'dotenv'
end
require 'dotenv/load'
p ENV['EXAMPLE']
$ ruby app.rb
"test"
原因
ちゃんと深くは追ってはいないが、この PR でおかしくなってしまったっぽい?
https://github.com/rubygems/rubygems/pull/6306