rack 1.6.13 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of rack might be problematic. Click here for more details.
- checksums.yaml +5 -5
- data/COPYING +1 -1
- data/HISTORY.md +138 -8
- data/README.rdoc +17 -25
- data/Rakefile +6 -14
- data/SPEC +8 -9
- data/contrib/rack_logo.svg +164 -111
- data/example/protectedlobster.rb +1 -1
- data/example/protectedlobster.ru +1 -1
- data/lib/rack/auth/abstract/request.rb +5 -1
- data/lib/rack/auth/digest/params.rb +2 -3
- data/lib/rack/auth/digest/request.rb +1 -1
- data/lib/rack/body_proxy.rb +14 -9
- data/lib/rack/builder.rb +3 -3
- data/lib/rack/chunked.rb +5 -5
- data/lib/rack/{commonlogger.rb → common_logger.rb} +3 -3
- data/lib/rack/{conditionalget.rb → conditional_get.rb} +0 -0
- data/lib/rack/content_length.rb +2 -2
- data/lib/rack/deflater.rb +4 -4
- data/lib/rack/directory.rb +66 -54
- data/lib/rack/etag.rb +4 -3
- data/lib/rack/events.rb +154 -0
- data/lib/rack/file.rb +63 -39
- data/lib/rack/handler/cgi.rb +15 -16
- data/lib/rack/handler/fastcgi.rb +13 -14
- data/lib/rack/handler/lsws.rb +11 -11
- data/lib/rack/handler/scgi.rb +15 -15
- data/lib/rack/handler/thin.rb +3 -0
- data/lib/rack/handler/webrick.rb +22 -24
- data/lib/rack/handler.rb +3 -25
- data/lib/rack/head.rb +15 -17
- data/lib/rack/lint.rb +38 -38
- data/lib/rack/lobster.rb +1 -1
- data/lib/rack/lock.rb +6 -10
- data/lib/rack/logger.rb +2 -2
- data/lib/rack/media_type.rb +38 -0
- data/lib/rack/{methodoverride.rb → method_override.rb} +4 -11
- data/lib/rack/mime.rb +18 -5
- data/lib/rack/mock.rb +35 -53
- data/lib/rack/multipart/generator.rb +5 -5
- data/lib/rack/multipart/parser.rb +272 -158
- data/lib/rack/multipart/uploaded_file.rb +1 -2
- data/lib/rack/multipart.rb +35 -6
- data/lib/rack/{nulllogger.rb → null_logger.rb} +1 -1
- data/lib/rack/query_parser.rb +192 -0
- data/lib/rack/recursive.rb +8 -8
- data/lib/rack/request.rb +383 -307
- data/lib/rack/response.rb +129 -56
- data/lib/rack/rewindable_input.rb +1 -12
- data/lib/rack/runtime.rb +10 -18
- data/lib/rack/sendfile.rb +5 -7
- data/lib/rack/server.rb +31 -25
- data/lib/rack/session/abstract/id.rb +95 -135
- data/lib/rack/session/cookie.rb +26 -28
- data/lib/rack/session/memcache.rb +8 -14
- data/lib/rack/session/pool.rb +14 -21
- data/lib/rack/show_exceptions.rb +386 -0
- data/lib/rack/{showstatus.rb → show_status.rb} +3 -3
- data/lib/rack/static.rb +30 -5
- data/lib/rack/tempfile_reaper.rb +2 -2
- data/lib/rack/urlmap.rb +15 -14
- data/lib/rack/utils.rb +135 -210
- data/lib/rack.rb +70 -21
- data/rack.gemspec +7 -5
- data/test/builder/an_underscore_app.rb +5 -0
- data/test/builder/options.ru +1 -1
- data/test/cgi/test.fcgi +1 -0
- data/test/cgi/test.gz +0 -0
- data/test/helper.rb +34 -0
- data/test/multipart/filename_with_encoded_words +7 -0
- data/test/multipart/{filename_with_null_byte → filename_with_single_quote} +1 -1
- data/test/multipart/quoted +15 -0
- data/test/multipart/rack-logo.png +0 -0
- data/test/multipart/unity3d_wwwform +11 -0
- data/test/registering_handler/rack/handler/registering_myself.rb +1 -1
- data/test/spec_auth_basic.rb +27 -19
- data/test/spec_auth_digest.rb +47 -46
- data/test/spec_body_proxy.rb +27 -27
- data/test/spec_builder.rb +51 -41
- data/test/spec_cascade.rb +24 -22
- data/test/spec_cgi.rb +49 -67
- data/test/spec_chunked.rb +36 -34
- data/test/{spec_commonlogger.rb → spec_common_logger.rb} +23 -21
- data/test/{spec_conditionalget.rb → spec_conditional_get.rb} +29 -28
- data/test/spec_config.rb +3 -2
- data/test/spec_content_length.rb +18 -17
- data/test/spec_content_type.rb +13 -12
- data/test/spec_deflater.rb +66 -40
- data/test/spec_directory.rb +87 -27
- data/test/spec_etag.rb +32 -31
- data/test/spec_events.rb +133 -0
- data/test/spec_fastcgi.rb +50 -72
- data/test/spec_file.rb +107 -77
- data/test/spec_handler.rb +19 -34
- data/test/spec_head.rb +15 -14
- data/test/spec_lint.rb +162 -197
- data/test/spec_lobster.rb +24 -23
- data/test/spec_lock.rb +69 -39
- data/test/spec_logger.rb +4 -3
- data/test/spec_media_type.rb +42 -0
- data/test/spec_method_override.rb +83 -0
- data/test/spec_mime.rb +19 -19
- data/test/spec_mock.rb +196 -151
- data/test/spec_multipart.rb +317 -201
- data/test/{spec_nulllogger.rb → spec_null_logger.rb} +5 -4
- data/test/spec_recursive.rb +17 -14
- data/test/spec_request.rb +768 -607
- data/test/spec_response.rb +214 -111
- data/test/spec_rewindable_input.rb +50 -40
- data/test/spec_runtime.rb +11 -10
- data/test/spec_sendfile.rb +30 -35
- data/test/spec_server.rb +78 -52
- data/test/spec_session_abstract_id.rb +11 -33
- data/test/spec_session_abstract_session_hash.rb +28 -0
- data/test/spec_session_cookie.rb +97 -65
- data/test/spec_session_memcache.rb +63 -101
- data/test/spec_session_pool.rb +48 -84
- data/test/spec_show_exceptions.rb +80 -0
- data/test/{spec_showstatus.rb → spec_show_status.rb} +36 -35
- data/test/spec_static.rb +71 -32
- data/test/spec_tempfile_reaper.rb +11 -10
- data/test/spec_thin.rb +55 -50
- data/test/spec_urlmap.rb +79 -78
- data/test/spec_utils.rb +441 -346
- data/test/spec_version.rb +2 -8
- data/test/spec_webrick.rb +91 -67
- data/test/static/foo.html +1 -0
- data/test/testrequest.rb +1 -1
- data/test/unregistered_handler/rack/handler/unregistered.rb +1 -1
- data/test/unregistered_handler/rack/handler/unregistered_long_one.rb +1 -1
- metadata +103 -69
- data/KNOWN-ISSUES +0 -44
- data/lib/rack/backports/uri/common_18.rb +0 -56
- data/lib/rack/backports/uri/common_192.rb +0 -52
- data/lib/rack/backports/uri/common_193.rb +0 -29
- data/lib/rack/handler/evented_mongrel.rb +0 -8
- data/lib/rack/handler/mongrel.rb +0 -106
- data/lib/rack/handler/swiftiplied_mongrel.rb +0 -8
- data/lib/rack/showexceptions.rb +0 -387
- data/lib/rack/utils/okjson.rb +0 -600
- data/test/spec_methodoverride.rb +0 -111
- data/test/spec_mongrel.rb +0 -182
- data/test/spec_session_persisted_secure_secure_session_hash.rb +0 -73
- data/test/spec_showexceptions.rb +0 -98
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f4e9c67e795c425f3e8faa0d0fe8d48daba757e5
|
4
|
+
data.tar.gz: bf8c0c20c6310e7bd53e8b20c8c4946b1205eb65
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5540bc2b6de513db3c5c494e6e32229087fb20040c4670a8c2215a9ea5a04b010ac9b5143cc3703ab73df0417234a416e49370fb3eafc85bde1c569e521c0612
|
7
|
+
data.tar.gz: f2af8aa5ee53427248393dd707ca34428d18b064c3081a3db663cd0f1e6f35e4b18ce54f607f7cea3c56569ef2552240dd55d0c4ff7006e0e2ab80db3800a933
|
data/COPYING
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Copyright (c) 2007-
|
1
|
+
Copyright (c) 2007-2016 Christian Neukirchen <purl.org/net/chneukirchen>
|
2
2
|
|
3
3
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
4
|
of this software and associated documentation files (the "Software"), to
|
data/HISTORY.md
CHANGED
@@ -14,21 +14,149 @@ Sun Dec 4 18:48:03 2015 Jeremy Daer <jeremydaer@gmail.com>
|
|
14
14
|
Thanks to Ben Toews (@mastahyeti) and Bob Long (@bobjflong) for
|
15
15
|
updating to drafts 5 and 7.
|
16
16
|
|
17
|
-
|
17
|
+
Tue Nov 3 16:17:26 2015 Aaron Patterson <tenderlove@ruby-lang.org>
|
18
18
|
|
19
|
-
*
|
19
|
+
* Add `Rack::Events` middleware for adding event based middleware:
|
20
|
+
middleware that does not care about the response body, but only cares
|
21
|
+
about doing work at particular points in the request / response
|
22
|
+
lifecycle.
|
20
23
|
|
21
|
-
|
24
|
+
Thu Oct 8 14:58:46 2015 Aaron Patterson <tenderlove@ruby-lang.org>
|
22
25
|
|
23
|
-
*
|
26
|
+
* Add `Rack::Request#authority` to calculate the authority under which
|
27
|
+
the response is being made (this will be handy for h2 pushes).
|
28
|
+
|
29
|
+
Tue Oct 6 13:19:04 2015 Aaron Patterson <tenderlove@ruby-lang.org>
|
30
|
+
|
31
|
+
* Add `Rack::Response::Helpers#cache_control` and `cache_control=`.
|
32
|
+
Use this for setting cache control headers on your response objects.
|
33
|
+
|
34
|
+
Tue Oct 6 13:12:21 2015 Aaron Patterson <tenderlove@ruby-lang.org>
|
35
|
+
|
36
|
+
* Add `Rack::Response::Helpers#etag` and `etag=`. Use this for
|
37
|
+
setting etag values on the response.
|
38
|
+
|
39
|
+
Sun Oct 3 18:25:03 2015 Jeremy Daer <jeremydaer@gmail.com>
|
40
|
+
|
41
|
+
* Introduce `Rack::Response::Helpers#add_header` to add a value to a
|
42
|
+
multi-valued response header. Implemented in terms of other
|
43
|
+
`Response#*_header` methods, so it's available to any response-like
|
44
|
+
class that includes the `Helpers` module.
|
45
|
+
|
46
|
+
* Add `Rack::Request#add_header` to match.
|
47
|
+
|
48
|
+
Fri Sep 4 18:34:53 2015 Aaron Patterson <tenderlove@ruby-lang.org>
|
49
|
+
|
50
|
+
* `Rack::Session::Abstract::ID` IS DEPRECATED. Please switch to
|
51
|
+
`Rack::Session::Abstract::Persisted`.
|
52
|
+
`Rack::Session::Abstract::Persisted` uses a request object rather than
|
53
|
+
the `env` hash.
|
54
|
+
|
55
|
+
Fri Sep 4 17:32:12 2015 Aaron Patterson <tenderlove@ruby-lang.org>
|
56
|
+
|
57
|
+
* Pull `ENV` access inside the request object in to a module. This
|
58
|
+
will help with legacy Request objects that are ENV based but don't
|
59
|
+
want to inherit from Rack::Request
|
60
|
+
|
61
|
+
Fri Sep 4 16:09:11 2015 Aaron Patterson <tenderlove@ruby-lang.org>
|
62
|
+
|
63
|
+
* Move most methods on the `Rack::Request` to a module
|
64
|
+
`Rack::Request::Helpers` and use public API to get values from the
|
65
|
+
request object. This enables users to mix `Rack::Request::Helpers` in
|
66
|
+
to their own objects so they can implement
|
67
|
+
`(get|set|fetch|each)_header` as they see fit (for example a proxy
|
68
|
+
object).
|
69
|
+
|
70
|
+
Fri Sep 4 14:15:32 2015 Aaron Patterson <tenderlove@ruby-lang.org>
|
71
|
+
|
72
|
+
* Files and directories with + in the name are served correctly.
|
73
|
+
Rather than unescaping paths like a form, we unescape with a URI
|
74
|
+
parser using `Rack::Utils.unescape_path`. Fixes #265
|
75
|
+
|
76
|
+
Thu Aug 27 15:43:48 2015 Aaron Patterson <tenderlove@ruby-lang.org>
|
77
|
+
|
78
|
+
* Tempfiles are automatically closed in the case that there were too
|
79
|
+
many posted.
|
80
|
+
|
81
|
+
Thu Aug 27 11:00:03 2015 Aaron Patterson <tenderlove@ruby-lang.org>
|
82
|
+
|
83
|
+
* Added methods for manipulating response headers that don't assume
|
84
|
+
they're stored as a Hash. Response-like classes may include the
|
85
|
+
Rack::Response::Helpers module if they define these methods:
|
86
|
+
|
87
|
+
* Rack::Response#has_header?
|
88
|
+
* Rack::Response#get_header
|
89
|
+
* Rack::Response#set_header
|
90
|
+
* Rack::Response#delete_header
|
91
|
+
|
92
|
+
Mon Aug 24 18:05:23 2015 Aaron Patterson <tenderlove@ruby-lang.org>
|
93
|
+
|
94
|
+
* Introduce Util.get_byte_ranges that will parse the value of the
|
95
|
+
HTTP_RANGE string passed to it without depending on the `env` hash.
|
96
|
+
`byte_ranges` is deprecated in favor of this method.
|
97
|
+
|
98
|
+
Sat Aug 22 17:49:49 2015 Aaron Patterson <tenderlove@ruby-lang.org>
|
99
|
+
|
100
|
+
* Change Session internals to use Request objects for looking up
|
101
|
+
session information. This allows us to only allocate one request
|
102
|
+
object when dealing with session objects (rather than doing it every
|
103
|
+
time we need to manipulate cookies, etc).
|
104
|
+
|
105
|
+
Fri Aug 21 16:30:51 2015 Aaron Patterson <tenderlove@ruby-lang.org>
|
106
|
+
|
107
|
+
* Add `Rack::Request#initialize_copy` so that the env is duped when
|
108
|
+
the request gets duped.
|
109
|
+
|
110
|
+
Thu Aug 20 16:20:58 2015 Aaron Patterson <tenderlove@ruby-lang.org>
|
111
|
+
|
112
|
+
* Added methods for manipulating request specific data. This includes
|
113
|
+
data set as CGI parameters, and just any arbitrary data the user wants
|
114
|
+
to associate with a particular request. New methods:
|
115
|
+
|
116
|
+
* Rack::Request#has_header?
|
117
|
+
* Rack::Request#get_header
|
118
|
+
* Rack::Request#fetch_header
|
119
|
+
* Rack::Request#each_header
|
120
|
+
* Rack::Request#set_header
|
121
|
+
* Rack::Request#delete_header
|
122
|
+
|
123
|
+
Thu Jun 18 16:00:05 2015 Aaron Patterson <tenderlove@ruby-lang.org>
|
124
|
+
|
125
|
+
* lib/rack/utils.rb: add a method for constructing "delete" cookie
|
126
|
+
headers. This allows us to construct cookie headers without depending
|
127
|
+
on the side effects of mutating a hash.
|
24
128
|
|
25
129
|
Fri Jun 12 11:37:41 2015 Aaron Patterson <tenderlove@ruby-lang.org>
|
26
130
|
|
27
131
|
* Prevent extremely deep parameters from being parsed. CVE-2015-3225
|
28
132
|
|
29
|
-
###
|
30
|
-
|
31
|
-
|
133
|
+
### May 6th, 2015, Thirty seventh public release 1.6.1
|
134
|
+
- Fix CVE-2014-9490, denial of service attack in OkJson ([8cd610](https://github.com/rack/rack/commit/8cd61062954f70e0a03e2855704e95ff4bdd4f6e))
|
135
|
+
- Use a monotonic time for Rack::Runtime, if available ([d170b2](https://github.com/rack/rack/commit/d170b2363c949dce60871f9d5a6bfc83da2bedb5))
|
136
|
+
- RACK_MULTIPART_LIMIT changed to RACK_MULTIPART_PART_LIMIT (RACK_MULTIPART_LIMIT is deprecated and will be removed in 1.7.0) ([c096c5](https://github.com/rack/rack/commit/c096c50c00230d8eee13ad5f79ad027d9a3f3ca9))
|
137
|
+
- See the full [git history](https://github.com/rack/rack/compare/1.6.0...1.6.1) and [milestone tag](https://github.com/rack/rack/issues?utf8=%E2%9C%93&q=milestone%3A%22Rack+1.6%22)
|
138
|
+
|
139
|
+
### May 6th, 2015, Thirty seventh public release 1.5.3
|
140
|
+
- Fix CVE-2014-9490, denial of service attack in OkJson ([99f725](https://github.com/rack/rack/commit/99f725b583b357376ffbb7b3b042c5daa3106ad6))
|
141
|
+
- Backport bug fixes to 1.5 series ([#585](https://github.com/rack/rack/pull/585), [#711](https://github.com/rack/rack/pull/711), [#756](https://github.com/rack/rack/pull/756))
|
142
|
+
- See the full [git history](https://github.com/rack/rack/compare/1.5.2...1.5.3) and [milestone tag](https://github.com/rack/rack/issues?utf8=%E2%9C%93&q=milestone%3A%22Rack+1.5.3%22)
|
143
|
+
|
144
|
+
### December 18th, 2014, Thirty sixth public release 1.6.0
|
145
|
+
- Response#unauthorized? helper ([#580](https://github.com/rack/rack/pull/580))
|
146
|
+
- Deflater now accepts an options hash to control compression on a per-request level ([#457](https://github.com/rack/rack/pull/457))
|
147
|
+
- Builder#warmup method for app preloading ([#617](https://github.com/rack/rack/pull/617))
|
148
|
+
- Request#accept_language method to extract HTTP_ACCEPT_LANGUAGE ([#623](https://github.com/rack/rack/pull/623))
|
149
|
+
- Add quiet mode of rack server, rackup --quiet ([#674](https://github.com/rack/rack/pull/674))
|
150
|
+
- Update HTTP Status Codes to RFC 7231 ([#754](https://github.com/rack/rack/pull/754))
|
151
|
+
- Less strict header name validation according to [RFC 2616](https://tools.ietf.org/html/rfc2616) ([#399](https://github.com/rack/rack/pull/399))
|
152
|
+
- SPEC updated to specify headers conform to RFC7230 specification ([6839fc](https://github.com/rack/rack/commit/6839fc203339f021cb3267fb09cba89410f086e9))
|
153
|
+
- Etag correctly marks etags as weak ([#681](https://github.com/rack/rack/issues/681))
|
154
|
+
- Request#port supports multiple x-http-forwarded-proto values ([#669](https://github.com/rack/rack/pull/669))
|
155
|
+
- Utils#multipart_part_limit configures the maximum number of parts a request can contain ([#684](https://github.com/rack/rack/pull/684))
|
156
|
+
- Default host to localhost when in development mode ([#514](https://github.com/rack/rack/pull/514))
|
157
|
+
- Various bugfixes and performance improvements (See the full [git history](https://github.com/rack/rack/compare/1.5.2...1.6.0) and [milestone tag](https://github.com/rack/rack/issues?utf8=%E2%9C%93&q=milestone%3A%22Rack+1.6%22))
|
158
|
+
|
159
|
+
### February 7th, 2013, Thirty fifth public release 1.5.2
|
32
160
|
- Fix CVE-2013-0263, timing attack against Rack::Session::Cookie
|
33
161
|
- Fix CVE-2013-0262, symlink path traversal in Rack::File
|
34
162
|
- Add various methods to Session for enhanced Rails compatibility
|
@@ -38,7 +166,7 @@ Fri Jun 12 11:37:41 2015 Aaron Patterson <tenderlove@ruby-lang.org>
|
|
38
166
|
- Fix a race condition that could result in overwritten pidfiles
|
39
167
|
- Various documentation additions
|
40
168
|
|
41
|
-
### February 7th, Thirty fifth public release 1.4.5
|
169
|
+
### February 7th, 2013, Thirty fifth public release 1.4.5
|
42
170
|
- Fix CVE-2013-0263, timing attack against Rack::Session::Cookie
|
43
171
|
- Fix CVE-2013-0262, symlink path traversal in Rack::File
|
44
172
|
|
@@ -373,3 +501,5 @@ Fri Jun 12 11:37:41 2015 Aaron Patterson <tenderlove@ruby-lang.org>
|
|
373
501
|
- Removed Rails adapter, was too alpha.
|
374
502
|
|
375
503
|
### March 3rd, 2007: First public release 0.1.
|
504
|
+
|
505
|
+
/* vim: set filetype=changelog */
|
data/README.rdoc
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
= Rack, a modular Ruby webserver interface {<img src="https://secure.travis-ci.org/rack/rack.svg" alt="Build Status" />}[http://travis-ci.org/rack/rack] {<img src="https://gemnasium.com/rack/rack.svg" alt="Dependency Status" />}[https://gemnasium.com/rack/rack]
|
2
2
|
|
3
|
-
Rack provides a minimal, modular and adaptable interface for developing
|
3
|
+
Rack provides a minimal, modular, and adaptable interface for developing
|
4
4
|
web applications in Ruby. By wrapping HTTP requests and responses in
|
5
5
|
the simplest way possible, it unifies and distills the API for web
|
6
6
|
servers, web frameworks, and software in between (the so-called
|
@@ -12,9 +12,6 @@ which all Rack applications should conform to.
|
|
12
12
|
== Supported web servers
|
13
13
|
|
14
14
|
The included *handlers* connect all kinds of web servers to Rack:
|
15
|
-
* Mongrel
|
16
|
-
* EventedMongrel
|
17
|
-
* SwiftipliedMongrel
|
18
15
|
* WEBrick
|
19
16
|
* FCGI
|
20
17
|
* CGI
|
@@ -28,13 +25,11 @@ These web servers include Rack handlers in their distributions:
|
|
28
25
|
* Glassfish v3
|
29
26
|
* Phusion Passenger (which is mod_rack for Apache and for nginx)
|
30
27
|
* Puma
|
31
|
-
* Rainbows!
|
32
28
|
* Reel
|
33
29
|
* Unicorn
|
34
30
|
* unixrack
|
35
31
|
* uWSGI
|
36
32
|
* yahns
|
37
|
-
* Zbatery
|
38
33
|
|
39
34
|
Any valid Rack app will run the same on all these handlers, without
|
40
35
|
changing anything.
|
@@ -103,8 +98,8 @@ Rack::Builder DSL to configure middleware and build up applications
|
|
103
98
|
easily.
|
104
99
|
|
105
100
|
rackup automatically figures out the environment it is run in, and
|
106
|
-
runs your application as FastCGI, CGI, or
|
107
|
-
|
101
|
+
runs your application as FastCGI, CGI, or WEBrick---all from the
|
102
|
+
same configuration.
|
108
103
|
|
109
104
|
== Quick start
|
110
105
|
|
@@ -141,19 +136,17 @@ Or:
|
|
141
136
|
|
142
137
|
bundle install # this assumes that you have installed native extensions!
|
143
138
|
|
144
|
-
There
|
139
|
+
There is a rake-based test task:
|
145
140
|
|
146
|
-
rake test tests all the
|
147
|
-
rake fulltest runs all the tests
|
141
|
+
rake test tests all the tests
|
148
142
|
|
149
|
-
The
|
143
|
+
The testsuite has no dependencies outside of the core Ruby
|
150
144
|
installation and bacon.
|
151
145
|
|
152
146
|
To run the test suite completely, you need:
|
153
147
|
|
154
148
|
* fcgi
|
155
149
|
* memcache-client
|
156
|
-
* mongrel
|
157
150
|
* thin
|
158
151
|
|
159
152
|
The full set of tests test FCGI access with lighttpd (on port
|
@@ -209,7 +202,7 @@ Can also be set via the RACK_MULTIPART_PART_LIMIT environment variable.
|
|
209
202
|
|
210
203
|
== History
|
211
204
|
|
212
|
-
See <https://github.com/rack/HISTORY.md>.
|
205
|
+
See <https://github.com/rack/rack/blob/master/HISTORY.md>.
|
213
206
|
|
214
207
|
== Contact
|
215
208
|
|
@@ -235,19 +228,19 @@ You are also welcome to join the #rack channel on irc.freenode.net.
|
|
235
228
|
|
236
229
|
The Rack Core Team, consisting of
|
237
230
|
|
238
|
-
* Christian Neukirchen (chneukirchen)
|
239
|
-
* James Tucker (raggi)
|
240
|
-
* Josh Peek (josh)
|
241
|
-
* José Valim (josevalim)
|
242
|
-
* Michael Fellinger (manveru)
|
243
|
-
* Aaron Patterson (tenderlove)
|
244
|
-
* Santiago Pastorino (spastorino)
|
245
|
-
* Konstantin Haase (rkh)
|
231
|
+
* Christian Neukirchen (chneukirchen[https://github.com/chneukirchen])
|
232
|
+
* James Tucker (raggi[https://github.com/raggi])
|
233
|
+
* Josh Peek (josh[https://github.com/josh])
|
234
|
+
* José Valim (josevalim[https://github.com/josevalim])
|
235
|
+
* Michael Fellinger (manveru[https://github.com/manveru])
|
236
|
+
* Aaron Patterson (tenderlove[https://github.com/tenderlove])
|
237
|
+
* Santiago Pastorino (spastorino[https://github.com/spastorino])
|
238
|
+
* Konstantin Haase (rkh[https://github.com/rkh])
|
246
239
|
|
247
240
|
and the Rack Alumnis
|
248
241
|
|
249
|
-
* Ryan Tomayko (rtomayko)
|
250
|
-
* Scytrin dai Kinthra (scytrin)
|
242
|
+
* Ryan Tomayko (rtomayko[https://github.com/rtomayko])
|
243
|
+
* Scytrin dai Kinthra (scytrin[https://github.com/scytrin])
|
251
244
|
|
252
245
|
would like to thank:
|
253
246
|
|
@@ -309,4 +302,3 @@ rack-devel mailing list:: <https://groups.google.com/group/rack-devel>
|
|
309
302
|
Rack's Rubyforge project:: <http://rubyforge.org/projects/rack>
|
310
303
|
|
311
304
|
Christian Neukirchen:: <http://chneukirchen.org/>
|
312
|
-
|
data/Rakefile
CHANGED
@@ -36,7 +36,7 @@ task :officialrelease_really => %w[SPEC dist gem] do
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def release
|
39
|
-
"rack
|
39
|
+
"rack-" + File.read('lib/rack.rb')[/RELEASE += +([\"\'])([\d][\w\.]+)\1/, 2]
|
40
40
|
end
|
41
41
|
|
42
42
|
desc "Make binaries executable"
|
@@ -52,7 +52,7 @@ file '.git/index'
|
|
52
52
|
file "ChangeLog" => '.git/index' do
|
53
53
|
File.open("ChangeLog", "w") { |out|
|
54
54
|
log = `git log -z`
|
55
|
-
log.force_encoding(Encoding::BINARY)
|
55
|
+
log.force_encoding(Encoding::BINARY)
|
56
56
|
log.split("\0").map { |chunk|
|
57
57
|
author = chunk[/Author: (.*)/, 1].strip
|
58
58
|
date = chunk[/Date: (.*)/, 1].strip
|
@@ -82,22 +82,14 @@ end
|
|
82
82
|
|
83
83
|
desc "Run all the fast + platform agnostic tests"
|
84
84
|
task :test => 'SPEC' do
|
85
|
-
opts = ENV['TEST'] || '
|
86
|
-
specopts = ENV['TESTOPTS']
|
87
|
-
"-q -t '^(?!Rack::Adapter|Rack::Session::Memcache|Rack::Server|Rack::Handler)'"
|
85
|
+
opts = ENV['TEST'] || ''
|
86
|
+
specopts = ENV['TESTOPTS']
|
88
87
|
|
89
|
-
sh "
|
88
|
+
sh "ruby -I./lib:./test -S minitest #{opts} #{specopts} test/gemloader.rb test/spec*.rb"
|
90
89
|
end
|
91
90
|
|
92
91
|
desc "Run all the tests we run on CI"
|
93
|
-
task :ci => :
|
94
|
-
|
95
|
-
desc "Run all the tests"
|
96
|
-
task :fulltest => %w[SPEC chmod] do
|
97
|
-
opts = ENV['TEST'] || '-a'
|
98
|
-
specopts = ENV['TESTOPTS'] || '-q'
|
99
|
-
sh "bacon -r./test/gemloader -I./lib:./test -w #{opts} #{specopts}"
|
100
|
-
end
|
92
|
+
task :ci => :test
|
101
93
|
|
102
94
|
task :gem => ["SPEC"] do
|
103
95
|
sh "gem build rack.gemspec"
|
data/SPEC
CHANGED
@@ -35,7 +35,7 @@ below.
|
|
35
35
|
empty string, if the request URL targets
|
36
36
|
the application root and does not have a
|
37
37
|
trailing slash. This value may be
|
38
|
-
percent-encoded when
|
38
|
+
percent-encoded when originating from
|
39
39
|
a URL.
|
40
40
|
<tt>QUERY_STRING</tt>:: The portion of the request URL that
|
41
41
|
follows the <tt>?</tt>, if any. May be
|
@@ -60,8 +60,8 @@ below.
|
|
60
60
|
the presence or absence of the
|
61
61
|
appropriate HTTP header in the
|
62
62
|
request. See
|
63
|
-
|
64
|
-
RFC3875 section 4.1.18
|
63
|
+
{https://tools.ietf.org/html/rfc3875#section-4.1.18
|
64
|
+
RFC3875 section 4.1.18} for
|
65
65
|
specific behavior.
|
66
66
|
In addition to this, the Rack environment must include these
|
67
67
|
Rack-specific variables:
|
@@ -98,13 +98,12 @@ Rack-specific variables:
|
|
98
98
|
Additional environment specifications have approved to
|
99
99
|
standardized middleware APIs. None of these are required to
|
100
100
|
be implemented by the server.
|
101
|
-
<tt>rack.session</tt>:: A hash like interface for storing
|
102
|
-
request session data.
|
101
|
+
<tt>rack.session</tt>:: A hash like interface for storing request session data.
|
103
102
|
The store must implement:
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
103
|
+
store(key, value) (aliased as []=);
|
104
|
+
fetch(key, default = nil) (aliased as []);
|
105
|
+
delete(key);
|
106
|
+
clear;
|
108
107
|
<tt>rack.logger</tt>:: A common object interface for logging messages.
|
109
108
|
The object must implement:
|
110
109
|
info(message, &block)
|