Parent

Methods

Rack::ExpectationCascade

Attributes

apps[R]

Public Class Methods

new() click to toggle source
# File lib/rack/contrib/expectation_cascade.rb, line 11
def initialize
  @apps = []
  yield self if block_given?
end

Public Instance Methods

<<(app) click to toggle source
# File lib/rack/contrib/expectation_cascade.rb, line 28
def <<(app)
  @apps << app
end
call(env) click to toggle source
# File lib/rack/contrib/expectation_cascade.rb, line 16
def call(env)
  set_expectation = env[Expect] != ContinueExpectation
  env[Expect] = ContinueExpectation if set_expectation
  @apps.each do |app|
    result = app.call(env)
    return result unless result[0].to_i == 417
  end
  set_expectation ? NotFound : ExpectationFailed
ensure
  env.delete(Expect) if set_expectation
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.