web-dev-qa-db-ja.com

RakeからRuby環境変数を取得する

アプリケーションをデプロイまたはビルドするためのタスクを含むRakefileがあります。このRakefileは、本番環境と開発環境の両方で使用されます。

buildタスクに環境が何であるかを知らせてほしい。タスクを実行するときにパラメーターをタスクに渡さずにこれを実行できますか?それは環境変数で行うことができますか?

開発中は、次のようなタスクが必要です。

task :build => :clean do
  compass compile -e development
  jekyll
end

そして本番環境では、次のようになります。

task :build => :clean do
  compass compile -e production
  jekyll
end
10
user1082754

はい、環境変数を使用できます。スケルトンの実装は次のとおりです。

task :build do |t, args|
  puts "Current env is #{ENV['RAKE_ENV']}"
end

使用法:

% rake build
Current env is 

% RAKE_ENV=development rake build
Current env is development
21