Sha256: d7faffe2c67219f7b07c94166c3ea46f6c32e71bc04bf1d456b4fb76706a4eef
Contents?: true
Size: 1 KB
Versions: 1
Compression:
Stored size: 1 KB
Contents
require 'singleton' require 'forwardable' # 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 begin yield ensure temp_end 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.3.0 | lib/configatron/root_store.rb |