Sha256: fe2b71b8b4a6ad706f2b20f4c6c5b10b172dcaecf004af286b61ac8965816904
Contents?: true
Size: 1.81 KB
Versions: 1
Compression:
Stored size: 1.81 KB
Contents
=begin Este modulo se encarga de manejar la configuración =end require 'yaml' require 'json' module Liri class Manager class Setup FILE_NAME = 'liri-config.yml' TEMPLATE_PATH = File.join(File.dirname(File.dirname(File.dirname(__FILE__))), 'template/liri-config.yml') def initialize(folder_path) # Crea la carpeta en donde se guardarán los datos relativos a liri, ya sean archivos comprimidos, # archivos descomprimidos, configuraciones, etc. Dir.mkdir(folder_path) unless Dir.exist?(folder_path) @file_path = File.join(folder_path, '/', FILE_NAME) end # Crea un archivo de configuración en la raiz del proyecto desde un template def create File.open(@file_path, "w") do |output_file| File.foreach(TEMPLATE_PATH) do |input_line| output_file.write(input_line) end end true end # Retorna los datos del archivo de configuración def load if File.exist?(@file_path) data = YAML.load(File.read(@file_path)) JSON.parse(data.to_json, object_class: OpenStruct) else raise Liri::FileNotFoundError.new(@file_path) end end # Borra el archivo de configuración def delete if File.exist?(@file_path) File.delete(@file_path) true else false end end def set(value, *keys) data = YAML.load(File.read(@file_path)) keys = keys.first aux = data keys.each_with_index do |key, index| if (keys[index + 1]) aux = data[key] else aux[key] = value end end File.open(@file_path, 'w') { |f| f.write data.to_yaml } end def path @file_path end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
liri-0.1.0 | lib/manager/setup.rb |