class ActionSequence::Sequence

A Sequence calls an array of actions over a shared context, skipping the remaining actions if the context has failed

Attributes

actions[R]
context[R]

Public Class Methods

new(actions: [], initial_context: {}) click to toggle source
# File lib/action_sequence/sequence.rb, line 9
def initialize(actions: [], initial_context: {})
  @actions = actions
  @context = Context.new(initial_context: initial_context)
end

Public Instance Methods

call() click to toggle source
# File lib/action_sequence/sequence.rb, line 14
def call
  actions.each do |action|
    return context if context.failed?

    action.call(context)
  end

  context
end