docs: Plan P2603.01 Automatización Zoom y actualizaciones P2601.09
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative '../core/help_formatter'
|
||||
require_relative 'proy/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
|
||||
GeneradorProy.nuevo(tipo)
|
||||
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
|
||||
@@ -0,0 +1,20 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative 'plantillas'
|
||||
|
||||
module ADN
|
||||
class GeneradorProy
|
||||
def self.nuevo(tipo)
|
||||
unless Plantillas.existe?(tipo)
|
||||
puts "✗ Tipo inválido: #{tipo}"
|
||||
return
|
||||
end
|
||||
|
||||
contenido = Plantillas.obtener(tipo)
|
||||
nombre_archivo = "nuevo_#{tipo}.md"
|
||||
|
||||
File.write(nombre_archivo, contenido)
|
||||
puts "✓ Archivo generado: #{nombre_archivo}"
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,85 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module ADN
|
||||
module Plantillas
|
||||
|
||||
def self.existe?(tipo)
|
||||
plantillas.key?(tipo)
|
||||
end
|
||||
|
||||
def self.obtener(tipo)
|
||||
plantillas[tipo]
|
||||
end
|
||||
|
||||
def self.plantillas
|
||||
{
|
||||
"plan" => template_plan,
|
||||
"subplan" => template_subplan,
|
||||
"mejora" => template_mejora,
|
||||
"incidente" => template_incidente,
|
||||
"tarea" => template_tarea
|
||||
}
|
||||
end
|
||||
|
||||
def self.template_plan
|
||||
<<~MD
|
||||
# [Código] - Plan
|
||||
|
||||
## Objetivo
|
||||
...
|
||||
|
||||
## Fases
|
||||
- [ ] Tarea
|
||||
MD
|
||||
end
|
||||
|
||||
def self.template_subplan
|
||||
<<~MD
|
||||
# [Código] - Subplan Técnico
|
||||
|
||||
## Contexto Técnico
|
||||
...
|
||||
|
||||
## Procedimiento
|
||||
...
|
||||
MD
|
||||
end
|
||||
|
||||
def self.template_mejora
|
||||
<<~MD
|
||||
# [Código] - Mejora
|
||||
|
||||
## Objetivo
|
||||
...
|
||||
|
||||
## Implementación
|
||||
...
|
||||
MD
|
||||
end
|
||||
|
||||
def self.template_incidente
|
||||
<<~MD
|
||||
# [Código] - Incidente
|
||||
|
||||
## Descripción
|
||||
...
|
||||
|
||||
## Resolución
|
||||
...
|
||||
MD
|
||||
end
|
||||
|
||||
def self.template_tarea
|
||||
<<~MD
|
||||
# [Código] - Tarea
|
||||
|
||||
## Descripción
|
||||
...
|
||||
|
||||
## Estado
|
||||
⏳
|
||||
MD
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,26 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module ADN
|
||||
module HelpFormatter
|
||||
def self.generar_help(titulo:, descripcion:, uso:, opciones:, ejemplos:)
|
||||
output = []
|
||||
output << titulo
|
||||
output << "-" * titulo.length
|
||||
output << descripcion
|
||||
output << ""
|
||||
output << "Uso:"
|
||||
output << " #{uso}"
|
||||
output << ""
|
||||
output << "Opciones:"
|
||||
opciones.each do |opt|
|
||||
output << " #{opt[:names].join(', ')} - #{opt[:desc]}"
|
||||
end
|
||||
output << ""
|
||||
output << "Ejemplos:"
|
||||
ejemplos.each do |ej|
|
||||
output << " #{ej[:cmd]} - #{ej[:desc]}"
|
||||
end
|
||||
output.join("\n")
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user