class SCV::Config
Attributes
data[RW]
Public Class Methods
new(file_store, file_name)
click to toggle source
# File lib/scv/config.rb, line 7 def initialize(file_store, file_name) @file_store = file_store @file_name = file_name @data = {} load end
Public Instance Methods
[](key)
click to toggle source
# File lib/scv/config.rb, line 23 def [](key) hash, key = resolve_key key hash[key] end
[]=(key, value)
click to toggle source
# File lib/scv/config.rb, line 28 def []=(key, value) hash, key = resolve_key key, create: true hash[key] = value end
delete(key)
click to toggle source
# File lib/scv/config.rb, line 33 def delete(key) hash, key = resolve_key key, create: false hash.delete key end
load()
click to toggle source
# File lib/scv/config.rb, line 15 def load @data = YAML.load @file_store.fetch(@file_name) if @file_store.file? @file_name end
save()
click to toggle source
# File lib/scv/config.rb, line 19 def save @file_store.store @file_name, @data.to_yaml end
Private Instance Methods
resolve_key(hash=@data, key, create: false)
click to toggle source
# File lib/scv/config.rb, line 40 def resolve_key(hash=@data, key, create: false) key, rest = key.split '.', 2 if rest.nil? [hash, key] else hash[key] = {} if create and not hash.key? key resolve_key hash[key], rest, create: create end end