class Pakyow::Support::Pipeline::Callable

@api private

Public Class Methods

new(actions, context) click to toggle source
# File lib/pakyow/support/pipeline.rb, line 251
def initialize(actions, context)
  @stack = actions.map { |action|
    action.finalize(context)
  }
end

Public Instance Methods

call(object, stack = @stack.dup) click to toggle source
# File lib/pakyow/support/pipeline.rb, line 263
def call(object, stack = @stack.dup)
  catch :halt do
    until stack.empty? || object.halted?
      action = stack.shift
      if action.arity == 0
        action.call do
          call(object, stack)
        end
      else
        action.call(object) do
          call(object, stack)
        end
      end
    end
  end

  object.pipelined
end
initialize_copy(_) click to toggle source
Calls superclass method
# File lib/pakyow/support/pipeline.rb, line 257
def initialize_copy(_)
  @stack = @stack.dup

  super
end