passenger 2.2.2 → 2.2.3

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of passenger might be problematic. Click here for more details.

Files changed (254) hide show
  1. data/DEVELOPERS.TXT +13 -3
  2. data/Rakefile +42 -33
  3. data/bin/passenger-install-apache2-module +1 -2
  4. data/bin/passenger-install-nginx-module +7 -19
  5. data/bin/passenger-status +64 -15
  6. data/bin/passenger-stress-test +2 -2
  7. data/doc/ApplicationPool algorithm.txt +26 -22
  8. data/doc/Users guide Apache.html +374 -149
  9. data/doc/Users guide Apache.txt +318 -51
  10. data/doc/Users guide Nginx.html +13 -13
  11. data/doc/Users guide Nginx.txt +7 -2
  12. data/doc/cxxapi/Bucket_8h-source.html +62 -25
  13. data/doc/cxxapi/Configuration_8h-source.html +343 -326
  14. data/doc/cxxapi/DirectoryMapper_8h-source.html +12 -12
  15. data/doc/cxxapi/Hooks_8h-source.html +1 -1
  16. data/doc/cxxapi/annotated.html +1 -1
  17. data/doc/cxxapi/classHooks-members.html +1 -1
  18. data/doc/cxxapi/classHooks.html +1 -1
  19. data/doc/cxxapi/classPassenger_1_1DirectoryMapper-members.html +2 -2
  20. data/doc/cxxapi/classPassenger_1_1DirectoryMapper.html +9 -9
  21. data/doc/cxxapi/classes.html +1 -1
  22. data/doc/cxxapi/definitions_8h-source.html +1 -1
  23. data/doc/cxxapi/files.html +1 -1
  24. data/doc/cxxapi/functions.html +2 -2
  25. data/doc/cxxapi/functions_func.html +2 -2
  26. data/doc/cxxapi/graph_legend.html +1 -1
  27. data/doc/cxxapi/group__Configuration.html +1 -1
  28. data/doc/cxxapi/group__Core.html +1 -1
  29. data/doc/cxxapi/group__Hooks.html +1 -1
  30. data/doc/cxxapi/group__Support.html +1 -1
  31. data/doc/cxxapi/main.html +1 -1
  32. data/doc/cxxapi/modules.html +1 -1
  33. data/doc/rdoc/classes/ConditionVariable.html +194 -0
  34. data/doc/rdoc/classes/Exception.html +120 -0
  35. data/doc/rdoc/classes/GC.html +113 -0
  36. data/doc/rdoc/classes/IO.html +169 -0
  37. data/doc/rdoc/classes/PhusionPassenger.html +238 -0
  38. data/doc/rdoc/classes/PhusionPassenger/AbstractInstaller.html +153 -0
  39. data/doc/rdoc/classes/PhusionPassenger/AbstractRequestHandler.html +517 -0
  40. data/doc/rdoc/classes/PhusionPassenger/AbstractServer.html +719 -0
  41. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerAlreadyStarted.html +97 -0
  42. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerError.html +96 -0
  43. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerNotStarted.html +97 -0
  44. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/UnknownMessage.html +96 -0
  45. data/doc/rdoc/classes/PhusionPassenger/AbstractServerCollection.html +598 -0
  46. data/doc/rdoc/classes/PhusionPassenger/AdminTools.html +140 -0
  47. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ControlProcess.html +317 -0
  48. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ControlProcess/Instance.html +138 -0
  49. data/doc/rdoc/classes/PhusionPassenger/AppInitError.html +154 -0
  50. data/doc/rdoc/classes/PhusionPassenger/Application.html +283 -0
  51. data/doc/rdoc/classes/PhusionPassenger/ConsoleTextTemplate.html +172 -0
  52. data/doc/rdoc/classes/PhusionPassenger/FrameworkInitError.html +145 -0
  53. data/doc/rdoc/classes/PhusionPassenger/HTMLTemplate.html +175 -0
  54. data/doc/rdoc/classes/PhusionPassenger/InitializationError.html +141 -0
  55. data/doc/rdoc/classes/PhusionPassenger/InvalidPath.html +92 -0
  56. data/doc/rdoc/classes/PhusionPassenger/MessageChannel.html +489 -0
  57. data/doc/rdoc/classes/PhusionPassenger/NativeSupport.html +350 -0
  58. data/doc/rdoc/classes/PhusionPassenger/Rack.html +91 -0
  59. data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner.html +188 -0
  60. data/doc/rdoc/classes/PhusionPassenger/Rack/RequestHandler.html +194 -0
  61. data/doc/rdoc/classes/PhusionPassenger/Railz.html +95 -0
  62. data/doc/rdoc/classes/PhusionPassenger/Railz/ApplicationSpawner.html +442 -0
  63. data/doc/rdoc/classes/PhusionPassenger/Railz/ApplicationSpawner/Error.html +98 -0
  64. data/doc/rdoc/classes/PhusionPassenger/Railz/CGIFixed.html +200 -0
  65. data/doc/rdoc/classes/PhusionPassenger/Railz/FrameworkSpawner.html +436 -0
  66. data/doc/rdoc/classes/PhusionPassenger/Railz/FrameworkSpawner/Error.html +98 -0
  67. data/doc/rdoc/classes/PhusionPassenger/Railz/RequestHandler.html +155 -0
  68. data/doc/rdoc/classes/PhusionPassenger/SpawnManager.html +402 -0
  69. data/doc/rdoc/classes/PhusionPassenger/UnknownError.html +125 -0
  70. data/doc/rdoc/classes/PhusionPassenger/Utils.html +805 -0
  71. data/doc/rdoc/classes/PhusionPassenger/VersionNotFound.html +140 -0
  72. data/doc/rdoc/classes/PhusionPassenger/WSGI.html +89 -0
  73. data/doc/rdoc/classes/PhusionPassenger/WSGI/ApplicationSpawner.html +188 -0
  74. data/doc/rdoc/classes/PlatformInfo.html +831 -0
  75. data/doc/rdoc/classes/RakeExtensions.html +197 -0
  76. data/doc/rdoc/classes/Signal.html +131 -0
  77. data/doc/rdoc/created.rid +1 -0
  78. data/doc/rdoc/files/DEVELOPERS_TXT.html +255 -0
  79. data/doc/rdoc/files/README.html +157 -0
  80. data/doc/rdoc/files/ext/phusion_passenger/native_support_c.html +92 -0
  81. data/doc/rdoc/files/lib/phusion_passenger/abstract_installer_rb.html +129 -0
  82. data/doc/rdoc/files/lib/phusion_passenger/abstract_request_handler_rb.html +131 -0
  83. data/doc/rdoc/files/lib/phusion_passenger/abstract_server_collection_rb.html +126 -0
  84. data/doc/rdoc/files/lib/phusion_passenger/abstract_server_rb.html +130 -0
  85. data/doc/rdoc/files/lib/phusion_passenger/admin_tools/control_process_rb.html +130 -0
  86. data/doc/rdoc/files/lib/phusion_passenger/admin_tools_rb.html +122 -0
  87. data/doc/rdoc/files/lib/phusion_passenger/application_rb.html +127 -0
  88. data/doc/rdoc/files/lib/phusion_passenger/console_text_template_rb.html +126 -0
  89. data/doc/rdoc/files/lib/phusion_passenger/constants_rb.html +122 -0
  90. data/doc/rdoc/files/lib/phusion_passenger/dependencies_rb.html +134 -0
  91. data/doc/rdoc/files/lib/phusion_passenger/events_rb.html +122 -0
  92. data/doc/rdoc/files/lib/phusion_passenger/exceptions_rb.html +122 -0
  93. data/doc/rdoc/files/lib/phusion_passenger/html_template_rb.html +126 -0
  94. data/doc/rdoc/files/lib/phusion_passenger/message_channel_rb.html +122 -0
  95. data/doc/rdoc/files/lib/phusion_passenger/packaging_rb.html +122 -0
  96. data/doc/rdoc/files/lib/phusion_passenger/platform_info_rb.html +127 -0
  97. data/doc/rdoc/files/lib/phusion_passenger/rack/application_spawner_rb.html +133 -0
  98. data/doc/rdoc/files/lib/phusion_passenger/rack/request_handler_rb.html +127 -0
  99. data/doc/rdoc/files/lib/phusion_passenger/railz/application_spawner_rb.html +143 -0
  100. data/doc/rdoc/files/lib/phusion_passenger/railz/cgi_fixed_rb.html +126 -0
  101. data/doc/rdoc/files/lib/phusion_passenger/railz/framework_spawner_rb.html +145 -0
  102. data/doc/rdoc/files/lib/phusion_passenger/railz/request_handler_rb.html +127 -0
  103. data/doc/rdoc/files/lib/phusion_passenger/simple_benchmarking_rb.html +122 -0
  104. data/doc/rdoc/files/lib/phusion_passenger/spawn_manager_rb.html +161 -0
  105. data/doc/rdoc/files/lib/phusion_passenger/utils_rb.html +175 -0
  106. data/doc/rdoc/files/lib/phusion_passenger/wsgi/application_spawner_rb.html +129 -0
  107. data/doc/rdoc/files/misc/rake/extensions_rb.html +130 -0
  108. data/doc/rdoc/fr_class_index.html +90 -0
  109. data/doc/rdoc/fr_file_index.html +76 -0
  110. data/doc/rdoc/fr_method_index.html +200 -0
  111. data/doc/rdoc/index.html +26 -0
  112. data/doc/rdoc/rdoc-style.css +187 -0
  113. data/doc/users_guide_snippets/rackup_specifications.txt +2 -8
  114. data/ext/apache2/Bucket.cpp +71 -38
  115. data/ext/apache2/Bucket.h +53 -16
  116. data/ext/apache2/Configuration.cpp +15 -0
  117. data/ext/apache2/Configuration.h +19 -2
  118. data/ext/apache2/DirectoryMapper.h +10 -10
  119. data/ext/apache2/Hooks.cpp +334 -74
  120. data/ext/boost/mpl/apply.hpp +5 -1
  121. data/ext/boost/mpl/apply_wrap.hpp +5 -2
  122. data/ext/boost/mpl/aux_/full_lambda.hpp +5 -1
  123. data/ext/boost/mpl/bind.hpp +5 -1
  124. data/ext/common/Application.h +11 -31
  125. data/ext/common/ApplicationPool.h +2 -1
  126. data/ext/common/ApplicationPoolServer.h +61 -20
  127. data/ext/common/ApplicationPoolServerExecutable.cpp +132 -4
  128. data/ext/common/ApplicationPoolStatusReporter.h +189 -65
  129. data/ext/common/Base64.cpp +143 -0
  130. data/ext/common/Base64.h +57 -0
  131. data/ext/common/CachedFileStat.cpp +25 -82
  132. data/ext/common/CachedFileStat.h +11 -125
  133. data/ext/common/CachedFileStat.hpp +243 -0
  134. data/ext/common/Exceptions.h +13 -0
  135. data/ext/common/FileChangeChecker.h +209 -0
  136. data/ext/common/Logging.h +3 -2
  137. data/ext/common/MessageChannel.h +10 -10
  138. data/ext/common/PoolOptions.h +72 -5
  139. data/ext/common/SpawnManager.h +11 -8
  140. data/ext/common/StandardApplicationPool.h +38 -39
  141. data/ext/common/StaticString.h +1 -0
  142. data/ext/common/StringListCreator.h +83 -0
  143. data/ext/common/SystemTime.h +3 -2
  144. data/ext/common/Timer.h +88 -0
  145. data/ext/common/Utils.cpp +161 -42
  146. data/ext/common/Utils.h +62 -31
  147. data/ext/common/Version.h +1 -1
  148. data/ext/nginx/Configuration.c +0 -4
  149. data/ext/nginx/ContentHandler.c +8 -6
  150. data/ext/nginx/HelperServer.cpp +45 -55
  151. data/ext/nginx/HttpStatusExtractor.h +4 -0
  152. data/ext/nginx/StaticContentHandler.c +25 -5
  153. data/ext/nginx/config +3 -0
  154. data/ext/nginx/ngx_http_passenger_module.c +72 -17
  155. data/ext/nginx/ngx_http_passenger_module.h +2 -2
  156. data/lib/phusion_passenger/abstract_request_handler.rb +15 -7
  157. data/lib/phusion_passenger/abstract_server.rb +16 -2
  158. data/lib/phusion_passenger/admin_tools/control_process.rb +36 -25
  159. data/lib/phusion_passenger/constants.rb +1 -1
  160. data/lib/phusion_passenger/dependencies.rb +10 -0
  161. data/lib/phusion_passenger/platform_info.rb +1 -1
  162. data/lib/phusion_passenger/rack/application_spawner.rb +21 -2
  163. data/lib/phusion_passenger/rack/request_handler.rb +10 -0
  164. data/lib/phusion_passenger/railz/application_spawner.rb +38 -2
  165. data/lib/phusion_passenger/railz/framework_spawner.rb +26 -28
  166. data/lib/phusion_passenger/railz/request_handler.rb +5 -1
  167. data/lib/phusion_passenger/spawn_manager.rb +6 -2
  168. data/lib/phusion_passenger/utils.rb +79 -27
  169. data/misc/rake/cplusplus.rb +5 -5
  170. data/test/ApplicationPoolServerTest.cpp +42 -0
  171. data/test/ApplicationPoolTest.cpp +255 -267
  172. data/test/Base64Test.cpp +48 -0
  173. data/test/CachedFileStatTest.cpp +243 -103
  174. data/test/FileChangeCheckerTest.cpp +331 -0
  175. data/test/PoolOptionsTest.cpp +80 -0
  176. data/test/UtilsTest.cpp +5 -17
  177. data/test/integration_tests/apache2_tests.rb +15 -4
  178. data/test/integration_tests/mycook_spec.rb +3 -4
  179. data/test/oxt/syscall_interruption_test.cpp +2 -14
  180. data/test/ruby/abstract_server_collection_spec.rb +1 -1
  181. data/test/ruby/abstract_server_spec.rb +35 -1
  182. data/test/ruby/rack/application_spawner_spec.rb +23 -6
  183. data/test/ruby/rails/application_spawner_spec.rb +6 -6
  184. data/test/ruby/rails/framework_spawner_spec.rb +6 -5
  185. data/test/ruby/rails/minimal_spawner_spec.rb +19 -0
  186. data/test/ruby/rails/spawner_error_handling_spec.rb +62 -7
  187. data/test/ruby/spawn_manager_spec.rb +10 -7
  188. data/test/ruby/spawn_server_spec.rb +1 -1
  189. data/test/ruby/utils_spec.rb +193 -20
  190. data/test/ruby/wsgi/application_spawner_spec.rb +3 -1
  191. data/test/stub/apache2/httpd.conf.erb +3 -0
  192. data/test/stub/rack/config.ru +1 -1
  193. data/test/stub/rails_apps/mycook/app/controllers/welcome_controller.rb +8 -0
  194. data/test/support/Support.cpp +84 -0
  195. data/test/support/Support.h +66 -8
  196. data/test/support/config.rb +14 -2
  197. data/test/support/test_helper.rb +5 -0
  198. data/vendor/rack-1.0.0-git/lib/rack/auth/openid.rb +123 -116
  199. data/vendor/rack-1.0.0-git/lib/rack/cascade.rb +17 -12
  200. data/vendor/rack-1.0.0-git/lib/rack/commonlogger.rb +34 -43
  201. data/vendor/rack-1.0.0-git/lib/rack/handler/cgi.rb +1 -1
  202. data/vendor/rack-1.0.0-git/lib/rack/handler/fastcgi.rb +1 -1
  203. data/vendor/rack-1.0.0-git/lib/rack/handler/lsws.rb +1 -1
  204. data/vendor/rack-1.0.0-git/lib/rack/handler/mongrel.rb +1 -1
  205. data/vendor/rack-1.0.0-git/lib/rack/handler/scgi.rb +1 -1
  206. data/vendor/rack-1.0.0-git/lib/rack/handler/webrick.rb +1 -1
  207. data/vendor/rack-1.0.0-git/lib/rack/mock.rb +4 -17
  208. data/vendor/rack-1.0.0-git/lib/rack/request.rb +3 -9
  209. data/vendor/rack-1.0.0-git/lib/rack/rewindable_input.rb +2 -0
  210. data/vendor/rack-1.0.0-git/lib/rack/utils.rb +38 -12
  211. metadata +231 -186
  212. data/ext/common/FileChecker.h +0 -112
  213. data/test/FileCheckerTest.cpp +0 -79
  214. data/test/stub/minimal-railsapp/README +0 -3
  215. data/test/stub/minimal-railsapp/config/application.rb +0 -0
  216. data/test/stub/minimal-railsapp/config/environment.rb +0 -3
  217. data/test/stub/minimal-railsapp/vendor/rails/actionmailer/lib/action_mailer.rb +0 -0
  218. data/test/stub/minimal-railsapp/vendor/rails/actionpack/lib/action_controller.rb +0 -10
  219. data/test/stub/minimal-railsapp/vendor/rails/actionpack/lib/action_pack.rb +0 -0
  220. data/test/stub/minimal-railsapp/vendor/rails/actionpack/lib/action_view.rb +0 -0
  221. data/test/stub/minimal-railsapp/vendor/rails/activerecord/lib/active_record.rb +0 -7
  222. data/test/stub/minimal-railsapp/vendor/rails/activeresource/lib/active_resource.rb +0 -0
  223. data/test/stub/minimal-railsapp/vendor/rails/activesupport/lib/active_support.rb +0 -17
  224. data/test/stub/minimal-railsapp/vendor/rails/activesupport/lib/active_support/whiny_nil.rb +0 -0
  225. data/test/stub/minimal-railsapp/vendor/rails/railties/lib/dispatcher.rb +0 -0
  226. data/test/stub/minimal-railsapp/vendor/rails/railties/lib/initializer.rb +0 -8
  227. data/test/stub/minimal-railsapp/vendor/rails/railties/lib/ruby_version_check.rb +0 -1
  228. data/test/stub/railsapp/app/controllers/application.rb +0 -12
  229. data/test/stub/railsapp/app/controllers/bar_controller.rb +0 -5
  230. data/test/stub/railsapp/app/controllers/bar_controller_1.txt +0 -5
  231. data/test/stub/railsapp/app/controllers/bar_controller_2.txt +0 -5
  232. data/test/stub/railsapp/app/controllers/foo_controller.rb +0 -9
  233. data/test/stub/railsapp/app/helpers/application_helper.rb +0 -3
  234. data/test/stub/railsapp/config/boot.rb +0 -108
  235. data/test/stub/railsapp/config/database.yml +0 -19
  236. data/test/stub/railsapp/config/environment.rb +0 -59
  237. data/test/stub/railsapp/config/environments/development.rb +0 -18
  238. data/test/stub/railsapp/config/environments/production.rb +0 -19
  239. data/test/stub/railsapp/config/initializers/inflections.rb +0 -10
  240. data/test/stub/railsapp/config/initializers/mime_types.rb +0 -5
  241. data/test/stub/railsapp/config/routes.rb +0 -35
  242. data/test/stub/railsapp/public/useless.txt +0 -1
  243. data/test/stub/railsapp2/app/controllers/application.rb +0 -12
  244. data/test/stub/railsapp2/app/controllers/foo_controller.rb +0 -5
  245. data/test/stub/railsapp2/app/helpers/application_helper.rb +0 -3
  246. data/test/stub/railsapp2/config/boot.rb +0 -108
  247. data/test/stub/railsapp2/config/database.yml +0 -19
  248. data/test/stub/railsapp2/config/environment.rb +0 -59
  249. data/test/stub/railsapp2/config/environments/development.rb +0 -18
  250. data/test/stub/railsapp2/config/environments/production.rb +0 -19
  251. data/test/stub/railsapp2/config/initializers/inflections.rb +0 -10
  252. data/test/stub/railsapp2/config/initializers/mime_types.rb +0 -5
  253. data/test/stub/railsapp2/config/routes.rb +0 -35
  254. data/test/stub/railsapp2/public/useless.txt +0 -1
@@ -2,60 +2,51 @@ module Rack
2
2
  # Rack::CommonLogger forwards every request to an +app+ given, and
3
3
  # logs a line in the Apache common log format to the +logger+, or
4
4
  # rack.errors by default.
5
-
6
5
  class CommonLogger
6
+ # Common Log Format: http://httpd.apache.org/docs/1.3/logs.html#common
7
+ # lilith.local - - [07/Aug/2006 23:58:02] "GET / HTTP/1.1" 500 -
8
+ # %{%s - %s [%s] "%s %s%s %s" %d %s\n} %
9
+ FORMAT = %{%s - %s [%s] "%s %s%s %s" %d %s %0.4f\n}
10
+
7
11
  def initialize(app, logger=nil)
8
12
  @app = app
9
13
  @logger = logger
10
14
  end
11
15
 
12
16
  def call(env)
13
- dup._call(env)
14
- end
15
-
16
- def _call(env)
17
- @env = env
18
- @logger ||= self
19
- @time = Time.now
20
- @status, @header, @body = @app.call(env)
21
- [@status, @header, self]
17
+ began_at = Time.now
18
+ status, header, body = @app.call(env)
19
+ log(env, status, header, began_at)
20
+ [status, header, body]
22
21
  end
23
22
 
24
- def close
25
- @body.close if @body.respond_to? :close
23
+ private
24
+
25
+ def log(env, status, header, began_at)
26
+ now = Time.now
27
+ length = extract_content_length(header)
28
+
29
+ logger = @logger || env['rack.errors']
30
+ logger.write FORMAT % [
31
+ env['HTTP_X_FORWARDED_FOR'] || env["REMOTE_ADDR"] || "-",
32
+ env["REMOTE_USER"] || "-",
33
+ now.strftime("%d/%b/%Y %H:%M:%S"),
34
+ env["REQUEST_METHOD"],
35
+ env["PATH_INFO"],
36
+ env["QUERY_STRING"].empty? ? "" : "?"+env["QUERY_STRING"],
37
+ env["HTTP_VERSION"],
38
+ status.to_s[0..3],
39
+ length,
40
+ now - began_at ]
26
41
  end
27
42
 
28
- # By default, log to rack.errors.
29
- def <<(str)
30
- @env["rack.errors"].write(str)
31
- @env["rack.errors"].flush
32
- end
33
-
34
- def each
35
- length = 0
36
- @body.each { |part|
37
- length += part.size
38
- yield part
39
- }
40
-
41
- @now = Time.now
42
-
43
- # Common Log Format: http://httpd.apache.org/docs/1.3/logs.html#common
44
- # lilith.local - - [07/Aug/2006 23:58:02] "GET / HTTP/1.1" 500 -
45
- # %{%s - %s [%s] "%s %s%s %s" %d %s\n} %
46
- @logger << %{%s - %s [%s] "%s %s%s %s" %d %s %0.4f\n} %
47
- [
48
- @env['HTTP_X_FORWARDED_FOR'] || @env["REMOTE_ADDR"] || "-",
49
- @env["REMOTE_USER"] || "-",
50
- @now.strftime("%d/%b/%Y %H:%M:%S"),
51
- @env["REQUEST_METHOD"],
52
- @env["PATH_INFO"],
53
- @env["QUERY_STRING"].empty? ? "" : "?"+@env["QUERY_STRING"],
54
- @env["HTTP_VERSION"],
55
- @status.to_s[0..3],
56
- (length.zero? ? "-" : length.to_s),
57
- @now - @time
58
- ]
43
+ def extract_content_length(headers)
44
+ headers.each do |key, value|
45
+ if key.downcase == 'content-length'
46
+ return value.to_s == '0' ? '-' : value
47
+ end
48
+ end
49
+ '-'
59
50
  end
60
51
  end
61
52
  end
@@ -15,7 +15,7 @@ module Rack
15
15
 
16
16
  env["SCRIPT_NAME"] = "" if env["SCRIPT_NAME"] == "/"
17
17
 
18
- env.update({"rack.version" => [0,1],
18
+ env.update({"rack.version" => [1,0],
19
19
  "rack.input" => $stdin,
20
20
  "rack.errors" => $stderr,
21
21
 
@@ -34,7 +34,7 @@ module Rack
34
34
 
35
35
  rack_input = RewindableInput.new(request.in)
36
36
 
37
- env.update({"rack.version" => [0,1],
37
+ env.update({"rack.version" => [1,0],
38
38
  "rack.input" => rack_input,
39
39
  "rack.errors" => request.err,
40
40
 
@@ -15,7 +15,7 @@ module Rack
15
15
  env = ENV.to_hash
16
16
  env.delete "HTTP_CONTENT_LENGTH"
17
17
  env["SCRIPT_NAME"] = "" if env["SCRIPT_NAME"] == "/"
18
- env.update({"rack.version" => [0,1],
18
+ env.update({"rack.version" => [1,0],
19
19
  "rack.input" => StringIO.new($stdin.read.to_s),
20
20
  "rack.errors" => $stderr,
21
21
  "rack.multithread" => false,
@@ -45,7 +45,7 @@ module Rack
45
45
 
46
46
  env["SCRIPT_NAME"] = "" if env["SCRIPT_NAME"] == "/"
47
47
 
48
- env.update({"rack.version" => [0,1],
48
+ env.update({"rack.version" => [1,0],
49
49
  "rack.input" => request.body || StringIO.new(""),
50
50
  "rack.errors" => $stderr,
51
51
 
@@ -32,7 +32,7 @@ module Rack
32
32
  env["PATH_INFO"] = env["REQUEST_PATH"]
33
33
  env["QUERY_STRING"] ||= ""
34
34
  env["SCRIPT_NAME"] = ""
35
- env.update({"rack.version" => [0,1],
35
+ env.update({"rack.version" => [1,0],
36
36
  "rack.input" => StringIO.new(input_body),
37
37
  "rack.errors" => $stderr,
38
38
 
@@ -22,7 +22,7 @@ module Rack
22
22
  env = req.meta_vars
23
23
  env.delete_if { |k, v| v.nil? }
24
24
 
25
- env.update({"rack.version" => [0,1],
25
+ env.update({"rack.version" => [1,0],
26
26
  "rack.input" => StringIO.new(req.body.to_s),
27
27
  "rack.errors" => $stderr,
28
28
 
@@ -101,22 +101,9 @@ module Rack
101
101
  elsif !opts.has_key?(:input)
102
102
  opts["CONTENT_TYPE"] = "application/x-www-form-urlencoded"
103
103
  if params.is_a?(Hash)
104
- multipart = false
105
- query = lambda { |value|
106
- case value
107
- when Array
108
- value.each(&query)
109
- when Hash
110
- value.values.each(&query)
111
- when Utils::Multipart::UploadedFile
112
- multipart = true
113
- end
114
- }
115
- opts[:params].values.each(&query)
116
-
117
- if multipart
118
- opts[:input] = Utils::Multipart.build_multipart(params)
119
- opts["CONTENT_LENGTH"] ||= opts[:input].length.to_s
104
+ if data = Utils::Multipart.build_multipart(params)
105
+ opts[:input] = data
106
+ opts["CONTENT_LENGTH"] ||= data.length.to_s
120
107
  opts["CONTENT_TYPE"] = "multipart/form-data; boundary=#{Utils::Multipart::MULTIPART_BOUNDARY}"
121
108
  else
122
109
  opts[:input] = Utils.build_nested_query(params)
@@ -162,7 +149,7 @@ module Rack
162
149
  @body = ""
163
150
  body.each { |part| @body << part }
164
151
 
165
- @errors = errors.string
152
+ @errors = errors.string if errors.respond_to?(:string)
166
153
  end
167
154
 
168
155
  # Status
@@ -17,14 +17,6 @@ module Rack
17
17
  # The environment of the request.
18
18
  attr_reader :env
19
19
 
20
- def self.new(env, *args)
21
- if self == Rack::Request
22
- env["rack.request"] ||= super
23
- else
24
- super
25
- end
26
- end
27
-
28
20
  def initialize(env)
29
21
  @env = env
30
22
  end
@@ -133,7 +125,9 @@ module Rack
133
125
  # This method support both application/x-www-form-urlencoded and
134
126
  # multipart/form-data.
135
127
  def POST
136
- if @env["rack.request.form_input"].eql? @env["rack.input"]
128
+ if @env["rack.input"].nil?
129
+ raise "Missing rack.input"
130
+ elsif @env["rack.request.form_input"].eql? @env["rack.input"]
137
131
  @env["rack.request.form_hash"]
138
132
  elsif form_data? || parseable_data?
139
133
  @env["rack.request.form_input"] = @env["rack.input"]
@@ -72,6 +72,8 @@ module Rack
72
72
  # access it because we have the file handle open.
73
73
  @rewindable_io = Tempfile.new('RackRewindableInput')
74
74
  @rewindable_io.chmod(0000)
75
+ @rewindable_io.set_encoding(Encoding::BINARY) if @rewindable_io.respond_to?(:set_encoding)
76
+ @rewindable_io.binmode
75
77
  if filesystem_has_posix_semantics?
76
78
  @rewindable_io.unlink
77
79
  @unlinked = true
@@ -1,3 +1,5 @@
1
+ # -*- encoding: binary -*-
2
+
1
3
  require 'set'
2
4
  require 'tempfile'
3
5
 
@@ -24,16 +26,18 @@ module Rack
24
26
  end
25
27
  module_function :unescape
26
28
 
29
+ DEFAULT_SEP = /[&;] */n
30
+
27
31
  # Stolen from Mongrel, with some small modifications:
28
32
  # Parses a query string by breaking it up at the '&'
29
33
  # and ';' characters. You can also use this to parse
30
34
  # cookies by changing the characters used in the second
31
35
  # parameter (which defaults to '&;').
32
- def parse_query(qs, d = '&;')
36
+ def parse_query(qs, d = nil)
33
37
  params = {}
34
38
 
35
- (qs || '').split(/[#{d}] */n).each do |p|
36
- k, v = unescape(p).split('=', 2)
39
+ (qs || '').split(d ? /[#{d}] */n : DEFAULT_SEP).each do |p|
40
+ k, v = p.split('=', 2).map { |x| unescape(x) }
37
41
 
38
42
  if cur = params[k]
39
43
  if cur.class == Array
@@ -50,10 +54,10 @@ module Rack
50
54
  end
51
55
  module_function :parse_query
52
56
 
53
- def parse_nested_query(qs, d = '&;')
57
+ def parse_nested_query(qs, d = nil)
54
58
  params = {}
55
59
 
56
- (qs || '').split(/[#{d}] */n).each do |p|
60
+ (qs || '').split(d ? /[#{d}] */n : DEFAULT_SEP).each do |p|
57
61
  k, v = unescape(p).split('=', 2)
58
62
  normalize_params(params, k, v)
59
63
  end
@@ -63,7 +67,7 @@ module Rack
63
67
  module_function :parse_nested_query
64
68
 
65
69
  def normalize_params(params, name, v = nil)
66
- name =~ %r([\[\]]*([^\[\]]+)\]*)
70
+ name =~ %r(\A[\[\]]*([^\[\]]+)\]*)
67
71
  k = $1 || ''
68
72
  after = $' || ''
69
73
 
@@ -99,7 +103,7 @@ module Rack
99
103
  if v.class == Array
100
104
  build_query(v.map { |x| [k, x] })
101
105
  else
102
- escape(k) + "=" + escape(v)
106
+ "#{escape(k)}=#{escape(v)}"
103
107
  end
104
108
  }.join("&")
105
109
  end
@@ -223,21 +227,23 @@ module Rack
223
227
  end
224
228
 
225
229
  def [](k)
226
- super @names[k.downcase]
230
+ super(@names[k] ||= @names[k.downcase])
227
231
  end
228
232
 
229
233
  def []=(k, v)
230
234
  delete k
231
- @names[k.downcase] = k
235
+ @names[k] = @names[k.downcase] = k
232
236
  super k, v
233
237
  end
234
238
 
235
239
  def delete(k)
236
- super @names.delete(k.downcase)
240
+ canonical = k.downcase
241
+ super @names.delete(canonical)
242
+ @names.delete_if { |name,| name.downcase == canonical }
237
243
  end
238
244
 
239
245
  def include?(k)
240
- @names.has_key? k.downcase
246
+ @names.include?(k) || @names.include?(k.downcase)
241
247
  end
242
248
 
243
249
  alias_method :has_key?, :include?
@@ -351,7 +357,7 @@ module Rack
351
357
  input = env['rack.input']
352
358
  input.rewind
353
359
 
354
- boundary_size = boundary.size + EOL.size
360
+ boundary_size = Utils.bytesize(boundary) + EOL.size
355
361
  bufsize = 16384
356
362
 
357
363
  content_length -= boundary_size
@@ -441,6 +447,26 @@ module Rack
441
447
  end
442
448
 
443
449
  def self.build_multipart(params, first = true)
450
+ if first
451
+ unless params.is_a?(Hash)
452
+ raise ArgumentError, "value must be a Hash"
453
+ end
454
+
455
+ multipart = false
456
+ query = lambda { |value|
457
+ case value
458
+ when Array
459
+ value.each(&query)
460
+ when Hash
461
+ value.values.each(&query)
462
+ when UploadedFile
463
+ multipart = true
464
+ end
465
+ }
466
+ params.values.each(&query)
467
+ return nil unless multipart
468
+ end
469
+
444
470
  flattened_params = Hash.new
445
471
 
446
472
  params.each do |key, value|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: passenger
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.2
4
+ version: 2.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Phusion - http://www.phusion.nl/
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-04-26 00:00:00 +02:00
12
+ date: 2009-06-17 00:00:00 +02:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -128,6 +128,7 @@ files:
128
128
  - doc/definitions.h
129
129
  - doc/Doxyfile
130
130
  - doc/images
131
+ - doc/rdoc
131
132
  - doc/Security of user switching support.html
132
133
  - doc/Security of user switching support.txt
133
134
  - doc/template
@@ -344,6 +345,14 @@ files:
344
345
  - doc/images/spawn_server_architecture.svg
345
346
  - doc/images/typical_isolated_web_application.png
346
347
  - doc/images/typical_isolated_web_application.svg
348
+ - doc/rdoc/classes
349
+ - doc/rdoc/created.rid
350
+ - doc/rdoc/files
351
+ - doc/rdoc/fr_class_index.html
352
+ - doc/rdoc/fr_file_index.html
353
+ - doc/rdoc/fr_method_index.html
354
+ - doc/rdoc/index.html
355
+ - doc/rdoc/rdoc-style.css
347
356
  - doc/template/horo.rb
348
357
  - doc/users_guide_snippets/analysis_and_system_maintenance_tools.txt
349
358
  - doc/users_guide_snippets/appendix_a_about.txt
@@ -365,6 +374,20 @@ files:
365
374
  - doc/images/icons/tip.png
366
375
  - doc/images/icons/up.png
367
376
  - doc/images/icons/warning.png
377
+ - doc/rdoc/classes/ConditionVariable.html
378
+ - doc/rdoc/classes/Exception.html
379
+ - doc/rdoc/classes/GC.html
380
+ - doc/rdoc/classes/IO.html
381
+ - doc/rdoc/classes/PhusionPassenger
382
+ - doc/rdoc/classes/PhusionPassenger.html
383
+ - doc/rdoc/classes/PlatformInfo.html
384
+ - doc/rdoc/classes/RakeExtensions.html
385
+ - doc/rdoc/classes/Signal.html
386
+ - doc/rdoc/files/DEVELOPERS_TXT.html
387
+ - doc/rdoc/files/ext
388
+ - doc/rdoc/files/lib
389
+ - doc/rdoc/files/misc
390
+ - doc/rdoc/files/README.html
368
391
  - doc/images/icons/callouts/1.png
369
392
  - doc/images/icons/callouts/10.png
370
393
  - doc/images/icons/callouts/11.png
@@ -380,6 +403,85 @@ files:
380
403
  - doc/images/icons/callouts/7.png
381
404
  - doc/images/icons/callouts/8.png
382
405
  - doc/images/icons/callouts/9.png
406
+ - doc/rdoc/classes/PhusionPassenger/AbstractInstaller.html
407
+ - doc/rdoc/classes/PhusionPassenger/AbstractRequestHandler.html
408
+ - doc/rdoc/classes/PhusionPassenger/AbstractServer
409
+ - doc/rdoc/classes/PhusionPassenger/AbstractServer.html
410
+ - doc/rdoc/classes/PhusionPassenger/AbstractServerCollection.html
411
+ - doc/rdoc/classes/PhusionPassenger/AdminTools
412
+ - doc/rdoc/classes/PhusionPassenger/AdminTools.html
413
+ - doc/rdoc/classes/PhusionPassenger/AppInitError.html
414
+ - doc/rdoc/classes/PhusionPassenger/Application.html
415
+ - doc/rdoc/classes/PhusionPassenger/ConsoleTextTemplate.html
416
+ - doc/rdoc/classes/PhusionPassenger/FrameworkInitError.html
417
+ - doc/rdoc/classes/PhusionPassenger/HTMLTemplate.html
418
+ - doc/rdoc/classes/PhusionPassenger/InitializationError.html
419
+ - doc/rdoc/classes/PhusionPassenger/InvalidPath.html
420
+ - doc/rdoc/classes/PhusionPassenger/MessageChannel.html
421
+ - doc/rdoc/classes/PhusionPassenger/NativeSupport.html
422
+ - doc/rdoc/classes/PhusionPassenger/Rack
423
+ - doc/rdoc/classes/PhusionPassenger/Rack.html
424
+ - doc/rdoc/classes/PhusionPassenger/Railz
425
+ - doc/rdoc/classes/PhusionPassenger/Railz.html
426
+ - doc/rdoc/classes/PhusionPassenger/SpawnManager.html
427
+ - doc/rdoc/classes/PhusionPassenger/UnknownError.html
428
+ - doc/rdoc/classes/PhusionPassenger/Utils.html
429
+ - doc/rdoc/classes/PhusionPassenger/VersionNotFound.html
430
+ - doc/rdoc/classes/PhusionPassenger/WSGI
431
+ - doc/rdoc/classes/PhusionPassenger/WSGI.html
432
+ - doc/rdoc/files/ext/phusion_passenger
433
+ - doc/rdoc/files/lib/phusion_passenger
434
+ - doc/rdoc/files/misc/rake
435
+ - doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerAlreadyStarted.html
436
+ - doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerError.html
437
+ - doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerNotStarted.html
438
+ - doc/rdoc/classes/PhusionPassenger/AbstractServer/UnknownMessage.html
439
+ - doc/rdoc/classes/PhusionPassenger/AdminTools/ControlProcess
440
+ - doc/rdoc/classes/PhusionPassenger/AdminTools/ControlProcess.html
441
+ - doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner.html
442
+ - doc/rdoc/classes/PhusionPassenger/Rack/RequestHandler.html
443
+ - doc/rdoc/classes/PhusionPassenger/Railz/ApplicationSpawner
444
+ - doc/rdoc/classes/PhusionPassenger/Railz/ApplicationSpawner.html
445
+ - doc/rdoc/classes/PhusionPassenger/Railz/CGIFixed.html
446
+ - doc/rdoc/classes/PhusionPassenger/Railz/FrameworkSpawner
447
+ - doc/rdoc/classes/PhusionPassenger/Railz/FrameworkSpawner.html
448
+ - doc/rdoc/classes/PhusionPassenger/Railz/RequestHandler.html
449
+ - doc/rdoc/classes/PhusionPassenger/WSGI/ApplicationSpawner.html
450
+ - doc/rdoc/files/ext/phusion_passenger/native_support_c.html
451
+ - doc/rdoc/files/lib/phusion_passenger/abstract_installer_rb.html
452
+ - doc/rdoc/files/lib/phusion_passenger/abstract_request_handler_rb.html
453
+ - doc/rdoc/files/lib/phusion_passenger/abstract_server_collection_rb.html
454
+ - doc/rdoc/files/lib/phusion_passenger/abstract_server_rb.html
455
+ - doc/rdoc/files/lib/phusion_passenger/admin_tools
456
+ - doc/rdoc/files/lib/phusion_passenger/admin_tools_rb.html
457
+ - doc/rdoc/files/lib/phusion_passenger/application_rb.html
458
+ - doc/rdoc/files/lib/phusion_passenger/console_text_template_rb.html
459
+ - doc/rdoc/files/lib/phusion_passenger/constants_rb.html
460
+ - doc/rdoc/files/lib/phusion_passenger/dependencies_rb.html
461
+ - doc/rdoc/files/lib/phusion_passenger/events_rb.html
462
+ - doc/rdoc/files/lib/phusion_passenger/exceptions_rb.html
463
+ - doc/rdoc/files/lib/phusion_passenger/html_template_rb.html
464
+ - doc/rdoc/files/lib/phusion_passenger/message_channel_rb.html
465
+ - doc/rdoc/files/lib/phusion_passenger/packaging_rb.html
466
+ - doc/rdoc/files/lib/phusion_passenger/platform_info_rb.html
467
+ - doc/rdoc/files/lib/phusion_passenger/rack
468
+ - doc/rdoc/files/lib/phusion_passenger/railz
469
+ - doc/rdoc/files/lib/phusion_passenger/simple_benchmarking_rb.html
470
+ - doc/rdoc/files/lib/phusion_passenger/spawn_manager_rb.html
471
+ - doc/rdoc/files/lib/phusion_passenger/utils_rb.html
472
+ - doc/rdoc/files/lib/phusion_passenger/wsgi
473
+ - doc/rdoc/files/misc/rake/extensions_rb.html
474
+ - doc/rdoc/classes/PhusionPassenger/AdminTools/ControlProcess/Instance.html
475
+ - doc/rdoc/classes/PhusionPassenger/Railz/ApplicationSpawner/Error.html
476
+ - doc/rdoc/classes/PhusionPassenger/Railz/FrameworkSpawner/Error.html
477
+ - doc/rdoc/files/lib/phusion_passenger/admin_tools/control_process_rb.html
478
+ - doc/rdoc/files/lib/phusion_passenger/rack/application_spawner_rb.html
479
+ - doc/rdoc/files/lib/phusion_passenger/rack/request_handler_rb.html
480
+ - doc/rdoc/files/lib/phusion_passenger/railz/application_spawner_rb.html
481
+ - doc/rdoc/files/lib/phusion_passenger/railz/cgi_fixed_rb.html
482
+ - doc/rdoc/files/lib/phusion_passenger/railz/framework_spawner_rb.html
483
+ - doc/rdoc/files/lib/phusion_passenger/railz/request_handler_rb.html
484
+ - doc/rdoc/files/lib/phusion_passenger/wsgi/application_spawner_rb.html
383
485
  - man/passenger-config.1
384
486
  - man/passenger-make-enterprisey.8
385
487
  - man/passenger-memory-stats.8
@@ -390,6 +492,7 @@ files:
390
492
  - debian/postinst
391
493
  - debian/prerm
392
494
  - ext/common/ApplicationPoolServerExecutable.cpp
495
+ - ext/common/Base64.cpp
393
496
  - ext/common/CachedFileStat.cpp
394
497
  - ext/common/Logging.cpp
395
498
  - ext/common/SystemTime.cpp
@@ -398,19 +501,23 @@ files:
398
501
  - ext/common/ApplicationPool.h
399
502
  - ext/common/ApplicationPoolServer.h
400
503
  - ext/common/ApplicationPoolStatusReporter.h
504
+ - ext/common/Base64.h
401
505
  - ext/common/CachedFileStat.h
402
506
  - ext/common/DummySpawnManager.h
403
507
  - ext/common/Exceptions.h
404
- - ext/common/FileChecker.h
508
+ - ext/common/FileChangeChecker.h
405
509
  - ext/common/Logging.h
406
510
  - ext/common/MessageChannel.h
407
511
  - ext/common/PoolOptions.h
408
512
  - ext/common/SpawnManager.h
409
513
  - ext/common/StandardApplicationPool.h
410
514
  - ext/common/StaticString.h
515
+ - ext/common/StringListCreator.h
411
516
  - ext/common/SystemTime.h
517
+ - ext/common/Timer.h
412
518
  - ext/common/Utils.h
413
519
  - ext/common/Version.h
520
+ - ext/common/CachedFileStat.hpp
414
521
  - ext/apache2/Bucket.cpp
415
522
  - ext/apache2/Configuration.cpp
416
523
  - ext/apache2/Hooks.cpp
@@ -1015,6 +1122,9 @@ files:
1015
1122
  - misc/rake/gempackagetask.rb
1016
1123
  - misc/rake/packagetask.rb
1017
1124
  - misc/rake/rdoctask.rb
1125
+ - vendor/rack-0.9.1
1126
+ - vendor/rack-0.9.1/lib
1127
+ - vendor/rack-0.9.1/lib/rack
1018
1128
  - vendor/rack-1.0.0-git
1019
1129
  - vendor/rack-1.0.0-git/COPYING
1020
1130
  - vendor/rack-1.0.0-git/KNOWN-ISSUES
@@ -1085,9 +1195,10 @@ files:
1085
1195
  - test/ApplicationPoolServer_ApplicationPoolTest.cpp
1086
1196
  - test/ApplicationPoolServerTest.cpp
1087
1197
  - test/ApplicationPoolTest.cpp
1198
+ - test/Base64Test.cpp
1088
1199
  - test/CachedFileStatTest.cpp
1089
1200
  - test/CxxTestMain.cpp
1090
- - test/FileCheckerTest.cpp
1201
+ - test/FileChangeCheckerTest.cpp
1091
1202
  - test/HttpStatusExtractorTest.cpp
1092
1203
  - test/MessageChannelTest.cpp
1093
1204
  - test/PoolOptionsTest.cpp
@@ -1098,16 +1209,17 @@ files:
1098
1209
  - test/SystemTimeTest.cpp
1099
1210
  - test/UtilsTest.cpp
1100
1211
  - test/config.yml.example
1212
+ - test/support/Support.cpp
1213
+ - test/support/Support.h
1214
+ - test/support/tut.h
1215
+ - test/support/tut_reporter.h
1216
+ - test/support/valgrind.h
1101
1217
  - test/support/apache2_controller.rb
1102
1218
  - test/support/config.rb
1103
1219
  - test/support/multipart.rb
1104
1220
  - test/support/nginx_controller.rb
1105
1221
  - test/support/run_rspec_tests.rb
1106
- - test/support/Support.h
1107
1222
  - test/support/test_helper.rb
1108
- - test/support/tut.h
1109
- - test/support/tut_reporter.h
1110
- - test/support/valgrind.h
1111
1223
  - test/oxt/backtrace_test.cpp
1112
1224
  - test/oxt/oxt_test_main.cpp
1113
1225
  - test/oxt/syscall_interruption_test.cpp
@@ -1117,17 +1229,17 @@ files:
1117
1229
  - test/ruby/application_spec.rb
1118
1230
  - test/ruby/message_channel_spec.rb
1119
1231
  - test/ruby/rack
1120
- - test/ruby/rails
1121
- - test/ruby/spawn_manager_spec.rb
1122
- - test/ruby/spawn_server_spec.rb
1123
- - test/ruby/utils_spec.rb
1124
- - test/ruby/wsgi
1125
1232
  - test/ruby/rack/application_spawner_spec.rb
1233
+ - test/ruby/rails
1126
1234
  - test/ruby/rails/application_spawner_spec.rb
1127
1235
  - test/ruby/rails/framework_spawner_spec.rb
1128
1236
  - test/ruby/rails/minimal_spawner_spec.rb
1129
1237
  - test/ruby/rails/spawner_error_handling_spec.rb
1130
1238
  - test/ruby/rails/spawner_privilege_lowering_spec.rb
1239
+ - test/ruby/spawn_manager_spec.rb
1240
+ - test/ruby/spawn_server_spec.rb
1241
+ - test/ruby/utils_spec.rb
1242
+ - test/ruby/wsgi
1131
1243
  - test/ruby/wsgi/application_spawner_spec.rb
1132
1244
  - test/integration_tests/apache2_tests.rb
1133
1245
  - test/integration_tests/hello_world_rack_spec.rb
@@ -1135,6 +1247,8 @@ files:
1135
1247
  - test/integration_tests/mycook_spec.rb
1136
1248
  - test/integration_tests/nginx_tests.rb
1137
1249
  - test/stub/apache2
1250
+ - test/stub/apache2/httpd.conf.erb
1251
+ - test/stub/apache2/mime.types
1138
1252
  - test/stub/garbage1.dat
1139
1253
  - test/stub/garbage2.dat
1140
1254
  - test/stub/garbage3.dat
@@ -1143,127 +1257,94 @@ files:
1143
1257
  - test/stub/message_channel_2.rb
1144
1258
  - test/stub/message_channel_3.rb
1145
1259
  - test/stub/minimal-railsapp
1146
- - test/stub/nginx
1147
- - test/stub/rack
1148
- - test/stub/rails_apps
1149
- - test/stub/railsapp
1150
- - test/stub/railsapp2
1151
- - test/stub/spawn_server.rb
1152
- - test/stub/upload_data.txt
1153
- - test/stub/vendor_rails
1154
- - test/stub/wsgi
1155
- - test/stub/zsfa
1156
- - test/stub/apache2/httpd.conf.erb
1157
- - test/stub/apache2/mime.types
1158
- - test/stub/minimal-railsapp/config
1159
- - test/stub/minimal-railsapp/README
1160
1260
  - test/stub/minimal-railsapp/vendor
1261
+ - test/stub/minimal-railsapp/vendor/rails
1262
+ - test/stub/minimal-railsapp/vendor/rails/actionmailer
1263
+ - test/stub/minimal-railsapp/vendor/rails/actionpack
1264
+ - test/stub/minimal-railsapp/vendor/rails/activerecord
1265
+ - test/stub/minimal-railsapp/vendor/rails/activeresource
1266
+ - test/stub/minimal-railsapp/vendor/rails/activesupport
1267
+ - test/stub/minimal-railsapp/vendor/rails/activesupport/lib
1268
+ - test/stub/minimal-railsapp/vendor/rails/railties
1269
+ - test/stub/nginx
1161
1270
  - test/stub/nginx/koi-utf
1162
1271
  - test/stub/nginx/koi-win
1163
1272
  - test/stub/nginx/mime.types
1164
1273
  - test/stub/nginx/nginx.conf.erb
1165
1274
  - test/stub/nginx/win-utf
1275
+ - test/stub/rack
1166
1276
  - test/stub/rack/config.ru
1167
1277
  - test/stub/rack/public
1278
+ - test/stub/rack/public/rack.jpg
1168
1279
  - test/stub/rack/tmp
1280
+ - test/stub/rails_apps
1169
1281
  - test/stub/rails_apps/foobar
1170
- - test/stub/rails_apps/mycook
1171
- - test/stub/railsapp/app
1172
- - test/stub/railsapp/config
1173
- - test/stub/railsapp/log
1174
- - test/stub/railsapp/public
1175
- - test/stub/railsapp/tmp
1176
- - test/stub/railsapp2/app
1177
- - test/stub/railsapp2/config
1178
- - test/stub/railsapp2/log
1179
- - test/stub/railsapp2/public
1180
- - test/stub/railsapp2/tmp
1181
- - test/stub/vendor_rails/minimal
1182
- - test/stub/wsgi/passenger_wsgi.py
1183
- - test/stub/wsgi/passenger_wsgi.pyc
1184
- - test/stub/wsgi/public
1185
- - test/stub/wsgi/tmp
1186
- - test/stub/zsfa/header.png
1187
- - test/stub/zsfa/index.html
1188
- - test/stub/zsfa/zsfa.png
1189
- - test/stub/minimal-railsapp/config/application.rb
1190
- - test/stub/minimal-railsapp/config/environment.rb
1191
- - test/stub/minimal-railsapp/vendor/rails
1192
- - test/stub/rack/public/rack.jpg
1193
1282
  - test/stub/rails_apps/foobar/app
1194
- - test/stub/rails_apps/foobar/config
1195
- - test/stub/rails_apps/foobar/log
1196
- - test/stub/rails_apps/foobar/public
1197
- - test/stub/rails_apps/foobar/tmp
1198
- - test/stub/rails_apps/mycook/app
1199
- - test/stub/rails_apps/mycook/config
1200
- - test/stub/rails_apps/mycook/log
1201
- - test/stub/rails_apps/mycook/public
1202
- - test/stub/rails_apps/mycook/sites
1203
- - test/stub/rails_apps/mycook/tmp
1204
- - test/stub/railsapp/app/controllers
1205
- - test/stub/railsapp/app/helpers
1206
- - test/stub/railsapp/config/boot.rb
1207
- - test/stub/railsapp/config/database.yml
1208
- - test/stub/railsapp/config/environment.rb
1209
- - test/stub/railsapp/config/environments
1210
- - test/stub/railsapp/config/initializers
1211
- - test/stub/railsapp/config/routes.rb
1212
- - test/stub/railsapp/public/useless.txt
1213
- - test/stub/railsapp/tmp/cache
1214
- - test/stub/railsapp/tmp/pids
1215
- - test/stub/railsapp/tmp/restart.txt
1216
- - test/stub/railsapp/tmp/sessions
1217
- - test/stub/railsapp/tmp/sockets
1218
- - test/stub/railsapp2/app/controllers
1219
- - test/stub/railsapp2/app/helpers
1220
- - test/stub/railsapp2/config/boot.rb
1221
- - test/stub/railsapp2/config/database.yml
1222
- - test/stub/railsapp2/config/environment.rb
1223
- - test/stub/railsapp2/config/environments
1224
- - test/stub/railsapp2/config/initializers
1225
- - test/stub/railsapp2/config/routes.rb
1226
- - test/stub/railsapp2/public/useless.txt
1227
- - test/stub/railsapp2/tmp/cache
1228
- - test/stub/railsapp2/tmp/pids
1229
- - test/stub/railsapp2/tmp/sessions
1230
- - test/stub/railsapp2/tmp/sockets
1231
- - test/stub/vendor_rails/minimal/actionmailer
1232
- - test/stub/vendor_rails/minimal/actionpack
1233
- - test/stub/vendor_rails/minimal/activerecord
1234
- - test/stub/vendor_rails/minimal/activeresource
1235
- - test/stub/vendor_rails/minimal/activesupport
1236
- - test/stub/vendor_rails/minimal/railties
1237
- - test/stub/vendor_rails/minimal/README
1238
- - test/stub/wsgi/public/wsgi-snake.jpg
1239
- - test/stub/minimal-railsapp/vendor/rails/actionmailer
1240
- - test/stub/minimal-railsapp/vendor/rails/actionpack
1241
- - test/stub/minimal-railsapp/vendor/rails/activerecord
1242
- - test/stub/minimal-railsapp/vendor/rails/activeresource
1243
- - test/stub/minimal-railsapp/vendor/rails/activesupport
1244
- - test/stub/minimal-railsapp/vendor/rails/railties
1245
1283
  - test/stub/rails_apps/foobar/app/controllers
1284
+ - test/stub/rails_apps/foobar/app/controllers/application.rb
1285
+ - test/stub/rails_apps/foobar/app/controllers/bar_controller_1.rb
1286
+ - test/stub/rails_apps/foobar/app/controllers/bar_controller_2.rb
1287
+ - test/stub/rails_apps/foobar/app/controllers/foo_controller.rb
1246
1288
  - test/stub/rails_apps/foobar/app/helpers
1289
+ - test/stub/rails_apps/foobar/app/helpers/application_helper.rb
1290
+ - test/stub/rails_apps/foobar/config
1247
1291
  - test/stub/rails_apps/foobar/config/boot.rb
1248
1292
  - test/stub/rails_apps/foobar/config/database.yml
1249
1293
  - test/stub/rails_apps/foobar/config/environment.rb
1250
1294
  - test/stub/rails_apps/foobar/config/environments
1295
+ - test/stub/rails_apps/foobar/config/environments/development.rb
1296
+ - test/stub/rails_apps/foobar/config/environments/production.rb
1251
1297
  - test/stub/rails_apps/foobar/config/initializers
1298
+ - test/stub/rails_apps/foobar/config/initializers/inflections.rb
1299
+ - test/stub/rails_apps/foobar/config/initializers/mime_types.rb
1252
1300
  - test/stub/rails_apps/foobar/config/routes.rb
1301
+ - test/stub/rails_apps/foobar/lib
1302
+ - test/stub/rails_apps/foobar/lib/tasks
1303
+ - test/stub/rails_apps/foobar/log
1304
+ - test/stub/rails_apps/foobar/public
1305
+ - test/stub/rails_apps/foobar/tmp
1253
1306
  - test/stub/rails_apps/foobar/tmp/cache
1254
1307
  - test/stub/rails_apps/foobar/tmp/pids
1255
1308
  - test/stub/rails_apps/foobar/tmp/sessions
1256
1309
  - test/stub/rails_apps/foobar/tmp/sockets
1310
+ - test/stub/rails_apps/mycook
1311
+ - test/stub/rails_apps/mycook/app
1257
1312
  - test/stub/rails_apps/mycook/app/controllers
1313
+ - test/stub/rails_apps/mycook/app/controllers/application.rb
1314
+ - test/stub/rails_apps/mycook/app/controllers/recipes_controller.rb
1315
+ - test/stub/rails_apps/mycook/app/controllers/uploads_controller.rb
1316
+ - test/stub/rails_apps/mycook/app/controllers/welcome_controller.rb
1258
1317
  - test/stub/rails_apps/mycook/app/helpers
1318
+ - test/stub/rails_apps/mycook/app/helpers/application_helper.rb
1259
1319
  - test/stub/rails_apps/mycook/app/views
1320
+ - test/stub/rails_apps/mycook/app/views/layouts
1321
+ - test/stub/rails_apps/mycook/app/views/layouts/default.rhtml
1322
+ - test/stub/rails_apps/mycook/app/views/recipes
1323
+ - test/stub/rails_apps/mycook/app/views/recipes/create.rhtml
1324
+ - test/stub/rails_apps/mycook/app/views/recipes/index.rhtml
1325
+ - test/stub/rails_apps/mycook/app/views/recipes/new.rhtml
1326
+ - test/stub/rails_apps/mycook/app/views/uploads
1327
+ - test/stub/rails_apps/mycook/app/views/uploads/index.rhtml
1328
+ - test/stub/rails_apps/mycook/app/views/uploads/new.html.erb
1329
+ - test/stub/rails_apps/mycook/app/views/welcome
1330
+ - test/stub/rails_apps/mycook/app/views/welcome/cached.rhtml
1331
+ - test/stub/rails_apps/mycook/app/views/welcome/index.rhtml
1332
+ - test/stub/rails_apps/mycook/config
1260
1333
  - test/stub/rails_apps/mycook/config/boot.rb
1261
1334
  - test/stub/rails_apps/mycook/config/database.yml
1262
1335
  - test/stub/rails_apps/mycook/config/environment.rb
1263
1336
  - test/stub/rails_apps/mycook/config/environments
1337
+ - test/stub/rails_apps/mycook/config/environments/development.rb
1338
+ - test/stub/rails_apps/mycook/config/environments/production.rb
1264
1339
  - test/stub/rails_apps/mycook/config/initializers
1340
+ - test/stub/rails_apps/mycook/config/initializers/inflections.rb
1341
+ - test/stub/rails_apps/mycook/config/initializers/mime_types.rb
1265
1342
  - test/stub/rails_apps/mycook/config/routes.rb
1343
+ - test/stub/rails_apps/mycook/lib
1344
+ - test/stub/rails_apps/mycook/lib/tasks
1345
+ - test/stub/rails_apps/mycook/log
1266
1346
  - test/stub/rails_apps/mycook/log/useless.txt
1347
+ - test/stub/rails_apps/mycook/public
1267
1348
  - test/stub/rails_apps/mycook/public/404.html
1268
1349
  - test/stub/rails_apps/mycook/public/422.html
1269
1350
  - test/stub/rails_apps/mycook/public/500.html
@@ -1272,117 +1353,81 @@ files:
1272
1353
  - test/stub/rails_apps/mycook/public/dispatch.rb
1273
1354
  - test/stub/rails_apps/mycook/public/favicon.ico
1274
1355
  - test/stub/rails_apps/mycook/public/images
1275
- - test/stub/rails_apps/mycook/public/javascripts
1276
- - test/stub/rails_apps/mycook/public/robots.txt
1277
- - test/stub/rails_apps/mycook/public/uploads
1278
- - test/stub/rails_apps/mycook/public/uploads.html
1279
- - test/stub/rails_apps/mycook/public/welcome
1280
- - test/stub/rails_apps/mycook/sites/some.site
1281
- - test/stub/rails_apps/mycook/tmp/cache
1282
- - test/stub/rails_apps/mycook/tmp/pids
1283
- - test/stub/rails_apps/mycook/tmp/sessions
1284
- - test/stub/rails_apps/mycook/tmp/sockets
1285
- - test/stub/railsapp/app/controllers/application.rb
1286
- - test/stub/railsapp/app/controllers/bar_controller.rb
1287
- - test/stub/railsapp/app/controllers/bar_controller_1.txt
1288
- - test/stub/railsapp/app/controllers/bar_controller_2.txt
1289
- - test/stub/railsapp/app/controllers/foo_controller.rb
1290
- - test/stub/railsapp/app/helpers/application_helper.rb
1291
- - test/stub/railsapp/config/environments/development.rb
1292
- - test/stub/railsapp/config/environments/production.rb
1293
- - test/stub/railsapp/config/initializers/inflections.rb
1294
- - test/stub/railsapp/config/initializers/mime_types.rb
1295
- - test/stub/railsapp2/app/controllers/application.rb
1296
- - test/stub/railsapp2/app/controllers/foo_controller.rb
1297
- - test/stub/railsapp2/app/helpers/application_helper.rb
1298
- - test/stub/railsapp2/config/environments/development.rb
1299
- - test/stub/railsapp2/config/environments/production.rb
1300
- - test/stub/railsapp2/config/initializers/inflections.rb
1301
- - test/stub/railsapp2/config/initializers/mime_types.rb
1302
- - test/stub/vendor_rails/minimal/actionmailer/lib
1303
- - test/stub/vendor_rails/minimal/actionpack/lib
1304
- - test/stub/vendor_rails/minimal/activerecord/lib
1305
- - test/stub/vendor_rails/minimal/activeresource/lib
1306
- - test/stub/vendor_rails/minimal/activesupport/lib
1307
- - test/stub/vendor_rails/minimal/railties/lib
1308
- - test/stub/minimal-railsapp/vendor/rails/actionmailer/lib
1309
- - test/stub/minimal-railsapp/vendor/rails/actionpack/lib
1310
- - test/stub/minimal-railsapp/vendor/rails/activerecord/lib
1311
- - test/stub/minimal-railsapp/vendor/rails/activeresource/lib
1312
- - test/stub/minimal-railsapp/vendor/rails/activesupport/lib
1313
- - test/stub/minimal-railsapp/vendor/rails/railties/lib
1314
- - test/stub/rails_apps/foobar/app/controllers/application.rb
1315
- - test/stub/rails_apps/foobar/app/controllers/bar_controller_1.rb
1316
- - test/stub/rails_apps/foobar/app/controllers/bar_controller_2.rb
1317
- - test/stub/rails_apps/foobar/app/controllers/foo_controller.rb
1318
- - test/stub/rails_apps/foobar/app/helpers/application_helper.rb
1319
- - test/stub/rails_apps/foobar/config/environments/development.rb
1320
- - test/stub/rails_apps/foobar/config/environments/production.rb
1321
- - test/stub/rails_apps/foobar/config/initializers/inflections.rb
1322
- - test/stub/rails_apps/foobar/config/initializers/mime_types.rb
1323
- - test/stub/rails_apps/mycook/app/controllers/application.rb
1324
- - test/stub/rails_apps/mycook/app/controllers/recipes_controller.rb
1325
- - test/stub/rails_apps/mycook/app/controllers/uploads_controller.rb
1326
- - test/stub/rails_apps/mycook/app/controllers/welcome_controller.rb
1327
- - test/stub/rails_apps/mycook/app/helpers/application_helper.rb
1328
- - test/stub/rails_apps/mycook/app/views/layouts
1329
- - test/stub/rails_apps/mycook/app/views/recipes
1330
- - test/stub/rails_apps/mycook/app/views/uploads
1331
- - test/stub/rails_apps/mycook/app/views/welcome
1332
- - test/stub/rails_apps/mycook/config/environments/development.rb
1333
- - test/stub/rails_apps/mycook/config/environments/production.rb
1334
- - test/stub/rails_apps/mycook/config/initializers/inflections.rb
1335
- - test/stub/rails_apps/mycook/config/initializers/mime_types.rb
1336
1356
  - test/stub/rails_apps/mycook/public/images/angrywizard.gif
1337
1357
  - test/stub/rails_apps/mycook/public/images/cookbook.gif
1338
1358
  - test/stub/rails_apps/mycook/public/images/header.png
1339
1359
  - test/stub/rails_apps/mycook/public/images/rails.png
1360
+ - test/stub/rails_apps/mycook/public/javascripts
1340
1361
  - test/stub/rails_apps/mycook/public/javascripts/application.js
1341
1362
  - test/stub/rails_apps/mycook/public/javascripts/controls.js
1342
1363
  - test/stub/rails_apps/mycook/public/javascripts/dragdrop.js
1343
1364
  - test/stub/rails_apps/mycook/public/javascripts/effects.js
1344
1365
  - test/stub/rails_apps/mycook/public/javascripts/prototype.js
1366
+ - test/stub/rails_apps/mycook/public/robots.txt
1367
+ - test/stub/rails_apps/mycook/public/uploads
1368
+ - test/stub/rails_apps/mycook/public/uploads.html
1369
+ - test/stub/rails_apps/mycook/public/welcome
1345
1370
  - test/stub/rails_apps/mycook/public/welcome/cached.html
1371
+ - test/stub/rails_apps/mycook/sites
1372
+ - test/stub/rails_apps/mycook/sites/some.site
1346
1373
  - test/stub/rails_apps/mycook/sites/some.site/public
1374
+ - test/stub/rails_apps/mycook/sites/some.site/public/uploads.html
1375
+ - test/stub/rails_apps/mycook/sites/some.site/public/welcome
1376
+ - test/stub/rails_apps/mycook/sites/some.site/public/welcome/cached.html
1377
+ - test/stub/rails_apps/mycook/tmp
1378
+ - test/stub/rails_apps/mycook/tmp/cache
1347
1379
  - test/stub/rails_apps/mycook/tmp/cache/useless.txt
1380
+ - test/stub/rails_apps/mycook/tmp/pids
1348
1381
  - test/stub/rails_apps/mycook/tmp/pids/useless.txt
1382
+ - test/stub/rails_apps/mycook/tmp/sessions
1349
1383
  - test/stub/rails_apps/mycook/tmp/sessions/useless.txt
1384
+ - test/stub/rails_apps/mycook/tmp/sockets
1350
1385
  - test/stub/rails_apps/mycook/tmp/sockets/useless.txt
1386
+ - test/stub/railsapp
1387
+ - test/stub/railsapp/app
1388
+ - test/stub/railsapp/tmp
1389
+ - test/stub/railsapp2
1390
+ - test/stub/railsapp2/app
1391
+ - test/stub/railsapp2/tmp
1392
+ - test/stub/spawn_server.rb
1393
+ - test/stub/upload_data.txt
1394
+ - test/stub/vendor_rails
1395
+ - test/stub/vendor_rails/minimal
1396
+ - test/stub/vendor_rails/minimal/actionmailer
1397
+ - test/stub/vendor_rails/minimal/actionmailer/lib
1351
1398
  - test/stub/vendor_rails/minimal/actionmailer/lib/action_mailer.rb
1399
+ - test/stub/vendor_rails/minimal/actionpack
1400
+ - test/stub/vendor_rails/minimal/actionpack/lib
1352
1401
  - test/stub/vendor_rails/minimal/actionpack/lib/action_controller.rb
1353
1402
  - test/stub/vendor_rails/minimal/actionpack/lib/action_pack.rb
1354
1403
  - test/stub/vendor_rails/minimal/actionpack/lib/action_view.rb
1404
+ - test/stub/vendor_rails/minimal/activerecord
1405
+ - test/stub/vendor_rails/minimal/activerecord/lib
1355
1406
  - test/stub/vendor_rails/minimal/activerecord/lib/active_record.rb
1407
+ - test/stub/vendor_rails/minimal/activeresource
1408
+ - test/stub/vendor_rails/minimal/activeresource/lib
1356
1409
  - test/stub/vendor_rails/minimal/activeresource/lib/active_resource.rb
1410
+ - test/stub/vendor_rails/minimal/activesupport
1411
+ - test/stub/vendor_rails/minimal/activesupport/lib
1357
1412
  - test/stub/vendor_rails/minimal/activesupport/lib/active_support
1413
+ - test/stub/vendor_rails/minimal/activesupport/lib/active_support/whiny_nil.rb
1358
1414
  - test/stub/vendor_rails/minimal/activesupport/lib/active_support.rb
1415
+ - test/stub/vendor_rails/minimal/railties
1416
+ - test/stub/vendor_rails/minimal/railties/lib
1359
1417
  - test/stub/vendor_rails/minimal/railties/lib/dispatcher.rb
1360
1418
  - test/stub/vendor_rails/minimal/railties/lib/initializer.rb
1361
1419
  - test/stub/vendor_rails/minimal/railties/lib/ruby_version_check.rb
1362
- - test/stub/minimal-railsapp/vendor/rails/actionmailer/lib/action_mailer.rb
1363
- - test/stub/minimal-railsapp/vendor/rails/actionpack/lib/action_controller.rb
1364
- - test/stub/minimal-railsapp/vendor/rails/actionpack/lib/action_pack.rb
1365
- - test/stub/minimal-railsapp/vendor/rails/actionpack/lib/action_view.rb
1366
- - test/stub/minimal-railsapp/vendor/rails/activerecord/lib/active_record.rb
1367
- - test/stub/minimal-railsapp/vendor/rails/activeresource/lib/active_resource.rb
1368
- - test/stub/minimal-railsapp/vendor/rails/activesupport/lib/active_support
1369
- - test/stub/minimal-railsapp/vendor/rails/activesupport/lib/active_support.rb
1370
- - test/stub/minimal-railsapp/vendor/rails/railties/lib/dispatcher.rb
1371
- - test/stub/minimal-railsapp/vendor/rails/railties/lib/initializer.rb
1372
- - test/stub/minimal-railsapp/vendor/rails/railties/lib/ruby_version_check.rb
1373
- - test/stub/rails_apps/mycook/app/views/layouts/default.rhtml
1374
- - test/stub/rails_apps/mycook/app/views/recipes/create.rhtml
1375
- - test/stub/rails_apps/mycook/app/views/recipes/index.rhtml
1376
- - test/stub/rails_apps/mycook/app/views/recipes/new.rhtml
1377
- - test/stub/rails_apps/mycook/app/views/uploads/index.rhtml
1378
- - test/stub/rails_apps/mycook/app/views/uploads/new.html.erb
1379
- - test/stub/rails_apps/mycook/app/views/welcome/cached.rhtml
1380
- - test/stub/rails_apps/mycook/app/views/welcome/index.rhtml
1381
- - test/stub/rails_apps/mycook/sites/some.site/public/uploads.html
1382
- - test/stub/rails_apps/mycook/sites/some.site/public/welcome
1383
- - test/stub/vendor_rails/minimal/activesupport/lib/active_support/whiny_nil.rb
1384
- - test/stub/minimal-railsapp/vendor/rails/activesupport/lib/active_support/whiny_nil.rb
1385
- - test/stub/rails_apps/mycook/sites/some.site/public/welcome/cached.html
1420
+ - test/stub/vendor_rails/minimal/README
1421
+ - test/stub/wsgi
1422
+ - test/stub/wsgi/passenger_wsgi.py
1423
+ - test/stub/wsgi/passenger_wsgi.pyc
1424
+ - test/stub/wsgi/public
1425
+ - test/stub/wsgi/public/wsgi-snake.jpg
1426
+ - test/stub/wsgi/tmp
1427
+ - test/stub/zsfa
1428
+ - test/stub/zsfa/header.png
1429
+ - test/stub/zsfa/index.html
1430
+ - test/stub/zsfa/zsfa.png
1386
1431
  has_rdoc: true
1387
1432
  homepage: http://www.modrails.com/
1388
1433
  post_install_message: