class Payload::RackContainer

Uses a dependency loader to load dependencies and inject them into the Rack environment.

Accepts a Rack application and a block for loading dependencies as a {Container}. The container will be injected into each Rack request as :dependencies in the Rack environment.

Used internally by {Railtie}.

@api private

Public Class Methods

new(app, &loader) click to toggle source
# File lib/payload/rack_container.rb, line 13
def initialize(app, &loader)
  @app = app
  @loader = loader
end

Public Instance Methods

call(env) click to toggle source
# File lib/payload/rack_container.rb, line 18
def call(env)
  env[:dependencies] = @loader.call.service(:rack_env) { |container| env }
  @app.call(env)
end