Sha256: 676627f7b6e593e2028ea1dde5e7c7a4e212216dd711be5c411fa677486ffd49

Contents?: true

Size: 684 Bytes

Versions: 8

Compression:

Stored size: 684 Bytes

Contents

module Trestle
  module Auth
    module Backends
      extend ActiveSupport::Autoload

      require_relative "backends/base"

      autoload :Basic
      autoload :Devise
      autoload :Warden

      def self.lookup(backend)
        case backend
        when Class
          backend
        else
          registry.fetch(backend) { raise ArgumentError, "Invalid authentication backend: #{backend.inspect}" }
        end
      end

      def self.registry
        @registry ||= {}
      end

      def self.register(name, klass)
        registry[name] = klass
      end

      register(:basic, Basic)
      register(:devise, Devise)
      register(:warden, Warden)
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
trestle-auth-0.5.0 lib/trestle/auth/backends.rb
trestle-auth-0.5.0.pre2 lib/trestle/auth/backends.rb
trestle-auth-0.5.0.pre lib/trestle/auth/backends.rb
trestle-auth-0.4.4 lib/trestle/auth/backends.rb
trestle-auth-0.4.3 lib/trestle/auth/backends.rb
trestle-auth-0.4.2 lib/trestle/auth/backends.rb
trestle-auth-0.4.1 lib/trestle/auth/backends.rb
trestle-auth-0.4.0 lib/trestle/auth/backends.rb