Class: OmniAuth::ProviderRegistry::RailsMiddlewareSource

Inherits:
Object
  • Object
show all
Defined in:
lib/omniauth/provider_registry/rails_middleware_source.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(middlewares) ⇒ RailsMiddlewareSource

Returns a new instance of RailsMiddlewareSource.



10
11
12
# File 'lib/omniauth/provider_registry/rails_middleware_source.rb', line 10

def initialize(middlewares)
  @middlewares = middlewares
end

Class Method Details

.providersObject



6
7
8
# File 'lib/omniauth/provider_registry/rails_middleware_source.rb', line 6

def self.providers
  new(Rails.application.config.middleware).providers
end

Instance Method Details

#providersObject



14
15
16
17
18
19
20
21
22
# 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