Rack::If

Use or don’t use rack apps based on a variety of environment variables.

Use

gem install rackif

Example (in your config.ru):

require 'rackif'
use Rack::If do
  if path == '/protected' && method != 'GET'
    use Rack::Auth::Basic, "Rack::If Example" do |username, password|
      'secret' == password
    end
  end
end

run MyApp.new # when above matches, this is protected

Configuration

Rack::If block Shortcut methods for path, method, user_agent, host, port, query_string, http_accept, and http_accept_encoding are available, anything else is available at env.

Example:

use Rack::If do
  unless env['rack.session']['verified_identity']
    use EasyRackOpenID
  end
end

Copyright © 2009 Sam Schenkman-Moore, David Dollar. See LICENSE for details.