class Cadence::Workflow

Public Class Methods

execute_in_context(context, input) click to toggle source
# File lib/cadence/workflow.rb, line 10
def self.execute_in_context(context, input)
  Cadence::ThreadLocalContext.set(context)

  workflow = new(context)
  result = workflow.execute(*input)

  context.complete(result)
rescue StandardError, ScriptError => error
  Cadence.logger.error("Workflow execution failed with: #{error.inspect}")
  Cadence.logger.debug(error.backtrace.join("\n"))

  context.fail(error.class.name, error.message)
end
new(context) click to toggle source
# File lib/cadence/workflow.rb, line 24
def initialize(context)
  @context = context
end

Public Instance Methods

execute() click to toggle source
# File lib/cadence/workflow.rb, line 28
def execute
  raise NotImplementedError, '#execute method must be implemented by a subclass'
end

Private Instance Methods

logger() click to toggle source
# File lib/cadence/workflow.rb, line 38
def logger
  workflow.logger
end
workflow() click to toggle source
# File lib/cadence/workflow.rb, line 34
def workflow
  @context
end