Class: MaintenanceTasks::CLI

Inherits:
Thor
  • Object
show all
Defined in:
lib/maintenance_tasks/cli.rb

Overview

Defines the command line interface commands exposed by Maintenance Tasks in the executable file.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.exit_on_failure?Boolean

Return a failed exit status in case of an error.

Returns:

  • (Boolean)


12
13
14
# File 'lib/maintenance_tasks/cli.rb', line 12

def exit_on_failure?
  true
end

Instance Method Details

#listObject

Command to list all available Tasks.

It needs to use Task.load_all in order to load all the tasks available in the project before displaying them.



56
57
58
# File 'lib/maintenance_tasks/cli.rb', line 56

def list
  say(Task.load_all.map(&:name).sort.join("\n"))
end

#perform(name) ⇒ Object

Command to run a Task.

It instantiates a Runner and sends a run message with the given Task name. If a CSV file is supplied using the --csv option, an attachable with the File IO object is sent along with the Task name to run. If arguments are supplied using the --arguments option, these are also passed to run.

Parameters:

  • name (String)

    the name of the Task to be run.



42
43
44
45
46
47
48
# File 'lib/maintenance_tasks/cli.rb', line 42

def perform(name)
  arguments = options[:arguments] || {}
  task = Runner.run(name: name, csv_file: csv_file, arguments: arguments)
  say_status(:success, "#{task.name} was enqueued.", :green)
rescue => error
  say_status(:error, error.message, :red)
end