class Rack::App::Router::Tree::Vein
Public Instance Methods
call(env)
click to toggle source
# File lib/rack/app/router/tree/vein.rb, line 11 def call(env) app = app_by(env) app && app.call(env) end
set(env)
click to toggle source
# File lib/rack/app/router/tree/vein.rb, line 4 def set(env) app = create_app(env) request_methods(env).each do |request_method| self[request_method.to_s.upcase] = app end end
Protected Instance Methods
app_by(env)
click to toggle source
# File lib/rack/app/router/tree/vein.rb, line 18 def app_by(env) self[env[Rack::App::Constants::ENV::REQUEST_METHOD]] end
create_app(env)
click to toggle source
# File lib/rack/app/router/tree/vein.rb, line 22 def create_app(env) app = env.endpoint.to_app env.params.empty? ? app : wrap(app, env) end
request_methods(env)
click to toggle source
# File lib/rack/app/router/tree/vein.rb, line 34 def request_methods(env) request_method = env.endpoint.request_method case request_method || raise('missing config: request_methods') when Rack::App::Constants::HTTP::METHOD::ANY Rack::App::Constants::HTTP::METHODS else [request_method].flatten.map(&:to_sym) end end
wrap(app, env)
click to toggle source
# File lib/rack/app/router/tree/vein.rb, line 27 def wrap(app, env) builder = Rack::Builder.new builder.use(Rack::App::Middlewares::SetPathParams, env) builder.run(app) builder.to_app end