Sha256: 0f45325ed4fe79888df2e7a47cf9e389353891162d9624e0a491872197824f0a

Contents?: true

Size: 906 Bytes

Versions: 5

Compression:

Stored size: 906 Bytes

Contents

class ConfigManager

  attr_accessor :settings
  GAME_SETTINGS_FILE = "game"

  def initialize
    @settings = load_config(GAME_SETTINGS_FILE)
  end

  def save
    save_settings(GAME_SETTINGS_FILE, @settings)
  end

  def [](key)
    @settings[key]
  end

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

  # TODO make this path include that app name?
  def load_config(name)
    conf = YAML::load_file("#{Gamebox.configuration.config_path}#{name}.yml")
    user_file = "#{ENV['HOME']}/.gamebox/#{name}.yml"
    if File.exist? user_file
      user_conf = YAML::load_file user_file
      conf = conf.merge user_conf
    end
    conf
  end

  def save_settings(name, settings)
    user_gamebox_dir = "#{ENV['HOME']}/.gamebox"
    FileUtils.mkdir_p user_gamebox_dir
    user_file = "#{ENV['HOME']}/.gamebox/#{name}.yml"
    File.open user_file, "w" do |f|
      f.write settings.to_yaml
    end
  end

end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
gamebox-0.4.0.rc5 lib/gamebox/core/config_manager.rb
gamebox-0.4.0.rc4 lib/gamebox/core/config_manager.rb
gamebox-0.4.0.rc3 lib/gamebox/core/config_manager.rb
gamebox-0.4.0.rc2 lib/gamebox/core/config_manager.rb
gamebox-0.4.0.rc1 lib/gamebox/core/config_manager.rb