rack 2.0.3 → 2.2.4

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.

Files changed (190) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +708 -0
  3. data/CONTRIBUTING.md +136 -0
  4. data/{COPYING → MIT-LICENSE} +4 -2
  5. data/README.rdoc +152 -150
  6. data/Rakefile +37 -23
  7. data/{SPEC → SPEC.rdoc} +35 -10
  8. data/bin/rackup +1 -0
  9. data/example/lobster.ru +2 -0
  10. data/example/protectedlobster.rb +3 -1
  11. data/example/protectedlobster.ru +2 -0
  12. data/lib/rack/auth/abstract/handler.rb +3 -1
  13. data/lib/rack/auth/abstract/request.rb +1 -1
  14. data/lib/rack/auth/basic.rb +7 -4
  15. data/lib/rack/auth/digest/md5.rb +13 -11
  16. data/lib/rack/auth/digest/nonce.rb +6 -3
  17. data/lib/rack/auth/digest/params.rb +4 -2
  18. data/lib/rack/auth/digest/request.rb +5 -3
  19. data/lib/rack/body_proxy.rb +15 -14
  20. data/lib/rack/builder.rb +116 -23
  21. data/lib/rack/cascade.rb +28 -12
  22. data/lib/rack/chunked.rb +68 -20
  23. data/lib/rack/common_logger.rb +36 -25
  24. data/lib/rack/conditional_get.rb +20 -16
  25. data/lib/rack/config.rb +2 -0
  26. data/lib/rack/content_length.rb +8 -7
  27. data/lib/rack/content_type.rb +5 -4
  28. data/lib/rack/core_ext/regexp.rb +14 -0
  29. data/lib/rack/deflater.rb +59 -34
  30. data/lib/rack/directory.rb +84 -64
  31. data/lib/rack/etag.rb +8 -5
  32. data/lib/rack/events.rb +19 -20
  33. data/lib/rack/file.rb +4 -173
  34. data/lib/rack/files.rb +218 -0
  35. data/lib/rack/handler/cgi.rb +2 -3
  36. data/lib/rack/handler/fastcgi.rb +4 -4
  37. data/lib/rack/handler/lsws.rb +3 -3
  38. data/lib/rack/handler/scgi.rb +9 -8
  39. data/lib/rack/handler/thin.rb +3 -3
  40. data/lib/rack/handler/webrick.rb +15 -6
  41. data/lib/rack/handler.rb +7 -2
  42. data/lib/rack/head.rb +1 -1
  43. data/lib/rack/lint.rb +72 -26
  44. data/lib/rack/lobster.rb +10 -10
  45. data/lib/rack/lock.rb +14 -4
  46. data/lib/rack/logger.rb +2 -0
  47. data/lib/rack/media_type.rb +10 -5
  48. data/lib/rack/method_override.rb +9 -3
  49. data/lib/rack/mime.rb +9 -1
  50. data/lib/rack/mock.rb +98 -21
  51. data/lib/rack/multipart/generator.rb +17 -13
  52. data/lib/rack/multipart/parser.rb +61 -63
  53. data/lib/rack/multipart/uploaded_file.rb +15 -7
  54. data/lib/rack/multipart.rb +5 -4
  55. data/lib/rack/null_logger.rb +2 -0
  56. data/lib/rack/query_parser.rb +59 -30
  57. data/lib/rack/recursive.rb +7 -5
  58. data/lib/rack/reloader.rb +8 -4
  59. data/lib/rack/request.rb +228 -56
  60. data/lib/rack/response.rb +127 -44
  61. data/lib/rack/rewindable_input.rb +4 -3
  62. data/lib/rack/runtime.rb +6 -4
  63. data/lib/rack/sendfile.rb +13 -9
  64. data/lib/rack/server.rb +95 -24
  65. data/lib/rack/session/abstract/id.rb +100 -22
  66. data/lib/rack/session/cookie.rb +22 -14
  67. data/lib/rack/session/memcache.rb +4 -87
  68. data/lib/rack/session/pool.rb +18 -9
  69. data/lib/rack/show_exceptions.rb +22 -18
  70. data/lib/rack/show_status.rb +9 -9
  71. data/lib/rack/static.rb +23 -11
  72. data/lib/rack/tempfile_reaper.rb +1 -1
  73. data/lib/rack/urlmap.rb +12 -6
  74. data/lib/rack/utils.rb +107 -111
  75. data/lib/rack/version.rb +29 -0
  76. data/lib/rack.rb +67 -73
  77. data/rack.gemspec +40 -29
  78. metadata +25 -181
  79. data/HISTORY.md +0 -505
  80. data/test/builder/an_underscore_app.rb +0 -5
  81. data/test/builder/anything.rb +0 -5
  82. data/test/builder/comment.ru +0 -4
  83. data/test/builder/end.ru +0 -5
  84. data/test/builder/line.ru +0 -1
  85. data/test/builder/options.ru +0 -2
  86. data/test/cgi/assets/folder/test.js +0 -1
  87. data/test/cgi/assets/fonts/font.eot +0 -1
  88. data/test/cgi/assets/images/image.png +0 -1
  89. data/test/cgi/assets/index.html +0 -1
  90. data/test/cgi/assets/javascripts/app.js +0 -1
  91. data/test/cgi/assets/stylesheets/app.css +0 -1
  92. data/test/cgi/lighttpd.conf +0 -26
  93. data/test/cgi/rackup_stub.rb +0 -6
  94. data/test/cgi/sample_rackup.ru +0 -5
  95. data/test/cgi/test +0 -9
  96. data/test/cgi/test+directory/test+file +0 -1
  97. data/test/cgi/test.fcgi +0 -9
  98. data/test/cgi/test.gz +0 -0
  99. data/test/cgi/test.ru +0 -5
  100. data/test/gemloader.rb +0 -10
  101. data/test/helper.rb +0 -34
  102. data/test/multipart/bad_robots +0 -259
  103. data/test/multipart/binary +0 -0
  104. data/test/multipart/content_type_and_no_filename +0 -6
  105. data/test/multipart/empty +0 -10
  106. data/test/multipart/fail_16384_nofile +0 -814
  107. data/test/multipart/file1.txt +0 -1
  108. data/test/multipart/filename_and_modification_param +0 -7
  109. data/test/multipart/filename_and_no_name +0 -6
  110. data/test/multipart/filename_with_encoded_words +0 -7
  111. data/test/multipart/filename_with_escaped_quotes +0 -6
  112. data/test/multipart/filename_with_escaped_quotes_and_modification_param +0 -7
  113. data/test/multipart/filename_with_null_byte +0 -7
  114. data/test/multipart/filename_with_percent_escaped_quotes +0 -6
  115. data/test/multipart/filename_with_single_quote +0 -7
  116. data/test/multipart/filename_with_unescaped_percentages +0 -6
  117. data/test/multipart/filename_with_unescaped_percentages2 +0 -6
  118. data/test/multipart/filename_with_unescaped_percentages3 +0 -6
  119. data/test/multipart/filename_with_unescaped_quotes +0 -6
  120. data/test/multipart/ie +0 -6
  121. data/test/multipart/invalid_character +0 -6
  122. data/test/multipart/mixed_files +0 -21
  123. data/test/multipart/nested +0 -10
  124. data/test/multipart/none +0 -9
  125. data/test/multipart/quoted +0 -15
  126. data/test/multipart/rack-logo.png +0 -0
  127. data/test/multipart/semicolon +0 -6
  128. data/test/multipart/text +0 -15
  129. data/test/multipart/three_files_three_fields +0 -31
  130. data/test/multipart/unity3d_wwwform +0 -11
  131. data/test/multipart/webkit +0 -32
  132. data/test/rackup/config.ru +0 -31
  133. data/test/registering_handler/rack/handler/registering_myself.rb +0 -8
  134. data/test/spec_auth_basic.rb +0 -89
  135. data/test/spec_auth_digest.rb +0 -260
  136. data/test/spec_body_proxy.rb +0 -85
  137. data/test/spec_builder.rb +0 -233
  138. data/test/spec_cascade.rb +0 -63
  139. data/test/spec_cgi.rb +0 -84
  140. data/test/spec_chunked.rb +0 -103
  141. data/test/spec_common_logger.rb +0 -95
  142. data/test/spec_conditional_get.rb +0 -103
  143. data/test/spec_config.rb +0 -23
  144. data/test/spec_content_length.rb +0 -86
  145. data/test/spec_content_type.rb +0 -46
  146. data/test/spec_deflater.rb +0 -375
  147. data/test/spec_directory.rb +0 -148
  148. data/test/spec_etag.rb +0 -108
  149. data/test/spec_events.rb +0 -133
  150. data/test/spec_fastcgi.rb +0 -85
  151. data/test/spec_file.rb +0 -264
  152. data/test/spec_handler.rb +0 -57
  153. data/test/spec_head.rb +0 -46
  154. data/test/spec_lint.rb +0 -515
  155. data/test/spec_lobster.rb +0 -59
  156. data/test/spec_lock.rb +0 -194
  157. data/test/spec_logger.rb +0 -24
  158. data/test/spec_media_type.rb +0 -42
  159. data/test/spec_method_override.rb +0 -96
  160. data/test/spec_mime.rb +0 -51
  161. data/test/spec_mock.rb +0 -359
  162. data/test/spec_multipart.rb +0 -722
  163. data/test/spec_null_logger.rb +0 -21
  164. data/test/spec_recursive.rb +0 -75
  165. data/test/spec_request.rb +0 -1393
  166. data/test/spec_response.rb +0 -510
  167. data/test/spec_rewindable_input.rb +0 -128
  168. data/test/spec_runtime.rb +0 -50
  169. data/test/spec_sendfile.rb +0 -125
  170. data/test/spec_server.rb +0 -193
  171. data/test/spec_session_abstract_id.rb +0 -31
  172. data/test/spec_session_abstract_session_hash.rb +0 -45
  173. data/test/spec_session_cookie.rb +0 -442
  174. data/test/spec_session_memcache.rb +0 -320
  175. data/test/spec_session_pool.rb +0 -210
  176. data/test/spec_show_exceptions.rb +0 -80
  177. data/test/spec_show_status.rb +0 -104
  178. data/test/spec_static.rb +0 -184
  179. data/test/spec_tempfile_reaper.rb +0 -64
  180. data/test/spec_thin.rb +0 -96
  181. data/test/spec_urlmap.rb +0 -237
  182. data/test/spec_utils.rb +0 -742
  183. data/test/spec_version.rb +0 -11
  184. data/test/spec_webrick.rb +0 -209
  185. data/test/static/another/index.html +0 -1
  186. data/test/static/foo.html +0 -1
  187. data/test/static/index.html +0 -1
  188. data/test/testrequest.rb +0 -78
  189. data/test/unregistered_handler/rack/handler/unregistered.rb +0 -7
  190. data/test/unregistered_handler/rack/handler/unregistered_long_one.rb +0 -7
data/lib/rack.rb CHANGED
@@ -1,7 +1,9 @@
1
- # Copyright (C) 2007, 2008, 2009, 2010 Christian Neukirchen <purl.org/net/chneukirchen>
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright (C) 2007-2019 Leah Neukirchen <http://leahneukirchen.org/infopage.html>
2
4
  #
3
5
  # 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
+ # See MIT-LICENSE or https://opensource.org/licenses/MIT.
5
7
 
6
8
  # The Rack main module, serving as a namespace for all core Rack
7
9
  # modules and classes.
@@ -9,82 +11,70 @@
9
11
  # All modules meant for use in your application are <tt>autoload</tt>ed here,
10
12
  # so it should be enough just to <tt>require 'rack'</tt> in your code.
11
13
 
12
- module Rack
13
- # The Rack protocol version number implemented.
14
- VERSION = [1,3]
15
-
16
- # Return the Rack protocol version as a dotted string.
17
- def self.version
18
- VERSION.join(".")
19
- end
20
-
21
- RELEASE = "2.0.3"
22
-
23
- # Return the Rack release as a dotted string.
24
- def self.release
25
- RELEASE
26
- end
14
+ require_relative 'rack/version'
27
15
 
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
16
+ module Rack
17
+ HTTP_HOST = 'HTTP_HOST'
18
+ HTTP_PORT = 'HTTP_PORT'
19
+ HTTP_VERSION = 'HTTP_VERSION'
20
+ HTTPS = 'HTTPS'
21
+ PATH_INFO = 'PATH_INFO'
22
+ REQUEST_METHOD = 'REQUEST_METHOD'
23
+ REQUEST_PATH = 'REQUEST_PATH'
24
+ SCRIPT_NAME = 'SCRIPT_NAME'
25
+ QUERY_STRING = 'QUERY_STRING'
26
+ SERVER_PROTOCOL = 'SERVER_PROTOCOL'
27
+ SERVER_NAME = 'SERVER_NAME'
28
+ SERVER_PORT = 'SERVER_PORT'
29
+ CACHE_CONTROL = 'Cache-Control'
30
+ EXPIRES = 'Expires'
31
+ CONTENT_LENGTH = 'Content-Length'
32
+ CONTENT_TYPE = 'Content-Type'
33
+ SET_COOKIE = 'Set-Cookie'
34
+ TRANSFER_ENCODING = 'Transfer-Encoding'
35
+ HTTP_COOKIE = 'HTTP_COOKIE'
36
+ ETAG = 'ETag'
47
37
 
48
38
  # 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
39
+ GET = 'GET'
40
+ POST = 'POST'
41
+ PUT = 'PUT'
42
+ PATCH = 'PATCH'
43
+ DELETE = 'DELETE'
44
+ HEAD = 'HEAD'
45
+ OPTIONS = 'OPTIONS'
46
+ LINK = 'LINK'
47
+ UNLINK = 'UNLINK'
48
+ TRACE = 'TRACE'
59
49
 
60
50
  # 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
51
+ RACK_VERSION = 'rack.version'
52
+ RACK_TEMPFILES = 'rack.tempfiles'
53
+ RACK_ERRORS = 'rack.errors'
54
+ RACK_LOGGER = 'rack.logger'
55
+ RACK_INPUT = 'rack.input'
56
+ RACK_SESSION = 'rack.session'
57
+ RACK_SESSION_OPTIONS = 'rack.session.options'
58
+ RACK_SHOWSTATUS_DETAIL = 'rack.showstatus.detail'
59
+ RACK_MULTITHREAD = 'rack.multithread'
60
+ RACK_MULTIPROCESS = 'rack.multiprocess'
61
+ RACK_RUNONCE = 'rack.run_once'
62
+ RACK_URL_SCHEME = 'rack.url_scheme'
63
+ RACK_HIJACK = 'rack.hijack'
64
+ RACK_IS_HIJACK = 'rack.hijack?'
65
+ RACK_HIJACK_IO = 'rack.hijack_io'
66
+ RACK_RECURSIVE_INCLUDE = 'rack.recursive.include'
67
+ RACK_MULTIPART_BUFFER_SIZE = 'rack.multipart.buffer_size'
68
+ RACK_MULTIPART_TEMPFILE_FACTORY = 'rack.multipart.tempfile_factory'
69
+ RACK_REQUEST_FORM_INPUT = 'rack.request.form_input'
70
+ RACK_REQUEST_FORM_HASH = 'rack.request.form_hash'
71
+ RACK_REQUEST_FORM_VARS = 'rack.request.form_vars'
72
+ RACK_REQUEST_COOKIE_HASH = 'rack.request.cookie_hash'
73
+ RACK_REQUEST_COOKIE_STRING = 'rack.request.cookie_string'
74
+ RACK_REQUEST_QUERY_HASH = 'rack.request.query_hash'
75
+ RACK_REQUEST_QUERY_STRING = 'rack.request.query_string'
76
+ RACK_METHODOVERRIDE_ORIGINAL_METHOD = 'rack.methodoverride.original_method'
77
+ RACK_SESSION_UNPACKED_COOKIE_DATA = 'rack.session.unpacked_cookie_data'
88
78
 
89
79
  autoload :Builder, "rack/builder"
90
80
  autoload :BodyProxy, "rack/body_proxy"
@@ -96,7 +86,9 @@ module Rack
96
86
  autoload :ContentLength, "rack/content_length"
97
87
  autoload :ContentType, "rack/content_type"
98
88
  autoload :ETag, "rack/etag"
89
+ autoload :Events, "rack/events"
99
90
  autoload :File, "rack/file"
91
+ autoload :Files, "rack/files"
100
92
  autoload :Deflater, "rack/deflater"
101
93
  autoload :Directory, "rack/directory"
102
94
  autoload :ForwardRequest, "rack/recursive"
@@ -105,11 +97,13 @@ module Rack
105
97
  autoload :Lint, "rack/lint"
106
98
  autoload :Lock, "rack/lock"
107
99
  autoload :Logger, "rack/logger"
100
+ autoload :MediaType, "rack/media_type"
108
101
  autoload :MethodOverride, "rack/method_override"
109
102
  autoload :Mime, "rack/mime"
110
103
  autoload :NullLogger, "rack/null_logger"
111
104
  autoload :Recursive, "rack/recursive"
112
105
  autoload :Reloader, "rack/reloader"
106
+ autoload :RewindableInput, "rack/rewindable_input"
113
107
  autoload :Runtime, "rack/runtime"
114
108
  autoload :Sendfile, "rack/sendfile"
115
109
  autoload :Server, "rack/server"
data/rack.gemspec CHANGED
@@ -1,35 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'lib/rack/version'
4
+
1
5
  Gem::Specification.new do |s|
2
- s.name = "rack"
3
- s.version = File.read('lib/rack.rb')[/RELEASE += +([\"\'])([\d][\w\.]+)\1/, 2]
4
- s.platform = Gem::Platform::RUBY
5
- s.summary = "a modular Ruby webserver interface"
6
- s.license = "MIT"
7
-
8
- s.description = <<-EOF
9
- Rack provides a minimal, modular and adaptable interface for developing
10
- web applications in Ruby. By wrapping HTTP requests and responses in
11
- the simplest way possible, it unifies and distills the API for web
12
- servers, web frameworks, and software in between (the so-called
13
- middleware) into a single method call.
14
-
15
- Also see http://rack.github.io/.
16
- EOF
17
-
18
- s.files = Dir['{bin/*,contrib/*,example/*,lib/**/*,test/**/*}'] +
19
- %w(COPYING rack.gemspec Rakefile README.rdoc SPEC)
20
- s.bindir = 'bin'
21
- s.executables << 'rackup'
22
- s.require_path = 'lib'
23
- s.extra_rdoc_files = ['README.rdoc', 'HISTORY.md']
24
- s.test_files = Dir['test/spec_*.rb']
25
-
26
- s.author = 'Christian Neukirchen'
27
- s.email = 'chneukirchen@gmail.com'
28
- s.homepage = 'http://rack.github.io/'
29
- s.required_ruby_version = '>= 2.2.2'
6
+ s.name = "rack"
7
+ s.version = Rack::RELEASE
8
+ s.platform = Gem::Platform::RUBY
9
+ s.summary = "A modular Ruby webserver interface."
10
+ s.license = "MIT"
11
+
12
+ s.description = <<~EOF
13
+ Rack provides a minimal, modular and adaptable interface for developing
14
+ web applications in Ruby. By wrapping HTTP requests and responses in
15
+ the simplest way possible, it unifies and distills the API for web
16
+ servers, web frameworks, and software in between (the so-called
17
+ middleware) into a single method call.
18
+ EOF
19
+
20
+ s.files = Dir['{bin/*,contrib/*,example/*,lib/**/*}'] +
21
+ %w(MIT-LICENSE rack.gemspec Rakefile README.rdoc SPEC.rdoc)
22
+
23
+ s.bindir = 'bin'
24
+ s.executables << 'rackup'
25
+ s.require_path = 'lib'
26
+ s.extra_rdoc_files = ['README.rdoc', 'CHANGELOG.md', 'CONTRIBUTING.md']
27
+
28
+ s.author = 'Leah Neukirchen'
29
+ s.email = 'leah@vuxu.org'
30
+
31
+ s.homepage = 'https://github.com/rack/rack'
32
+
33
+ s.required_ruby_version = '>= 2.3.0'
34
+
35
+ s.metadata = {
36
+ "bug_tracker_uri" => "https://github.com/rack/rack/issues",
37
+ "changelog_uri" => "https://github.com/rack/rack/blob/master/CHANGELOG.md",
38
+ "documentation_uri" => "https://rubydoc.info/github/rack/rack",
39
+ "source_code_uri" => "https://github.com/rack/rack"
40
+ }
30
41
 
31
42
  s.add_development_dependency 'minitest', "~> 5.0"
32
43
  s.add_development_dependency 'minitest-sprint'
33
- s.add_development_dependency 'concurrent-ruby'
44
+ s.add_development_dependency 'minitest-global_expectations'
34
45
  s.add_development_dependency 'rake'
35
46
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.3
4
+ version: 2.2.4
5
5
  platform: ruby
6
6
  authors:
7
- - Christian Neukirchen
7
+ - Leah Neukirchen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-15 00:00:00.000000000 Z
11
+ date: 2022-06-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: concurrent-ruby
42
+ name: minitest-global_expectations
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -68,25 +68,25 @@ dependencies:
68
68
  version: '0'
69
69
  description: |
70
70
  Rack provides a minimal, modular and adaptable interface for developing
71
- web applications in Ruby. By wrapping HTTP requests and responses in
71
+ web applications in Ruby. By wrapping HTTP requests and responses in
72
72
  the simplest way possible, it unifies and distills the API for web
73
73
  servers, web frameworks, and software in between (the so-called
74
74
  middleware) into a single method call.
75
-
76
- Also see http://rack.github.io/.
77
- email: chneukirchen@gmail.com
75
+ email: leah@vuxu.org
78
76
  executables:
79
77
  - rackup
80
78
  extensions: []
81
79
  extra_rdoc_files:
82
80
  - README.rdoc
83
- - HISTORY.md
81
+ - CHANGELOG.md
82
+ - CONTRIBUTING.md
84
83
  files:
85
- - COPYING
86
- - HISTORY.md
84
+ - CHANGELOG.md
85
+ - CONTRIBUTING.md
86
+ - MIT-LICENSE
87
87
  - README.rdoc
88
88
  - Rakefile
89
- - SPEC
89
+ - SPEC.rdoc
90
90
  - bin/rackup
91
91
  - contrib/rack.png
92
92
  - contrib/rack.svg
@@ -112,11 +112,13 @@ files:
112
112
  - lib/rack/config.rb
113
113
  - lib/rack/content_length.rb
114
114
  - lib/rack/content_type.rb
115
+ - lib/rack/core_ext/regexp.rb
115
116
  - lib/rack/deflater.rb
116
117
  - lib/rack/directory.rb
117
118
  - lib/rack/etag.rb
118
119
  - lib/rack/events.rb
119
120
  - lib/rack/file.rb
121
+ - lib/rack/files.rb
120
122
  - lib/rack/handler.rb
121
123
  - lib/rack/handler/cgi.rb
122
124
  - lib/rack/handler/fastcgi.rb
@@ -157,122 +159,16 @@ files:
157
159
  - lib/rack/tempfile_reaper.rb
158
160
  - lib/rack/urlmap.rb
159
161
  - lib/rack/utils.rb
162
+ - lib/rack/version.rb
160
163
  - rack.gemspec
161
- - test/builder/an_underscore_app.rb
162
- - test/builder/anything.rb
163
- - test/builder/comment.ru
164
- - test/builder/end.ru
165
- - test/builder/line.ru
166
- - test/builder/options.ru
167
- - test/cgi/assets/folder/test.js
168
- - test/cgi/assets/fonts/font.eot
169
- - test/cgi/assets/images/image.png
170
- - test/cgi/assets/index.html
171
- - test/cgi/assets/javascripts/app.js
172
- - test/cgi/assets/stylesheets/app.css
173
- - test/cgi/lighttpd.conf
174
- - test/cgi/rackup_stub.rb
175
- - test/cgi/sample_rackup.ru
176
- - test/cgi/test
177
- - test/cgi/test+directory/test+file
178
- - test/cgi/test.fcgi
179
- - test/cgi/test.gz
180
- - test/cgi/test.ru
181
- - test/gemloader.rb
182
- - test/helper.rb
183
- - test/multipart/bad_robots
184
- - test/multipart/binary
185
- - test/multipart/content_type_and_no_filename
186
- - test/multipart/empty
187
- - test/multipart/fail_16384_nofile
188
- - test/multipart/file1.txt
189
- - test/multipart/filename_and_modification_param
190
- - test/multipart/filename_and_no_name
191
- - test/multipart/filename_with_encoded_words
192
- - test/multipart/filename_with_escaped_quotes
193
- - test/multipart/filename_with_escaped_quotes_and_modification_param
194
- - test/multipart/filename_with_null_byte
195
- - test/multipart/filename_with_percent_escaped_quotes
196
- - test/multipart/filename_with_single_quote
197
- - test/multipart/filename_with_unescaped_percentages
198
- - test/multipart/filename_with_unescaped_percentages2
199
- - test/multipart/filename_with_unescaped_percentages3
200
- - test/multipart/filename_with_unescaped_quotes
201
- - test/multipart/ie
202
- - test/multipart/invalid_character
203
- - test/multipart/mixed_files
204
- - test/multipart/nested
205
- - test/multipart/none
206
- - test/multipart/quoted
207
- - test/multipart/rack-logo.png
208
- - test/multipart/semicolon
209
- - test/multipart/text
210
- - test/multipart/three_files_three_fields
211
- - test/multipart/unity3d_wwwform
212
- - test/multipart/webkit
213
- - test/rackup/config.ru
214
- - test/registering_handler/rack/handler/registering_myself.rb
215
- - test/spec_auth_basic.rb
216
- - test/spec_auth_digest.rb
217
- - test/spec_body_proxy.rb
218
- - test/spec_builder.rb
219
- - test/spec_cascade.rb
220
- - test/spec_cgi.rb
221
- - test/spec_chunked.rb
222
- - test/spec_common_logger.rb
223
- - test/spec_conditional_get.rb
224
- - test/spec_config.rb
225
- - test/spec_content_length.rb
226
- - test/spec_content_type.rb
227
- - test/spec_deflater.rb
228
- - test/spec_directory.rb
229
- - test/spec_etag.rb
230
- - test/spec_events.rb
231
- - test/spec_fastcgi.rb
232
- - test/spec_file.rb
233
- - test/spec_handler.rb
234
- - test/spec_head.rb
235
- - test/spec_lint.rb
236
- - test/spec_lobster.rb
237
- - test/spec_lock.rb
238
- - test/spec_logger.rb
239
- - test/spec_media_type.rb
240
- - test/spec_method_override.rb
241
- - test/spec_mime.rb
242
- - test/spec_mock.rb
243
- - test/spec_multipart.rb
244
- - test/spec_null_logger.rb
245
- - test/spec_recursive.rb
246
- - test/spec_request.rb
247
- - test/spec_response.rb
248
- - test/spec_rewindable_input.rb
249
- - test/spec_runtime.rb
250
- - test/spec_sendfile.rb
251
- - test/spec_server.rb
252
- - test/spec_session_abstract_id.rb
253
- - test/spec_session_abstract_session_hash.rb
254
- - test/spec_session_cookie.rb
255
- - test/spec_session_memcache.rb
256
- - test/spec_session_pool.rb
257
- - test/spec_show_exceptions.rb
258
- - test/spec_show_status.rb
259
- - test/spec_static.rb
260
- - test/spec_tempfile_reaper.rb
261
- - test/spec_thin.rb
262
- - test/spec_urlmap.rb
263
- - test/spec_utils.rb
264
- - test/spec_version.rb
265
- - test/spec_webrick.rb
266
- - test/static/another/index.html
267
- - test/static/foo.html
268
- - test/static/index.html
269
- - test/testrequest.rb
270
- - test/unregistered_handler/rack/handler/unregistered.rb
271
- - test/unregistered_handler/rack/handler/unregistered_long_one.rb
272
- homepage: http://rack.github.io/
164
+ homepage: https://github.com/rack/rack
273
165
  licenses:
274
166
  - MIT
275
- metadata: {}
167
+ metadata:
168
+ bug_tracker_uri: https://github.com/rack/rack/issues
169
+ changelog_uri: https://github.com/rack/rack/blob/master/CHANGELOG.md
170
+ documentation_uri: https://rubydoc.info/github/rack/rack
171
+ source_code_uri: https://github.com/rack/rack
276
172
  post_install_message:
277
173
  rdoc_options: []
278
174
  require_paths:
@@ -281,67 +177,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
281
177
  requirements:
282
178
  - - ">="
283
179
  - !ruby/object:Gem::Version
284
- version: 2.2.2
180
+ version: 2.3.0
285
181
  required_rubygems_version: !ruby/object:Gem::Requirement
286
182
  requirements:
287
183
  - - ">="
288
184
  - !ruby/object:Gem::Version
289
185
  version: '0'
290
186
  requirements: []
291
- rubyforge_project:
292
- rubygems_version: 2.6.8
187
+ rubygems_version: 3.0.3.1
293
188
  signing_key:
294
189
  specification_version: 4
295
- summary: a modular Ruby webserver interface
296
- test_files:
297
- - test/spec_auth_basic.rb
298
- - test/spec_auth_digest.rb
299
- - test/spec_body_proxy.rb
300
- - test/spec_builder.rb
301
- - test/spec_cascade.rb
302
- - test/spec_cgi.rb
303
- - test/spec_chunked.rb
304
- - test/spec_common_logger.rb
305
- - test/spec_conditional_get.rb
306
- - test/spec_config.rb
307
- - test/spec_content_length.rb
308
- - test/spec_content_type.rb
309
- - test/spec_deflater.rb
310
- - test/spec_directory.rb
311
- - test/spec_etag.rb
312
- - test/spec_events.rb
313
- - test/spec_fastcgi.rb
314
- - test/spec_file.rb
315
- - test/spec_handler.rb
316
- - test/spec_head.rb
317
- - test/spec_lint.rb
318
- - test/spec_lobster.rb
319
- - test/spec_lock.rb
320
- - test/spec_logger.rb
321
- - test/spec_media_type.rb
322
- - test/spec_method_override.rb
323
- - test/spec_mime.rb
324
- - test/spec_mock.rb
325
- - test/spec_multipart.rb
326
- - test/spec_null_logger.rb
327
- - test/spec_recursive.rb
328
- - test/spec_request.rb
329
- - test/spec_response.rb
330
- - test/spec_rewindable_input.rb
331
- - test/spec_runtime.rb
332
- - test/spec_sendfile.rb
333
- - test/spec_server.rb
334
- - test/spec_session_abstract_id.rb
335
- - test/spec_session_abstract_session_hash.rb
336
- - test/spec_session_cookie.rb
337
- - test/spec_session_memcache.rb
338
- - test/spec_session_pool.rb
339
- - test/spec_show_exceptions.rb
340
- - test/spec_show_status.rb
341
- - test/spec_static.rb
342
- - test/spec_tempfile_reaper.rb
343
- - test/spec_thin.rb
344
- - test/spec_urlmap.rb
345
- - test/spec_utils.rb
346
- - test/spec_version.rb
347
- - test/spec_webrick.rb
190
+ summary: A modular Ruby webserver interface.
191
+ test_files: []