Class: JSONConfig
- Inherits:
-
Object
- Object
- JSONConfig
- Defined in:
- lib/json_config.rb
Defined Under Namespace
Modules: Keys
Instance Method Summary collapse
- #clear ⇒ Object
- #default ⇒ Object
- #get(key) ⇒ Object
- #getdiff(key) ⇒ Object
-
#initialize(file, autosave = true) ⇒ JSONConfig
constructor
A new instance of JSONConfig.
- #reset ⇒ Object
- #save ⇒ Object
- #savediff ⇒ Object
- #set(key, value) ⇒ Object
- #setbool(key) ⇒ Object
- #unsetbool(key) ⇒ Object
Constructor Details
#initialize(file, autosave = true) ⇒ JSONConfig
Returns a new instance of JSONConfig.
70 71 72 73 74 75 |
# File 'lib/json_config.rb', line 70 def initialize(file, autosave = true) @defaults ||= Hash.new @autosave = autosave @config_file = Pathname.new(file). read_config end |
Instance Method Details
#clear ⇒ Object
32 33 34 35 36 |
# File 'lib/json_config.rb', line 32 def clear @config = Hash.new @diff = Hash.new write_config end |
#default ⇒ Object
38 39 40 41 42 |
# File 'lib/json_config.rb', line 38 def default @config = @defaults.clone @diff = @defaults.clone write_config end |
#get(key) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/json_config.rb', line 44 def get(key) case @config[key] when /^\s*false\s*$/i, false return false when /^\s*true\s*$/i, true return true when /^\s*\d+\s*$/ return @config[key].to_i when /^\s*\d+\.\d+\s*$/ return @config[key].to_f else return @config[key] end end |
#getdiff(key) ⇒ Object
59 60 61 62 63 64 65 66 67 68 |
# File 'lib/json_config.rb', line 59 def getdiff(key) case @diff[key] when /^\s*false\s*$/i, false return false when /^\s*true\s*$/i, true return true else return @diff[key] end end |
#reset ⇒ Object
87 88 89 |
# File 'lib/json_config.rb', line 87 def reset read_config end |
#save ⇒ Object
91 92 93 94 |
# File 'lib/json_config.rb', line 91 def save @diff = @defaults.clone write_config(true) end |
#savediff ⇒ Object
96 97 98 99 |
# File 'lib/json_config.rb', line 96 def savediff @config = @diff write_config(true) end |
#set(key, value) ⇒ Object
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
# File 'lib/json_config.rb', line 101 def set(key, value) case value when /^\s*false\s*$/i, false unsetbool(key) when /^\s*true\s*$/i, true setbool(key) when /^\s*\d+\s*$/ @config[key] = value.to_i @diff[key] = value.to_i write_config when /^\s*\d+\.\d+\s*$/ @config[key] = value.to_f @diff[key] = value.to_f write_config else @config[key] = value @diff[key] = value write_config end end |
#setbool(key) ⇒ Object
122 123 124 125 126 |
# File 'lib/json_config.rb', line 122 def setbool(key) @config[key] = true @diff[key] = true write_config end |
#unsetbool(key) ⇒ Object
128 129 130 131 132 |
# File 'lib/json_config.rb', line 128 def unsetbool(key) @config[key] = false @diff[key] = false write_config end |