module BusinessPipeline::Step

Public Class Methods

included(base) click to toggle source
# File lib/business_pipeline/step.rb, line 9
def self.included(base)
  base.class_eval do
    include Hooks

    attr_reader :context
    private :context

    attr_reader :config
    private :config

    def self.inherited(child_class)
      child_class.instance_variable_set(:@hooks, hooks.clone)
    end
  end
end
inherited(child_class) click to toggle source
# File lib/business_pipeline/step.rb, line 19
def self.inherited(child_class)
  child_class.instance_variable_set(:@hooks, hooks.clone)
end
new(config = {}) click to toggle source
# File lib/business_pipeline/step.rb, line 25
def initialize(config = {})
  @config = BusinessPipeline::Config.new(config)
end

Public Instance Methods

call() click to toggle source
# File lib/business_pipeline/step.rb, line 29
def call
  fail NotImplementedError
end
fail!(additional_context = {}) click to toggle source
# File lib/business_pipeline/step.rb, line 33
def fail!(additional_context = {})
  context.fail!(additional_context)
end
perform(context = {}) click to toggle source
# File lib/business_pipeline/step.rb, line 37
def perform(context = {})
  @context = BusinessPipeline::Context.build(context)
  with_hooks { call }
  @context
end
succeed!(additional_context = {}) click to toggle source
# File lib/business_pipeline/step.rb, line 43
def succeed!(additional_context = {})
  context.succeed!(additional_context)
end