The Rack main module, serving as a namespace for all core Rack modules and classes.

All modules meant for use in your application are autoloaded here, so it should be enough just to require rack.rb in your code.

Methods
Classes and Modules
Module Rack::Adapter
Module Rack::Auth
Module Rack::Handler
Module Rack::Mime
Module Rack::Session
Module Rack::Utils
Class Rack::Builder
Class Rack::Cascade
Class Rack::Chunked
Class Rack::CommonLogger
Class Rack::ConditionalGet
Class Rack::ContentLength
Class Rack::ContentType
Class Rack::Deflater
Class Rack::Directory
Class Rack::File
Class Rack::ForwardRequest
Class Rack::Head
Class Rack::Lint
Class Rack::Lobster
Class Rack::Lock
Class Rack::MethodOverride
Class Rack::MockRequest
Class Rack::MockResponse
Class Rack::Recursive
Class Rack::Reloader
Class Rack::Request
Class Rack::Response
Class Rack::RewindableInput
Class Rack::ShowExceptions
Class Rack::ShowStatus
Class Rack::Static
Class Rack::URLMap
Constants
VERSION = [1,0]
  The Rack protocol version number implemented.
Public Class methods
release()

Return the Rack release as a dotted string.

    # File vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0.x/rack.rb, line 26
26:   def self.release
27:     "1.0"
28:   end
version()

Return the Rack protocol version as a dotted string.

    # File vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0.x/rack.rb, line 21
21:   def self.version
22:     VERSION.join(".")
23:   end
Public Instance methods
call(env)
    # File vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0.x/rack/lobster.rb, line 32
32:     def call(env)
33:       req = Request.new(env)
34:       if req.GET["flip"] == "left"
35:         lobster = LobsterString.split("\n").
36:           map { |line| line.ljust(42).reverse }.
37:           join("\n")
38:         href = "?flip=right"
39:       elsif req.GET["flip"] == "crash"
40:         raise "Lobster crashed"
41:       else
42:         lobster = LobsterString
43:         href = "?flip=left"
44:       end
45: 
46:       res = Response.new
47:       res.write "<title>Lobstericious!</title>"
48:       res.write "<pre>"
49:       res.write lobster
50:       res.write "</pre>"
51:       res.write "<p><a href='#{href}'>flip!</a></p>"
52:       res.write "<p><a href='?flip=crash'>crash!</a></p>"
53:       res.finish
54:     end
parse_nested_query(qs, d = nil)
    # File vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0.x/rack/utils.rb, line 57
57:     def parse_nested_query(qs, d = nil)
58:       params = {}
59: 
60:       (qs || '').split(d ? /[#{d}] */n : DEFAULT_SEP).each do |p|
61:         k, v = unescape(p).split('=', 2)
62:         normalize_params(params, k, v)
63:       end