Class: Equilibrium::Commands::UncatalogCommand

Inherits:
Object
  • Object
show all
Includes:
Mixins::ErrorHandling, Mixins::InputOutput
Defined in:
lib/equilibrium/commands/uncatalog_command.rb

Overview

Command for converting catalog format back to expected/actual format

Instance Method Summary collapse

Methods included from Mixins::InputOutput

#format_output, #read_input_data

Methods included from Mixins::ErrorHandling

#with_error_handling

Instance Method Details

#execute(file_path = nil) ⇒ Object

Execute the uncatalog command



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/equilibrium/commands/uncatalog_command.rb', line 21

def execute(file_path = nil)
  with_error_handling do
    # Read input from file or stdin
    input = read_input_data(file_path, "No input provided. Use: equilibrium catalog registry | equilibrium uncatalog")

    # Parse and validate JSON
    data = JSON.parse(input)
    SchemaValidator.validate!(data, Equilibrium::Schemas::CATALOG, error_prefix: "Catalog schema validation failed")

    # Convert back to expected/actual format
    result = CatalogBuilder.reverse_catalog(data)

    # Validate output before printing
    SchemaValidator.validate!(result, Equilibrium::Schemas::EXPECTED_ACTUAL, error_prefix: "Output validation failed")

    # Output as JSON
    puts JSON.pretty_generate(result)
  end
end