rails 2.2.2 → 3.0.0

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

Potentially problematic release.


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

Files changed (336) hide show
  1. data/bin/rails +8 -18
  2. metadata +118 -452
  3. data/CHANGELOG +0 -2071
  4. data/MIT-LICENSE +0 -20
  5. data/README +0 -256
  6. data/Rakefile +0 -411
  7. data/bin/about +0 -4
  8. data/bin/console +0 -3
  9. data/bin/dbconsole +0 -3
  10. data/bin/destroy +0 -3
  11. data/bin/generate +0 -3
  12. data/bin/performance/benchmarker +0 -3
  13. data/bin/performance/profiler +0 -3
  14. data/bin/performance/request +0 -3
  15. data/bin/plugin +0 -3
  16. data/bin/process/inspector +0 -3
  17. data/bin/process/reaper +0 -3
  18. data/bin/process/spawner +0 -3
  19. data/bin/runner +0 -3
  20. data/bin/server +0 -3
  21. data/builtin/rails_info/rails/info.rb +0 -125
  22. data/builtin/rails_info/rails/info_controller.rb +0 -9
  23. data/builtin/rails_info/rails/info_helper.rb +0 -2
  24. data/builtin/rails_info/rails_info_controller.rb +0 -2
  25. data/config.ru +0 -17
  26. data/configs/apache.conf +0 -40
  27. data/configs/databases/frontbase.yml +0 -28
  28. data/configs/databases/ibm_db.yml +0 -62
  29. data/configs/databases/mysql.yml +0 -57
  30. data/configs/databases/oracle.yml +0 -39
  31. data/configs/databases/postgresql.yml +0 -51
  32. data/configs/databases/sqlite2.yml +0 -19
  33. data/configs/databases/sqlite3.yml +0 -22
  34. data/configs/empty.log +0 -0
  35. data/configs/initializers/inflections.rb +0 -10
  36. data/configs/initializers/mime_types.rb +0 -5
  37. data/configs/initializers/new_rails_defaults.rb +0 -17
  38. data/configs/lighttpd.conf +0 -54
  39. data/configs/locales/en.yml +0 -5
  40. data/configs/routes.rb +0 -43
  41. data/dispatches/dispatch.fcgi +0 -24
  42. data/dispatches/dispatch.rb +0 -10
  43. data/dispatches/gateway.cgi +0 -97
  44. data/doc/README_FOR_APP +0 -5
  45. data/doc/guides/html/2_2_release_notes.html +0 -1185
  46. data/doc/guides/html/actioncontroller_basics.html +0 -1270
  47. data/doc/guides/html/activerecord_validations_callbacks.html +0 -749
  48. data/doc/guides/html/association_basics.html +0 -2585
  49. data/doc/guides/html/authors.html +0 -240
  50. data/doc/guides/html/benchmarking_and_profiling.html +0 -1018
  51. data/doc/guides/html/caching_with_rails.html +0 -583
  52. data/doc/guides/html/command_line.html +0 -434
  53. data/doc/guides/html/configuring.html +0 -438
  54. data/doc/guides/html/creating_plugins.html +0 -1594
  55. data/doc/guides/html/debugging_rails_applications.html +0 -1175
  56. data/doc/guides/html/finders.html +0 -1090
  57. data/doc/guides/html/form_helpers.html +0 -638
  58. data/doc/guides/html/getting_started_with_rails.html +0 -2066
  59. data/doc/guides/html/index.html +0 -349
  60. data/doc/guides/html/layouts_and_rendering.html +0 -1406
  61. data/doc/guides/html/migrations.html +0 -921
  62. data/doc/guides/html/routing_outside_in.html +0 -2213
  63. data/doc/guides/html/security.html +0 -1346
  64. data/doc/guides/html/testing_rails_applications.html +0 -1859
  65. data/doc/guides/source/2_2_release_notes.txt +0 -435
  66. data/doc/guides/source/actioncontroller_basics/changelog.txt +0 -5
  67. data/doc/guides/source/actioncontroller_basics/cookies.txt +0 -34
  68. data/doc/guides/source/actioncontroller_basics/csrf.txt +0 -32
  69. data/doc/guides/source/actioncontroller_basics/filters.txt +0 -119
  70. data/doc/guides/source/actioncontroller_basics/http_auth.txt +0 -24
  71. data/doc/guides/source/actioncontroller_basics/index.txt +0 -40
  72. data/doc/guides/source/actioncontroller_basics/introduction.txt +0 -9
  73. data/doc/guides/source/actioncontroller_basics/methods.txt +0 -39
  74. data/doc/guides/source/actioncontroller_basics/parameter_filtering.txt +0 -14
  75. data/doc/guides/source/actioncontroller_basics/params.txt +0 -93
  76. data/doc/guides/source/actioncontroller_basics/request_response_objects.txt +0 -43
  77. data/doc/guides/source/actioncontroller_basics/rescue.txt +0 -67
  78. data/doc/guides/source/actioncontroller_basics/session.txt +0 -187
  79. data/doc/guides/source/actioncontroller_basics/streaming.txt +0 -91
  80. data/doc/guides/source/actioncontroller_basics/verification.txt +0 -40
  81. data/doc/guides/source/active_record_basics.txt +0 -181
  82. data/doc/guides/source/activerecord_validations_callbacks.txt +0 -404
  83. data/doc/guides/source/association_basics.txt +0 -1840
  84. data/doc/guides/source/authors.txt +0 -39
  85. data/doc/guides/source/benchmarking_and_profiling/appendix.txt +0 -95
  86. data/doc/guides/source/benchmarking_and_profiling/digging_deeper.txt +0 -105
  87. data/doc/guides/source/benchmarking_and_profiling/edge_rails_features.txt +0 -185
  88. data/doc/guides/source/benchmarking_and_profiling/gameplan.txt +0 -27
  89. data/doc/guides/source/benchmarking_and_profiling/index.txt +0 -242
  90. data/doc/guides/source/benchmarking_and_profiling/rubyprof.txt +0 -179
  91. data/doc/guides/source/benchmarking_and_profiling/statistics.txt +0 -57
  92. data/doc/guides/source/caching_with_rails.txt +0 -367
  93. data/doc/guides/source/command_line.txt +0 -147
  94. data/doc/guides/source/configuring.txt +0 -225
  95. data/doc/guides/source/creating_plugins/acts_as_yaffle.txt +0 -191
  96. data/doc/guides/source/creating_plugins/appendix.txt +0 -46
  97. data/doc/guides/source/creating_plugins/controllers.txt +0 -59
  98. data/doc/guides/source/creating_plugins/core_ext.txt +0 -123
  99. data/doc/guides/source/creating_plugins/custom_route.txt +0 -69
  100. data/doc/guides/source/creating_plugins/gem.txt +0 -1
  101. data/doc/guides/source/creating_plugins/generator_method.txt +0 -89
  102. data/doc/guides/source/creating_plugins/helpers.txt +0 -51
  103. data/doc/guides/source/creating_plugins/index.txt +0 -52
  104. data/doc/guides/source/creating_plugins/migration_generator.txt +0 -156
  105. data/doc/guides/source/creating_plugins/models.txt +0 -76
  106. data/doc/guides/source/creating_plugins/odds_and_ends.txt +0 -69
  107. data/doc/guides/source/creating_plugins/test_setup.txt +0 -230
  108. data/doc/guides/source/debugging_rails_applications.txt +0 -733
  109. data/doc/guides/source/finders.txt +0 -668
  110. data/doc/guides/source/form_helpers.txt +0 -345
  111. data/doc/guides/source/getting_started_with_rails.txt +0 -1256
  112. data/doc/guides/source/images/belongs_to.png +0 -0
  113. data/doc/guides/source/images/bullet.gif +0 -0
  114. data/doc/guides/source/images/csrf.png +0 -0
  115. data/doc/guides/source/images/habtm.png +0 -0
  116. data/doc/guides/source/images/has_many.png +0 -0
  117. data/doc/guides/source/images/has_many_through.png +0 -0
  118. data/doc/guides/source/images/has_one.png +0 -0
  119. data/doc/guides/source/images/has_one_through.png +0 -0
  120. data/doc/guides/source/images/header_backdrop.png +0 -0
  121. data/doc/guides/source/images/icons/README +0 -5
  122. data/doc/guides/source/images/icons/callouts/1.png +0 -0
  123. data/doc/guides/source/images/icons/callouts/10.png +0 -0
  124. data/doc/guides/source/images/icons/callouts/11.png +0 -0
  125. data/doc/guides/source/images/icons/callouts/12.png +0 -0
  126. data/doc/guides/source/images/icons/callouts/13.png +0 -0
  127. data/doc/guides/source/images/icons/callouts/14.png +0 -0
  128. data/doc/guides/source/images/icons/callouts/15.png +0 -0
  129. data/doc/guides/source/images/icons/callouts/2.png +0 -0
  130. data/doc/guides/source/images/icons/callouts/3.png +0 -0
  131. data/doc/guides/source/images/icons/callouts/4.png +0 -0
  132. data/doc/guides/source/images/icons/callouts/5.png +0 -0
  133. data/doc/guides/source/images/icons/callouts/6.png +0 -0
  134. data/doc/guides/source/images/icons/callouts/7.png +0 -0
  135. data/doc/guides/source/images/icons/callouts/8.png +0 -0
  136. data/doc/guides/source/images/icons/callouts/9.png +0 -0
  137. data/doc/guides/source/images/icons/caution.png +0 -0
  138. data/doc/guides/source/images/icons/example.png +0 -0
  139. data/doc/guides/source/images/icons/home.png +0 -0
  140. data/doc/guides/source/images/icons/important.png +0 -0
  141. data/doc/guides/source/images/icons/next.png +0 -0
  142. data/doc/guides/source/images/icons/note.png +0 -0
  143. data/doc/guides/source/images/icons/prev.png +0 -0
  144. data/doc/guides/source/images/icons/tip.png +0 -0
  145. data/doc/guides/source/images/icons/up.png +0 -0
  146. data/doc/guides/source/images/icons/warning.png +0 -0
  147. data/doc/guides/source/images/polymorphic.png +0 -0
  148. data/doc/guides/source/images/rails_logo_remix.gif +0 -0
  149. data/doc/guides/source/images/ruby_on_rails_by_mike_rundle2.gif +0 -0
  150. data/doc/guides/source/images/session_fixation.png +0 -0
  151. data/doc/guides/source/index.txt +0 -118
  152. data/doc/guides/source/layouts_and_rendering.txt +0 -982
  153. data/doc/guides/source/migrations/anatomy_of_a_migration.txt +0 -85
  154. data/doc/guides/source/migrations/changelog.txt +0 -5
  155. data/doc/guides/source/migrations/creating_a_migration.txt +0 -109
  156. data/doc/guides/source/migrations/foreign_keys.txt +0 -8
  157. data/doc/guides/source/migrations/index.txt +0 -22
  158. data/doc/guides/source/migrations/rakeing_around.txt +0 -111
  159. data/doc/guides/source/migrations/scheming.txt +0 -47
  160. data/doc/guides/source/migrations/using_models_in_migrations.txt +0 -46
  161. data/doc/guides/source/migrations/writing_a_migration.txt +0 -159
  162. data/doc/guides/source/routing_outside_in.txt +0 -986
  163. data/doc/guides/source/security.txt +0 -984
  164. data/doc/guides/source/stylesheets/base.css +0 -358
  165. data/doc/guides/source/stylesheets/forms.css +0 -35
  166. data/doc/guides/source/stylesheets/more.css +0 -82
  167. data/doc/guides/source/templates/guides.html.erb +0 -97
  168. data/doc/guides/source/templates/inline.css +0 -165
  169. data/doc/guides/source/testing_rails_applications.txt +0 -995
  170. data/environments/boot.rb +0 -109
  171. data/environments/development.rb +0 -17
  172. data/environments/environment.rb +0 -75
  173. data/environments/production.rb +0 -24
  174. data/environments/test.rb +0 -22
  175. data/fresh_rakefile +0 -10
  176. data/helpers/application.rb +0 -15
  177. data/helpers/application_helper.rb +0 -3
  178. data/helpers/performance_test.rb +0 -9
  179. data/helpers/test_helper.rb +0 -38
  180. data/html/404.html +0 -30
  181. data/html/422.html +0 -30
  182. data/html/500.html +0 -33
  183. data/html/favicon.ico +0 -0
  184. data/html/images/rails.png +0 -0
  185. data/html/index.html +0 -274
  186. data/html/javascripts/application.js +0 -2
  187. data/html/javascripts/controls.js +0 -963
  188. data/html/javascripts/dragdrop.js +0 -973
  189. data/html/javascripts/effects.js +0 -1128
  190. data/html/javascripts/prototype.js +0 -4320
  191. data/html/robots.txt +0 -5
  192. data/lib/code_statistics.rb +0 -107
  193. data/lib/commands.rb +0 -17
  194. data/lib/commands/about.rb +0 -3
  195. data/lib/commands/console.rb +0 -45
  196. data/lib/commands/dbconsole.rb +0 -67
  197. data/lib/commands/destroy.rb +0 -6
  198. data/lib/commands/generate.rb +0 -6
  199. data/lib/commands/ncgi/listener +0 -86
  200. data/lib/commands/ncgi/tracker +0 -69
  201. data/lib/commands/performance/benchmarker.rb +0 -24
  202. data/lib/commands/performance/profiler.rb +0 -50
  203. data/lib/commands/performance/request.rb +0 -6
  204. data/lib/commands/plugin.rb +0 -967
  205. data/lib/commands/process/inspector.rb +0 -68
  206. data/lib/commands/process/reaper.rb +0 -149
  207. data/lib/commands/process/spawner.rb +0 -219
  208. data/lib/commands/process/spinner.rb +0 -57
  209. data/lib/commands/runner.rb +0 -48
  210. data/lib/commands/server.rb +0 -49
  211. data/lib/commands/servers/base.rb +0 -31
  212. data/lib/commands/servers/lighttpd.rb +0 -94
  213. data/lib/commands/servers/mongrel.rb +0 -69
  214. data/lib/commands/servers/new_mongrel.rb +0 -16
  215. data/lib/commands/servers/thin.rb +0 -25
  216. data/lib/commands/servers/webrick.rb +0 -66
  217. data/lib/commands/update.rb +0 -4
  218. data/lib/console_app.rb +0 -30
  219. data/lib/console_sandbox.rb +0 -6
  220. data/lib/console_with_helpers.rb +0 -26
  221. data/lib/dispatcher.rb +0 -24
  222. data/lib/fcgi_handler.rb +0 -237
  223. data/lib/initializer.rb +0 -1038
  224. data/lib/performance_test_help.rb +0 -5
  225. data/lib/rails/gem_builder.rb +0 -21
  226. data/lib/rails/gem_dependency.rb +0 -251
  227. data/lib/rails/mongrel_server/commands.rb +0 -342
  228. data/lib/rails/mongrel_server/handler.rb +0 -55
  229. data/lib/rails/plugin.rb +0 -124
  230. data/lib/rails/plugin/loader.rb +0 -152
  231. data/lib/rails/plugin/locator.rb +0 -100
  232. data/lib/rails/rack.rb +0 -6
  233. data/lib/rails/rack/logger.rb +0 -28
  234. data/lib/rails/rack/static.rb +0 -35
  235. data/lib/rails/vendor_gem_source_index.rb +0 -140
  236. data/lib/rails/version.rb +0 -9
  237. data/lib/rails_generator.rb +0 -43
  238. data/lib/rails_generator/base.rb +0 -263
  239. data/lib/rails_generator/commands.rb +0 -616
  240. data/lib/rails_generator/generated_attribute.rb +0 -46
  241. data/lib/rails_generator/generators/applications/app/USAGE +0 -9
  242. data/lib/rails_generator/generators/applications/app/app_generator.rb +0 -184
  243. data/lib/rails_generator/generators/components/controller/USAGE +0 -29
  244. data/lib/rails_generator/generators/components/controller/controller_generator.rb +0 -37
  245. data/lib/rails_generator/generators/components/controller/templates/controller.rb +0 -7
  246. data/lib/rails_generator/generators/components/controller/templates/functional_test.rb +0 -8
  247. data/lib/rails_generator/generators/components/controller/templates/helper.rb +0 -2
  248. data/lib/rails_generator/generators/components/controller/templates/view.html.erb +0 -2
  249. data/lib/rails_generator/generators/components/integration_test/USAGE +0 -8
  250. data/lib/rails_generator/generators/components/integration_test/integration_test_generator.rb +0 -16
  251. data/lib/rails_generator/generators/components/integration_test/templates/integration_test.rb +0 -10
  252. data/lib/rails_generator/generators/components/mailer/USAGE +0 -16
  253. data/lib/rails_generator/generators/components/mailer/mailer_generator.rb +0 -30
  254. data/lib/rails_generator/generators/components/mailer/templates/fixture.erb +0 -3
  255. data/lib/rails_generator/generators/components/mailer/templates/fixture.rhtml +0 -0
  256. data/lib/rails_generator/generators/components/mailer/templates/mailer.rb +0 -15
  257. data/lib/rails_generator/generators/components/mailer/templates/unit_test.rb +0 -20
  258. data/lib/rails_generator/generators/components/mailer/templates/view.erb +0 -3
  259. data/lib/rails_generator/generators/components/mailer/templates/view.rhtml +0 -0
  260. data/lib/rails_generator/generators/components/migration/USAGE +0 -29
  261. data/lib/rails_generator/generators/components/migration/migration_generator.rb +0 -20
  262. data/lib/rails_generator/generators/components/migration/templates/migration.rb +0 -11
  263. data/lib/rails_generator/generators/components/model/USAGE +0 -27
  264. data/lib/rails_generator/generators/components/model/model_generator.rb +0 -45
  265. data/lib/rails_generator/generators/components/model/templates/fixtures.yml +0 -19
  266. data/lib/rails_generator/generators/components/model/templates/migration.rb +0 -16
  267. data/lib/rails_generator/generators/components/model/templates/model.rb +0 -5
  268. data/lib/rails_generator/generators/components/model/templates/unit_test.rb +0 -8
  269. data/lib/rails_generator/generators/components/observer/USAGE +0 -13
  270. data/lib/rails_generator/generators/components/observer/observer_generator.rb +0 -16
  271. data/lib/rails_generator/generators/components/observer/templates/observer.rb +0 -2
  272. data/lib/rails_generator/generators/components/observer/templates/unit_test.rb +0 -8
  273. data/lib/rails_generator/generators/components/performance_test/USAGE +0 -8
  274. data/lib/rails_generator/generators/components/performance_test/performance_test_generator.rb +0 -16
  275. data/lib/rails_generator/generators/components/performance_test/templates/performance_test.rb +0 -9
  276. data/lib/rails_generator/generators/components/plugin/USAGE +0 -25
  277. data/lib/rails_generator/generators/components/plugin/plugin_generator.rb +0 -39
  278. data/lib/rails_generator/generators/components/plugin/templates/MIT-LICENSE +0 -20
  279. data/lib/rails_generator/generators/components/plugin/templates/README +0 -13
  280. data/lib/rails_generator/generators/components/plugin/templates/Rakefile +0 -23
  281. data/lib/rails_generator/generators/components/plugin/templates/USAGE +0 -8
  282. data/lib/rails_generator/generators/components/plugin/templates/generator.rb +0 -8
  283. data/lib/rails_generator/generators/components/plugin/templates/init.rb +0 -1
  284. data/lib/rails_generator/generators/components/plugin/templates/install.rb +0 -1
  285. data/lib/rails_generator/generators/components/plugin/templates/plugin.rb +0 -1
  286. data/lib/rails_generator/generators/components/plugin/templates/tasks.rake +0 -4
  287. data/lib/rails_generator/generators/components/plugin/templates/test_helper.rb +0 -3
  288. data/lib/rails_generator/generators/components/plugin/templates/uninstall.rb +0 -1
  289. data/lib/rails_generator/generators/components/plugin/templates/unit_test.rb +0 -8
  290. data/lib/rails_generator/generators/components/resource/USAGE +0 -23
  291. data/lib/rails_generator/generators/components/resource/resource_generator.rb +0 -74
  292. data/lib/rails_generator/generators/components/resource/templates/controller.rb +0 -2
  293. data/lib/rails_generator/generators/components/resource/templates/functional_test.rb +0 -8
  294. data/lib/rails_generator/generators/components/resource/templates/helper.rb +0 -2
  295. data/lib/rails_generator/generators/components/scaffold/USAGE +0 -29
  296. data/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb +0 -100
  297. data/lib/rails_generator/generators/components/scaffold/templates/controller.rb +0 -85
  298. data/lib/rails_generator/generators/components/scaffold/templates/functional_test.rb +0 -45
  299. data/lib/rails_generator/generators/components/scaffold/templates/helper.rb +0 -2
  300. data/lib/rails_generator/generators/components/scaffold/templates/layout.html.erb +0 -17
  301. data/lib/rails_generator/generators/components/scaffold/templates/style.css +0 -54
  302. data/lib/rails_generator/generators/components/scaffold/templates/view_edit.html.erb +0 -18
  303. data/lib/rails_generator/generators/components/scaffold/templates/view_index.html.erb +0 -24
  304. data/lib/rails_generator/generators/components/scaffold/templates/view_new.html.erb +0 -17
  305. data/lib/rails_generator/generators/components/scaffold/templates/view_show.html.erb +0 -10
  306. data/lib/rails_generator/generators/components/session_migration/USAGE +0 -10
  307. data/lib/rails_generator/generators/components/session_migration/session_migration_generator.rb +0 -18
  308. data/lib/rails_generator/generators/components/session_migration/templates/migration.rb +0 -16
  309. data/lib/rails_generator/lookup.rb +0 -249
  310. data/lib/rails_generator/manifest.rb +0 -53
  311. data/lib/rails_generator/options.rb +0 -150
  312. data/lib/rails_generator/scripts.rb +0 -89
  313. data/lib/rails_generator/scripts/destroy.rb +0 -29
  314. data/lib/rails_generator/scripts/generate.rb +0 -7
  315. data/lib/rails_generator/scripts/update.rb +0 -12
  316. data/lib/rails_generator/secret_key_generator.rb +0 -22
  317. data/lib/rails_generator/simple_logger.rb +0 -46
  318. data/lib/rails_generator/spec.rb +0 -44
  319. data/lib/railties_path.rb +0 -1
  320. data/lib/ruby_version_check.rb +0 -17
  321. data/lib/rubyprof_ext.rb +0 -35
  322. data/lib/source_annotation_extractor.rb +0 -102
  323. data/lib/tasks/annotations.rake +0 -20
  324. data/lib/tasks/databases.rake +0 -416
  325. data/lib/tasks/documentation.rake +0 -95
  326. data/lib/tasks/framework.rake +0 -118
  327. data/lib/tasks/gems.rake +0 -80
  328. data/lib/tasks/log.rake +0 -9
  329. data/lib/tasks/misc.rake +0 -56
  330. data/lib/tasks/rails.rb +0 -8
  331. data/lib/tasks/routes.rake +0 -17
  332. data/lib/tasks/statistics.rake +0 -18
  333. data/lib/tasks/testing.rake +0 -139
  334. data/lib/tasks/tmp.rake +0 -37
  335. data/lib/test_help.rb +0 -27
  336. data/lib/webrick_server.rb +0 -156
@@ -1,55 +0,0 @@
1
- # Copyright (c) 2005 Zed A. Shaw
2
- # You can redistribute it and/or modify it under the same terms as Ruby.
3
- #
4
- # Additional work donated by contributors. See http://mongrel.rubyforge.org/attributions.html
5
- # for more information.
6
-
7
- require 'mongrel'
8
- require 'cgi'
9
- require 'action_controller/dispatcher'
10
-
11
-
12
- module Rails
13
- module MongrelServer
14
- # Implements a handler that can run Rails and serve files out of the
15
- # Rails application's public directory. This lets you run your Rails
16
- # application with Mongrel during development and testing, then use it
17
- # also in production behind a server that's better at serving the
18
- # static files.
19
- #
20
- # The RailsHandler takes a mime_map parameter which is a simple suffix=mimetype
21
- # mapping that it should add to the list of valid mime types.
22
- #
23
- # It also supports page caching directly and will try to resolve a request
24
- # in the following order:
25
- #
26
- # * If the requested exact PATH_INFO exists as a file then serve it.
27
- # * If it exists at PATH_INFO+".html" exists then serve that.
28
- # * Finally, construct a Mongrel::CGIWrapper and run Dispatcher.dispatch to have Rails go.
29
- #
30
- # This means that if you are using page caching it will actually work with Mongrel
31
- # and you should see a decent speed boost (but not as fast as if you use a static
32
- # server like Apache or Litespeed).
33
- class RailsHandler < Mongrel::HttpHandler
34
- # Construct a Mongrel::CGIWrapper and dispatch.
35
- def process(request, response)
36
- return if response.socket.closed?
37
-
38
- cgi = Mongrel::CGIWrapper.new(request, response)
39
- cgi.handler = self
40
- # We don't want the output to be really final until we're out of the lock
41
- cgi.default_really_final = false
42
-
43
- ActionController::Dispatcher.dispatch(cgi, ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS, response.body)
44
-
45
- # This finalizes the output using the proper HttpResponse way
46
- cgi.out("text/html",true) {""}
47
- rescue Errno::EPIPE
48
- response.socket.close
49
- rescue Object => rails_error
50
- STDERR.puts "#{Time.now.httpdate}: Error dispatching #{rails_error.inspect}"
51
- STDERR.puts rails_error.backtrace.join("\n")
52
- end
53
- end
54
- end
55
- end
data/lib/rails/plugin.rb DELETED
@@ -1,124 +0,0 @@
1
- module Rails
2
- # The Plugin class should be an object which provides the following methods:
3
- #
4
- # * +name+ - Used during initialisation to order the plugin (based on name and
5
- # the contents of <tt>config.plugins</tt>).
6
- # * +valid?+ - Returns true if this plugin can be loaded.
7
- # * +load_paths+ - Each path within the returned array will be added to the <tt>$LOAD_PATH</tt>.
8
- # * +load+ - Finally 'load' the plugin.
9
- #
10
- # These methods are expected by the Rails::Plugin::Locator and Rails::Plugin::Loader classes.
11
- # The default implementation returns the <tt>lib</tt> directory as its <tt>load_paths</tt>,
12
- # and evaluates <tt>init.rb</tt> when <tt>load</tt> is called.
13
- #
14
- # You can also inspect the about.yml data programmatically:
15
- #
16
- # plugin = Rails::Plugin.new(path_to_my_plugin)
17
- # plugin.about["author"] # => "James Adam"
18
- # plugin.about["url"] # => "http://interblah.net"
19
- class Plugin
20
- include Comparable
21
-
22
- attr_reader :directory, :name
23
-
24
- def initialize(directory)
25
- @directory = directory
26
- @name = File.basename(@directory) rescue nil
27
- @loaded = false
28
- end
29
-
30
- def valid?
31
- File.directory?(directory) && (has_lib_directory? || has_init_file?)
32
- end
33
-
34
- # Returns a list of paths this plugin wishes to make available in <tt>$LOAD_PATH</tt>.
35
- def load_paths
36
- report_nonexistant_or_empty_plugin! unless valid?
37
- has_lib_directory? ? [lib_path] : []
38
- end
39
-
40
- # Evaluates a plugin's init.rb file.
41
- def load(initializer)
42
- return if loaded?
43
- report_nonexistant_or_empty_plugin! unless valid?
44
- evaluate_init_rb(initializer)
45
- @loaded = true
46
- end
47
-
48
- def loaded?
49
- @loaded
50
- end
51
-
52
- def <=>(other_plugin)
53
- name <=> other_plugin.name
54
- end
55
-
56
- def about
57
- @about ||= load_about_information
58
- end
59
-
60
- private
61
- def load_about_information
62
- about_yml_path = File.join(@directory, "about.yml")
63
- parsed_yml = File.exist?(about_yml_path) ? YAML.load(File.read(about_yml_path)) : {}
64
- parsed_yml || {}
65
- rescue Exception
66
- {}
67
- end
68
-
69
- def report_nonexistant_or_empty_plugin!
70
- raise LoadError, "Can not find the plugin named: #{name}"
71
- end
72
-
73
- def lib_path
74
- File.join(directory, 'lib')
75
- end
76
-
77
- def classic_init_path
78
- File.join(directory, 'init.rb')
79
- end
80
-
81
- def gem_init_path
82
- File.join(directory, 'rails', 'init.rb')
83
- end
84
-
85
- def init_path
86
- File.file?(gem_init_path) ? gem_init_path : classic_init_path
87
- end
88
-
89
- def has_lib_directory?
90
- File.directory?(lib_path)
91
- end
92
-
93
- def has_init_file?
94
- File.file?(init_path)
95
- end
96
-
97
- def evaluate_init_rb(initializer)
98
- if has_init_file?
99
- silence_warnings do
100
- # Allow plugins to reference the current configuration object
101
- config = initializer.configuration
102
-
103
- eval(IO.read(init_path), binding, init_path)
104
- end
105
- end
106
- end
107
- end
108
-
109
- # This Plugin subclass represents a Gem plugin. Although RubyGems has already
110
- # taken care of $LOAD_PATHs, it exposes its load_paths to add them
111
- # to Dependencies.load_paths.
112
- class GemPlugin < Plugin
113
- # Initialize this plugin from a Gem::Specification.
114
- def initialize(spec, gem)
115
- directory = spec.full_gem_path
116
- super(directory)
117
- @name = spec.name
118
- end
119
-
120
- def init_path
121
- File.join(directory, 'rails', 'init.rb')
122
- end
123
- end
124
- end
@@ -1,152 +0,0 @@
1
- require "rails/plugin"
2
-
3
- module Rails
4
- class Plugin
5
- class Loader
6
- attr_reader :initializer
7
-
8
- # Creates a new Plugin::Loader instance, associated with the given
9
- # Rails::Initializer. This default implementation automatically locates
10
- # all plugins, and adds all plugin load paths, when it is created. The plugins
11
- # are then fully loaded (init.rb is evaluated) when load_plugins is called.
12
- #
13
- # It is the loader's responsibility to ensure that only the plugins specified
14
- # in the configuration are actually loaded, and that the order defined
15
- # is respected.
16
- def initialize(initializer)
17
- @initializer = initializer
18
- end
19
-
20
- # Returns the plugins to be loaded, in the order they should be loaded.
21
- def plugins
22
- @plugins ||= all_plugins.select { |plugin| should_load?(plugin) }.sort { |p1, p2| order_plugins(p1, p2) }
23
- end
24
-
25
- # Returns all the plugins that could be found by the current locators.
26
- def all_plugins
27
- @all_plugins ||= locate_plugins
28
- @all_plugins
29
- end
30
-
31
- def load_plugins
32
- plugins.each do |plugin|
33
- plugin.load(initializer)
34
- register_plugin_as_loaded(plugin)
35
- end
36
- ensure_all_registered_plugins_are_loaded!
37
- end
38
-
39
- # Adds the load paths for every plugin into the $LOAD_PATH. Plugin load paths are
40
- # added *after* the application's <tt>lib</tt> directory, to ensure that an application
41
- # can always override code within a plugin.
42
- #
43
- # Plugin load paths are also added to Dependencies.load_paths, and Dependencies.load_once_paths.
44
- def add_plugin_load_paths
45
- plugins.each do |plugin|
46
- plugin.load_paths.each do |path|
47
- $LOAD_PATH.insert(application_lib_index + 1, path)
48
- ActiveSupport::Dependencies.load_paths << path
49
- unless Rails.configuration.reload_plugins?
50
- ActiveSupport::Dependencies.load_once_paths << path
51
- end
52
- end
53
- end
54
- $LOAD_PATH.uniq!
55
- end
56
-
57
- protected
58
-
59
- # The locate_plugins method uses each class in config.plugin_locators to
60
- # find the set of all plugins available to this Rails application.
61
- def locate_plugins
62
- configuration.plugin_locators.map { |locator|
63
- locator.new(initializer).plugins
64
- }.flatten
65
- # TODO: sorting based on config.plugins
66
- end
67
-
68
- def register_plugin_as_loaded(plugin)
69
- initializer.loaded_plugins << plugin
70
- end
71
-
72
- def configuration
73
- initializer.configuration
74
- end
75
-
76
- def should_load?(plugin)
77
- # uses Plugin#name and Plugin#valid?
78
- enabled?(plugin) && plugin.valid?
79
- end
80
-
81
- def order_plugins(plugin_a, plugin_b)
82
- if !explicit_plugin_loading_order?
83
- plugin_a <=> plugin_b
84
- else
85
- if !explicitly_enabled?(plugin_a) && !explicitly_enabled?(plugin_b)
86
- plugin_a <=> plugin_b
87
- else
88
- effective_order_of(plugin_a) <=> effective_order_of(plugin_b)
89
- end
90
- end
91
- end
92
-
93
- def effective_order_of(plugin)
94
- if explicitly_enabled?(plugin)
95
- registered_plugin_names.index(plugin.name)
96
- else
97
- registered_plugin_names.index('all')
98
- end
99
- end
100
-
101
- def application_lib_index
102
- $LOAD_PATH.index(File.join(RAILS_ROOT, 'lib')) || 0
103
- end
104
-
105
- def enabled?(plugin)
106
- !explicit_plugin_loading_order? || registered?(plugin)
107
- end
108
-
109
- def explicit_plugin_loading_order?
110
- !registered_plugin_names.nil?
111
- end
112
-
113
- def registered?(plugin)
114
- explicit_plugin_loading_order? && registered_plugins_names_plugin?(plugin)
115
- end
116
-
117
- def explicitly_enabled?(plugin)
118
- !explicit_plugin_loading_order? || explicitly_registered?(plugin)
119
- end
120
-
121
- def explicitly_registered?(plugin)
122
- explicit_plugin_loading_order? && registered_plugin_names.include?(plugin.name)
123
- end
124
-
125
- def registered_plugins_names_plugin?(plugin)
126
- registered_plugin_names.include?(plugin.name) || registered_plugin_names.include?('all')
127
- end
128
-
129
- # The plugins that have been explicitly listed with config.plugins. If this list is nil
130
- # then it means the client does not care which plugins or in what order they are loaded,
131
- # so we load all in alphabetical order. If it is an empty array, we load no plugins, if it is
132
- # non empty, we load the named plugins in the order specified.
133
- def registered_plugin_names
134
- configuration.plugins ? configuration.plugins.map(&:to_s) : nil
135
- end
136
-
137
- def loaded?(plugin_name)
138
- initializer.loaded_plugins.detect { |plugin| plugin.name == plugin_name.to_s }
139
- end
140
-
141
- def ensure_all_registered_plugins_are_loaded!
142
- if explicit_plugin_loading_order?
143
- if configuration.plugins.detect {|plugin| plugin != :all && !loaded?(plugin) }
144
- missing_plugins = configuration.plugins - (plugins + [:all])
145
- raise LoadError, "Could not locate the following plugins: #{missing_plugins.to_sentence}"
146
- end
147
- end
148
- end
149
-
150
- end
151
- end
152
- end
@@ -1,100 +0,0 @@
1
- module Rails
2
- class Plugin
3
-
4
- # The Plugin::Locator class should be subclasses to provide custom plugin-finding
5
- # abilities to Rails (i.e. loading plugins from Gems, etc). Each subclass should implement
6
- # the <tt>located_plugins</tt> method, which return an array of Plugin objects that have been found.
7
- class Locator
8
- include Enumerable
9
-
10
- attr_reader :initializer
11
-
12
- def initialize(initializer)
13
- @initializer = initializer
14
- end
15
-
16
- # This method should return all the plugins which this Plugin::Locator can find
17
- # These will then be used by the current Plugin::Loader, which is responsible for actually
18
- # loading the plugins themselves
19
- def plugins
20
- raise "The `plugins' method must be defined by concrete subclasses of #{self.class}"
21
- end
22
-
23
- def each(&block)
24
- plugins.each(&block)
25
- end
26
-
27
- def plugin_names
28
- plugins.map(&:name)
29
- end
30
- end
31
-
32
- # The Rails::Plugin::FileSystemLocator will try to locate plugins by examining the directories
33
- # the the paths given in configuration.plugin_paths. Any plugins that can be found are returned
34
- # in a list.
35
- #
36
- # The criteria for a valid plugin in this case is found in Rails::Plugin#valid?, although
37
- # other subclasses of Rails::Plugin::Locator can of course use different conditions.
38
- class FileSystemLocator < Locator
39
-
40
- # Returns all the plugins which can be loaded in the filesystem, under the paths given
41
- # by configuration.plugin_paths.
42
- def plugins
43
- initializer.configuration.plugin_paths.flatten.inject([]) do |plugins, path|
44
- plugins.concat locate_plugins_under(path)
45
- plugins
46
- end.flatten
47
- end
48
-
49
- private
50
-
51
- # Attempts to create a plugin from the given path. If the created plugin is valid?
52
- # (see Rails::Plugin#valid?) then the plugin instance is returned; otherwise nil.
53
- def create_plugin(path)
54
- plugin = Rails::Plugin.new(path)
55
- plugin.valid? ? plugin : nil
56
- end
57
-
58
- # This starts at the base path looking for valid plugins (see Rails::Plugin#valid?).
59
- # Since plugins can be nested arbitrarily deep within an unspecified number of intermediary
60
- # directories, this method runs recursively until it finds a plugin directory, e.g.
61
- #
62
- # locate_plugins_under('vendor/plugins/acts/acts_as_chunky_bacon')
63
- # => <Rails::Plugin name: 'acts_as_chunky_bacon' ... >
64
- #
65
- def locate_plugins_under(base_path)
66
- Dir.glob(File.join(base_path, '*')).sort.inject([]) do |plugins, path|
67
- if plugin = create_plugin(path)
68
- plugins << plugin
69
- elsif File.directory?(path)
70
- plugins.concat locate_plugins_under(path)
71
- end
72
- plugins
73
- end
74
- end
75
- end
76
-
77
- # The GemLocator scans all the loaded RubyGems, looking for gems with
78
- # a <tt>rails/init.rb</tt> file.
79
- class GemLocator < Locator
80
- def plugins
81
- gem_index = initializer.configuration.gems.inject({}) { |memo, gem| memo.update gem.specification => gem }
82
- specs = gem_index.keys
83
- specs += Gem.loaded_specs.values.select do |spec|
84
- spec.loaded_from && # prune stubs
85
- File.exist?(File.join(spec.full_gem_path, "rails", "init.rb"))
86
- end
87
- specs.compact!
88
-
89
- require "rubygems/dependency_list"
90
-
91
- deps = Gem::DependencyList.new
92
- deps.add(*specs) unless specs.empty?
93
-
94
- deps.dependency_order.collect do |spec|
95
- Rails::GemPlugin.new(spec, gem_index[spec])
96
- end
97
- end
98
- end
99
- end
100
- end
data/lib/rails/rack.rb DELETED
@@ -1,6 +0,0 @@
1
- module Rails
2
- module Rack
3
- autoload :Logger, "rails/rack/logger"
4
- autoload :Static, "rails/rack/static"
5
- end
6
- end
@@ -1,28 +0,0 @@
1
- module Rails
2
- module Rack
3
- class Logger
4
- EnvironmentLog = "#{File.expand_path(Rails.root)}/log/#{Rails.env}.log"
5
-
6
- def initialize(app, log = nil)
7
- @app = app
8
- @path = Pathname.new(log || EnvironmentLog).cleanpath
9
- @cursor = ::File.size(@path)
10
- @last_checked = Time.now
11
- end
12
-
13
- def call(env)
14
- response = @app.call(env)
15
- ::File.open(@path, 'r') do |f|
16
- f.seek @cursor
17
- if f.mtime > @last_checked
18
- contents = f.read
19
- @last_checked = f.mtime
20
- @cursor += contents.length
21
- print contents
22
- end
23
- end
24
- response
25
- end
26
- end
27
- end
28
- end