rack 2.0.1 → 2.2.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +795 -0
  3. data/CONTRIBUTING.md +136 -0
  4. data/{COPYING → MIT-LICENSE} +4 -2
  5. data/README.rdoc +188 -145
  6. data/Rakefile +37 -23
  7. data/{SPEC → SPEC.rdoc} +46 -17
  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 +6 -4
  15. data/lib/rack/auth/digest/md5.rb +13 -11
  16. data/lib/rack/auth/digest/nonce.rb +5 -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 +37 -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 +60 -70
  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 +19 -10
  41. data/lib/rack/handler.rb +7 -2
  42. data/lib/rack/head.rb +1 -1
  43. data/lib/rack/lint.rb +221 -186
  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 +23 -8
  48. data/lib/rack/method_override.rb +13 -4
  49. data/lib/rack/mime.rb +9 -1
  50. data/lib/rack/mock.rb +135 -29
  51. data/lib/rack/multipart/generator.rb +17 -13
  52. data/lib/rack/multipart/parser.rb +85 -68
  53. data/lib/rack/multipart/uploaded_file.rb +15 -7
  54. data/lib/rack/multipart.rb +6 -5
  55. data/lib/rack/null_logger.rb +2 -0
  56. data/lib/rack/query_parser.rb +108 -36
  57. data/lib/rack/recursive.rb +7 -5
  58. data/lib/rack/reloader.rb +8 -4
  59. data/lib/rack/request.rb +232 -60
  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 +14 -10
  64. data/lib/rack/server.rb +97 -25
  65. data/lib/rack/session/abstract/id.rb +113 -25
  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 +24 -10
  69. data/lib/rack/show_exceptions.rb +22 -18
  70. data/lib/rack/show_status.rb +9 -9
  71. data/lib/rack/static.rb +25 -12
  72. data/lib/rack/tempfile_reaper.rb +1 -1
  73. data/lib/rack/urlmap.rb +13 -7
  74. data/lib/rack/utils.rb +135 -123
  75. data/lib/rack/version.rb +29 -0
  76. data/lib/rack.rb +67 -73
  77. data/rack.gemspec +40 -29
  78. metadata +25 -184
  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_percent_escaped_quotes +0 -6
  114. data/test/multipart/filename_with_single_quote +0 -7
  115. data/test/multipart/filename_with_unescaped_percentages +0 -6
  116. data/test/multipart/filename_with_unescaped_percentages2 +0 -6
  117. data/test/multipart/filename_with_unescaped_percentages3 +0 -6
  118. data/test/multipart/filename_with_unescaped_quotes +0 -6
  119. data/test/multipart/ie +0 -6
  120. data/test/multipart/invalid_character +0 -6
  121. data/test/multipart/mixed_files +0 -21
  122. data/test/multipart/nested +0 -10
  123. data/test/multipart/none +0 -9
  124. data/test/multipart/quoted +0 -15
  125. data/test/multipart/rack-logo.png +0 -0
  126. data/test/multipart/semicolon +0 -6
  127. data/test/multipart/text +0 -15
  128. data/test/multipart/three_files_three_fields +0 -31
  129. data/test/multipart/unity3d_wwwform +0 -11
  130. data/test/multipart/webkit +0 -32
  131. data/test/rackup/config.ru +0 -31
  132. data/test/registering_handler/rack/handler/registering_myself.rb +0 -8
  133. data/test/spec_auth_basic.rb +0 -89
  134. data/test/spec_auth_digest.rb +0 -260
  135. data/test/spec_body_proxy.rb +0 -85
  136. data/test/spec_builder.rb +0 -233
  137. data/test/spec_cascade.rb +0 -63
  138. data/test/spec_cgi.rb +0 -84
  139. data/test/spec_chunked.rb +0 -103
  140. data/test/spec_common_logger.rb +0 -95
  141. data/test/spec_conditional_get.rb +0 -103
  142. data/test/spec_config.rb +0 -23
  143. data/test/spec_content_length.rb +0 -86
  144. data/test/spec_content_type.rb +0 -46
  145. data/test/spec_deflater.rb +0 -365
  146. data/test/spec_directory.rb +0 -148
  147. data/test/spec_etag.rb +0 -108
  148. data/test/spec_events.rb +0 -133
  149. data/test/spec_fastcgi.rb +0 -85
  150. data/test/spec_file.rb +0 -251
  151. data/test/spec_handler.rb +0 -57
  152. data/test/spec_head.rb +0 -46
  153. data/test/spec_lint.rb +0 -515
  154. data/test/spec_lobster.rb +0 -59
  155. data/test/spec_lock.rb +0 -194
  156. data/test/spec_logger.rb +0 -24
  157. data/test/spec_media_type.rb +0 -42
  158. data/test/spec_method_override.rb +0 -83
  159. data/test/spec_mime.rb +0 -51
  160. data/test/spec_mock.rb +0 -342
  161. data/test/spec_multipart.rb +0 -716
  162. data/test/spec_null_logger.rb +0 -21
  163. data/test/spec_recursive.rb +0 -75
  164. data/test/spec_request.rb +0 -1393
  165. data/test/spec_response.rb +0 -510
  166. data/test/spec_rewindable_input.rb +0 -128
  167. data/test/spec_runtime.rb +0 -50
  168. data/test/spec_sendfile.rb +0 -125
  169. data/test/spec_server.rb +0 -193
  170. data/test/spec_session_abstract_id.rb +0 -31
  171. data/test/spec_session_abstract_session_hash.rb +0 -28
  172. data/test/spec_session_cookie.rb +0 -442
  173. data/test/spec_session_memcache.rb +0 -320
  174. data/test/spec_session_pool.rb +0 -210
  175. data/test/spec_show_exceptions.rb +0 -80
  176. data/test/spec_show_status.rb +0 -104
  177. data/test/spec_static.rb +0 -184
  178. data/test/spec_tempfile_reaper.rb +0 -64
  179. data/test/spec_thin.rb +0 -96
  180. data/test/spec_urlmap.rb +0 -237
  181. data/test/spec_utils.rb +0 -742
  182. data/test/spec_version.rb +0 -11
  183. data/test/spec_webrick.rb +0 -208
  184. data/test/static/another/index.html +0 -1
  185. data/test/static/foo.html +0 -1
  186. data/test/static/index.html +0 -1
  187. data/test/testrequest.rb +0 -78
  188. data/test/unregistered_handler/rack/handler/unregistered.rb +0 -7
  189. 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.1"
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,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.2.17
5
5
  platform: ruby
6
6
  authors:
7
- - Christian Neukirchen
8
- autorequire:
7
+ - Leah Neukirchen
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2016-06-30 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: minitest
@@ -39,7 +38,7 @@ dependencies:
39
38
  - !ruby/object:Gem::Version
40
39
  version: '0'
41
40
  - !ruby/object:Gem::Dependency
42
- name: concurrent-ruby
41
+ name: minitest-global_expectations
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
44
  - - ">="
@@ -68,25 +67,25 @@ dependencies:
68
67
  version: '0'
69
68
  description: |
70
69
  Rack provides a minimal, modular and adaptable interface for developing
71
- web applications in Ruby. By wrapping HTTP requests and responses in
70
+ web applications in Ruby. By wrapping HTTP requests and responses in
72
71
  the simplest way possible, it unifies and distills the API for web
73
72
  servers, web frameworks, and software in between (the so-called
74
73
  middleware) into a single method call.
75
-
76
- Also see http://rack.github.io/.
77
- email: chneukirchen@gmail.com
74
+ email: leah@vuxu.org
78
75
  executables:
79
76
  - rackup
80
77
  extensions: []
81
78
  extra_rdoc_files:
79
+ - CHANGELOG.md
80
+ - CONTRIBUTING.md
82
81
  - README.rdoc
83
- - HISTORY.md
84
82
  files:
85
- - COPYING
86
- - HISTORY.md
83
+ - CHANGELOG.md
84
+ - CONTRIBUTING.md
85
+ - MIT-LICENSE
87
86
  - README.rdoc
88
87
  - Rakefile
89
- - SPEC
88
+ - SPEC.rdoc
90
89
  - bin/rackup
91
90
  - contrib/rack.png
92
91
  - contrib/rack.svg
@@ -112,11 +111,13 @@ files:
112
111
  - lib/rack/config.rb
113
112
  - lib/rack/content_length.rb
114
113
  - lib/rack/content_type.rb
114
+ - lib/rack/core_ext/regexp.rb
115
115
  - lib/rack/deflater.rb
116
116
  - lib/rack/directory.rb
117
117
  - lib/rack/etag.rb
118
118
  - lib/rack/events.rb
119
119
  - lib/rack/file.rb
120
+ - lib/rack/files.rb
120
121
  - lib/rack/handler.rb
121
122
  - lib/rack/handler/cgi.rb
122
123
  - lib/rack/handler/fastcgi.rb
@@ -157,122 +158,16 @@ files:
157
158
  - lib/rack/tempfile_reaper.rb
158
159
  - lib/rack/urlmap.rb
159
160
  - lib/rack/utils.rb
161
+ - lib/rack/version.rb
160
162
  - 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_percent_escaped_quotes
195
- - test/multipart/filename_with_single_quote
196
- - test/multipart/filename_with_unescaped_percentages
197
- - test/multipart/filename_with_unescaped_percentages2
198
- - test/multipart/filename_with_unescaped_percentages3
199
- - test/multipart/filename_with_unescaped_quotes
200
- - test/multipart/ie
201
- - test/multipart/invalid_character
202
- - test/multipart/mixed_files
203
- - test/multipart/nested
204
- - test/multipart/none
205
- - test/multipart/quoted
206
- - test/multipart/rack-logo.png
207
- - test/multipart/semicolon
208
- - test/multipart/text
209
- - test/multipart/three_files_three_fields
210
- - test/multipart/unity3d_wwwform
211
- - test/multipart/webkit
212
- - test/rackup/config.ru
213
- - test/registering_handler/rack/handler/registering_myself.rb
214
- - test/spec_auth_basic.rb
215
- - test/spec_auth_digest.rb
216
- - test/spec_body_proxy.rb
217
- - test/spec_builder.rb
218
- - test/spec_cascade.rb
219
- - test/spec_cgi.rb
220
- - test/spec_chunked.rb
221
- - test/spec_common_logger.rb
222
- - test/spec_conditional_get.rb
223
- - test/spec_config.rb
224
- - test/spec_content_length.rb
225
- - test/spec_content_type.rb
226
- - test/spec_deflater.rb
227
- - test/spec_directory.rb
228
- - test/spec_etag.rb
229
- - test/spec_events.rb
230
- - test/spec_fastcgi.rb
231
- - test/spec_file.rb
232
- - test/spec_handler.rb
233
- - test/spec_head.rb
234
- - test/spec_lint.rb
235
- - test/spec_lobster.rb
236
- - test/spec_lock.rb
237
- - test/spec_logger.rb
238
- - test/spec_media_type.rb
239
- - test/spec_method_override.rb
240
- - test/spec_mime.rb
241
- - test/spec_mock.rb
242
- - test/spec_multipart.rb
243
- - test/spec_null_logger.rb
244
- - test/spec_recursive.rb
245
- - test/spec_request.rb
246
- - test/spec_response.rb
247
- - test/spec_rewindable_input.rb
248
- - test/spec_runtime.rb
249
- - test/spec_sendfile.rb
250
- - test/spec_server.rb
251
- - test/spec_session_abstract_id.rb
252
- - test/spec_session_abstract_session_hash.rb
253
- - test/spec_session_cookie.rb
254
- - test/spec_session_memcache.rb
255
- - test/spec_session_pool.rb
256
- - test/spec_show_exceptions.rb
257
- - test/spec_show_status.rb
258
- - test/spec_static.rb
259
- - test/spec_tempfile_reaper.rb
260
- - test/spec_thin.rb
261
- - test/spec_urlmap.rb
262
- - test/spec_utils.rb
263
- - test/spec_version.rb
264
- - test/spec_webrick.rb
265
- - test/static/another/index.html
266
- - test/static/foo.html
267
- - test/static/index.html
268
- - test/testrequest.rb
269
- - test/unregistered_handler/rack/handler/unregistered.rb
270
- - test/unregistered_handler/rack/handler/unregistered_long_one.rb
271
- homepage: http://rack.github.io/
163
+ homepage: https://github.com/rack/rack
272
164
  licenses:
273
165
  - MIT
274
- metadata: {}
275
- post_install_message:
166
+ metadata:
167
+ bug_tracker_uri: https://github.com/rack/rack/issues
168
+ changelog_uri: https://github.com/rack/rack/blob/master/CHANGELOG.md
169
+ documentation_uri: https://rubydoc.info/github/rack/rack
170
+ source_code_uri: https://github.com/rack/rack
276
171
  rdoc_options: []
277
172
  require_paths:
278
173
  - lib
@@ -280,68 +175,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
280
175
  requirements:
281
176
  - - ">="
282
177
  - !ruby/object:Gem::Version
283
- version: 2.2.2
178
+ version: 2.3.0
284
179
  required_rubygems_version: !ruby/object:Gem::Requirement
285
180
  requirements:
286
181
  - - ">="
287
182
  - !ruby/object:Gem::Version
288
183
  version: '0'
289
184
  requirements: []
290
- rubyforge_project:
291
- rubygems_version: 2.6.6
292
- signing_key:
185
+ rubygems_version: 3.7.0.dev
293
186
  specification_version: 4
294
- summary: a modular Ruby webserver interface
295
- test_files:
296
- - test/spec_auth_basic.rb
297
- - test/spec_auth_digest.rb
298
- - test/spec_body_proxy.rb
299
- - test/spec_builder.rb
300
- - test/spec_cascade.rb
301
- - test/spec_cgi.rb
302
- - test/spec_chunked.rb
303
- - test/spec_common_logger.rb
304
- - test/spec_conditional_get.rb
305
- - test/spec_config.rb
306
- - test/spec_content_length.rb
307
- - test/spec_content_type.rb
308
- - test/spec_deflater.rb
309
- - test/spec_directory.rb
310
- - test/spec_etag.rb
311
- - test/spec_events.rb
312
- - test/spec_fastcgi.rb
313
- - test/spec_file.rb
314
- - test/spec_handler.rb
315
- - test/spec_head.rb
316
- - test/spec_lint.rb
317
- - test/spec_lobster.rb
318
- - test/spec_lock.rb
319
- - test/spec_logger.rb
320
- - test/spec_media_type.rb
321
- - test/spec_method_override.rb
322
- - test/spec_mime.rb
323
- - test/spec_mock.rb
324
- - test/spec_multipart.rb
325
- - test/spec_null_logger.rb
326
- - test/spec_recursive.rb
327
- - test/spec_request.rb
328
- - test/spec_response.rb
329
- - test/spec_rewindable_input.rb
330
- - test/spec_runtime.rb
331
- - test/spec_sendfile.rb
332
- - test/spec_server.rb
333
- - test/spec_session_abstract_id.rb
334
- - test/spec_session_abstract_session_hash.rb
335
- - test/spec_session_cookie.rb
336
- - test/spec_session_memcache.rb
337
- - test/spec_session_pool.rb
338
- - test/spec_show_exceptions.rb
339
- - test/spec_show_status.rb
340
- - test/spec_static.rb
341
- - test/spec_tempfile_reaper.rb
342
- - test/spec_thin.rb
343
- - test/spec_urlmap.rb
344
- - test/spec_utils.rb
345
- - test/spec_version.rb
346
- - test/spec_webrick.rb
347
- has_rdoc:
187
+ summary: A modular Ruby webserver interface.
188
+ test_files: []