class Merb::Rack::PathPrefix
Public Class Methods
new(app, path_prefix = nil)
click to toggle source
:api: private
Calls superclass method
Merb::Rack::Middleware.new
# File lib/merb-core/rack/middleware/path_prefix.rb, line 6 def initialize(app, path_prefix = nil) super(app) @path_prefix = /^#{Regexp.escape(path_prefix)}/ end
Public Instance Methods
call(env)
click to toggle source
:api: plugin
# File lib/merb-core/rack/middleware/path_prefix.rb, line 18 def call(env) strip_path_prefix(env) @app.call(env) end
deferred?(env)
click to toggle source
:api: plugin
# File lib/merb-core/rack/middleware/path_prefix.rb, line 12 def deferred?(env) strip_path_prefix(env) @app.deferred?(env) end
strip_path_prefix(env)
click to toggle source
:api: private
# File lib/merb-core/rack/middleware/path_prefix.rb, line 24 def strip_path_prefix(env) ['PATH_INFO', 'REQUEST_URI'].each do |path_key| if env[path_key] =~ @path_prefix env[path_key].sub!(@path_prefix, Merb::Const::EMPTY_STRING) env[path_key] = Merb::Const::SLASH if env[path_key].empty? end end end