orbit-basic/lib/reroute_middleware.rb

26 lines
649 B
Ruby
Raw Normal View History

2010-01-11 09:09:50 +00:00
class RerouteMiddleware
def initialize(app)
@app = app
end
def call(env)
#Rails.logger.debug env.to_yaml
return @app.call(env) if env['REQUEST_URI'] =~ /^\/admin/
env['REQUEST_URI'] =~ /^\/([\w]*)/
parsed_entry_name = $1
2010-01-18 08:23:33 +00:00
entry = Item.find_by_name( parsed_entry_name )
2010-01-11 09:09:50 +00:00
2010-01-18 08:23:33 +00:00
case entry.type
when Component :
env['REQUEST_URI'] = env['REQUEST_URI'].sub!(parsed_entry_name, entry.engine_name)
2010-01-11 09:09:50 +00:00
env['QUERY_STRING'] = (env['QUERY_STRING'].blank?)? "entry_name=#{parsed_entry_name}" : "entry_name=#{parsed_entry_name}&#{env['QUERY_STRING']}"
end
@app.call(env)
end
end