Class: ConfigManager

Inherits:
Object show all
Defined in:
lib/gamebox/core/config_manager.rb

Instance Method Summary collapse

Instance Method Details

#[](key) ⇒ Object



7
8
9
# File 'lib/gamebox/core/config_manager.rb', line 7

def [](key)
  settings[key]
end

#[]=(key, val) ⇒ Object



11
12
13
# File 'lib/gamebox/core/config_manager.rb', line 11

def []=(key,val)
  settings[key] = val
end

#base_configurationObject



36
37
38
# File 'lib/gamebox/core/config_manager.rb', line 36

def base_configuration
  load base_configuration_filepath
end

#base_configuration_directoryObject



24
25
26
# File 'lib/gamebox/core/config_manager.rb', line 24

def base_configuration_directory
  Gamebox.configuration.config_path
end

#base_configuration_filepathObject



32
33
34
# File 'lib/gamebox/core/config_manager.rb', line 32

def base_configuration_filepath
  File.join(base_configuration_directory, game_settings_file)
end

#game_settings_fileObject



16
17
18
# File 'lib/gamebox/core/config_manager.rb', line 16

def game_settings_file
  "game.yml"
end

#load(configuration_filepath) ⇒ Object



44
45
46
# File 'lib/gamebox/core/config_manager.rb', line 44

def load(configuration_filepath)
  File.exist?(configuration_filepath) ? YAML::load_file(configuration_filepath) : {}
end

#saveObject



48
49
50
# File 'lib/gamebox/core/config_manager.rb', line 48

def save
  save_to_file(user_configuration_filepath,settings.to_yaml)
end

#save_to_file(filepath, settings) ⇒ Object



52
53
54
55
# File 'lib/gamebox/core/config_manager.rb', line 52

def save_to_file(filepath,settings)
  FileUtils.mkdir_p File.dirname(filepath)
  File.write(filepath,settings)
end

#settingsObject



3
4
5
# File 'lib/gamebox/core/config_manager.rb', line 3

def settings
  @settings ||= base_configuration.merge(user_configuration)
end

#user_configurationObject



40
41
42
# File 'lib/gamebox/core/config_manager.rb', line 40

def user_configuration
  load user_configuration_filepath
end

#user_configuration_directoryObject



20
21
22
# File 'lib/gamebox/core/config_manager.rb', line 20

def user_configuration_directory
  File.join(ENV['HOME'], ".gamebox")
end

#user_configuration_filepathObject



28
29
30
# File 'lib/gamebox/core/config_manager.rb', line 28

def user_configuration_filepath
  File.join(user_configuration_directory, game_settings_file)
end