class Locd::CLI::Command::Job

TODO Doc me pls

Definitions

Public Class Methods

agent_class() click to toggle source

Helpers

# File lib/locd/cli/command/job.rb, line 38
def self.agent_class
  Locd::Agent::Job
end
parse_every_option(value) click to toggle source
# File lib/locd/cli/command/job.rb, line 42
def self.parse_every_option value
  case value
  when /\A\d+\z/, /\A\d+s\z/
    value.to_i
  when /\A\d+m\z/
    value[0...-1].to_i * 60
  when /\A\d+h\z/
    value[0...-1].to_i * 60 * 60
  when /\A\d+d\z/
    value[0...-1].to_i * 60 * 60 * 24
  else
    raise ArgumentError,
      "Can't parse `every` option value: #{ value.inspect }"
  end
end

Public Instance Methods

add(*cmd_template, **kwds) click to toggle source
Calls superclass method Locd::CLI::Command::Agent#add
# File lib/locd/cli/command/job/add.rb, line 37
def add           *cmd_template, **kwds
  logger.trace "#{ self.class.name }##{ __method__ }",
    options: options,
    cmd_template: cmd_template,
    kwds: kwds,
    shared: self.class.shared_method_options
  
  kwds[:start_interval] ||= get_start_interval
  
  super *cmd_template, **kwds
end

Protected Instance Methods

agent_table(agents) click to toggle source
# File lib/locd/cli/command/job.rb, line 62
def agent_table agents
  Locd::CLI::Table.build do |t|
    t.col "PID", &:pid
    t.col "LEC", desc: "Last Exit Code", &:last_exit_code
    t.col "File" do |agent| agent_file agent end
    
    t.rows agents
  end
end
get_start_interval() click to toggle source
# File lib/locd/cli/command/job.rb, line 72
def get_start_interval
  if options[:every] && options[:at]
    raise Thor::ConflictingArgumentError,
      "Don't supply both `every` and `at` options"
  end
  
  start_interval = if options[:every]
    self.class.parse_every_option options[:every]
  elsif options[:at]
    options[:at].map { |key, value|
      [key.to_sym, value.to_i]
    }.to_h
  else
    raise Thor::RequiredArgumentMissingError,
      "Must provide `every` or `at` option"
  end
  
  logger.debug "Parsed start interval", start_interval: start_interval
  
  start_interval
end