rack 2.0.9.3 → 2.2.6.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 (191) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +735 -0
  3. data/CONTRIBUTING.md +136 -0
  4. data/{COPYING → MIT-LICENSE} +4 -2
  5. data/README.rdoc +151 -147
  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 +33 -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 +7 -4
  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 +71 -25
  44. data/lib/rack/lobster.rb +10 -10
  45. data/lib/rack/lock.rb +2 -1
  46. data/lib/rack/logger.rb +2 -0
  47. data/lib/rack/media_type.rb +10 -5
  48. data/lib/rack/method_override.rb +5 -3
  49. data/lib/rack/mime.rb +9 -1
  50. data/lib/rack/mock.rb +97 -20
  51. data/lib/rack/multipart/generator.rb +17 -13
  52. data/lib/rack/multipart/parser.rb +53 -56
  53. data/lib/rack/multipart/uploaded_file.rb +15 -7
  54. data/lib/rack/multipart.rb +4 -2
  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 +222 -63
  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 +34 -21
  66. data/lib/rack/session/cookie.rb +11 -12
  67. data/lib/rack/session/memcache.rb +4 -93
  68. data/lib/rack/session/pool.rb +5 -3
  69. data/lib/rack/show_exceptions.rb +21 -17
  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 +13 -7
  74. data/lib/rack/utils.rb +105 -111
  75. data/lib/rack/version.rb +29 -0
  76. data/lib/rack.rb +67 -73
  77. data/rack.gemspec +40 -28
  78. metadata +39 -182
  79. data/HISTORY.md +0 -520
  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 -107
  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 -520
  155. data/test/spec_lobster.rb +0 -59
  156. data/test/spec_lock.rb +0 -204
  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 -110
  160. data/test/spec_mime.rb +0 -51
  161. data/test/spec_mock.rb +0 -359
  162. data/test/spec_multipart.rb +0 -721
  163. data/test/spec_null_logger.rb +0 -21
  164. data/test/spec_recursive.rb +0 -75
  165. data/test/spec_request.rb +0 -1423
  166. data/test/spec_response.rb +0 -528
  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 -357
  175. data/test/spec_session_persisted_secure_secure_session_hash.rb +0 -73
  176. data/test/spec_session_pool.rb +0 -247
  177. data/test/spec_show_exceptions.rb +0 -93
  178. data/test/spec_show_status.rb +0 -104
  179. data/test/spec_static.rb +0 -184
  180. data/test/spec_tempfile_reaper.rb +0 -64
  181. data/test/spec_thin.rb +0 -96
  182. data/test/spec_urlmap.rb +0 -237
  183. data/test/spec_utils.rb +0 -742
  184. data/test/spec_version.rb +0 -11
  185. data/test/spec_webrick.rb +0 -206
  186. data/test/static/another/index.html +0 -1
  187. data/test/static/foo.html +0 -1
  188. data/test/static/index.html +0 -1
  189. data/test/testrequest.rb +0 -78
  190. data/test/unregistered_handler/rack/handler/unregistered.rb +0 -7
  191. 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.9.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,34 +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 https://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 = 'Leah Neukirchen'
27
- s.email = 'leah@vuxu.org'
28
- s.homepage = 'https://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'
44
+ s.add_development_dependency 'minitest-global_expectations'
33
45
  s.add_development_dependency 'rake'
34
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.9.3
4
+ version: 2.2.6.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Leah Neukirchen
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-02 00:00:00.000000000 Z
11
+ date: 2023-03-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest-global_expectations
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rake
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -54,25 +68,25 @@ dependencies:
54
68
  version: '0'
55
69
  description: |
56
70
  Rack provides a minimal, modular and adaptable interface for developing
57
- web applications in Ruby. By wrapping HTTP requests and responses in
71
+ web applications in Ruby. By wrapping HTTP requests and responses in
58
72
  the simplest way possible, it unifies and distills the API for web
59
73
  servers, web frameworks, and software in between (the so-called
60
74
  middleware) into a single method call.
61
-
62
- Also see https://rack.github.io/.
63
75
  email: leah@vuxu.org
64
76
  executables:
65
77
  - rackup
66
78
  extensions: []
67
79
  extra_rdoc_files:
68
80
  - README.rdoc
69
- - HISTORY.md
81
+ - CHANGELOG.md
82
+ - CONTRIBUTING.md
70
83
  files:
71
- - COPYING
72
- - HISTORY.md
84
+ - CHANGELOG.md
85
+ - CONTRIBUTING.md
86
+ - MIT-LICENSE
73
87
  - README.rdoc
74
88
  - Rakefile
75
- - SPEC
89
+ - SPEC.rdoc
76
90
  - bin/rackup
77
91
  - contrib/rack.png
78
92
  - contrib/rack.svg
@@ -98,11 +112,13 @@ files:
98
112
  - lib/rack/config.rb
99
113
  - lib/rack/content_length.rb
100
114
  - lib/rack/content_type.rb
115
+ - lib/rack/core_ext/regexp.rb
101
116
  - lib/rack/deflater.rb
102
117
  - lib/rack/directory.rb
103
118
  - lib/rack/etag.rb
104
119
  - lib/rack/events.rb
105
120
  - lib/rack/file.rb
121
+ - lib/rack/files.rb
106
122
  - lib/rack/handler.rb
107
123
  - lib/rack/handler/cgi.rb
108
124
  - lib/rack/handler/fastcgi.rb
@@ -143,124 +159,17 @@ files:
143
159
  - lib/rack/tempfile_reaper.rb
144
160
  - lib/rack/urlmap.rb
145
161
  - lib/rack/utils.rb
162
+ - lib/rack/version.rb
146
163
  - rack.gemspec
147
- - test/builder/an_underscore_app.rb
148
- - test/builder/anything.rb
149
- - test/builder/comment.ru
150
- - test/builder/end.ru
151
- - test/builder/line.ru
152
- - test/builder/options.ru
153
- - test/cgi/assets/folder/test.js
154
- - test/cgi/assets/fonts/font.eot
155
- - test/cgi/assets/images/image.png
156
- - test/cgi/assets/index.html
157
- - test/cgi/assets/javascripts/app.js
158
- - test/cgi/assets/stylesheets/app.css
159
- - test/cgi/lighttpd.conf
160
- - test/cgi/rackup_stub.rb
161
- - test/cgi/sample_rackup.ru
162
- - test/cgi/test
163
- - test/cgi/test+directory/test+file
164
- - test/cgi/test.fcgi
165
- - test/cgi/test.gz
166
- - test/cgi/test.ru
167
- - test/gemloader.rb
168
- - test/helper.rb
169
- - test/multipart/bad_robots
170
- - test/multipart/binary
171
- - test/multipart/content_type_and_no_filename
172
- - test/multipart/empty
173
- - test/multipart/fail_16384_nofile
174
- - test/multipart/file1.txt
175
- - test/multipart/filename_and_modification_param
176
- - test/multipart/filename_and_no_name
177
- - test/multipart/filename_with_encoded_words
178
- - test/multipart/filename_with_escaped_quotes
179
- - test/multipart/filename_with_escaped_quotes_and_modification_param
180
- - test/multipart/filename_with_null_byte
181
- - test/multipart/filename_with_percent_escaped_quotes
182
- - test/multipart/filename_with_single_quote
183
- - test/multipart/filename_with_unescaped_percentages
184
- - test/multipart/filename_with_unescaped_percentages2
185
- - test/multipart/filename_with_unescaped_percentages3
186
- - test/multipart/filename_with_unescaped_quotes
187
- - test/multipart/ie
188
- - test/multipart/invalid_character
189
- - test/multipart/mixed_files
190
- - test/multipart/nested
191
- - test/multipart/none
192
- - test/multipart/quoted
193
- - test/multipart/rack-logo.png
194
- - test/multipart/semicolon
195
- - test/multipart/text
196
- - test/multipart/three_files_three_fields
197
- - test/multipart/unity3d_wwwform
198
- - test/multipart/webkit
199
- - test/rackup/config.ru
200
- - test/registering_handler/rack/handler/registering_myself.rb
201
- - test/spec_auth_basic.rb
202
- - test/spec_auth_digest.rb
203
- - test/spec_body_proxy.rb
204
- - test/spec_builder.rb
205
- - test/spec_cascade.rb
206
- - test/spec_cgi.rb
207
- - test/spec_chunked.rb
208
- - test/spec_common_logger.rb
209
- - test/spec_conditional_get.rb
210
- - test/spec_config.rb
211
- - test/spec_content_length.rb
212
- - test/spec_content_type.rb
213
- - test/spec_deflater.rb
214
- - test/spec_directory.rb
215
- - test/spec_etag.rb
216
- - test/spec_events.rb
217
- - test/spec_fastcgi.rb
218
- - test/spec_file.rb
219
- - test/spec_handler.rb
220
- - test/spec_head.rb
221
- - test/spec_lint.rb
222
- - test/spec_lobster.rb
223
- - test/spec_lock.rb
224
- - test/spec_logger.rb
225
- - test/spec_media_type.rb
226
- - test/spec_method_override.rb
227
- - test/spec_mime.rb
228
- - test/spec_mock.rb
229
- - test/spec_multipart.rb
230
- - test/spec_null_logger.rb
231
- - test/spec_recursive.rb
232
- - test/spec_request.rb
233
- - test/spec_response.rb
234
- - test/spec_rewindable_input.rb
235
- - test/spec_runtime.rb
236
- - test/spec_sendfile.rb
237
- - test/spec_server.rb
238
- - test/spec_session_abstract_id.rb
239
- - test/spec_session_abstract_session_hash.rb
240
- - test/spec_session_cookie.rb
241
- - test/spec_session_memcache.rb
242
- - test/spec_session_persisted_secure_secure_session_hash.rb
243
- - test/spec_session_pool.rb
244
- - test/spec_show_exceptions.rb
245
- - test/spec_show_status.rb
246
- - test/spec_static.rb
247
- - test/spec_tempfile_reaper.rb
248
- - test/spec_thin.rb
249
- - test/spec_urlmap.rb
250
- - test/spec_utils.rb
251
- - test/spec_version.rb
252
- - test/spec_webrick.rb
253
- - test/static/another/index.html
254
- - test/static/foo.html
255
- - test/static/index.html
256
- - test/testrequest.rb
257
- - test/unregistered_handler/rack/handler/unregistered.rb
258
- - test/unregistered_handler/rack/handler/unregistered_long_one.rb
259
- homepage: https://rack.github.io/
164
+ homepage: https://github.com/rack/rack
260
165
  licenses:
261
166
  - MIT
262
- metadata: {}
263
- post_install_message:
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
172
+ post_install_message:
264
173
  rdoc_options: []
265
174
  require_paths:
266
175
  - lib
@@ -268,67 +177,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
268
177
  requirements:
269
178
  - - ">="
270
179
  - !ruby/object:Gem::Version
271
- version: 2.2.2
180
+ version: 2.3.0
272
181
  required_rubygems_version: !ruby/object:Gem::Requirement
273
182
  requirements:
274
183
  - - ">="
275
184
  - !ruby/object:Gem::Version
276
185
  version: '0'
277
186
  requirements: []
278
- rubygems_version: 3.4.1
279
- signing_key:
187
+ rubygems_version: 3.0.3.1
188
+ signing_key:
280
189
  specification_version: 4
281
- summary: a modular Ruby webserver interface
282
- test_files:
283
- - test/spec_auth_basic.rb
284
- - test/spec_auth_digest.rb
285
- - test/spec_body_proxy.rb
286
- - test/spec_builder.rb
287
- - test/spec_cascade.rb
288
- - test/spec_cgi.rb
289
- - test/spec_chunked.rb
290
- - test/spec_common_logger.rb
291
- - test/spec_conditional_get.rb
292
- - test/spec_config.rb
293
- - test/spec_content_length.rb
294
- - test/spec_content_type.rb
295
- - test/spec_deflater.rb
296
- - test/spec_directory.rb
297
- - test/spec_etag.rb
298
- - test/spec_events.rb
299
- - test/spec_fastcgi.rb
300
- - test/spec_file.rb
301
- - test/spec_handler.rb
302
- - test/spec_head.rb
303
- - test/spec_lint.rb
304
- - test/spec_lobster.rb
305
- - test/spec_lock.rb
306
- - test/spec_logger.rb
307
- - test/spec_media_type.rb
308
- - test/spec_method_override.rb
309
- - test/spec_mime.rb
310
- - test/spec_mock.rb
311
- - test/spec_multipart.rb
312
- - test/spec_null_logger.rb
313
- - test/spec_recursive.rb
314
- - test/spec_request.rb
315
- - test/spec_response.rb
316
- - test/spec_rewindable_input.rb
317
- - test/spec_runtime.rb
318
- - test/spec_sendfile.rb
319
- - test/spec_server.rb
320
- - test/spec_session_abstract_id.rb
321
- - test/spec_session_abstract_session_hash.rb
322
- - test/spec_session_cookie.rb
323
- - test/spec_session_memcache.rb
324
- - test/spec_session_persisted_secure_secure_session_hash.rb
325
- - test/spec_session_pool.rb
326
- - test/spec_show_exceptions.rb
327
- - test/spec_show_status.rb
328
- - test/spec_static.rb
329
- - test/spec_tempfile_reaper.rb
330
- - test/spec_thin.rb
331
- - test/spec_urlmap.rb
332
- - test/spec_utils.rb
333
- - test/spec_version.rb
334
- - test/spec_webrick.rb
190
+ summary: A modular Ruby webserver interface.
191
+ test_files: []