Class: Configatron
- Includes:
- Singleton
- Defined in:
- lib/gems/configatron-2.2.2/lib/configatron/store.rb,
lib/gems/configatron-2.2.2/lib/configatron/errors.rb,
lib/gems/configatron-2.2.2/lib/configatron/configatron.rb
Defined Under Namespace
Classes: LockedNamespace, ProtectedParameter, Store
Instance Method Summary collapse
-
#initialize ⇒ Configatron
constructor
:nodoc:.
-
#method_missing(sym, *args) ⇒ Object
Forwards the method call onto the ‘namespaced’ Configatron::Store.
-
#reset! ⇒ Object
Removes ALL configuration parameters.
-
#temp(options = nil) ⇒ Object
Allows for the temporary overriding of parameters in a block.
- #temp_end ⇒ Object
- #temp_start(options = nil) ⇒ Object
Constructor Details
#initialize ⇒ Configatron
:nodoc:
8 9 10 11 |
# File 'lib/gems/configatron-2.2.2/lib/configatron/configatron.rb', line 8 def initialize # :nodoc: @_namespace = [:default] reset! end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(sym, *args) ⇒ Object
Forwards the method call onto the ‘namespaced’ Configatron::Store
14 15 16 |
# File 'lib/gems/configatron-2.2.2/lib/configatron/configatron.rb', line 14 def method_missing(sym, *args) @_store[@_namespace.last].send(sym, *args) end |
Instance Method Details
#reset! ⇒ Object
Removes ALL configuration parameters
19 20 21 |
# File 'lib/gems/configatron-2.2.2/lib/configatron/configatron.rb', line 19 def reset! @_store = {:default => Configatron::Store.new} end |
#temp(options = nil) ⇒ Object
Allows for the temporary overriding of parameters in a block. Takes an optional Hash of parameters that will be applied before the block gets called. At the end of the block, the temporary settings are deleted and the original settings are reinstated.
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/gems/configatron-2.2.2/lib/configatron/configatron.rb', line 27 def temp( = nil) begin temp_start() yield rescue Exception => e raise e ensure temp_end end end |
#temp_end ⇒ Object
47 48 49 |
# File 'lib/gems/configatron-2.2.2/lib/configatron/configatron.rb', line 47 def temp_end @_store.delete(@_namespace.pop) end |
#temp_start(options = nil) ⇒ Object
38 39 40 41 42 43 44 45 |
# File 'lib/gems/configatron-2.2.2/lib/configatron/configatron.rb', line 38 def temp_start( = nil) n_space = rand @_store[n_space] = @_store[@_namespace.last].deep_clone @_namespace << n_space if self.method_missing(:configure_from_hash, ) end end |