class Dynflow::Middleware::Stack
Attributes
action[R]
middleware[R]
middleware_class[R]
Public Class Methods
build(middleware_classes, method, action, &block)
click to toggle source
# File lib/dynflow/middleware/stack.rb, line 7 def self.build(middleware_classes, method, action, &block) middleware_classes.reverse_each.reduce(block) do |stack, klass| Middleware::Stack.new(stack, klass, method, action) end end
new(next_stack, middleware_class, method, action)
click to toggle source
# File lib/dynflow/middleware/stack.rb, line 13 def initialize(next_stack, middleware_class, method, action) @middleware_class = Child! middleware_class, Middleware @middleware = middleware_class.new self @action = Type! action, Dynflow::Action, NilClass @method = Match! method, :delay, :plan, :run, :finalize, :plan_phase, :finalize_phase, :present @next_stack = Type! next_stack, Middleware::Stack, Proc end
Public Instance Methods
call(*args)
click to toggle source
# File lib/dynflow/middleware/stack.rb, line 21 def call(*args) @middleware.send @method, *args end
pass(*args)
click to toggle source
# File lib/dynflow/middleware/stack.rb, line 25 def pass(*args) @next_stack.call(*args) end