class Nocode::JobExecutor

Manages the lifecycle and executes a job.

Constants

PARAMETERS_KEY
REGISTERS_KEY
STEPS_KEY

Attributes

io[R]
yaml[R]

Public Class Methods

new(yaml, io: $stdout) click to toggle source
# File lib/nocode/job_executor.rb, line 15
def initialize(yaml, io: $stdout)
  @yaml = yaml.respond_to?(:read) ? yaml.read : yaml
  @yaml = YAML.safe_load(@yaml) || {}
  @io   = io

  freeze
end

Public Instance Methods

execute() click to toggle source
# File lib/nocode/job_executor.rb, line 23
def execute
  steps      = yaml[STEPS_KEY] || []
  parameters = yaml[PARAMETERS_KEY] || {}
  registers  = yaml[REGISTERS_KEY] || {}

  context = Context.new(
    io: io,
    parameters: parameters,
    registers: registers
  )

  log_title(context)

  StepsExecutor.new(context: context, steps: steps).execute

  context.log("Ended: #{DateTime.now}")
  context.log_line

  context
end

Private Instance Methods

log_title(context) click to toggle source
# File lib/nocode/job_executor.rb, line 46
def log_title(context)
  context.log_line

  context.log('Nocode Execution')
  context.log("Started: #{DateTime.now}")

  context.log_line
end