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