Sha256: 604dfd084c3d5fbc54c0c3fd670d5ace75718f69c3ef3c7bf538f2a222e4687b
Contents?: true
Size: 956 Bytes
Versions: 1
Compression:
Stored size: 956 Bytes
Contents
require 'digest/md5' module RailsSettings class Default < ::Hash class MissingKey < StandardError; end class << self def enabled? source_path && File.exists?(source_path) end def source(value = nil) @source ||= value end def source_path @source || Rails.root.join('config/app.yml') end def [](key) # foo.bar.dar Nested fetch value keys = key.to_s.split('.') val = instance keys.each do |k| val = val.fetch(k.to_s, nil) break if val.nil? end val end def instance return @instance if defined? @instance @instance = new @instance end end def initialize content = open(self.class.source_path).read hash = content.empty? ? {} : YAML.load(ERB.new(content).result).to_hash hash = hash[Rails.env] || {} self.replace hash end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rails-settings-cached-0.6.4 | lib/rails-settings/default.rb |