class Gush::CLI
Public Class Methods
new(*)
click to toggle source
Calls superclass method
# File lib/gush/cli.rb, line 12 def initialize(*) super Gush.configure do |config| config.gushfile = options.fetch("gushfile", config.gushfile) config.concurrency = options.fetch("concurrency", config.concurrency) config.redis_url = options.fetch("redis", config.redis_url) config.namespace = options.fetch("namespace", config.namespace) config.ttl = options.fetch("ttl", config.ttl) end load_gushfile end
Public Instance Methods
create(name)
click to toggle source
# File lib/gush/cli.rb, line 25 def create(name) workflow = client.create_workflow(name) puts "Workflow created with id: #{workflow.id}" puts "Start it with command: gush start #{workflow.id}" end
create_and_start(name, *args)
click to toggle source
# File lib/gush/cli.rb, line 39 def create_and_start(name, *args) workflow = client.create_workflow(name) client.start_workflow(workflow.id, args) puts "Created and started workflow with id: #{workflow.id}" end
list()
click to toggle source
# File lib/gush/cli.rb, line 70 def list workflows = client.all_workflows rows = workflows.map do |workflow| [workflow.id, (Time.at(workflow.started_at) if workflow.started_at), workflow.class, {alignment: :center, value: status_for(workflow)}] end headers = [ {alignment: :center, value: 'id'}, {alignment: :center, value: 'started at'}, {alignment: :center, value: 'name'}, {alignment: :center, value: 'status'} ] puts Terminal::Table.new(headings: headers, rows: rows) end
rm(workflow_id)
click to toggle source
# File lib/gush/cli.rb, line 64 def rm(workflow_id) workflow = client.find_workflow(workflow_id) client.destroy_workflow(workflow) end
show(workflow_id)
click to toggle source
# File lib/gush/cli.rb, line 55 def show(workflow_id) workflow = client.find_workflow(workflow_id) display_overview_for(workflow) unless options[:skip_overview] display_jobs_list_for(workflow, options[:jobs]) unless options[:skip_jobs] end
start(*args)
click to toggle source
# File lib/gush/cli.rb, line 32 def start(*args) id = args.shift workflow = client.find_workflow(id) client.start_workflow(workflow, args) end
stop(*args)
click to toggle source
# File lib/gush/cli.rb, line 46 def stop(*args) id = args.shift client.stop_workflow(id) end
viz(name)
click to toggle source
# File lib/gush/cli.rb, line 85 def viz(name) client workflow = name.constantize.new graph = Graph.new(workflow) graph.viz Launchy.open graph.path end
Private Instance Methods
client()
click to toggle source
# File lib/gush/cli.rb, line 95 def client @client ||= Client.new end
display_jobs_list_for(workflow, jobs)
click to toggle source
# File lib/gush/cli.rb, line 111 def display_jobs_list_for(workflow, jobs) puts overview(workflow).jobs_list(jobs) end
display_overview_for(workflow)
click to toggle source
# File lib/gush/cli.rb, line 103 def display_overview_for(workflow) puts overview(workflow).table end
gushfile()
click to toggle source
# File lib/gush/cli.rb, line 115 def gushfile Gush.configuration.gushfile end
load_gushfile()
click to toggle source
# File lib/gush/cli.rb, line 119 def load_gushfile file = client.configuration.gushfile if !gushfile.exist? raise Thor::Error, "#{file} not found, please add it to your project".colorize(:red) end load file.to_s rescue LoadError raise Thor::Error, "failed to require #{file}".colorize(:red) end
overview(workflow)
click to toggle source
# File lib/gush/cli.rb, line 99 def overview(workflow) CLI::Overview.new(workflow) end
status_for(workflow)
click to toggle source
# File lib/gush/cli.rb, line 107 def status_for(workflow) overview(workflow).status end