[ADN] Fase 10: Saneamiento y Consolidación - Un solo punto de verdad
- S1: Eliminar 'triggers' duplicado en run (líneas 109/131) - S2: Eliminar cli/commit.rb (truncado, sin uso) - S3: Eliminar cli/inicio.rb y cli/cierre.rb (legacy, jornada.rb los reemplaza) - S4: Mover 4 planes obsoletos de docs/plan/adn/ a docs/_hist/plan/adn/ - S5: Mover 14 backups de planes y 3 docs técnicos a docs/_hist/ - S6: Eliminar manifiesto vacío P2604_proyecto_p2604.md - S7: Corregir referencia a plan obsoleto en run - S8: Dejar de cargar core/validador.rb obsoleto en run - S9: Limpiar progreso duplicado en P2604_mejoras_ADN.md - Agregar Fase 10 al plan P2604 con 10 tareas - Un solo punto de verdad: adn/README.md - Un solo plan: docs/proy/p2604_mejoras_ADN/P2604_mejoras_ADN.md - Registro en bitácora: evento 1073
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# adn/tools/core/help_formatter.rb - Formateador de ayuda estandarizado
|
||||
# ======================================================================
|
||||
# Helper reutilizable para formateo consistente de --help en CLI
|
||||
|
||||
require_relative 'colores'
|
||||
|
||||
module ADN
|
||||
module HelpFormatter
|
||||
module_function
|
||||
|
||||
def format_header(titulo, descripcion = nil)
|
||||
lines = []
|
||||
lines << "#{Color::BOLD}#{titulo}#{Color::RESET}"
|
||||
lines << "#{Color::DIM}#{'=' * titulo.length}#{Color::RESET}" if descripcion
|
||||
lines << ""
|
||||
lines << "#{Color::CYAN}#{descripcion}#{Color::RESET}" if descripcion
|
||||
lines << ""
|
||||
lines.join("\n")
|
||||
end
|
||||
|
||||
def format_usage(comando, formato)
|
||||
"Uso: #{Color::YELLOW}#{comando}#{Color::RESET} #{formato}"
|
||||
end
|
||||
|
||||
def format_option(opciones, descripcion, default = nil)
|
||||
opt_str = opciones.map { |o| o.length > 1 ? "--#{o}" : "-#{o}" }.join(', ')
|
||||
default_str = default ? " (default: #{default})" : ""
|
||||
" #{Color::GREEN}#{opt_str.ljust(20)}#{Color::RESET} #{descripcion}#{default_str}"
|
||||
end
|
||||
|
||||
def format_example(comando, descripcion)
|
||||
"#{Color::DIM} $ #{comando}#{Color::RESET}\n #{Color::CYAN}#{descripcion}#{Color::RESET}"
|
||||
end
|
||||
|
||||
def format_section(titulo)
|
||||
"\n#{Color::BOLD}#{titulo}#{Color::RESET}\n"
|
||||
end
|
||||
|
||||
def generar_help(titulo:, descripcion:, uso:, opciones:, ejemplos: [])
|
||||
lines = []
|
||||
lines << format_header(titulo, descripcion)
|
||||
lines << uso
|
||||
lines << ""
|
||||
|
||||
if opciones.any?
|
||||
lines << format_section("Opciones:")
|
||||
opciones.each do |opt|
|
||||
lines << format_option(opt[:names], opt[:desc], opt[:default])
|
||||
end
|
||||
end
|
||||
|
||||
if ejemplos.any?
|
||||
lines << format_section("Ejemplos:")
|
||||
ejemplos.each do |ej|
|
||||
lines << format_example(ej[:cmd], ej[:desc])
|
||||
end
|
||||
end
|
||||
|
||||
lines.join("\n")
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user