class ComplexConfig::Proxy

def initialize(env = nil)

def initialize(env = nil)
  @env = env
end

def inspect

def inspect
  "#<#{to_s}>"
end

def method_missing(name, *args)

def method_missing(name, *args)
  if name =~ /\?\z/
    method_name, name = name, $`
    exist = ::ComplexConfig::Provider.exist?(name)
    (class << self; self; end).class_eval do
      define_method(method_name) do |env = nil|
        if exist
          __send__(name, *args)
        else
          nil
        end
      end
    end
    __send__(method_name, *args)
  else
    config = ::ComplexConfig::Provider[name]
    (class << self; self; end).class_eval do
      define_method(name) do |env = nil|
        if env ||= @env
          config[env] || ::ComplexConfig::Settings.new
        else
          config
        end
      end
    end
    __send__(name, *args)
  end
end

def reload

def reload
  ::ComplexConfig::Provider.flush_cache
  self
end

def to_s

def to_s
  'ComplexConfig::Proxy'
end