lib/gmail/client.rb in gmail-0.4.2 vs lib/gmail/client.rb in gmail-0.5.0

- old
+ new

@@ -1,30 +1,34 @@ module Gmail module Client - # Raised when connection with GMail IMAP service couldn't be established. + # 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. + # 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) + def self.clients @clients ||= {} - @clients[name] = klass end + def self.register(name, klass) + clients[name] = klass + end + def self.new(name, *args) - if client = @clients[name] + if client = clients[name] client.new(*args) else - raise UnknownClient, "No such client: #{name}" + raise UnknownClient, "No such client: #{name}" end end - require 'gmail/client/imap_extensions' + require 'gmail/imap_extensions' require 'gmail/client/base' require 'gmail/client/plain' require 'gmail/client/xoauth' + require 'gmail/client/xoauth2' end # Client end # Gmail