Sha256: b666f63e3685e0909e211c6c81083bc81e712f345ab431f13bcf726d5169c6dd

Contents?: true

Size: 1022 Bytes

Versions: 26

Compression:

Stored size: 1022 Bytes

Contents

require 'routemaster/middleware/root_post_only'
require 'routemaster/middleware/authenticate'
require 'routemaster/middleware/parse'
require 'routemaster/drain/terminator'
require 'rack/builder'
require 'delegate'

module Routemaster
  module Drain
    # Rack application which authenticates, parses, and broadcasts events
    # received from Routemaster.
    #
    # See the various corresponding middleware for details on operation:
    # {Middleware::Authenticate}, {Middleware::Parse}, and terminates with
    # {Terminator}.
    #
    class Basic
      extend Forwardable

      def initialize(options = {})
        @terminator = terminator = Terminator.new
        @app = ::Rack::Builder.app do
          use Middleware::RootPostOnly
          use Middleware::Authenticate, options
          use Middleware::Parse
          run terminator
        end
      end

      # delegate :call => :@app

      def call(env)
        @app.call(env)
      end

      delegate [:on, :subscribe] => :@terminator
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
routemaster-drain-3.7.1 lib/routemaster/drain/basic.rb
routemaster-drain-3.7.0 lib/routemaster/drain/basic.rb
routemaster-drain-3.6.8 lib/routemaster/drain/basic.rb
routemaster-drain-3.6.7 lib/routemaster/drain/basic.rb
routemaster-drain-3.6.6 lib/routemaster/drain/basic.rb
routemaster-drain-3.6.5 lib/routemaster/drain/basic.rb
routemaster-drain-3.6.4 lib/routemaster/drain/basic.rb
routemaster-drain-3.6.3 lib/routemaster/drain/basic.rb
routemaster-drain-3.6.2 lib/routemaster/drain/basic.rb
routemaster-drain-3.6.1 lib/routemaster/drain/basic.rb
routemaster-drain-3.6.0 lib/routemaster/drain/basic.rb
routemaster-drain-3.5.1 lib/routemaster/drain/basic.rb
routemaster-drain-3.5.0 lib/routemaster/drain/basic.rb
routemaster-drain-3.4.0 lib/routemaster/drain/basic.rb
routemaster-drain-3.3.0 lib/routemaster/drain/basic.rb
routemaster-drain-3.2.0 lib/routemaster/drain/basic.rb
routemaster-drain-3.1.0 lib/routemaster/drain/basic.rb
routemaster-drain-3.0.3 lib/routemaster/drain/basic.rb
routemaster-drain-3.0.2 lib/routemaster/drain/basic.rb
routemaster-drain-3.0.1 lib/routemaster/drain/basic.rb