Bumping version
[rack.git] / lib / rack.rb
blob48ac3e21198ac7c257c3d1a7a20bdcf5f06e591e
1 # Copyright (C) 2007, 2008, 2009, 2010 Christian Neukirchen <purl.org/net/chneukirchen>
3 # Rack is freely distributable under the terms of an MIT-style license.
4 # See COPYING or http://www.opensource.org/licenses/mit-license.php.
6 # The Rack main module, serving as a namespace for all core Rack
7 # modules and classes.
9 # All modules meant for use in your application are <tt>autoload</tt>ed here,
10 # so it should be enough just to <tt>require 'rack'</tt> in your code.
12 module Rack
13   # The Rack protocol version number implemented.
14   VERSION = [1,3]
16   # Return the Rack protocol version as a dotted string.
17   def self.version
18     VERSION.join(".")
19   end
21   RELEASE = "2.0.8"
23   # Return the Rack release as a dotted string.
24   def self.release
25     RELEASE
26   end
28   HTTP_HOST         = 'HTTP_HOST'.freeze
29   HTTP_VERSION      = 'HTTP_VERSION'.freeze
30   HTTPS             = 'HTTPS'.freeze
31   PATH_INFO         = 'PATH_INFO'.freeze
32   REQUEST_METHOD    = 'REQUEST_METHOD'.freeze
33   REQUEST_PATH      = 'REQUEST_PATH'.freeze
34   SCRIPT_NAME       = 'SCRIPT_NAME'.freeze
35   QUERY_STRING      = 'QUERY_STRING'.freeze
36   SERVER_PROTOCOL   = 'SERVER_PROTOCOL'.freeze
37   SERVER_NAME       = 'SERVER_NAME'.freeze
38   SERVER_ADDR       = 'SERVER_ADDR'.freeze
39   SERVER_PORT       = 'SERVER_PORT'.freeze
40   CACHE_CONTROL     = 'Cache-Control'.freeze
41   CONTENT_LENGTH    = 'Content-Length'.freeze
42   CONTENT_TYPE      = 'Content-Type'.freeze
43   SET_COOKIE        = 'Set-Cookie'.freeze
44   TRANSFER_ENCODING = 'Transfer-Encoding'.freeze
45   HTTP_COOKIE       = 'HTTP_COOKIE'.freeze
46   ETAG              = 'ETag'.freeze
48   # HTTP method verbs
49   GET     = 'GET'.freeze
50   POST    = 'POST'.freeze
51   PUT     = 'PUT'.freeze
52   PATCH   = 'PATCH'.freeze
53   DELETE  = 'DELETE'.freeze
54   HEAD    = 'HEAD'.freeze
55   OPTIONS = 'OPTIONS'.freeze
56   LINK    = 'LINK'.freeze
57   UNLINK  = 'UNLINK'.freeze
58   TRACE   = 'TRACE'.freeze
60   # Rack environment variables
61   RACK_VERSION                        = 'rack.version'.freeze
62   RACK_TEMPFILES                      = 'rack.tempfiles'.freeze
63   RACK_ERRORS                         = 'rack.errors'.freeze
64   RACK_LOGGER                         = 'rack.logger'.freeze
65   RACK_INPUT                          = 'rack.input'.freeze
66   RACK_SESSION                        = 'rack.session'.freeze
67   RACK_SESSION_OPTIONS                = 'rack.session.options'.freeze
68   RACK_SHOWSTATUS_DETAIL              = 'rack.showstatus.detail'.freeze
69   RACK_MULTITHREAD                    = 'rack.multithread'.freeze
70   RACK_MULTIPROCESS                   = 'rack.multiprocess'.freeze
71   RACK_RUNONCE                        = 'rack.run_once'.freeze
72   RACK_URL_SCHEME                     = 'rack.url_scheme'.freeze
73   RACK_HIJACK                         = 'rack.hijack'.freeze
74   RACK_IS_HIJACK                      = 'rack.hijack?'.freeze
75   RACK_HIJACK_IO                      = 'rack.hijack_io'.freeze
76   RACK_RECURSIVE_INCLUDE              = 'rack.recursive.include'.freeze
77   RACK_MULTIPART_BUFFER_SIZE          = 'rack.multipart.buffer_size'.freeze
78   RACK_MULTIPART_TEMPFILE_FACTORY     = 'rack.multipart.tempfile_factory'.freeze
79   RACK_REQUEST_FORM_INPUT             = 'rack.request.form_input'.freeze
80   RACK_REQUEST_FORM_HASH              = 'rack.request.form_hash'.freeze
81   RACK_REQUEST_FORM_VARS              = 'rack.request.form_vars'.freeze
82   RACK_REQUEST_COOKIE_HASH            = 'rack.request.cookie_hash'.freeze
83   RACK_REQUEST_COOKIE_STRING          = 'rack.request.cookie_string'.freeze
84   RACK_REQUEST_QUERY_HASH             = 'rack.request.query_hash'.freeze
85   RACK_REQUEST_QUERY_STRING           = 'rack.request.query_string'.freeze
86   RACK_METHODOVERRIDE_ORIGINAL_METHOD = 'rack.methodoverride.original_method'.freeze
87   RACK_SESSION_UNPACKED_COOKIE_DATA   = 'rack.session.unpacked_cookie_data'.freeze
89   autoload :Builder, "rack/builder"
90   autoload :BodyProxy, "rack/body_proxy"
91   autoload :Cascade, "rack/cascade"
92   autoload :Chunked, "rack/chunked"
93   autoload :CommonLogger, "rack/common_logger"
94   autoload :ConditionalGet, "rack/conditional_get"
95   autoload :Config, "rack/config"
96   autoload :ContentLength, "rack/content_length"
97   autoload :ContentType, "rack/content_type"
98   autoload :ETag, "rack/etag"
99   autoload :File, "rack/file"
100   autoload :Deflater, "rack/deflater"
101   autoload :Directory, "rack/directory"
102   autoload :ForwardRequest, "rack/recursive"
103   autoload :Handler, "rack/handler"
104   autoload :Head, "rack/head"
105   autoload :Lint, "rack/lint"
106   autoload :Lock, "rack/lock"
107   autoload :Logger, "rack/logger"
108   autoload :MethodOverride, "rack/method_override"
109   autoload :Mime, "rack/mime"
110   autoload :NullLogger, "rack/null_logger"
111   autoload :Recursive, "rack/recursive"
112   autoload :Reloader, "rack/reloader"
113   autoload :Runtime, "rack/runtime"
114   autoload :Sendfile, "rack/sendfile"
115   autoload :Server, "rack/server"
116   autoload :ShowExceptions, "rack/show_exceptions"
117   autoload :ShowStatus, "rack/show_status"
118   autoload :Static, "rack/static"
119   autoload :TempfileReaper, "rack/tempfile_reaper"
120   autoload :URLMap, "rack/urlmap"
121   autoload :Utils, "rack/utils"
122   autoload :Multipart, "rack/multipart"
124   autoload :MockRequest, "rack/mock"
125   autoload :MockResponse, "rack/mock"
127   autoload :Request, "rack/request"
128   autoload :Response, "rack/response"
130   module Auth
131     autoload :Basic, "rack/auth/basic"
132     autoload :AbstractRequest, "rack/auth/abstract/request"
133     autoload :AbstractHandler, "rack/auth/abstract/handler"
134     module Digest
135       autoload :MD5, "rack/auth/digest/md5"
136       autoload :Nonce, "rack/auth/digest/nonce"
137       autoload :Params, "rack/auth/digest/params"
138       autoload :Request, "rack/auth/digest/request"
139     end
140   end
142   module Session
143     autoload :Cookie, "rack/session/cookie"
144     autoload :Pool, "rack/session/pool"
145     autoload :Memcache, "rack/session/memcache"
146   end