Class: Ace::Task::Molecules::TaskStructureValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/ace/task/molecules/task_structure_validator.rb

Overview

Validates the directory structure of a tasks root directory. Checks folder naming, file naming, and structural conventions.

Constant Summary collapse

FOLDER_PATTERN =

Task folder naming pattern: Ace::Task::Molecules::TaskStructureValidator.xxxxxx.txxx.t.yyy-slug

/^[0-9a-z]{3}\.[a-z]\.[0-9a-z]{3}-.+$/

Instance Method Summary collapse

Constructor Details

#initialize(root_dir) ⇒ TaskStructureValidator

Returns a new instance of TaskStructureValidator.

Parameters:

  • root_dir (String)

    Root directory for tasks (e.g., “.ace-tasks”)



15
16
17
# File 'lib/ace/task/molecules/task_structure_validator.rb', line 15

def initialize(root_dir)
  @root_dir = root_dir
end

Instance Method Details

#validate(root_dir = @root_dir) ⇒ Array<Hash>

Validate the entire tasks directory structure

Returns:

  • (Array<Hash>)

    List of issues found



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/ace/task/molecules/task_structure_validator.rb', line 21

def validate(root_dir = @root_dir)
  issues = []

  unless Dir.exist?(root_dir)
    issues << {type: :error, message: "Tasks root directory does not exist", location: root_dir}
    return issues
  end

  check_folder_naming(root_dir, issues)
  check_spec_files(root_dir, issues)
  check_stale_backups(root_dir, issues)
  check_empty_directories(root_dir, issues)

  issues
end