class OmniAuth::MultiProvider::CallbacksController

Protected Class Methods

create_handler(provider_name) click to toggle source
# File lib/omniauth/multiprovider/controllers/callbacks_controller.rb, line 7
def self.create_handler(provider_name)
  provider_class =
    begin
      "OmniAuth::Provider::#{provider_name.to_s.camelize}".constantize
    rescue NameError
      OmniAuth::Provider::Generic
    end
  define_method provider_name do
    memo_name = "@_#{provider_name}"
    provider = instance_variable_get memo_name
    unless provider.present?
      provider = provider_class.new(self)
      instance_variable_set memo_name, provider
    end
    handle_request provider
  end
end

Protected Instance Methods

handle_provider_error(error) click to toggle source
# File lib/omniauth/multiprovider/controllers/callbacks_controller.rb, line 33
def handle_provider_error(error)
  set_flash_message :alert, error.message
  redirect_to after_sign_in_path_for(resource_name)
  true
end
handle_request(provider) click to toggle source
# File lib/omniauth/multiprovider/controllers/callbacks_controller.rb, line 25
def handle_request(provider)
    provider.handle_request
rescue OmniAuth::MultiProvider::Error => error
  raise unless handle_provider_error(error)
rescue RuntimeError => error
  raise unless handle_unexpected_error(error)
end
handle_unexpected_error(error) click to toggle source
# File lib/omniauth/multiprovider/controllers/callbacks_controller.rb, line 39
def handle_unexpected_error(error)
  false # no explicit handling
end