Class: SCV::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/scv/config.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(file_store, file_name) ⇒ Config



7
8
9
10
11
12
13
# File 'lib/scv/config.rb', line 7

def initialize(file_store, file_name)
  @file_store = file_store
  @file_name  = file_name

  @data = {}
  load
end

Instance Attribute Details

#dataObject

Returns the value of attribute data.



5
6
7
# File 'lib/scv/config.rb', line 5

def data
  @data
end

Instance Method Details

#[](key) ⇒ Object



23
24
25
26
# File 'lib/scv/config.rb', line 23

def [](key)
  hash, key = resolve_key key
  hash[key]
end

#[]=(key, value) ⇒ Object



28
29
30
31
# File 'lib/scv/config.rb', line 28

def []=(key, value)
  hash, key = resolve_key key, create: true
  hash[key] = value
end

#delete(key) ⇒ Object



33
34
35
36
# File 'lib/scv/config.rb', line 33

def delete(key)
  hash, key = resolve_key key, create: false
  hash.delete key
end

#loadObject



15
16
17
# File 'lib/scv/config.rb', line 15

def load
  @data = YAML.load @file_store.fetch(@file_name) if @file_store.file? @file_name
end

#saveObject



19
20
21
# File 'lib/scv/config.rb', line 19

def save
  @file_store.store @file_name, @data.to_yaml
end