Sha256: c5e48341bb8f46d101473b8106965d88609100831de5c0ec17653425681d41f8

Contents?: true

Size: 545 Bytes

Versions: 5

Compression:

Stored size: 545 Bytes

Contents

require 'yaml'

module Dandelion
  class Config
    attr_reader :path, :data
    
    def initialize(options = {})
      @path = options[:path]
      @data = @path ? load : (options[:data] || {})
    end

    def [](key)
      @data[key] || @data[key.to_s]
    end

    def []=(key, value)
      @data[key.to_s] = value
    end

    def defaults(values)
      values.each do |k, v|
        if self[k].nil?
          self[k] = v
        end
      end

      self
    end

  private

    def load
      YAML.load_file(path) || {}
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
dandelion-0.4.3 lib/dandelion/config.rb
dandelion-0.4.2 lib/dandelion/config.rb
dandelion-0.4.1 lib/dandelion/config.rb
dandelion-0.4.0 lib/dandelion/config.rb
dandelion-0.4.0.beta2 lib/dandelion/config.rb