class Burner::Cli

Process a single string as a Pipeline. This is mainly to back the command-line interface.

Attributes

payload[R]
pipeline[R]

Public Class Methods

new(args) click to toggle source
# File lib/burner/cli.rb, line 17
def initialize(args)
  path      = args.first
  params    = extract_cli_params(args)
  config    = read_yaml(path)
  @pipeline = Burner::Pipeline.make(jobs: config['jobs'], steps: config['steps'])
  @payload  = Payload.new(params: params)

  freeze
end

Public Instance Methods

execute() click to toggle source
# File lib/burner/cli.rb, line 27
def execute
  pipeline.execute(payload: payload)
end

Private Instance Methods

extract_cli_params(args) click to toggle source
# File lib/burner/cli.rb, line 39
def extract_cli_params(args)
  args[1..-1].each_with_object({}) do |arg, memo|
    parts = arg.to_s.split('=')

    memo[parts.first] = parts.last
  end
end
read_yaml(path) click to toggle source
# File lib/burner/cli.rb, line 33
def read_yaml(path)
  yaml = IO.read(path)

  YAML.safe_load(yaml)
end