refactor(ambitos): Migración completa dtic-DASUTEN (A04) y dtic-BKPs (A03) + herramientas ADN
Migración dtic-DASUTEN a estándar A04: - A04_dtic-DASUTEN.md: Manifiesto creado - A04.P001 a A04.P005: Planes renombrados de P2601.* - _hist/_hist_P2601_dasuten.md: Legacy archivado Migración dtic-BKPs a estándar A03: - A03_dtic-BKPs.md: Manifiesto creado - A03.P001, A03.P002: Planes migrados - docs/ambito/dtic-BKPs/: Nueva estructura Herramientas ADN nuevas: - adn/tools/bkps/: BKPs migrado a tools ADN - adn/tools/cli/dron.rb: Vigía de tareas largas - adn/tools/cli/copiloto.rb: Asistente CLI - adn/tools/cli/novato.rb: CLI de aprendizaje Limpieza: - dtic-BKPs/ → _hist/dtic-BKPs/ (legacy archivado) - adn/tools/cli/backup.rb → _hist/ (migrado a bkps.rb) Otros: - nodos/pcv-dasu1.md, srvv-data.md, srvv-nginx-rm.md: Actualizados - adn/tools/core/conciliador.rb: Mejoras - adn/tools/w-zombi/data/cmd.json: Actualizado Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
018e45e046
commit
1802c25194
@@ -0,0 +1,50 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'yaml'
|
||||
require 'fileutils'
|
||||
|
||||
module ADN
|
||||
class Configurador
|
||||
CONFIG_PATH = File.join(__dir__, '..', 'config', 'config.yml')
|
||||
|
||||
def self.leer
|
||||
return {} unless File.exist?(CONFIG_PATH)
|
||||
YAML.load_file(CONFIG_PATH) || {}
|
||||
rescue StandardError => e
|
||||
warn "Error leyendo configuración: #{e.message}"
|
||||
{}
|
||||
end
|
||||
|
||||
def self.guardar(config)
|
||||
FileUtils.mkdir_p(File.dirname(CONFIG_PATH))
|
||||
File.write(CONFIG_PATH, config.to_yaml)
|
||||
true
|
||||
rescue StandardError => e
|
||||
warn "Error guardando configuración: #{e.message}"
|
||||
false
|
||||
end
|
||||
|
||||
def self.obtener(ruta_punto, default = nil)
|
||||
config = leer
|
||||
partes = ruta_punto.split('.')
|
||||
valor = config
|
||||
partes.each do |p|
|
||||
valor = valor[p] if valor.is_a?(Hash)
|
||||
return default if valor.nil?
|
||||
end
|
||||
valor
|
||||
end
|
||||
|
||||
def self.establecer(ruta_punto, nuevo_valor)
|
||||
config = leer
|
||||
partes = ruta_punto.split('.')
|
||||
temp = config
|
||||
partes[0...-1].each do |p|
|
||||
temp[p] ||= {}
|
||||
temp = temp[p]
|
||||
end
|
||||
temp[partes.last] = nuevo_valor
|
||||
guardar(config)
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user