class Rack::PactBroker::UseWhen::ConditionallyUseMiddleware

Attributes

app_without_middleware[R]
args[R]
block[R]
condition_proc[R]
kwargs[R]
middleware[R]

Public Class Methods

new(app, condition_proc, middleware, *args, **kwargs, &block) click to toggle source
# File lib/rack/pact_broker/use_when.rb, line 18
def initialize(app, condition_proc, middleware, *args, **kwargs, &block)
  @app_without_middleware = app
  @condition_proc = condition_proc
  @middleware = middleware
  @args = args
  @kwargs = kwargs
  @block = block
end

Public Instance Methods

call(env) click to toggle source
# File lib/rack/pact_broker/use_when.rb, line 27
def call(env)
  if condition_proc.call(env)
    app_with_middleware.call(env)
  else
    app_without_middleware.call(env)
  end
end

Private Instance Methods

app_with_middleware() click to toggle source
# File lib/rack/pact_broker/use_when.rb, line 39
def app_with_middleware
  @app_with_middleware ||= begin
    rack_builder = ::Rack::Builder.new
    rack_builder.use middleware, *args, **kwargs, &block
    rack_builder.run app_without_middleware
    rack_builder.to_app
  end
end