From 8c3a54366435eebc2c8aa63b63e1349ce74a7b38 Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Tue, 16 Dec 2008 13:11:51 -0600 Subject: 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` --- .../generators/components/metal/templates/metal.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 railties/lib/rails_generator/generators/components/metal/templates/metal.rb (limited to 'railties/lib/rails_generator/generators/components/metal/templates') diff --git a/railties/lib/rails_generator/generators/components/metal/templates/metal.rb b/railties/lib/rails_generator/generators/components/metal/templates/metal.rb new file mode 100644 index 0000000000..39487263df --- /dev/null +++ b/railties/lib/rails_generator/generators/components/metal/templates/metal.rb @@ -0,0 +1,12 @@ +# Allow the metal piece to run in isolation +require(File.dirname(__FILE__) + "/../../config/environment") unless defined?(Rails) + +class <%= class_name %> < Rails::Rack::Metal + def call(env) + if env["PATH_INFO"] =~ /^\/<%= file_name %>/ + [200, {"Content-Type" => "text/html"}, "Hello, World!"] + else + super + end + end +end -- cgit v1.2.3