def get_adapter(adp)
        # okay, this is only because we can't camelize it :)
        adp = Loggr::Adapter::NOP if !adp
        
        # Code adapter from ActiveSupport::Inflector#camelize
        # https://github.com/rails/rails/blob/v3.0.9/activesupport/lib/active_support/inflector/methods.rb#L30
        adp = adp.to_s.gsub(/\/(.?)/) { "::#{$1.upcase}" }.gsub(/(?:^|_)(.)/) { $1.upcase } if adp.is_a?(Symbol)
        
        clazz = adp
        
        if adp.respond_to?(:to_str)
          const = begin Loggr::Adapter.const_get(adp.to_s) rescue begin Loggr::Adapter.const_get(adp.to_s.upcase) rescue nil end end
          unless const
            # code adapter from ActiveSupport::Inflector#constantize
            # https://github.com/rails/rails/blob/v3.0.9/activesupport/lib/active_support/inflector/methods.rb#L107
            names = adp.to_s.split('::')
            names.shift if names.empty? || names.first.empty?
            
            const = ::Object
            names.each { |n| const = const.const_get(n) }
          end
          clazz = const          
        end
        
        raise "#{clazz}: an adapter must implement #logger and #mdc" unless clazz.respond_to?(:logger) && clazz.respond_to?(:mdc)
        clazz
      end
def get_adapter(adp)
        # okay, this is only because we can't camelize it :)
        adp = Loggr::Adapter::NOP if !adp
        
        # Code adapter from ActiveSupport::Inflector#camelize
        # https://github.com/rails/rails/blob/v3.0.9/activesupport/lib/active_support/inflector/methods.rb#L30
        adp = adp.to_s.gsub(/\/(.?)/) { "::#{$1.upcase}" }.gsub(/(?:^|_)(.)/) { $1.upcase } if adp.is_a?(Symbol)
        
        clazz = adp
        
        if adp.respond_to?(:to_str)
          const = begin Loggr::Adapter.const_get(adp.to_s) rescue begin Loggr::Adapter.const_get(adp.to_s.upcase) rescue nil end end
          unless const
            # code adapter from ActiveSupport::Inflector#constantize
            # https://github.com/rails/rails/blob/v3.0.9/activesupport/lib/active_support/inflector/methods.rb#L107
            names = adp.to_s.split('::')
            names.shift if names.empty? || names.first.empty?
            
            const = ::Object
            names.each { |n| const = const.const_get(n) }
          end
          clazz = const          
        end
        
        raise "#{clazz}: an adapter must implement #logger and #mdc" unless clazz.respond_to?(:logger) && clazz.respond_to?(:mdc)
        clazz
      end
Try to get adapter class from Symbol, String or use Object as-is.