class AppConfig

Public Class Methods

[](key) click to toggle source
# File lib/sm_app_config/app_config.rb, line 5
def self.[] key
  result = ENV[key.upcase]
  return YAML.load(result) unless result.nil?

  result = config[key]
  return result unless result.nil?

  raise ArgumentError.new("No ENV['#{key.upcase}'] or AppConfig['#{key}'] setting found")
end
reload!() click to toggle source
# File lib/sm_app_config/app_config.rb, line 15
def self.reload!
  @config = nil
end

Private Class Methods

config() click to toggle source
# File lib/sm_app_config/app_config.rb, line 21
def self.config
  @config ||= begin
    raw_config = File.read(config_file)
    loaded = YAML.load(raw_config)

    if defined?(Rails)
      loaded[Rails.env] or raise "No configuration found for environment #{Rails.env}"
    else
      loaded
    end
  rescue SystemCallError
    raise "No configuration file found at #{config_file}"
  end
end
config_file() click to toggle source
# File lib/sm_app_config/app_config.rb, line 36
def self.config_file
  SmAppConfig.config_file
end