class CyberarmEngine::ConfigFile
Public Class Methods
new(file:)
click to toggle source
# File lib/cyberarm_engine/config_file.rb, line 3 def initialize(file:) @file = file if File.exist?(@file) deserialize else @data = {} end end
Public Instance Methods
[]=(*keys, value)
click to toggle source
# File lib/cyberarm_engine/config_file.rb, line 13 def []=(*keys, value) last_key = keys.last if keys.size == 1 hash = @data else keys.pop hash = @data[keys.shift] ||= {} keys.each do |key| hash = hash[key] ||= {} end end hash[last_key] = value end
deserialize()
click to toggle source
# File lib/cyberarm_engine/config_file.rb, line 38 def deserialize @data = JSON.parse(File.read(@file), symbolize_names: true) end
get(*keys)
click to toggle source
# File lib/cyberarm_engine/config_file.rb, line 30 def get(*keys) @data.dig(*keys) end
save!()
click to toggle source
# File lib/cyberarm_engine/config_file.rb, line 42 def save! File.open(@file, "w") { |f| f.write(serialize) } end
serialize()
click to toggle source
# File lib/cyberarm_engine/config_file.rb, line 34 def serialize JSON.dump(@data) end