class ComplexConfig::Proxy

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