rack 1.0.1 → 2.2.21

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 (147) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +829 -0
  3. data/CONTRIBUTING.md +136 -0
  4. data/{COPYING → MIT-LICENSE} +4 -2
  5. data/README.rdoc +355 -0
  6. data/Rakefile +64 -98
  7. data/SPEC.rdoc +292 -0
  8. data/bin/rackup +3 -174
  9. data/contrib/rack.png +0 -0
  10. data/contrib/rack.svg +150 -0
  11. data/contrib/rack_logo.svg +164 -111
  12. data/contrib/rdoc.css +412 -0
  13. data/example/lobster.ru +2 -0
  14. data/example/protectedlobster.rb +4 -2
  15. data/example/protectedlobster.ru +3 -1
  16. data/lib/rack/auth/abstract/handler.rb +7 -5
  17. data/lib/rack/auth/abstract/request.rb +12 -2
  18. data/lib/rack/auth/basic.rb +6 -4
  19. data/lib/rack/auth/digest/md5.rb +20 -13
  20. data/lib/rack/auth/digest/nonce.rb +6 -4
  21. data/lib/rack/auth/digest/params.rb +11 -12
  22. data/lib/rack/auth/digest/request.rb +15 -12
  23. data/lib/rack/body_proxy.rb +45 -0
  24. data/lib/rack/builder.rb +213 -19
  25. data/lib/rack/cascade.rb +50 -18
  26. data/lib/rack/chunked.rb +95 -27
  27. data/lib/rack/common_logger.rb +84 -0
  28. data/lib/rack/conditional_get.rb +83 -0
  29. data/lib/rack/config.rb +22 -0
  30. data/lib/rack/content_length.rb +19 -10
  31. data/lib/rack/content_type.rb +12 -5
  32. data/lib/rack/core_ext/regexp.rb +14 -0
  33. data/lib/rack/deflater.rb +90 -42
  34. data/lib/rack/directory.rb +118 -72
  35. data/lib/rack/etag.rb +77 -0
  36. data/lib/rack/events.rb +153 -0
  37. data/lib/rack/file.rb +4 -85
  38. data/lib/rack/files.rb +218 -0
  39. data/lib/rack/handler/cgi.rb +22 -24
  40. data/lib/rack/handler/fastcgi.rb +34 -24
  41. data/lib/rack/handler/lsws.rb +16 -15
  42. data/lib/rack/handler/scgi.rb +38 -29
  43. data/lib/rack/handler/thin.rb +23 -7
  44. data/lib/rack/handler/webrick.rb +95 -37
  45. data/lib/rack/handler.rb +49 -14
  46. data/lib/rack/head.rb +19 -13
  47. data/lib/rack/lint.rb +466 -217
  48. data/lib/rack/lobster.rb +19 -14
  49. data/lib/rack/lock.rb +24 -8
  50. data/lib/rack/logger.rb +20 -0
  51. data/lib/rack/media_type.rb +53 -0
  52. data/lib/rack/method_override.rb +52 -0
  53. data/lib/rack/mime.rb +652 -171
  54. data/lib/rack/mock.rb +203 -64
  55. data/lib/rack/multipart/generator.rb +97 -0
  56. data/lib/rack/multipart/parser.rb +440 -0
  57. data/lib/rack/multipart/uploaded_file.rb +41 -0
  58. data/lib/rack/multipart.rb +64 -0
  59. data/lib/rack/null_logger.rb +39 -0
  60. data/lib/rack/query_parser.rb +266 -0
  61. data/lib/rack/recursive.rb +18 -11
  62. data/lib/rack/reloader.rb +13 -5
  63. data/lib/rack/request.rb +607 -191
  64. data/lib/rack/response.rb +245 -110
  65. data/lib/rack/rewindable_input.rb +15 -21
  66. data/lib/rack/runtime.rb +34 -0
  67. data/lib/rack/sendfile.rb +192 -0
  68. data/lib/rack/server.rb +466 -0
  69. data/lib/rack/session/abstract/id.rb +449 -68
  70. data/lib/rack/session/cookie.rb +159 -47
  71. data/lib/rack/session/memcache.rb +4 -103
  72. data/lib/rack/session/pool.rb +39 -49
  73. data/lib/rack/show_exceptions.rb +390 -0
  74. data/lib/rack/{showstatus.rb → show_status.rb} +21 -14
  75. data/lib/rack/static.rb +164 -14
  76. data/lib/rack/tempfile_reaper.rb +22 -0
  77. data/lib/rack/urlmap.rb +60 -18
  78. data/lib/rack/utils.rb +508 -277
  79. data/lib/rack/version.rb +29 -0
  80. data/lib/rack.rb +85 -34
  81. data/rack.gemspec +43 -51
  82. metadata +119 -207
  83. data/KNOWN-ISSUES +0 -18
  84. data/RDOX +0 -428
  85. data/README +0 -364
  86. data/SPEC +0 -164
  87. data/lib/rack/adapter/camping.rb +0 -22
  88. data/lib/rack/auth/openid.rb +0 -480
  89. data/lib/rack/commonlogger.rb +0 -61
  90. data/lib/rack/conditionalget.rb +0 -47
  91. data/lib/rack/handler/evented_mongrel.rb +0 -8
  92. data/lib/rack/handler/mongrel.rb +0 -87
  93. data/lib/rack/handler/swiftiplied_mongrel.rb +0 -8
  94. data/lib/rack/methodoverride.rb +0 -27
  95. data/lib/rack/showexceptions.rb +0 -349
  96. data/test/cgi/lighttpd.conf +0 -20
  97. data/test/cgi/test +0 -9
  98. data/test/cgi/test.fcgi +0 -8
  99. data/test/cgi/test.ru +0 -7
  100. data/test/multipart/binary +0 -0
  101. data/test/multipart/empty +0 -10
  102. data/test/multipart/ie +0 -6
  103. data/test/multipart/nested +0 -10
  104. data/test/multipart/none +0 -9
  105. data/test/multipart/semicolon +0 -6
  106. data/test/multipart/text +0 -10
  107. data/test/spec_rack_auth_basic.rb +0 -73
  108. data/test/spec_rack_auth_digest.rb +0 -226
  109. data/test/spec_rack_auth_openid.rb +0 -84
  110. data/test/spec_rack_builder.rb +0 -84
  111. data/test/spec_rack_camping.rb +0 -51
  112. data/test/spec_rack_cascade.rb +0 -50
  113. data/test/spec_rack_cgi.rb +0 -89
  114. data/test/spec_rack_chunked.rb +0 -62
  115. data/test/spec_rack_commonlogger.rb +0 -32
  116. data/test/spec_rack_conditionalget.rb +0 -41
  117. data/test/spec_rack_content_length.rb +0 -43
  118. data/test/spec_rack_content_type.rb +0 -30
  119. data/test/spec_rack_deflater.rb +0 -127
  120. data/test/spec_rack_directory.rb +0 -61
  121. data/test/spec_rack_fastcgi.rb +0 -89
  122. data/test/spec_rack_file.rb +0 -75
  123. data/test/spec_rack_handler.rb +0 -43
  124. data/test/spec_rack_head.rb +0 -30
  125. data/test/spec_rack_lint.rb +0 -521
  126. data/test/spec_rack_lobster.rb +0 -45
  127. data/test/spec_rack_lock.rb +0 -38
  128. data/test/spec_rack_methodoverride.rb +0 -60
  129. data/test/spec_rack_mock.rb +0 -157
  130. data/test/spec_rack_mongrel.rb +0 -189
  131. data/test/spec_rack_recursive.rb +0 -77
  132. data/test/spec_rack_request.rb +0 -504
  133. data/test/spec_rack_response.rb +0 -218
  134. data/test/spec_rack_rewindable_input.rb +0 -118
  135. data/test/spec_rack_session_cookie.rb +0 -82
  136. data/test/spec_rack_session_memcache.rb +0 -240
  137. data/test/spec_rack_session_pool.rb +0 -172
  138. data/test/spec_rack_showexceptions.rb +0 -21
  139. data/test/spec_rack_showstatus.rb +0 -72
  140. data/test/spec_rack_static.rb +0 -37
  141. data/test/spec_rack_thin.rb +0 -91
  142. data/test/spec_rack_urlmap.rb +0 -185
  143. data/test/spec_rack_utils.rb +0 -387
  144. data/test/spec_rack_webrick.rb +0 -130
  145. data/test/testrequest.rb +0 -57
  146. data/test/unregistered_handler/rack/handler/unregistered.rb +0 -7
  147. data/test/unregistered_handler/rack/handler/unregistered_long_one.rb +0 -7
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright (C) 2007-2019 Leah Neukirchen <http://leahneukirchen.org/infopage.html>
4
+ #
5
+ # Rack is freely distributable under the terms of an MIT-style license.
6
+ # See MIT-LICENSE or https://opensource.org/licenses/MIT.
7
+
8
+ # The Rack main module, serving as a namespace for all core Rack
9
+ # modules and classes.
10
+ #
11
+ # All modules meant for use in your application are <tt>autoload</tt>ed here,
12
+ # so it should be enough just to <tt>require 'rack'</tt> in your code.
13
+
14
+ module Rack
15
+ # The Rack protocol version number implemented.
16
+ VERSION = [1, 3]
17
+
18
+ # Return the Rack protocol version as a dotted string.
19
+ def self.version
20
+ VERSION.join(".")
21
+ end
22
+
23
+ RELEASE = "2.2.21"
24
+
25
+ # Return the Rack release as a dotted string.
26
+ def self.release
27
+ RELEASE
28
+ end
29
+ end
data/lib/rack.rb CHANGED
@@ -1,40 +1,94 @@
1
- # Copyright (C) 2007, 2008, 2009 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.
5
-
6
- path = File.expand_path(File.dirname(__FILE__))
7
- $:.unshift(path) unless $:.include?(path)
8
-
6
+ # See MIT-LICENSE or https://opensource.org/licenses/MIT.
9
7
 
10
8
  # The Rack main module, serving as a namespace for all core Rack
11
9
  # modules and classes.
12
10
  #
13
11
  # All modules meant for use in your application are <tt>autoload</tt>ed here,
14
- # so it should be enough just to <tt>require rack.rb</tt> in your code.
12
+ # so it should be enough just to <tt>require 'rack'</tt> in your code.
13
+
14
+ require_relative 'rack/version'
15
15
 
16
16
  module Rack
17
- # The Rack protocol version number implemented.
18
- VERSION = [1,0]
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'
19
37
 
20
- # Return the Rack protocol version as a dotted string.
21
- def self.version
22
- VERSION.join(".")
23
- end
38
+ # HTTP method verbs
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'
24
49
 
25
- # Return the Rack release as a dotted string.
26
- def self.release
27
- "1.0"
28
- end
50
+ # Rack environment variables
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'
29
78
 
30
79
  autoload :Builder, "rack/builder"
80
+ autoload :BodyProxy, "rack/body_proxy"
31
81
  autoload :Cascade, "rack/cascade"
32
82
  autoload :Chunked, "rack/chunked"
33
- autoload :CommonLogger, "rack/commonlogger"
34
- autoload :ConditionalGet, "rack/conditionalget"
83
+ autoload :CommonLogger, "rack/common_logger"
84
+ autoload :ConditionalGet, "rack/conditional_get"
85
+ autoload :Config, "rack/config"
35
86
  autoload :ContentLength, "rack/content_length"
36
87
  autoload :ContentType, "rack/content_type"
88
+ autoload :ETag, "rack/etag"
89
+ autoload :Events, "rack/events"
37
90
  autoload :File, "rack/file"
91
+ autoload :Files, "rack/files"
38
92
  autoload :Deflater, "rack/deflater"
39
93
  autoload :Directory, "rack/directory"
40
94
  autoload :ForwardRequest, "rack/recursive"
@@ -42,15 +96,24 @@ module Rack
42
96
  autoload :Head, "rack/head"
43
97
  autoload :Lint, "rack/lint"
44
98
  autoload :Lock, "rack/lock"
45
- autoload :MethodOverride, "rack/methodoverride"
99
+ autoload :Logger, "rack/logger"
100
+ autoload :MediaType, "rack/media_type"
101
+ autoload :MethodOverride, "rack/method_override"
46
102
  autoload :Mime, "rack/mime"
103
+ autoload :NullLogger, "rack/null_logger"
47
104
  autoload :Recursive, "rack/recursive"
48
105
  autoload :Reloader, "rack/reloader"
49
- autoload :ShowExceptions, "rack/showexceptions"
50
- autoload :ShowStatus, "rack/showstatus"
106
+ autoload :RewindableInput, "rack/rewindable_input"
107
+ autoload :Runtime, "rack/runtime"
108
+ autoload :Sendfile, "rack/sendfile"
109
+ autoload :Server, "rack/server"
110
+ autoload :ShowExceptions, "rack/show_exceptions"
111
+ autoload :ShowStatus, "rack/show_status"
51
112
  autoload :Static, "rack/static"
113
+ autoload :TempfileReaper, "rack/tempfile_reaper"
52
114
  autoload :URLMap, "rack/urlmap"
53
115
  autoload :Utils, "rack/utils"
116
+ autoload :Multipart, "rack/multipart"
54
117
 
55
118
  autoload :MockRequest, "rack/mock"
56
119
  autoload :MockResponse, "rack/mock"
@@ -62,7 +125,6 @@ module Rack
62
125
  autoload :Basic, "rack/auth/basic"
63
126
  autoload :AbstractRequest, "rack/auth/abstract/request"
64
127
  autoload :AbstractHandler, "rack/auth/abstract/handler"
65
- autoload :OpenID, "rack/auth/openid"
66
128
  module Digest
67
129
  autoload :MD5, "rack/auth/digest/md5"
68
130
  autoload :Nonce, "rack/auth/digest/nonce"
@@ -76,15 +138,4 @@ module Rack
76
138
  autoload :Pool, "rack/session/pool"
77
139
  autoload :Memcache, "rack/session/memcache"
78
140
  end
79
-
80
- # *Adapters* connect Rack with third party web frameworks.
81
- #
82
- # Rack includes an adapter for Camping, see README for other
83
- # frameworks supporting Rack in their code bases.
84
- #
85
- # Refer to the submodules for framework-specific calling details.
86
-
87
- module Adapter
88
- autoload :Camping, "rack/adapter/camping"
89
- end
90
141
  end
data/rack.gemspec CHANGED
@@ -1,54 +1,46 @@
1
- # -*- encoding: utf-8 -*-
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'lib/rack/version'
2
4
 
3
5
  Gem::Specification.new do |s|
4
- s.name = %q{rack}
5
- s.version = "1.0.1"
6
-
7
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
- s.authors = ["Christian Neukirchen"]
9
- s.date = %q{2009-10-18}
10
- s.default_executable = %q{rackup}
11
- s.description = %q{Rack provides minimal, modular and adaptable interface for developing web applications in Ruby. By wrapping HTTP requests and responses in the simplest way possible, it unifies and distills the API for web servers, web frameworks, and software in between (the so-called middleware) into a single method call. Also see http://rack.rubyforge.org.}
12
- s.email = %q{chneukirchen@gmail.com}
13
- s.executables = ["rackup"]
14
- s.extra_rdoc_files = ["README", "SPEC", "RDOX", "KNOWN-ISSUES"]
15
- s.files = ["COPYING", "KNOWN-ISSUES", "README", "Rakefile", "bin/rackup", "contrib/rack_logo.svg", "example/lobster.ru", "example/protectedlobster.rb", "example/protectedlobster.ru", "lib/rack.rb", "lib/rack/adapter/camping.rb", "lib/rack/auth/abstract/handler.rb", "lib/rack/auth/abstract/request.rb", "lib/rack/auth/basic.rb", "lib/rack/auth/digest/md5.rb", "lib/rack/auth/digest/nonce.rb", "lib/rack/auth/digest/params.rb", "lib/rack/auth/digest/request.rb", "lib/rack/auth/openid.rb", "lib/rack/builder.rb", "lib/rack/cascade.rb", "lib/rack/chunked.rb", "lib/rack/commonlogger.rb", "lib/rack/conditionalget.rb", "lib/rack/content_length.rb", "lib/rack/content_type.rb", "lib/rack/deflater.rb", "lib/rack/directory.rb", "lib/rack/file.rb", "lib/rack/handler.rb", "lib/rack/handler/cgi.rb", "lib/rack/handler/evented_mongrel.rb", "lib/rack/handler/fastcgi.rb", "lib/rack/handler/lsws.rb", "lib/rack/handler/mongrel.rb", "lib/rack/handler/scgi.rb", "lib/rack/handler/swiftiplied_mongrel.rb", "lib/rack/handler/thin.rb", "lib/rack/handler/webrick.rb", "lib/rack/head.rb", "lib/rack/lint.rb", "lib/rack/lobster.rb", "lib/rack/lock.rb", "lib/rack/methodoverride.rb", "lib/rack/mime.rb", "lib/rack/mock.rb", "lib/rack/recursive.rb", "lib/rack/reloader.rb", "lib/rack/request.rb", "lib/rack/response.rb", "lib/rack/rewindable_input.rb", "lib/rack/session/abstract/id.rb", "lib/rack/session/cookie.rb", "lib/rack/session/memcache.rb", "lib/rack/session/pool.rb", "lib/rack/showexceptions.rb", "lib/rack/showstatus.rb", "lib/rack/static.rb", "lib/rack/urlmap.rb", "lib/rack/utils.rb", "test/cgi/lighttpd.conf", "test/cgi/test", "test/cgi/test.fcgi", "test/cgi/test.ru", "test/multipart/binary", "test/multipart/empty", "test/multipart/ie", "test/multipart/nested", "test/multipart/none", "test/multipart/semicolon", "test/multipart/text", "test/spec_rack_auth_basic.rb", "test/spec_rack_auth_digest.rb", "test/spec_rack_auth_openid.rb", "test/spec_rack_builder.rb", "test/spec_rack_camping.rb", "test/spec_rack_cascade.rb", "test/spec_rack_cgi.rb", "test/spec_rack_chunked.rb", "test/spec_rack_commonlogger.rb", "test/spec_rack_conditionalget.rb", "test/spec_rack_content_length.rb", "test/spec_rack_content_type.rb", "test/spec_rack_deflater.rb", "test/spec_rack_directory.rb", "test/spec_rack_fastcgi.rb", "test/spec_rack_file.rb", "test/spec_rack_handler.rb", "test/spec_rack_head.rb", "test/spec_rack_lint.rb", "test/spec_rack_lobster.rb", "test/spec_rack_lock.rb", "test/spec_rack_methodoverride.rb", "test/spec_rack_mock.rb", "test/spec_rack_mongrel.rb", "test/spec_rack_recursive.rb", "test/spec_rack_request.rb", "test/spec_rack_response.rb", "test/spec_rack_rewindable_input.rb", "test/spec_rack_session_cookie.rb", "test/spec_rack_session_memcache.rb", "test/spec_rack_session_pool.rb", "test/spec_rack_showexceptions.rb", "test/spec_rack_showstatus.rb", "test/spec_rack_static.rb", "test/spec_rack_thin.rb", "test/spec_rack_urlmap.rb", "test/spec_rack_utils.rb", "test/spec_rack_webrick.rb", "test/testrequest.rb", "test/unregistered_handler/rack/handler/unregistered.rb", "test/unregistered_handler/rack/handler/unregistered_long_one.rb", "SPEC", "RDOX", "rack.gemspec"]
16
- s.has_rdoc = true
17
- s.homepage = %q{http://rack.rubyforge.org}
18
- s.require_paths = ["lib"]
19
- s.rubyforge_project = %q{rack}
20
- s.rubygems_version = %q{1.3.1}
21
- s.summary = %q{a modular Ruby webserver interface}
22
- s.test_files = ["test/spec_rack_auth_basic.rb", "test/spec_rack_auth_digest.rb", "test/spec_rack_auth_openid.rb", "test/spec_rack_builder.rb", "test/spec_rack_camping.rb", "test/spec_rack_cascade.rb", "test/spec_rack_cgi.rb", "test/spec_rack_chunked.rb", "test/spec_rack_commonlogger.rb", "test/spec_rack_conditionalget.rb", "test/spec_rack_content_length.rb", "test/spec_rack_content_type.rb", "test/spec_rack_deflater.rb", "test/spec_rack_directory.rb", "test/spec_rack_fastcgi.rb", "test/spec_rack_file.rb", "test/spec_rack_handler.rb", "test/spec_rack_head.rb", "test/spec_rack_lint.rb", "test/spec_rack_lobster.rb", "test/spec_rack_lock.rb", "test/spec_rack_methodoverride.rb", "test/spec_rack_mock.rb", "test/spec_rack_mongrel.rb", "test/spec_rack_recursive.rb", "test/spec_rack_request.rb", "test/spec_rack_response.rb", "test/spec_rack_rewindable_input.rb", "test/spec_rack_session_cookie.rb", "test/spec_rack_session_memcache.rb", "test/spec_rack_session_pool.rb", "test/spec_rack_showexceptions.rb", "test/spec_rack_showstatus.rb", "test/spec_rack_static.rb", "test/spec_rack_thin.rb", "test/spec_rack_urlmap.rb", "test/spec_rack_utils.rb", "test/spec_rack_webrick.rb"]
23
-
24
- if s.respond_to? :specification_version then
25
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
26
- s.specification_version = 2
27
-
28
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
29
- s.add_development_dependency(%q<test-spec>, [">= 0"])
30
- s.add_development_dependency(%q<camping>, [">= 0"])
31
- s.add_development_dependency(%q<fcgi>, [">= 0"])
32
- s.add_development_dependency(%q<memcache-client>, [">= 0"])
33
- s.add_development_dependency(%q<mongrel>, [">= 0"])
34
- s.add_development_dependency(%q<ruby-openid>, ["~> 2.0.0"])
35
- s.add_development_dependency(%q<thin>, [">= 0"])
36
- else
37
- s.add_dependency(%q<test-spec>, [">= 0"])
38
- s.add_dependency(%q<camping>, [">= 0"])
39
- s.add_dependency(%q<fcgi>, [">= 0"])
40
- s.add_dependency(%q<memcache-client>, [">= 0"])
41
- s.add_dependency(%q<mongrel>, [">= 0"])
42
- s.add_dependency(%q<ruby-openid>, ["~> 2.0.0"])
43
- s.add_dependency(%q<thin>, [">= 0"])
44
- end
45
- else
46
- s.add_dependency(%q<test-spec>, [">= 0"])
47
- s.add_dependency(%q<camping>, [">= 0"])
48
- s.add_dependency(%q<fcgi>, [">= 0"])
49
- s.add_dependency(%q<memcache-client>, [">= 0"])
50
- s.add_dependency(%q<mongrel>, [">= 0"])
51
- s.add_dependency(%q<ruby-openid>, ["~> 2.0.0"])
52
- s.add_dependency(%q<thin>, [">= 0"])
53
- end
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
+ }
41
+
42
+ s.add_development_dependency 'minitest', "~> 5.0"
43
+ s.add_development_dependency 'minitest-sprint'
44
+ s.add_development_dependency 'minitest-global_expectations'
45
+ s.add_development_dependency 'rake'
54
46
  end