rails 2.3.18 → 3.0.0.beta

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 (215) hide show
  1. metadata +61 -295
  2. data/CHANGELOG +0 -2193
  3. data/MIT-LICENSE +0 -20
  4. data/README +0 -243
  5. data/Rakefile +0 -365
  6. data/bin/about +0 -4
  7. data/bin/console +0 -3
  8. data/bin/dbconsole +0 -3
  9. data/bin/destroy +0 -3
  10. data/bin/generate +0 -3
  11. data/bin/performance/benchmarker +0 -3
  12. data/bin/performance/profiler +0 -3
  13. data/bin/plugin +0 -3
  14. data/bin/rails +0 -21
  15. data/bin/runner +0 -3
  16. data/bin/server +0 -3
  17. data/builtin/rails_info/rails/info.rb +0 -131
  18. data/builtin/rails_info/rails/info_controller.rb +0 -9
  19. data/builtin/rails_info/rails/info_helper.rb +0 -2
  20. data/builtin/rails_info/rails_info_controller.rb +0 -2
  21. data/configs/databases/frontbase.yml +0 -28
  22. data/configs/databases/ibm_db.yml +0 -62
  23. data/configs/databases/mysql.yml +0 -60
  24. data/configs/databases/oracle.yml +0 -39
  25. data/configs/databases/postgresql.yml +0 -51
  26. data/configs/databases/sqlite2.yml +0 -19
  27. data/configs/databases/sqlite3.yml +0 -22
  28. data/configs/empty.log +0 -0
  29. data/configs/initializers/backtrace_silencers.rb +0 -7
  30. data/configs/initializers/cookie_verification_secret.rb +0 -7
  31. data/configs/initializers/inflections.rb +0 -10
  32. data/configs/initializers/mime_types.rb +0 -5
  33. data/configs/initializers/new_rails_defaults.rb +0 -21
  34. data/configs/initializers/session_store.rb +0 -15
  35. data/configs/locales/en.yml +0 -5
  36. data/configs/routes.rb +0 -43
  37. data/configs/seeds.rb +0 -7
  38. data/dispatches/config.ru +0 -7
  39. data/dispatches/dispatch.fcgi +0 -24
  40. data/dispatches/dispatch.rb +0 -10
  41. data/dispatches/gateway.cgi +0 -97
  42. data/doc/README_FOR_APP +0 -2
  43. data/environments/boot.rb +0 -114
  44. data/environments/development.rb +0 -17
  45. data/environments/environment.rb +0 -41
  46. data/environments/production.rb +0 -28
  47. data/environments/test.rb +0 -28
  48. data/fresh_rakefile +0 -10
  49. data/helpers/application_controller.rb +0 -10
  50. data/helpers/application_helper.rb +0 -3
  51. data/helpers/performance_test.rb +0 -9
  52. data/helpers/test_helper.rb +0 -38
  53. data/html/404.html +0 -30
  54. data/html/422.html +0 -30
  55. data/html/500.html +0 -30
  56. data/html/favicon.ico +0 -0
  57. data/html/images/rails.png +0 -0
  58. data/html/index.html +0 -275
  59. data/html/javascripts/application.js +0 -2
  60. data/html/javascripts/controls.js +0 -963
  61. data/html/javascripts/dragdrop.js +0 -973
  62. data/html/javascripts/effects.js +0 -1128
  63. data/html/javascripts/prototype.js +0 -4320
  64. data/html/robots.txt +0 -5
  65. data/lib/code_statistics.rb +0 -107
  66. data/lib/commands.rb +0 -17
  67. data/lib/commands/about.rb +0 -3
  68. data/lib/commands/console.rb +0 -45
  69. data/lib/commands/dbconsole.rb +0 -87
  70. data/lib/commands/destroy.rb +0 -6
  71. data/lib/commands/generate.rb +0 -6
  72. data/lib/commands/ncgi/listener +0 -86
  73. data/lib/commands/ncgi/tracker +0 -69
  74. data/lib/commands/performance/benchmarker.rb +0 -24
  75. data/lib/commands/performance/profiler.rb +0 -50
  76. data/lib/commands/plugin.rb +0 -968
  77. data/lib/commands/runner.rb +0 -54
  78. data/lib/commands/server.rb +0 -114
  79. data/lib/commands/update.rb +0 -4
  80. data/lib/console_app.rb +0 -30
  81. data/lib/console_sandbox.rb +0 -6
  82. data/lib/console_with_helpers.rb +0 -5
  83. data/lib/dispatcher.rb +0 -24
  84. data/lib/fcgi_handler.rb +0 -239
  85. data/lib/initializer.rb +0 -1152
  86. data/lib/performance_test_help.rb +0 -5
  87. data/lib/rails/backtrace_cleaner.rb +0 -54
  88. data/lib/rails/gem_builder.rb +0 -21
  89. data/lib/rails/gem_dependency.rb +0 -317
  90. data/lib/rails/plugin.rb +0 -179
  91. data/lib/rails/plugin/loader.rb +0 -198
  92. data/lib/rails/plugin/locator.rb +0 -100
  93. data/lib/rails/rack.rb +0 -8
  94. data/lib/rails/rack/debugger.rb +0 -23
  95. data/lib/rails/rack/log_tailer.rb +0 -35
  96. data/lib/rails/rack/metal.rb +0 -51
  97. data/lib/rails/rack/static.rb +0 -46
  98. data/lib/rails/vendor_gem_source_index.rb +0 -140
  99. data/lib/rails/version.rb +0 -9
  100. data/lib/rails_generator.rb +0 -46
  101. data/lib/rails_generator/base.rb +0 -266
  102. data/lib/rails_generator/commands.rb +0 -621
  103. data/lib/rails_generator/generated_attribute.rb +0 -47
  104. data/lib/rails_generator/generators/applications/app/USAGE +0 -9
  105. data/lib/rails_generator/generators/applications/app/app_generator.rb +0 -266
  106. data/lib/rails_generator/generators/applications/app/scm/git.rb +0 -18
  107. data/lib/rails_generator/generators/applications/app/scm/scm.rb +0 -8
  108. data/lib/rails_generator/generators/applications/app/scm/svn.rb +0 -7
  109. data/lib/rails_generator/generators/applications/app/template_runner.rb +0 -401
  110. data/lib/rails_generator/generators/components/controller/USAGE +0 -30
  111. data/lib/rails_generator/generators/components/controller/controller_generator.rb +0 -43
  112. data/lib/rails_generator/generators/components/controller/templates/controller.rb +0 -7
  113. data/lib/rails_generator/generators/components/controller/templates/functional_test.rb +0 -8
  114. data/lib/rails_generator/generators/components/controller/templates/helper.rb +0 -2
  115. data/lib/rails_generator/generators/components/controller/templates/helper_test.rb +0 -4
  116. data/lib/rails_generator/generators/components/controller/templates/view.html.erb +0 -2
  117. data/lib/rails_generator/generators/components/helper/USAGE +0 -24
  118. data/lib/rails_generator/generators/components/helper/helper_generator.rb +0 -25
  119. data/lib/rails_generator/generators/components/helper/templates/helper.rb +0 -2
  120. data/lib/rails_generator/generators/components/helper/templates/helper_test.rb +0 -4
  121. data/lib/rails_generator/generators/components/integration_test/USAGE +0 -8
  122. data/lib/rails_generator/generators/components/integration_test/integration_test_generator.rb +0 -16
  123. data/lib/rails_generator/generators/components/integration_test/templates/integration_test.rb +0 -10
  124. data/lib/rails_generator/generators/components/mailer/USAGE +0 -16
  125. data/lib/rails_generator/generators/components/mailer/mailer_generator.rb +0 -30
  126. data/lib/rails_generator/generators/components/mailer/templates/fixture.erb +0 -3
  127. data/lib/rails_generator/generators/components/mailer/templates/fixture.rhtml +0 -0
  128. data/lib/rails_generator/generators/components/mailer/templates/mailer.rb +0 -15
  129. data/lib/rails_generator/generators/components/mailer/templates/unit_test.rb +0 -20
  130. data/lib/rails_generator/generators/components/mailer/templates/view.erb +0 -3
  131. data/lib/rails_generator/generators/components/mailer/templates/view.rhtml +0 -0
  132. data/lib/rails_generator/generators/components/metal/USAGE +0 -8
  133. data/lib/rails_generator/generators/components/metal/metal_generator.rb +0 -8
  134. data/lib/rails_generator/generators/components/metal/templates/metal.rb +0 -12
  135. data/lib/rails_generator/generators/components/migration/USAGE +0 -29
  136. data/lib/rails_generator/generators/components/migration/migration_generator.rb +0 -20
  137. data/lib/rails_generator/generators/components/migration/templates/migration.rb +0 -11
  138. data/lib/rails_generator/generators/components/model/USAGE +0 -27
  139. data/lib/rails_generator/generators/components/model/model_generator.rb +0 -52
  140. data/lib/rails_generator/generators/components/model/templates/fixtures.yml +0 -23
  141. data/lib/rails_generator/generators/components/model/templates/migration.rb +0 -16
  142. data/lib/rails_generator/generators/components/model/templates/model.rb +0 -5
  143. data/lib/rails_generator/generators/components/model/templates/unit_test.rb +0 -8
  144. data/lib/rails_generator/generators/components/observer/USAGE +0 -13
  145. data/lib/rails_generator/generators/components/observer/observer_generator.rb +0 -16
  146. data/lib/rails_generator/generators/components/observer/templates/observer.rb +0 -2
  147. data/lib/rails_generator/generators/components/observer/templates/unit_test.rb +0 -8
  148. data/lib/rails_generator/generators/components/performance_test/USAGE +0 -8
  149. data/lib/rails_generator/generators/components/performance_test/performance_test_generator.rb +0 -16
  150. data/lib/rails_generator/generators/components/performance_test/templates/performance_test.rb +0 -9
  151. data/lib/rails_generator/generators/components/plugin/USAGE +0 -25
  152. data/lib/rails_generator/generators/components/plugin/plugin_generator.rb +0 -39
  153. data/lib/rails_generator/generators/components/plugin/templates/MIT-LICENSE +0 -20
  154. data/lib/rails_generator/generators/components/plugin/templates/README +0 -13
  155. data/lib/rails_generator/generators/components/plugin/templates/Rakefile +0 -23
  156. data/lib/rails_generator/generators/components/plugin/templates/USAGE +0 -8
  157. data/lib/rails_generator/generators/components/plugin/templates/generator.rb +0 -8
  158. data/lib/rails_generator/generators/components/plugin/templates/init.rb +0 -1
  159. data/lib/rails_generator/generators/components/plugin/templates/install.rb +0 -1
  160. data/lib/rails_generator/generators/components/plugin/templates/plugin.rb +0 -1
  161. data/lib/rails_generator/generators/components/plugin/templates/tasks.rake +0 -4
  162. data/lib/rails_generator/generators/components/plugin/templates/test_helper.rb +0 -4
  163. data/lib/rails_generator/generators/components/plugin/templates/uninstall.rb +0 -1
  164. data/lib/rails_generator/generators/components/plugin/templates/unit_test.rb +0 -8
  165. data/lib/rails_generator/generators/components/resource/USAGE +0 -23
  166. data/lib/rails_generator/generators/components/resource/resource_generator.rb +0 -76
  167. data/lib/rails_generator/generators/components/resource/templates/controller.rb +0 -2
  168. data/lib/rails_generator/generators/components/resource/templates/functional_test.rb +0 -8
  169. data/lib/rails_generator/generators/components/resource/templates/helper.rb +0 -2
  170. data/lib/rails_generator/generators/components/resource/templates/helper_test.rb +0 -4
  171. data/lib/rails_generator/generators/components/scaffold/USAGE +0 -29
  172. data/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb +0 -103
  173. data/lib/rails_generator/generators/components/scaffold/templates/controller.rb +0 -83
  174. data/lib/rails_generator/generators/components/scaffold/templates/functional_test.rb +0 -45
  175. data/lib/rails_generator/generators/components/scaffold/templates/helper.rb +0 -2
  176. data/lib/rails_generator/generators/components/scaffold/templates/helper_test.rb +0 -4
  177. data/lib/rails_generator/generators/components/scaffold/templates/layout.html.erb +0 -17
  178. data/lib/rails_generator/generators/components/scaffold/templates/style.css +0 -54
  179. data/lib/rails_generator/generators/components/scaffold/templates/view_edit.html.erb +0 -18
  180. data/lib/rails_generator/generators/components/scaffold/templates/view_index.html.erb +0 -24
  181. data/lib/rails_generator/generators/components/scaffold/templates/view_new.html.erb +0 -17
  182. data/lib/rails_generator/generators/components/scaffold/templates/view_show.html.erb +0 -10
  183. data/lib/rails_generator/generators/components/session_migration/USAGE +0 -10
  184. data/lib/rails_generator/generators/components/session_migration/session_migration_generator.rb +0 -18
  185. data/lib/rails_generator/generators/components/session_migration/templates/migration.rb +0 -16
  186. data/lib/rails_generator/lookup.rb +0 -249
  187. data/lib/rails_generator/manifest.rb +0 -53
  188. data/lib/rails_generator/options.rb +0 -150
  189. data/lib/rails_generator/scripts.rb +0 -89
  190. data/lib/rails_generator/scripts/destroy.rb +0 -29
  191. data/lib/rails_generator/scripts/generate.rb +0 -7
  192. data/lib/rails_generator/scripts/update.rb +0 -12
  193. data/lib/rails_generator/secret_key_generator.rb +0 -24
  194. data/lib/rails_generator/simple_logger.rb +0 -46
  195. data/lib/rails_generator/spec.rb +0 -44
  196. data/lib/railties_path.rb +0 -1
  197. data/lib/ruby_version_check.rb +0 -17
  198. data/lib/rubyprof_ext.rb +0 -35
  199. data/lib/source_annotation_extractor.rb +0 -102
  200. data/lib/tasks/annotations.rake +0 -20
  201. data/lib/tasks/databases.rake +0 -436
  202. data/lib/tasks/documentation.rake +0 -93
  203. data/lib/tasks/framework.rake +0 -146
  204. data/lib/tasks/gems.rake +0 -78
  205. data/lib/tasks/log.rake +0 -9
  206. data/lib/tasks/middleware.rake +0 -7
  207. data/lib/tasks/misc.rake +0 -63
  208. data/lib/tasks/rails.rb +0 -14
  209. data/lib/tasks/routes.rake +0 -18
  210. data/lib/tasks/statistics.rake +0 -17
  211. data/lib/tasks/testing.rake +0 -139
  212. data/lib/tasks/tmp.rake +0 -37
  213. data/lib/test_help.rb +0 -38
  214. data/lib/webrick_server.rb +0 -156
  215. data/railties.gemspec +0 -22
@@ -1,198 +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 the plugins that are in engine-form (have an app/ directory)
26
- def engines
27
- @engines ||= plugins.select(&:engine?)
28
- end
29
-
30
- # Returns all the plugins that could be found by the current locators.
31
- def all_plugins
32
- @all_plugins ||= locate_plugins
33
- @all_plugins
34
- end
35
-
36
- def load_plugins
37
- plugins.each do |plugin|
38
- plugin.load(initializer)
39
- register_plugin_as_loaded(plugin)
40
- end
41
-
42
- configure_engines
43
-
44
- ensure_all_registered_plugins_are_loaded!
45
- end
46
-
47
- # Adds the load paths for every plugin into the $LOAD_PATH. Plugin load paths are
48
- # added *after* the application's <tt>lib</tt> directory, to ensure that an application
49
- # can always override code within a plugin.
50
- #
51
- # Plugin load paths are also added to Dependencies.autoload_paths, and Dependencies.autoload_once_paths.
52
- def add_plugin_load_paths
53
- plugins.each do |plugin|
54
- plugin.load_paths.each do |path|
55
- $LOAD_PATH.insert(application_lib_index + 1, path)
56
-
57
- ActiveSupport::Dependencies.autoload_paths << path
58
-
59
- unless configuration.reload_plugins?
60
- ActiveSupport::Dependencies.autoload_once_paths << path
61
- end
62
- end
63
- end
64
-
65
- $LOAD_PATH.uniq!
66
- end
67
-
68
- def engine_metal_paths
69
- engines.collect(&:metal_path)
70
- end
71
-
72
- protected
73
- def configure_engines
74
- if engines.any?
75
- add_engine_routing_configurations
76
- add_engine_locales
77
- add_engine_controller_paths
78
- add_engine_view_paths
79
- end
80
- end
81
-
82
- def add_engine_routing_configurations
83
- engines.select(&:routed?).collect(&:routing_file).each do |routing_file|
84
- ActionController::Routing::Routes.add_configuration_file(routing_file)
85
- end
86
- end
87
-
88
- def add_engine_locales
89
- # reverse it such that the last engine can overwrite translations from the first, like with routes
90
- locale_files = engines.select(&:localized?).collect(&:locale_files).reverse.flatten
91
- I18n.load_path += locale_files - I18n.load_path
92
- end
93
-
94
- def add_engine_controller_paths
95
- ActionController::Routing.controller_paths += engines.collect(&:controller_path)
96
- end
97
-
98
- def add_engine_view_paths
99
- # reverse it such that the last engine can overwrite view paths from the first, like with routes
100
- paths = ActionView::PathSet.new(engines.collect(&:view_path).reverse)
101
- ActionController::Base.view_paths.concat(paths)
102
- ActionMailer::Base.view_paths.concat(paths) if configuration.frameworks.include?(:action_mailer)
103
- end
104
-
105
- # The locate_plugins method uses each class in config.plugin_locators to
106
- # find the set of all plugins available to this Rails application.
107
- def locate_plugins
108
- configuration.plugin_locators.map do |locator|
109
- locator.new(initializer).plugins
110
- end.flatten
111
- # TODO: sorting based on config.plugins
112
- end
113
-
114
- def register_plugin_as_loaded(plugin)
115
- initializer.loaded_plugins << plugin
116
- end
117
-
118
- def configuration
119
- initializer.configuration
120
- end
121
-
122
- def should_load?(plugin)
123
- # uses Plugin#name and Plugin#valid?
124
- enabled?(plugin) && plugin.valid?
125
- end
126
-
127
- def order_plugins(plugin_a, plugin_b)
128
- if !explicit_plugin_loading_order?
129
- plugin_a <=> plugin_b
130
- else
131
- if !explicitly_enabled?(plugin_a) && !explicitly_enabled?(plugin_b)
132
- plugin_a <=> plugin_b
133
- else
134
- effective_order_of(plugin_a) <=> effective_order_of(plugin_b)
135
- end
136
- end
137
- end
138
-
139
- def effective_order_of(plugin)
140
- if explicitly_enabled?(plugin)
141
- registered_plugin_names.index(plugin.name)
142
- else
143
- registered_plugin_names.index('all')
144
- end
145
- end
146
-
147
- def application_lib_index
148
- $LOAD_PATH.index(File.join(RAILS_ROOT, 'lib')) || 0
149
- end
150
-
151
- def enabled?(plugin)
152
- !explicit_plugin_loading_order? || registered?(plugin)
153
- end
154
-
155
- def explicit_plugin_loading_order?
156
- !registered_plugin_names.nil?
157
- end
158
-
159
- def registered?(plugin)
160
- explicit_plugin_loading_order? && registered_plugins_names_plugin?(plugin)
161
- end
162
-
163
- def explicitly_enabled?(plugin)
164
- !explicit_plugin_loading_order? || explicitly_registered?(plugin)
165
- end
166
-
167
- def explicitly_registered?(plugin)
168
- explicit_plugin_loading_order? && registered_plugin_names.include?(plugin.name)
169
- end
170
-
171
- def registered_plugins_names_plugin?(plugin)
172
- registered_plugin_names.include?(plugin.name) || registered_plugin_names.include?('all')
173
- end
174
-
175
- # The plugins that have been explicitly listed with config.plugins. If this list is nil
176
- # then it means the client does not care which plugins or in what order they are loaded,
177
- # so we load all in alphabetical order. If it is an empty array, we load no plugins, if it is
178
- # non empty, we load the named plugins in the order specified.
179
- def registered_plugin_names
180
- configuration.plugins ? configuration.plugins.map(&:to_s) : nil
181
- end
182
-
183
- def loaded?(plugin_name)
184
- initializer.loaded_plugins.detect { |plugin| plugin.name == plugin_name.to_s }
185
- end
186
-
187
- def ensure_all_registered_plugins_are_loaded!
188
- if explicit_plugin_loading_order?
189
- if configuration.plugins.detect {|plugin| plugin != :all && !loaded?(plugin) }
190
- missing_plugins = configuration.plugins - (plugins.map{|p| p.name.to_sym} + [:all])
191
- raise LoadError, "Could not locate the following plugins: #{missing_plugins.to_sentence(:locale => :en)}"
192
- end
193
- end
194
- end
195
-
196
- end
197
- end
198
- 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
- # in 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
@@ -1,8 +0,0 @@
1
- module Rails
2
- module Rack
3
- autoload :Debugger, "rails/rack/debugger"
4
- autoload :LogTailer, "rails/rack/log_tailer"
5
- autoload :Metal, "rails/rack/metal"
6
- autoload :Static, "rails/rack/static"
7
- end
8
- end
@@ -1,23 +0,0 @@
1
- module Rails
2
- module Rack
3
- class Debugger
4
- def initialize(app)
5
- @app = app
6
-
7
- ARGV.clear # clear ARGV so that script/server options aren't passed to IRB
8
-
9
- require_library_or_gem 'ruby-debug'
10
- ::Debugger.start
11
- ::Debugger.settings[:autoeval] = true if ::Debugger.respond_to?(:settings)
12
- puts "=> Debugger enabled"
13
- rescue Exception
14
- puts "You need to install ruby-debug to run the server in debugging mode. With gems, use 'gem install ruby-debug'"
15
- exit
16
- end
17
-
18
- def call(env)
19
- @app.call(env)
20
- end
21
- end
22
- end
23
- end
@@ -1,35 +0,0 @@
1
- module Rails
2
- module Rack
3
- class LogTailer
4
- EnvironmentLog = "#{File.expand_path(Rails.root)}/log/#{Rails.env}.log"
5
-
6
- def initialize(app, log = nil)
7
- @app = app
8
-
9
- path = Pathname.new(log || EnvironmentLog).cleanpath
10
- @cursor = ::File.size(path)
11
- @last_checked = Time.now.to_f
12
-
13
- @file = ::File.open(path, 'r')
14
- end
15
-
16
- def call(env)
17
- response = @app.call(env)
18
- tail_log
19
- response
20
- end
21
-
22
- def tail_log
23
- @file.seek @cursor
24
-
25
- mod = @file.mtime.to_f
26
- if mod > @last_checked
27
- contents = @file.read
28
- @last_checked = mod
29
- @cursor += contents.size
30
- $stdout.print contents
31
- end
32
- end
33
- end
34
- end
35
- end
@@ -1,51 +0,0 @@
1
- require 'active_support/ordered_hash'
2
-
3
- module Rails
4
- module Rack
5
- class Metal
6
- NotFoundResponse = [404, {}, []].freeze
7
- NotFound = lambda { NotFoundResponse }
8
-
9
- cattr_accessor :metal_paths
10
- self.metal_paths = ["#{Rails.root}/app/metal"]
11
- cattr_accessor :requested_metals
12
-
13
- def self.metals
14
- matcher = /#{Regexp.escape('/app/metal/')}(.*)\.rb\Z/
15
- metal_glob = metal_paths.map{ |base| "#{base}/**/*.rb" }
16
- all_metals = {}
17
-
18
- metal_glob.each do |glob|
19
- Dir[glob].sort.map do |file|
20
- file = file.match(matcher)[1]
21
- all_metals[file.camelize] = file
22
- end
23
- end
24
-
25
- load_list = requested_metals || all_metals.keys
26
-
27
- load_list.map do |requested_metal|
28
- if metal = all_metals[requested_metal]
29
- require_dependency metal
30
- requested_metal.constantize
31
- end
32
- end.compact
33
- end
34
-
35
- def initialize(app)
36
- @app = app
37
- @metals = ActiveSupport::OrderedHash.new
38
- self.class.metals.each { |app| @metals[app] = true }
39
- freeze
40
- end
41
-
42
- def call(env)
43
- @metals.keys.each do |app|
44
- result = app.call(env)
45
- return result unless result[0].to_i == 404
46
- end
47
- @app.call(env)
48
- end
49
- end
50
- end
51
- end
@@ -1,46 +0,0 @@
1
- require 'rack/utils'
2
-
3
- module Rails
4
- module Rack
5
- class Static
6
- FILE_METHODS = %w(GET HEAD).freeze
7
-
8
- def initialize(app)
9
- @app = app
10
- @file_server = ::Rack::File.new(File.join(RAILS_ROOT, "public"))
11
- end
12
-
13
- def call(env)
14
- path = env['PATH_INFO'].chomp('/')
15
- method = env['REQUEST_METHOD']
16
-
17
- if FILE_METHODS.include?(method)
18
- if file_exist?(path)
19
- return @file_server.call(env)
20
- else
21
- cached_path = directory_exist?(path) ? "#{path}/index" : path
22
- cached_path += ::ActionController::Base.page_cache_extension
23
-
24
- if file_exist?(cached_path)
25
- env['PATH_INFO'] = cached_path
26
- return @file_server.call(env)
27
- end
28
- end
29
- end
30
-
31
- @app.call(env)
32
- end
33
-
34
- private
35
- def file_exist?(path)
36
- full_path = File.join(@file_server.root, ::Rack::Utils.unescape(path))
37
- File.file?(full_path) && File.readable?(full_path)
38
- end
39
-
40
- def directory_exist?(path)
41
- full_path = File.join(@file_server.root, ::Rack::Utils.unescape(path))
42
- File.directory?(full_path) && File.readable?(full_path)
43
- end
44
- end
45
- end
46
- end