        # File lib/ferret/browser.rb, line 10
    10:     def run(env)
    11:       controller, action, args = :home, :index, nil
    12:       query_string = env['QUERY_STRING']||''
    13:       params = parse_query_string(query_string)
    14:       req_path = env['PATH_INFO'].gsub(/\/+/, '/')
    15:       case req_path
    16:       when '/'
    17:         # nothing to do
    18:       when /^\/?([-a-zA-Z]+)\/?$/
    19:         controller = $1
    20:       when /^\/?([-a-zA-Z]+)\/([-a-zA-Z]+)\/?(.*)?$/
    21:         controller = $1
    22:         action = $2
    23:         args = $3
    24:       else
    25:         controller = :error
    26:         args = req_path
    27:       end
    28:       controller_vars = {
    29:         :params => params,
    30:         :req_path => req_path,
    31:         :query_string => query_string,
    32:       }
    33:       delegate(controller, action, args, controller_vars)
    34:     end