class MailFetcher::Client

Attributes

account[RW]
clean_inbox[RW]
client_id[RW]
client_secret[RW]
host[RW]
logger[RW]
max_wait_time[RW]
port[RW]
refresh_token[RW]
server_type[RW]

Public Class Methods

configure() { |self| ... } click to toggle source
# File lib/mail_fetcher/client.rb, line 10
def configure
  self.max_wait_time = 30
  self.clean_inbox = false
  yield self
  if debug_mode && !self.logger
    self.logger = self.create_default_logger
  end
end
find(*args) click to toggle source
# File lib/mail_fetcher/client.rb, line 19
def find(*args)
  client.find(*args)
end

Protected Class Methods

client() click to toggle source
# File lib/mail_fetcher/client.rb, line 25
def client
  @client ||= create_client
end

Private Class Methods

create_client() click to toggle source
# File lib/mail_fetcher/client.rb, line 31
def create_client
  case self.server_type
    when :mail_catcher
      _client = MailCatcherClient.new(host, port, clean_inbox = clean_inbox)
    when :gmail
      _client = GmailClient.new(account, client_id, client_secret, refresh_token)
    else
      raise InvalidArgument.new('Unsupported server type')
  end
  _client.logger = logger
  _client
end
create_default_logger() click to toggle source
# File lib/mail_fetcher/client.rb, line 48
def create_default_logger
  _logger = Logger.new(STDOUT)
  _logger.level = Logger::DEBUG
  _logger.formatter = proc do |severity, datetime, progname, msg|
    "[#{severity}][#{datetime}] - #{msg}\n"
  end
  _logger.datetime_format = '%Y-%m-%d %H:%M:%S'
  _logger
end
debug_mode() click to toggle source
# File lib/mail_fetcher/client.rb, line 44
def debug_mode
  YAML.load(ENV.fetch('DEBUG', 'false'))
end