Module: ConfigMan::Parsers::INI
- Defined in:
- lib/configman/parsers/ini.rb
Constant Summary collapse
- CONFIG_FILE_PATH =
File.join(Dir.pwd, '.config').freeze
Class Method Summary collapse
-
.parse(file_path) ⇒ Object
Parse the .config file and return a hash of the configuration values.
- .update(key, new_value) ⇒ Object
- .write(config_hash) ⇒ Object
Class Method Details
.parse(file_path) ⇒ Object
Parse the .config file and return a hash of the configuration values
12 13 14 15 16 17 18 19 20 21 |
# File 'lib/configman/parsers/ini.rb', line 12 def self.parse(file_path) raise ArgumentError, "File not found: #{file_path}" unless File.exist?(file_path) ini = IniFile.load(file_path) parsed_config = ini.to_h raise ArgumentError, "Invalid INI format in #{file_path}" unless parsed_config.is_a?(Hash) parsed_config end |
.update(key, new_value) ⇒ Object
23 24 25 26 27 28 29 30 31 |
# File 'lib/configman/parsers/ini.rb', line 23 def self.update(key, new_value) existing_config = parse(CONFIG_FILE_PATH) section, key = key.split('.', 2) existing_config[section] ||= {} existing_config[section][key] = new_value ini = IniFile.new(content: existing_config) ini.write(filename: CONFIG_FILE_PATH) end |
.write(config_hash) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/configman/parsers/ini.rb', line 33 def self.write(config_hash) # Access the loaded modules and expected keys from the main class loaded_modules = ConfigMan.used_modules expected_keys = ConfigMan.expected_keys puts "Debug: About to pass these #{expected_keys} to the utils module" puts "and these #{loaded_modules}" puts "and this #{config_hash}" # Sort the keys into their respective sections sorted_config = Utils.sort_into_sections(config_hash, expected_keys, loaded_modules) # Debug statement to output the sorted_config #puts 'Debug: About to write the following sorted_config to INI file:' #p sorted_config # Write the sorted config to the INI file ini = IniFile.new(content: sorted_config) ini.write(filename: CONFIG_FILE_PATH) end |