Module: Patcmd::CLI::Helpers::TaskHelper

Included in:
BaseCommand
Defined in:
lib/patcmd/cli/helpers/task_helper.rb

Defined Under Namespace

Classes: ValidationError

Instance Method Summary collapse

Instance Method Details

#display_task(task) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/patcmd/cli/helpers/task_helper.rb', line 29

def display_task(task)
  puts "Category: #{task["category"]}"
  puts "  Name: #{task["name"]}"
  puts "  Action: #{task["action"]}"
  puts "  Description: #{task["description"]}"
  puts "  Path: #{task["path"]}"
  puts "  Command: #{task["command"]}"
  puts "  Args: #{task["args"].join(" ")}" if task["args"].any?
  if task["environments"].any?
    envs = task["environments"].map { |k, v| "#{k}=#{v}" }.join(", ")
    puts "  Environments: #{envs}"
  end
  puts "-" * 40
end

#validate_task(task) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/patcmd/cli/helpers/task_helper.rb', line 9

def validate_task(task)
  required_fields = ["name", "description", "category", "path", "action", "command"]
  missing_fields = required_fields.select { |field| task[field].nil? || task[field].strip.empty? }

  unless missing_fields.empty?
    raise ValidationError, "Missing required fields: #{missing_fields.join(", ")}"
    exit(1)
  end

  unless task["args"].is_a?(Array)
    rails(ValidationError, "The 'args' field must be an array.")
    exit(1)
  end

  unless task["environments"].is_a?(Hash)
    rails(ValidationError, "The 'environments' field must be a hash.")
    exit(1)
  end
end