Sha256: 929d65ecc185d962427c08645bc6d558a5c118311561a45145f776568959f035

Contents?: true

Size: 900 Bytes

Versions: 2

Compression:

Stored size: 900 Bytes

Contents

module Gmail
  module Client
    # Raised when connection with GMail IMAP service couldn't be established. 
    class ConnectionError < SocketError; end
    # Raised when given username or password are invalid.
    class AuthorizationError < Net::IMAP::NoResponseError; end
    # Raised when delivered email is invalid. 
    class DeliveryError < ArgumentError; end
    # Raised when given client is not registered
    class UnknownClient < ArgumentError; end

    def self.register(name, klass)
      @clients ||= {}
      @clients[name] = klass
    end

    def self.new(name, *args)
      if client = @clients[name]
        client.new(*args)
      else
        raise UnknownClient, "No such client: #{name}" 
      end
    end

    require 'gmail/client/imap_extensions'
    require 'gmail/client/base'
    require 'gmail/client/plain'
    require 'gmail/client/xoauth'
  end # Client
end # Gmail

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
gmail_gm_raw-0.4.4 lib/gmail/client.rb
gmail_gm_raw-0.4.3 lib/gmail/client.rb