class Devise::OmniAuth::Config

def autoload_strategy

def autoload_strategy
  name = ::OmniAuth::Utils.camelize(provider.to_s)
  if ::OmniAuth::Strategies.const_defined?(name)
    ::OmniAuth::Strategies.const_get(name)
  else
    raise StrategyNotFound, name
  end
end

def find_strategy

def find_strategy
  ::OmniAuth.strategies.find do |strategy_class|
    strategy_class.to_s =~ /#{::OmniAuth::Utils.camelize(strategy_name)}$/ ||
      strategy_class.default_options[:name] == strategy_name
  end
end

def initialize(provider, args)

def initialize(provider, args)
  @provider       = provider
  @args           = args
  @options        = @args.last.is_a?(Hash) ? @args.last : {}
  @strategy       = nil
  @strategy_name  = options[:name] || @provider
  @strategy_class = options.delete(:strategy_class)
end

def strategy_class

def strategy_class
  @strategy_class ||= find_strategy || autoload_strategy
end