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