Sha256: 7d9b4932db4382cf524467e77fd050afb37fc162342ee9607ef0df29c2f8af95
Contents?: true
Size: 965 Bytes
Versions: 1
Compression:
Stored size: 965 Bytes
Contents
require 'singleton' # This is the root configatron object, and contains methods which # operate on the entire configatron hierarchy. class Configatron::RootStore < BasicObject include ::Singleton extend ::Forwardable attr_reader :store # Have one global RootStore instance, but allow people to create # their own parallel ones if they desire. class << self public :new end def initialize @locked = false reset! end def method_missing(name, *args, &block) store.send(name, *args, &block) end def reset! @store = ::Configatron::Store.new(self) end def temp(&block) temp_start yield temp_end end def temp_start @temp = ::Configatron::DeepClone.deep_clone(@store) end def temp_end @store = @temp end def locked? @locked end def lock! @locked = true end def unlock! @locked = false end def_delegator :@store, :to_s def_delegator :@store, :inspect end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
configatron-4.0.3 | lib/configatron/root_store.rb |