Class Merb::Rack::PathPrefix
In: merb-core/lib/merb-core/rack/middleware/path_prefix.rb
Parent: Merb::Rack::Middleware

Methods

Public Class methods

:api: private

[Source]

   # File merb-core/lib/merb-core/rack/middleware/path_prefix.rb, line 6
6:       def initialize(app, path_prefix = nil)
7:         super(app)
8:         @path_prefix = /^#{Regexp.escape(path_prefix)}/
9:       end

Public Instance methods

:api: plugin

[Source]

    # File merb-core/lib/merb-core/rack/middleware/path_prefix.rb, line 18
18:       def call(env)
19:         strip_path_prefix(env) 
20:         @app.call(env)
21:       end

:api: plugin

[Source]

    # File merb-core/lib/merb-core/rack/middleware/path_prefix.rb, line 12
12:       def deferred?(env)
13:         strip_path_prefix(env) 
14:         @app.deferred?(env)
15:       end

:api: private

[Source]

    # File merb-core/lib/merb-core/rack/middleware/path_prefix.rb, line 24
24:       def strip_path_prefix(env)
25:         ['PATH_INFO', 'REQUEST_URI'].each do |path_key|
26:           if env[path_key] =~ @path_prefix
27:             env[path_key].sub!(@path_prefix, Merb::Const::EMPTY_STRING)
28:             env[path_key] = Merb::Const::SLASH if env[path_key].empty?
29:           end
30:         end
31:       end

[Validate]