Sha256: b4f5856d7ed01e3776c83d0697241eb4d77fc8fa9e5d67528ce6693d3f9ae45c

Contents?: true

Size: 1.06 KB

Versions: 8

Compression:

Stored size: 1.06 KB

Contents

class ConfigManager

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

  def [](key)
    settings[key]
  end

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


  def game_settings_file
    "game.yml"
  end

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

  def base_configuration_directory
    Gamebox.configuration.config_path
  end

  def user_configuration_filepath
    File.join(user_configuration_directory, game_settings_file)
  end

  def base_configuration_filepath
    File.join(base_configuration_directory, game_settings_file)
  end

  def base_configuration
    load base_configuration_filepath
  end

  def user_configuration
    load user_configuration_filepath
  end

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

  def save
    save_to_file(user_configuration_filepath,settings.to_yaml)
  end

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

end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
gamebox-0.5.5 lib/gamebox/core/config_manager.rb
gamebox-0.5.4 lib/gamebox/core/config_manager.rb
gamebox-0.5.2 lib/gamebox/core/config_manager.rb
gamebox-0.5.1 lib/gamebox/core/config_manager.rb
gamebox-0.5.0 lib/gamebox/core/config_manager.rb
gamebox-0.4.1 lib/gamebox/core/config_manager.rb
gamebox-0.4.0 lib/gamebox/core/config_manager.rb
gamebox-0.4.0.rc11 lib/gamebox/core/config_manager.rb