class OmniAuth::ProviderRegistry::RailsMiddlewareSource

Public Class Methods

new(middlewares) click to toggle source
# File lib/omniauth/provider_registry/rails_middleware_source.rb, line 10
def initialize(middlewares)
  @middlewares = middlewares
end
providers() click to toggle source
# File lib/omniauth/provider_registry/rails_middleware_source.rb, line 6
def self.providers
  new(Rails.application.config.middleware).providers
end

Public Instance Methods

providers() click to toggle source
# File lib/omniauth/provider_registry/rails_middleware_source.rb, line 14
def providers
  builders = @middlewares.select{|m| m === OmniAuth::Builder }.flat_map{|b|
    b.build(nil).instance_variable_get(:@use)
  }
  direct = @middlewares.select{|m| m.klass.is_a?(Class) && m.klass <= OmniAuth::Strategy}.map{|s|
    ->{ s.build(nil) }
  }
  builders + direct
end