Sha256: d69c52ac1898866c7eaf4277047122e4547d59790ff36e6d8360b376077b2626

Contents?: true

Size: 1.41 KB

Versions: 8

Compression:

Stored size: 1.41 KB

Contents

#!/usr/bin/env ruby

require 'yaml'
require 'logger'

module Flapjack

  class Configuration

    def initialize(opts = {})
      @logger = opts[:logger]
      unless @logger
        @logger       = Logger.new(STDOUT)
        @logger.level = Logger::ERROR
      end
    end

    def logger
      @logger
    end

    def load(filename)
      unless File.file?(filename)
        logger.error "Could not find file '#{filename}'"
        return
      end

      unless defined?(FLAPJACK_ENV)
        logger.error "Environment variable 'FLAPJACK_ENV' is not set"
        return
      end

      config = YAML::load_file(filename)

      if config.nil?
        logger.error "Could not load config file '#{filename}'"
        return
      end

      config_env = config[FLAPJACK_ENV]

      if config_env.nil?
        logger.error "No config data for environment '#{FLAPJACK_ENV}' found in '#{filename}'"
        return
      end

      redis_defaults = {'host' => 'localhost',
                        'port' => 6379,
                        'path' => nil,
                        'db'   => 0}

      config_env['redis'] = {} unless config_env.has_key?('redis')
      redis_defaults.each_pair do |k,v|
        next if config_env['redis'].has_key?(k) && (config_env['redis'][k] &&
          !(config_env['redis'][k].is_a?(String) && config_env['redis'][k].empty?))
        config_env['redis'][k] = v
      end

      config_env
    end

  end

end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
flapjack-0.6.39 lib/flapjack/configuration.rb
flapjack-0.6.38 lib/flapjack/configuration.rb
flapjack-0.6.37 lib/flapjack/configuration.rb
flapjack-0.6.36 lib/flapjack/configuration.rb
flapjack-0.6.35 lib/flapjack/configuration.rb
flapjack-0.6.34 lib/flapjack/configuration.rb
flapjack-0.6.33 lib/flapjack/configuration.rb
flapjack-0.6.32 lib/flapjack/configuration.rb