Sha256: 42a6cc93e44a33db825749d91ef211795cf13de914f88b867d5b6494eeac5f42

Contents?: true

Size: 496 Bytes

Versions: 3

Compression:

Stored size: 496 Bytes

Contents

module ActionDispatch
  class Cascade
    def self.new(*apps)
      apps = apps.flatten

      case apps.length
      when 0
        raise ArgumentError, "app is required"
      when 1
        apps.first
      else
        super(apps)
      end
    end

    def initialize(apps)
      @apps = apps
    end

    def call(env)
      result = nil
      @apps.each do |app|
        result = app.call(env)
        break unless result[1]["X-Cascade"] == "pass"
      end
      result
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
actionpack-3.0.0.beta3 lib/action_dispatch/middleware/cascade.rb
actionpack-3.0.0.beta2 lib/action_dispatch/middleware/cascade.rb
actionpack-3.0.0.beta lib/action_dispatch/middleware/cascade.rb