Simulating the Heroku Environment in Development
I've been using Heroku quite a bit lately for easy
deployment. Things such as
DATABASE_URL and S3 credentials are managed
heroku config and show up in your production app as
ENV['DATABASE_URL']. This is a great way to keep these configuration details
out of your repository.
One downside to this approach is that it can be annoying to get these environment variables set in your local development version of the app. Enter rack-environment. This piece of Rack middleware lets you manage your development environment in a small YAML file that will get loaded in front of your app. Simple, yet effective.
Using rack-environment with Rails
# config/environments/development.rb config.gem 'rack-environment' config.middleware.use 'RackEnvironment' # config/environment.yml VARIABLE1: value1 VARIABLE2: value2
Using rack-environment with any Rack-based framework
# config.ru Rack::Builder.new use RackEnvironment if ENV['RACK_ENV'] == 'development' run MyApplication.new end