class Serf::Builder

Public Class Methods

new(*args, &block) click to toggle source
# File lib/serf/builder.rb, line 14
def initialize(*args, &block)
  opts = Optser.extract_options! args

  @run = opts.get :interactor
  @use = []
  @policy_chain = opts.get :policy_chain, []

  if block_given?
    instance_eval(&block)
  else
    use_defaults
  end
end

Public Instance Methods

run(interactor) click to toggle source
# File lib/serf/builder.rb, line 71
def run(interactor)
  @run = interactor
end
to_app() click to toggle source
# File lib/serf/builder.rb, line 75
def to_app
  @use.reverse.inject(@run) { |a,e| e[a] }
end
use(middleware, *args, &block) click to toggle source
# File lib/serf/builder.rb, line 67
def use(middleware, *args, &block)
  @use << proc { |app| middleware.new(app, *args, &block) }
end
use_default_middleware() click to toggle source

Add the following middleware to the chain:

use Serf::Middleware::RequestTimer
use Serf::Middleware::ParcelMasher
use Serf::Middleware::UuidTagger
use Serf::Middleware::ErrorHandler
# File lib/serf/builder.rb, line 47
def use_default_middleware
  use Serf::Middleware::RequestTimer
  use Serf::Middleware::ParcelMasher
  use Serf::Middleware::UuidTagger
  use Serf::Middleware::ErrorHandler
end
use_default_serfer_stage() click to toggle source

Add the following middleware to the chain:

use Serf::Middleware::ParcelFreezer
use Serf::Middleware::PolicyChecker, @policy_chain
use Serf::Serfer
# File lib/serf/builder.rb, line 61
def use_default_serfer_stage
  use Serf::Middleware::ParcelFreezer
  use Serf::Middleware::PolicyChecker, policy_chain: @policy_chain
  use Serf::Serfer
end
use_defaults() click to toggle source

Set a default chain of the following:

use_default_middleware
use_default_serfer_stage
# File lib/serf/builder.rb, line 34
def use_defaults
  use_default_middleware
  use_default_serfer_stage
end