[ADN / Bitácora] Evolución Progresiva: Sistema de Iconografía Dual (Estado + Semántica)
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# ==========================================================
|
||||
# FILE: fxs/config_handler.rb
|
||||
# ==========================================================
|
||||
|
||||
def cargar_configuracion
|
||||
unless File.exist?(APP_CFG_RUTA_ARCHIVO)
|
||||
puts "#{ICONO_WARN} Archivo de configuración de tareas no encontrado: #{APP_CFG_RUTA_ARCHIVO}."
|
||||
puts "#{ICONO_INFO} Usando configuración interna. Los cambios se guardarán en un nuevo archivo."
|
||||
# Si el archivo no existe, devuelve valores predeterminados (vacíos o un ejemplo)
|
||||
return [], [], true # Retorna tareas vacías, comandos vacíos y auto_avanzar en true
|
||||
end
|
||||
|
||||
begin
|
||||
# Carga el archivo de configuración. Esto definirá TAREAS_CONFIG y COMANDOS_CONFIG
|
||||
load APP_CFG_RUTA_ARCHIVO
|
||||
|
||||
unless defined?(TAREAS_CONFIG) && TAREAS_CONFIG.is_a?(Array)
|
||||
puts "#{ICONO_ERROR} TAREAS_CONFIG no está definida correctamente en '#{APP_CFG_RUTA_ARCHIVO}'."
|
||||
exit 1
|
||||
end
|
||||
|
||||
unless defined?(COMANDOS_CONFIG) && COMANDOS_CONFIG.is_a?(Array)
|
||||
puts "#{ICONO_ERROR} COMANDOS_CONFIG no está definida correctamente en '#{APP_CFG_RUTA_ARCHIVO}'."
|
||||
exit 1
|
||||
end
|
||||
|
||||
auto_avanzar = defined?(AUTO_AVANZAR_TAREA_MENU) ? AUTO_AVANZAR_TAREA_MENU : true
|
||||
return TAREAS_CONFIG, COMANDOS_CONFIG, auto_avanzar
|
||||
rescue LoadError, SyntaxError => e
|
||||
puts "#{ICONO_ERROR} Error cargando configuración desde '#{APP_CFG_RUTA_ARCHIVO}':\n#{e.message}"
|
||||
exit 1
|
||||
end
|
||||
end
|
||||
|
||||
def guardar_configuracion(tareas, comandos, auto_avanzar)
|
||||
begin
|
||||
File.open(APP_CFG_RUTA_ARCHIVO, 'w') do |f|
|
||||
f.puts "# frozen_string_literal: true\n"
|
||||
f.puts "# =========================================================="
|
||||
f.puts "# Archivo de Configuración para #{APP_NOM_BASE}"
|
||||
f.puts "# Generado automáticamente el #{Time.now.strftime('%Y-%m-%d %H:%M:%S')}"
|
||||
f.puts "# ==========================================================\n"
|
||||
f.puts "AUTO_AVANZAR_TAREA_MENU = #{auto_avanzar}\n"
|
||||
|
||||
f.puts "TAREAS_CONFIG = ["
|
||||
tareas.each do |tarea|
|
||||
f.puts " {"
|
||||
tarea.each { |key, value| f.puts " #{key}: #{value.inspect}," }
|
||||
f.puts " },"
|
||||
end
|
||||
f.puts "]\n"
|
||||
|
||||
f.puts "COMANDOS_CONFIG = ["
|
||||
comandos.each do |comando|
|
||||
f.puts " {"
|
||||
comando.each do |key, value|
|
||||
if key == :tareas
|
||||
f.puts " #{key}: [#{value.map(&:inspect).join(', ')}],"
|
||||
else
|
||||
f.puts " #{key}: #{value.inspect},"
|
||||
end
|
||||
end
|
||||
f.puts " },"
|
||||
end
|
||||
f.puts "]"
|
||||
end
|
||||
puts "\n#{ICONO_OK} Configuración de tareas y comandos guardada en '#{APP_CFG_NOM_ARCHIVO}'."
|
||||
log :info, "Configuración de tareas y comandos actualizada y guardada por el usuario."
|
||||
sleep 1.5
|
||||
return true
|
||||
rescue StandardError => e
|
||||
puts "\n#{ICONO_ERROR} No se pudo guardar la configuración: #{e.message}"
|
||||
log :error, "Fallo al guardar configuración de tareas y comandos: #{e.message}"
|
||||
sleep 2
|
||||
return false
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user