65 lines
1.5 KiB
Ruby
65 lines
1.5 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require_relative '../core/help_formatter'
|
|
require_relative 'generador'
|
|
|
|
module ADN
|
|
class SubcomandoProy
|
|
def initialize(args, logger)
|
|
@args = args
|
|
@logger = logger
|
|
end
|
|
|
|
def ejecutar
|
|
if @args.empty?
|
|
mostrar_ayuda
|
|
return
|
|
end
|
|
|
|
accion = @args.shift
|
|
|
|
case accion
|
|
when 'nuevo'
|
|
tipo = @args.shift
|
|
titulo = nil
|
|
opciones = {}
|
|
|
|
while (arg = @args.shift)
|
|
if arg =~ /^--(\w+)[:=](.+)$/
|
|
opciones[$1.to_sym] = $2.gsub(/^['"]|['"]$/, '')
|
|
elsif arg =~ /^--(\w+)$/
|
|
opciones[$1.to_sym] = true
|
|
else
|
|
titulo = arg unless titulo
|
|
end
|
|
end
|
|
|
|
GeneradorProy.nuevo(tipo, titulo, opciones)
|
|
when 'ayuda', 'help', '-h', '--help'
|
|
mostrar_ayuda
|
|
else
|
|
puts "✗ Acción desconocida: #{accion}"
|
|
mostrar_ayuda
|
|
exit 1
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def mostrar_ayuda
|
|
puts ADN::HelpFormatter.generar_help(
|
|
titulo: "Gestión de Proyectos",
|
|
descripcion: "Creación de estructuras basadas en plantillas",
|
|
uso: "./adn/tools/run proy nuevo [tipo]",
|
|
opciones: [
|
|
{ names: ['nuevo [plan|subplan|mejora|incidente|tarea]'], desc: "Crear estructura desde plantilla" }
|
|
],
|
|
ejemplos: [
|
|
{ cmd: "./adn/tools/run proy nuevo plan", desc: "Crear un plan nuevo" },
|
|
{ cmd: "./adn/tools/run proy nuevo mejora", desc: "Crear mejora" }
|
|
]
|
|
)
|
|
end
|
|
end
|
|
end
|