Sha256: 2eed0779e1456a0f21b8d83412245e0827094dd62513c1ccce71cc632a2e0ec3

Contents?: true

Size: 630 Bytes

Versions: 1

Compression:

Stored size: 630 Bytes

Contents

require 'omniauth'

module OmniAuth
  module ProviderRegistry
    class RailsMiddlewareSource
      def self.providers
        new(Rails.application.config.middleware).providers
      end

      def initialize(middlewares)
        @middlewares = middlewares
      end

      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
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
omniauth-provider_registry-0.8.0 lib/omniauth/provider_registry/rails_middleware_source.rb