Metal - How can i do to implement the same effect in Rails3?

--------------code-begin----------------

Allow the metal piece to run in isolation

require(File.dirname(FILE) + “/…/…/config/environment”) unless
defined?(Rails)

class Accelerator
def self.call(env)
if env[“PATH_INFO”] =~ /^/accelerator/
[200, {“Content-Type” => “text/html”}, [“Hello, World!”]]
else
[404, {“Content-Type” => “text/html”}, [“Not Found”]]
end
end
end
--------------code-end------------------
with the code i can process every request without configure rails
router. how can i do the same thing in rails3?

On Thu, Aug 4, 2011 at 12:09 AM, Quon [email protected] wrote:

 [404, {"Content-Type" => "text/html"}, ["Not Found"]]

end
end
end
--------------code-end------------------
with the code i can process every request without configure rails
router. how can i do the same thing in rails3?

Quon, the cool thing about Rails 3 is that the router can accept any
Rack
application. Thus, one can do the above in Rails 3 as follows:

routes.rb:

root :to => Accelerator
match ‘:controller(/:action(/:id(.:format)))’ => Accelerator

application.rb:

config.autoload_paths += %W(#{config.root}/lib)
config.autoload_paths += Dir[“#{config.root}/lib/**/”]

lib/accelerator.rb:

class Accelerator
def self.call(env)
if env[“PATH_INFO”] =~ /^/accelerator/
[200, {“Content-Type” => “text/html”}, [“Hello, World!”]]
else
[404, {“Content-Type” => “text/html”}, [“Not Found”]]
end
end
end

This is one way to do it but I’m sure it’s a Rails 3 way to DRY up the
routes.

Good luck,

-Conrad

Thank you for your help, I think it is what i need.