diff options
-rw-r--r-- | lib/net/imap/authenticators.rb | 44 |
1 files changed, 0 insertions, 44 deletions
@@ -1,44 +0,0 @@ -# frozen_string_literal: true - -# Registry for SASL authenticators used by Net::IMAP. -module Net::IMAP::Authenticators - - # Adds an authenticator for use with Net::IMAP#authenticate. +auth_type+ is the - # {SASL mechanism}[https://www.iana.org/assignments/sasl-mechanisms/sasl-mechanisms.xhtml] - # supported by +authenticator+ (for instance, "+PLAIN+"). The +authenticator+ - # is an object which defines a +#process+ method to handle authentication with - # the server. See Net::IMAP::PlainAuthenticator, Net::IMAP::LoginAuthenticator, - # Net::IMAP::CramMD5Authenticator, and Net::IMAP::DigestMD5Authenticator for - # examples. - # - # If +auth_type+ refers to an existing authenticator, it will be - # replaced by the new one. - def add_authenticator(auth_type, authenticator) - authenticators[auth_type] = authenticator - end - - # Builds an authenticator for Net::IMAP#authenticate. +args+ will be passed - # directly to the chosen authenticator's +#initialize+. - def authenticator(auth_type, *args) - auth_type = auth_type.upcase - unless authenticators.has_key?(auth_type) - raise ArgumentError, - format('unknown auth type - "%s"', auth_type) - end - authenticators[auth_type].new(*args) - end - - private - - def authenticators - @authenticators ||= {} - end - -end - -Net::IMAP.extend Net::IMAP::Authenticators - -require_relative "authenticators/login" -require_relative "authenticators/plain" -require_relative "authenticators/cram_md5" -require_relative "authenticators/digest_md5" |