Sha256: 9c791c61edff1b0c9b15cf477b47a8e4619657fd2207bc75a35fc58c2caad32a

Contents?: true

Size: 881 Bytes

Versions: 4

Compression:

Stored size: 881 Bytes

Contents

module SmartQue
  class Config
    # Configurations
    # allowed configurations
    CONFIGURATION = %w(host vhost port queues env username password logfile logger)

    # Initialize
    def initialize
      @config = {}
      load_configuration_from_yml
    end

    def method_missing(name, *args)
      setter = false

      name = name.to_s

      if name =~ /=$/
        name = name.to_s.chop
        setter = true
      end

      super(name, args) unless CONFIGURATION.include?(name)

      if setter
        set(name, args.first)
      else
        get(name)
      end
    end

    private

    def load_configuration_from_yml
      if File.exist? 'config/smart_que.yml'
        @config = YAML.load(File.read('config/smart_que.yml')) || @config
      end
    end

    def set(key, val)
      @config[key] = val
    end

    def get(key)
      @config[key]
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
smart-que-0.2.6 lib/smart_que/config.rb
smart-que-0.2.5 lib/smart_que/config.rb
smart-que-0.2.4 lib/smart_que/config.rb
smart-que-0.2.3 lib/smart_que/config.rb