如果您只需要设置环境变量,可以通过命令行来设置它们。
SOMETHING=123 SOMETHING_ELSE="this is a test" rake spec
或者你可以在你的Rakefile或spec_helper.rb文件的顶部定义以下内容:
ENV['SOMETHING']=123
ENV['SOMETHING_ELSE']="this is a test"
如果它们并不总是适用的话,你可以使用一个条件语句:
if something_needs_to_happen?
ENV['SOMETHING']=123
ENV['SOMETHING_ELSE']="this is a test"
end
如果你想使用一个类似下面这样的Foreman
.env
文件:
SOMETHING=123
SOMETHING_ELSE="this is a test"
将其转换为以下内容并进行评估:
ENV['SOMETHING']='123'
ENV['SOMETHING_ELSE']='this is a test'
你可以这样做:
File.open("/path/to/.env", "r").each_line do |line|
a = line.chomp("\n").split('=',2)
a[1].gsub!(/^"|"$/, '') if ['\'','"'].include?(a[1][0])
eval "ENV['#{a[0]}']='#{a[1] || ''}'"
end
虽然我不认为这对多行值有效。
正如@JesseWolgamott所指出的那样,看起来你可以使用
gem 'dotenv-rails'
。
gem
,尤其是在使用像Sinatra
这样的极简框架时。谢谢! - fagiani