class Rack::App::Middlewares::Configuration

Public Class Methods

new(app, config) click to toggle source
# File lib/rack/app/middlewares/configuration.rb, line 6
def initialize(app, config)
  @app = app || raise
  @serializer = config.serializer || raise
  @handler_class = config.app_class || raise
  @payload_parser = config.payload_builder.to_parser || raise
end

Public Instance Methods

call(env) click to toggle source
# File lib/rack/app/middlewares/configuration.rb, line 13
def call(env)
  env[::Rack::App::Constants::ENV::HANDLER]= handler(env)
  env[::Rack::App::Constants::ENV::SERIALIZER]= @serializer
  env[::Rack::App::Constants::ENV::PAYLOAD_PARSER]= @payload_parser
  env[::Rack::App::Constants::ENV::PAYLOAD_GETTER]= lambda do
    env[::Rack::App::Constants::ENV::PARSED_PAYLOAD] ||= env[::Rack::App::Constants::ENV::PAYLOAD_PARSER].parse_env(env)
  end
  @app.call(env)
end

Protected Instance Methods

extname(env) click to toggle source
# File lib/rack/app/middlewares/configuration.rb, line 32
def extname(env)
  path_info = env[::Rack::App::Constants::ENV::PATH_INFO]
  File.extname(path_info.split("/").last.to_s)
end
handler(env) click to toggle source
# File lib/rack/app/middlewares/configuration.rb, line 25
def handler(env)
  new_handler = @handler_class.new
  new_handler.request = ::Rack::Request.new(env)
  new_handler.response = ::Rack::Response.new
  new_handler
end