Class: Ace::Retro::Molecules::RetroStructureValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/ace/retro/molecules/retro_structure_validator.rb

Overview

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

Instance Method Summary collapse

Constructor Details

#initialize(root_dir) ⇒ RetroStructureValidator

Returns a new instance of RetroStructureValidator.

Parameters:

  • root_dir (String)

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



13
14
15
# File 'lib/ace/retro/molecules/retro_structure_validator.rb', line 13

def initialize(root_dir)
  @root_dir = root_dir
end

Instance Method Details

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

Validate the entire retros directory structure

Returns:

  • (Array<Hash>)

    List of issues found



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/ace/retro/molecules/retro_structure_validator.rb', line 19

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

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

  check_folder_naming(root_dir, issues)
  check_retro_files(root_dir, issues)
  check_archive_partitions(root_dir, issues)
  check_stale_backups(root_dir, issues)
  check_empty_directories(root_dir, issues)

  issues
end