lib/configatron/core.rb in configatron-2.13.0 vs lib/configatron/core.rb in configatron-3.0.0.rc1
- old
+ new
@@ -1,94 +1,3 @@
-require 'fileutils'
-require 'singleton'
-require 'logger'
-require 'yamler'
-
-base = File.dirname(__FILE__)
-
-require File.join(base, 'store')
-require File.join(base, 'errors')
-require File.join(base, 'rails')
-require File.join(base, 'proc')
-
-class Configatron
- include Singleton
-
- alias_method :send!, :send
-
- class << self
-
- attr_accessor :strict, :disable_monkey_patching
-
- def log
- unless @logger
- if defined?(::Rails)
- @logger = ::Rails.logger
- end
- @logger = ::Logger.new(STDOUT) if @logger.nil?
- end
- return @logger
- end
-
- def reset!
- @strict = false
- end
- end
-
- def initialize # :nodoc:
- @_namespace = [:default]
- reset!
- end
-
- # Forwards the method call onto the 'namespaced' Configatron::Store
- def method_missing(sym, *args, &block)
- @_store[@_namespace.last].send(sym, *args, &block)
- end
-
- # respond_to to respond_to
- def respond_to?(method)
- !@_store[@_namespace.last].send(method).nil? || super
- end
-
- # Removes ALL configuration parameters
- def reset!
- self.class.reset!
- @_store = {:default => Configatron::Store.new}
- end
-
- # 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.
- def temp(options = nil)
- begin
- temp_start(options)
- yield @_store[@_namespace.last]
- rescue Exception => e
- raise e
- ensure
- temp_end
- end
- end
-
- def temp_start(options = nil)
- n_space = rand
- @_store[n_space] = @_store[@_namespace.last].deep_clone
- @_namespace << n_space
- if options
- self.method_missing(:configure_from_hash, options)
- end
- end
-
- def temp_end
- @_store.delete(@_namespace.pop)
- end
-
- begin
- undef :inspect # :nodoc:
- undef :nil? # :nodoc:
- undef :test # :nodoc:
- rescue Exception => e
- end
-
-
-end
+require_relative "deep_clone"
+require_relative "store"
+require_relative "errors"
\ No newline at end of file