Sha256: a507f8cb525f45f3091dbbd2e48227b47ec2446541a63788514ae286789013c0

Contents?: true

Size: 895 Bytes

Versions: 8

Compression:

Stored size: 895 Bytes

Contents

module Eco
  class CLI

    def initialize
      @config = nil
    end

    def args
      ARGV
    end

    def options
      @options ||= {}
    end

    def config
      @config ||= Eco::CLI::Config.new(cli: self)
      @config.tap do |cnf|
        yield(cnf) if block_given?
      end
    end

    def workflow
      @workflow ||= Eco::CLI::Workflow.new(cli: self)
    end

    def run(session:)
      io = Eco::API::UseCases::BaseIO.new(session: session, options: options)
      
      session.workflow(io: io) do |wf, io|
        io = wf.run(:options, io: io)
        io = wf.run(:load, io: io)
        io = wf.run(:usecases, io: io)
        io = wf.run(:launch_jobs, io: io)
        io = wf.run(:post_launch, io: io)
        io = wf.run(:end, io: io)
      end
    end

  end
end

require_relative 'cli/scripting'
require_relative 'cli/config'

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
eco-helpers-1.1.2 lib/eco/cli.rb
eco-helpers-1.1.1 lib/eco/cli.rb
eco-helpers-1.0.14 lib/eco/cli.rb
eco-helpers-1.0.13 lib/eco/cli.rb
eco-helpers-1.0.12 lib/eco/cli.rb
eco-helpers-1.0.11 lib/eco/cli.rb
eco-helpers-1.0.10 lib/eco/cli.rb
eco-helpers-1.0.9 lib/eco/cli.rb