class Toys::Middleware::Stack


A stack of middleware specs.
#

def ==(other)

# @private
def ==(other)
  other.is_a?(Stack) &&
    pre_specs.eql?(other.pre_specs) &&
    default_specs.eql?(other.default_specs) &&
    post_specs.eql?(other.post_specs)
end

def add(middleware, *args, **kwargs, &block)

Overloads:
  • add(middleware_object)
  • add(array)
  • add(name, *args, **kwargs, &block)
def add(middleware, *args, **kwargs, &block)
  pre_specs.push(Middleware.spec(middleware, *args, **kwargs, &block))
end

def build(middleware_lookup)

Returns:
  • (Array) -
def build(middleware_lookup)
  (@pre_specs + @default_specs + @post_specs).map { |spec| spec.build(middleware_lookup) }
end

def dup

Returns:
  • (Toys::Middleware::Stack) -
def dup
  Stack.new(pre_specs: pre_specs.dup,
            post_specs: post_specs.dup,
            default_specs: default_specs.dup)
end

def hash

# @private
def hash
  [@pre_specs, @default_specs, @post_specs].hash
end

def initialize(default_specs: nil, pre_specs: nil, post_specs: nil)

# @private
def initialize(default_specs: nil, pre_specs: nil, post_specs: nil)
  @pre_specs = pre_specs || []
  @post_specs = post_specs || []
  @default_specs = default_specs || []
end