diff options
author | Joshua Peek <josh@joshpeek.com> | 2008-12-16 13:11:51 -0600 |
---|---|---|
committer | Joshua Peek <josh@joshpeek.com> | 2008-12-16 13:15:06 -0600 |
commit | 8c3a54366435eebc2c8aa63b63e1349ce74a7b38 (patch) | |
tree | 547451f6c639994a948f8cba6505022458aedeac /railties/lib/initializer.rb | |
parent | c4023cbe206415cf3ca1ca92cd9980a4aa4aed00 (diff) | |
download | rails-8c3a54366435eebc2c8aa63b63e1349ce74a7b38.tar.gz rails-8c3a54366435eebc2c8aa63b63e1349ce74a7b38.tar.bz2 rails-8c3a54366435eebc2c8aa63b63e1349ce74a7b38.zip |
Introduce Rails Metal
# app/metal/poller.rb
class Poller < Rails::Rack::Metal
def call(env)
if env["PATH_INFO"] =~ /^\/poller/
[200, {"Content-Type" => "application/json"}, Message.recent.to_json]
else
super
end
end
end
* There is a generator to help you get started
`script/generate metal poller`
* Also, metal bits can be ran standalone with rackup
`rackup app/metal/poller.rb`
Diffstat (limited to 'railties/lib/initializer.rb')
-rw-r--r-- | railties/lib/initializer.rb | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/railties/lib/initializer.rb b/railties/lib/initializer.rb index 56e8ce95ab..f22e34c7dc 100644 --- a/railties/lib/initializer.rb +++ b/railties/lib/initializer.rb @@ -155,6 +155,8 @@ module Rails initialize_framework_settings initialize_framework_views + initialize_metal + add_support_load_paths load_gems @@ -533,6 +535,12 @@ Run `rake gems:install` to install the missing gems. end end + def initialize_metal + Dir["#{configuration.root_path}/app/metal/*.rb"].each do |file| + configuration.middleware.use(File.basename(file, '.rb').camelize) + end + end + # Initializes framework-specific settings for each of the loaded frameworks # (Configuration#frameworks). The available settings map to the accessors # on each of the corresponding Base classes. @@ -915,6 +923,7 @@ Run `rake gems:install` to install the missing gems. # Followed by the standard includes. paths.concat %w( app + app/metal app/models app/controllers app/helpers @@ -933,6 +942,7 @@ Run `rake gems:install` to install the missing gems. def default_eager_load_paths %w( + app/metal app/models app/controllers app/helpers |