class RedisAlerting::Config

Public Class Methods

new(opts) click to toggle source
# File lib/redis_alerting/config.rb, line 3
def initialize(opts)
  @config = opts
  parse_config
end

Public Instance Methods

to_hash() click to toggle source
# File lib/redis_alerting/config.rb, line 8
def to_hash
  @config
end

Private Instance Methods

parse_config() click to toggle source
# File lib/redis_alerting/config.rb, line 14
def parse_config
  raise ArgumentError, "No config file specified" if @config[:config].nil?
  
  # automatically use a relative config path
  if @config[:config][0] != "/"
    @config[:config] = File.expand_path(@config[:config], @config[:pwd])
  end

  @config[:faye_url] = @config[:"faye-url"] || @config[:faye_url]

  raise ArgumentError, "Invalid config file: #{@config[:config]}" unless File.exists? @config[:config]
  
  yaml = YAML.load_file(@config[:config])
  @config.merge!(yaml)

  @config[:log_level] = parse_log_level

  raise ArgumentError, "Incomplete configuration" unless valid_config?
end
parse_log_level() click to toggle source
# File lib/redis_alerting/config.rb, line 34
def parse_log_level
  return Logger::UNKNOWN if @config[:log].nil? or @config[:log] == false
  
  case @config[:log]
  when "error"
    Logger::ERROR
  when "debug"
    Logger::DEBUG
  else
    Logger::INFO
  end
end
valid_config?() click to toggle source

TODO: check we have all the needed options

# File lib/redis_alerting/config.rb, line 48
def valid_config?
  true
end