Class: JSONConfig
- Inherits:
-
Object
- Object
- JSONConfig
- Defined in:
- lib/jsoncfg.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
- #to_s ⇒ Object
- #unsetbool(key) ⇒ Object
Constructor Details
#initialize(file, autosave = true) ⇒ JSONConfig
Returns a new instance of JSONConfig.
75 76 77 78 79 80 |
# File 'lib/jsoncfg.rb', line 75 def initialize(file, autosave = true) @defaults ||= Hash.new @autosave = autosave @config_file = Pathname.new(file). read_config end |
Instance Method Details
#clear ⇒ Object
37 38 39 40 41 |
# File 'lib/jsoncfg.rb', line 37 def clear @config = Hash.new @diff = Hash.new write_config end |
#default ⇒ Object
43 44 45 46 47 |
# File 'lib/jsoncfg.rb', line 43 def default @config = @defaults.clone @diff = @defaults.clone write_config end |
#get(key) ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/jsoncfg.rb', line 49 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
64 65 66 67 68 69 70 71 72 73 |
# File 'lib/jsoncfg.rb', line 64 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
92 93 94 |
# File 'lib/jsoncfg.rb', line 92 def reset read_config end |
#save ⇒ Object
96 97 98 99 |
# File 'lib/jsoncfg.rb', line 96 def save @diff = @defaults.clone write_config(true) end |
#savediff ⇒ Object
101 102 103 104 |
# File 'lib/jsoncfg.rb', line 101 def savediff @config = @diff write_config(true) end |
#set(key, value) ⇒ Object
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/jsoncfg.rb', line 106 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
127 128 129 130 131 |
# File 'lib/jsoncfg.rb', line 127 def setbool(key) @config[key] = true @diff[key] = true write_config end |
#to_s ⇒ Object
133 134 135 |
# File 'lib/jsoncfg.rb', line 133 def to_s return JSON.pretty_generate(@config) end |
#unsetbool(key) ⇒ Object
137 138 139 140 141 |
# File 'lib/jsoncfg.rb', line 137 def unsetbool(key) @config[key] = false @diff[key] = false write_config end |