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?

--------------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?

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.