Sha256: 27d63ed759a1d373f78799bfe169ae93c7147d56eb877c06bd52c397657c4472
Contents?: true
Size: 885 Bytes
Versions: 4
Compression:
Stored size: 885 Bytes
Contents
require 'delegate' module Enki class Config < SimpleDelegator def initialize(file_name) super(symbolize_keys(YAML::load(IO.read(file_name)))) end def [](*path) path.inject(__getobj__()) {|config, item| config[item] } end def author_open_ids [self[:author, :open_id]].flatten.map {|uri| URI.parse(uri)} end def self.default @@default ||= Enki::Config.new(default_location) end def self.default_location "#{Rails.root}/config/enki.yml" end def comments? self[:features, :comments] end def tags? self[:features, :tags] end private def symbolize_keys(hash) hash.inject({}) do |options, (key, value)| options[(key.to_sym rescue key) || key] = value.is_a?(Hash) ? symbolize_keys(value) : value options end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
enki-engine-0.0.5 | lib/enki/config.rb |
enki-engine-0.0.4 | lib/enki/config.rb |
enki-engine-0.0.3 | lib/enki/config.rb |
enki-engine-0.0.2 | lib/enki/config.rb |