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
metadata CHANGED
@@ -1,110 +1,100 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rack
3
- version: !ruby/object:Gem::Version
4
- version: 1.0.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.2.21
5
5
  platform: ruby
6
- authors:
7
- - Christian Neukirchen
8
- autorequire:
6
+ authors:
7
+ - Leah Neukirchen
9
8
  bindir: bin
10
9
  cert_chain: []
11
-
12
- date: 2009-10-18 00:00:00 +02:00
13
- default_executable: rackup
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: test-spec
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: minitest
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '5.0'
17
19
  type: :development
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
20
- requirements:
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '5.0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: minitest-sprint
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
21
30
  - - ">="
22
- - !ruby/object:Gem::Version
23
- version: "0"
24
- version:
25
- - !ruby/object:Gem::Dependency
26
- name: camping
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
27
33
  type: :development
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
30
- requirements:
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
31
37
  - - ">="
32
- - !ruby/object:Gem::Version
33
- version: "0"
34
- version:
35
- - !ruby/object:Gem::Dependency
36
- name: fcgi
37
- type: :development
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
40
- requirements:
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: minitest-global_expectations
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
41
44
  - - ">="
42
- - !ruby/object:Gem::Version
43
- version: "0"
44
- version:
45
- - !ruby/object:Gem::Dependency
46
- name: memcache-client
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
47
  type: :development
48
- version_requirement:
49
- version_requirements: !ruby/object:Gem::Requirement
50
- requirements:
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
51
  - - ">="
52
- - !ruby/object:Gem::Version
53
- version: "0"
54
- version:
55
- - !ruby/object:Gem::Dependency
56
- name: mongrel
57
- type: :development
58
- version_requirement:
59
- version_requirements: !ruby/object:Gem::Requirement
60
- requirements:
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: rake
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
61
58
  - - ">="
62
- - !ruby/object:Gem::Version
63
- version: "0"
64
- version:
65
- - !ruby/object:Gem::Dependency
66
- name: ruby-openid
67
- type: :development
68
- version_requirement:
69
- version_requirements: !ruby/object:Gem::Requirement
70
- requirements:
71
- - - ~>
72
- - !ruby/object:Gem::Version
73
- version: 2.0.0
74
- version:
75
- - !ruby/object:Gem::Dependency
76
- name: thin
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
77
61
  type: :development
78
- version_requirement:
79
- version_requirements: !ruby/object:Gem::Requirement
80
- requirements:
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
81
65
  - - ">="
82
- - !ruby/object:Gem::Version
83
- version: "0"
84
- version:
85
- description: 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.
86
- email: chneukirchen@gmail.com
87
- executables:
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ description: |
69
+ Rack provides a minimal, modular and adaptable interface for developing
70
+ web applications in Ruby. By wrapping HTTP requests and responses in
71
+ the simplest way possible, it unifies and distills the API for web
72
+ servers, web frameworks, and software in between (the so-called
73
+ middleware) into a single method call.
74
+ email: leah@vuxu.org
75
+ executables:
88
76
  - rackup
89
77
  extensions: []
90
-
91
- extra_rdoc_files:
92
- - README
93
- - SPEC
94
- - RDOX
95
- - KNOWN-ISSUES
96
- files:
97
- - COPYING
98
- - KNOWN-ISSUES
99
- - README
78
+ extra_rdoc_files:
79
+ - CHANGELOG.md
80
+ - CONTRIBUTING.md
81
+ - README.rdoc
82
+ files:
83
+ - CHANGELOG.md
84
+ - CONTRIBUTING.md
85
+ - MIT-LICENSE
86
+ - README.rdoc
100
87
  - Rakefile
88
+ - SPEC.rdoc
101
89
  - bin/rackup
90
+ - contrib/rack.png
91
+ - contrib/rack.svg
102
92
  - contrib/rack_logo.svg
93
+ - contrib/rdoc.css
103
94
  - example/lobster.ru
104
95
  - example/protectedlobster.rb
105
96
  - example/protectedlobster.ru
106
97
  - lib/rack.rb
107
- - lib/rack/adapter/camping.rb
108
98
  - lib/rack/auth/abstract/handler.rb
109
99
  - lib/rack/auth/abstract/request.rb
110
100
  - lib/rack/auth/basic.rb
@@ -112,165 +102,87 @@ files:
112
102
  - lib/rack/auth/digest/nonce.rb
113
103
  - lib/rack/auth/digest/params.rb
114
104
  - lib/rack/auth/digest/request.rb
115
- - lib/rack/auth/openid.rb
105
+ - lib/rack/body_proxy.rb
116
106
  - lib/rack/builder.rb
117
107
  - lib/rack/cascade.rb
118
108
  - lib/rack/chunked.rb
119
- - lib/rack/commonlogger.rb
120
- - lib/rack/conditionalget.rb
109
+ - lib/rack/common_logger.rb
110
+ - lib/rack/conditional_get.rb
111
+ - lib/rack/config.rb
121
112
  - lib/rack/content_length.rb
122
113
  - lib/rack/content_type.rb
114
+ - lib/rack/core_ext/regexp.rb
123
115
  - lib/rack/deflater.rb
124
116
  - lib/rack/directory.rb
117
+ - lib/rack/etag.rb
118
+ - lib/rack/events.rb
125
119
  - lib/rack/file.rb
120
+ - lib/rack/files.rb
126
121
  - lib/rack/handler.rb
127
122
  - lib/rack/handler/cgi.rb
128
- - lib/rack/handler/evented_mongrel.rb
129
123
  - lib/rack/handler/fastcgi.rb
130
124
  - lib/rack/handler/lsws.rb
131
- - lib/rack/handler/mongrel.rb
132
125
  - lib/rack/handler/scgi.rb
133
- - lib/rack/handler/swiftiplied_mongrel.rb
134
126
  - lib/rack/handler/thin.rb
135
127
  - lib/rack/handler/webrick.rb
136
128
  - lib/rack/head.rb
137
129
  - lib/rack/lint.rb
138
130
  - lib/rack/lobster.rb
139
131
  - lib/rack/lock.rb
140
- - lib/rack/methodoverride.rb
132
+ - lib/rack/logger.rb
133
+ - lib/rack/media_type.rb
134
+ - lib/rack/method_override.rb
141
135
  - lib/rack/mime.rb
142
136
  - lib/rack/mock.rb
137
+ - lib/rack/multipart.rb
138
+ - lib/rack/multipart/generator.rb
139
+ - lib/rack/multipart/parser.rb
140
+ - lib/rack/multipart/uploaded_file.rb
141
+ - lib/rack/null_logger.rb
142
+ - lib/rack/query_parser.rb
143
143
  - lib/rack/recursive.rb
144
144
  - lib/rack/reloader.rb
145
145
  - lib/rack/request.rb
146
146
  - lib/rack/response.rb
147
147
  - lib/rack/rewindable_input.rb
148
+ - lib/rack/runtime.rb
149
+ - lib/rack/sendfile.rb
150
+ - lib/rack/server.rb
148
151
  - lib/rack/session/abstract/id.rb
149
152
  - lib/rack/session/cookie.rb
150
153
  - lib/rack/session/memcache.rb
151
154
  - lib/rack/session/pool.rb
152
- - lib/rack/showexceptions.rb
153
- - lib/rack/showstatus.rb
155
+ - lib/rack/show_exceptions.rb
156
+ - lib/rack/show_status.rb
154
157
  - lib/rack/static.rb
158
+ - lib/rack/tempfile_reaper.rb
155
159
  - lib/rack/urlmap.rb
156
160
  - lib/rack/utils.rb
157
- - test/cgi/lighttpd.conf
158
- - test/cgi/test
159
- - test/cgi/test.fcgi
160
- - test/cgi/test.ru
161
- - test/multipart/binary
162
- - test/multipart/empty
163
- - test/multipart/ie
164
- - test/multipart/nested
165
- - test/multipart/none
166
- - test/multipart/semicolon
167
- - test/multipart/text
168
- - test/spec_rack_auth_basic.rb
169
- - test/spec_rack_auth_digest.rb
170
- - test/spec_rack_auth_openid.rb
171
- - test/spec_rack_builder.rb
172
- - test/spec_rack_camping.rb
173
- - test/spec_rack_cascade.rb
174
- - test/spec_rack_cgi.rb
175
- - test/spec_rack_chunked.rb
176
- - test/spec_rack_commonlogger.rb
177
- - test/spec_rack_conditionalget.rb
178
- - test/spec_rack_content_length.rb
179
- - test/spec_rack_content_type.rb
180
- - test/spec_rack_deflater.rb
181
- - test/spec_rack_directory.rb
182
- - test/spec_rack_fastcgi.rb
183
- - test/spec_rack_file.rb
184
- - test/spec_rack_handler.rb
185
- - test/spec_rack_head.rb
186
- - test/spec_rack_lint.rb
187
- - test/spec_rack_lobster.rb
188
- - test/spec_rack_lock.rb
189
- - test/spec_rack_methodoverride.rb
190
- - test/spec_rack_mock.rb
191
- - test/spec_rack_mongrel.rb
192
- - test/spec_rack_recursive.rb
193
- - test/spec_rack_request.rb
194
- - test/spec_rack_response.rb
195
- - test/spec_rack_rewindable_input.rb
196
- - test/spec_rack_session_cookie.rb
197
- - test/spec_rack_session_memcache.rb
198
- - test/spec_rack_session_pool.rb
199
- - test/spec_rack_showexceptions.rb
200
- - test/spec_rack_showstatus.rb
201
- - test/spec_rack_static.rb
202
- - test/spec_rack_thin.rb
203
- - test/spec_rack_urlmap.rb
204
- - test/spec_rack_utils.rb
205
- - test/spec_rack_webrick.rb
206
- - test/testrequest.rb
207
- - test/unregistered_handler/rack/handler/unregistered.rb
208
- - test/unregistered_handler/rack/handler/unregistered_long_one.rb
209
- - SPEC
210
- - RDOX
161
+ - lib/rack/version.rb
211
162
  - rack.gemspec
212
- has_rdoc: true
213
- homepage: http://rack.rubyforge.org
214
- post_install_message:
163
+ homepage: https://github.com/rack/rack
164
+ licenses:
165
+ - MIT
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
215
171
  rdoc_options: []
216
-
217
- require_paths:
172
+ require_paths:
218
173
  - lib
219
- required_ruby_version: !ruby/object:Gem::Requirement
220
- requirements:
174
+ required_ruby_version: !ruby/object:Gem::Requirement
175
+ requirements:
221
176
  - - ">="
222
- - !ruby/object:Gem::Version
223
- version: "0"
224
- version:
225
- required_rubygems_version: !ruby/object:Gem::Requirement
226
- requirements:
177
+ - !ruby/object:Gem::Version
178
+ version: 2.3.0
179
+ required_rubygems_version: !ruby/object:Gem::Requirement
180
+ requirements:
227
181
  - - ">="
228
- - !ruby/object:Gem::Version
229
- version: "0"
230
- version:
182
+ - !ruby/object:Gem::Version
183
+ version: '0'
231
184
  requirements: []
232
-
233
- rubyforge_project: rack
234
- rubygems_version: 1.3.1
235
- signing_key:
236
- specification_version: 2
237
- summary: a modular Ruby webserver interface
238
- test_files:
239
- - test/spec_rack_auth_basic.rb
240
- - test/spec_rack_auth_digest.rb
241
- - test/spec_rack_auth_openid.rb
242
- - test/spec_rack_builder.rb
243
- - test/spec_rack_camping.rb
244
- - test/spec_rack_cascade.rb
245
- - test/spec_rack_cgi.rb
246
- - test/spec_rack_chunked.rb
247
- - test/spec_rack_commonlogger.rb
248
- - test/spec_rack_conditionalget.rb
249
- - test/spec_rack_content_length.rb
250
- - test/spec_rack_content_type.rb
251
- - test/spec_rack_deflater.rb
252
- - test/spec_rack_directory.rb
253
- - test/spec_rack_fastcgi.rb
254
- - test/spec_rack_file.rb
255
- - test/spec_rack_handler.rb
256
- - test/spec_rack_head.rb
257
- - test/spec_rack_lint.rb
258
- - test/spec_rack_lobster.rb
259
- - test/spec_rack_lock.rb
260
- - test/spec_rack_methodoverride.rb
261
- - test/spec_rack_mock.rb
262
- - test/spec_rack_mongrel.rb
263
- - test/spec_rack_recursive.rb
264
- - test/spec_rack_request.rb
265
- - test/spec_rack_response.rb
266
- - test/spec_rack_rewindable_input.rb
267
- - test/spec_rack_session_cookie.rb
268
- - test/spec_rack_session_memcache.rb
269
- - test/spec_rack_session_pool.rb
270
- - test/spec_rack_showexceptions.rb
271
- - test/spec_rack_showstatus.rb
272
- - test/spec_rack_static.rb
273
- - test/spec_rack_thin.rb
274
- - test/spec_rack_urlmap.rb
275
- - test/spec_rack_utils.rb
276
- - test/spec_rack_webrick.rb
185
+ rubygems_version: 3.6.9
186
+ specification_version: 4
187
+ summary: A modular Ruby webserver interface.
188
+ test_files: []
data/KNOWN-ISSUES DELETED
@@ -1,18 +0,0 @@
1
- = Known issues with Rack and Web servers
2
-
3
- * Lighttpd sets wrong SCRIPT_NAME and PATH_INFO if you mount your
4
- FastCGI app at "/". This can be fixed by using this middleware:
5
-
6
- class LighttpdScriptNameFix
7
- def initialize(app)
8
- @app = app
9
- end
10
-
11
- def call(env)
12
- env["PATH_INFO"] = env["SCRIPT_NAME"].to_s + env["PATH_INFO"].to_s
13
- env["SCRIPT_NAME"] = ""
14
- @app.call(env)
15
- end
16
- end
17
-
18
- Of course, use this only when your app runs at "/".