class GmailCli::Imap
Attributes
imap[RW]
oauth_options[RW]
options[RW]
Public Class Methods
new(options={})
click to toggle source
# File lib/gmail_cli/imap.rb, line 18 def initialize(options={}) options = options.dup @oauth_options = { client_id: options.delete(:client_id), client_secret: options.delete(:client_secret), access_token: options.delete(:access_token), refresh_token: options.delete(:refresh_token) } @options = { host: 'imap.gmail.com' }.merge(options) @options[:host_options] ||= { port: 993, ssl: true } end
Public Instance Methods
connect!()
click to toggle source
# File lib/gmail_cli/imap.rb, line 52 def connect! disconnect! refresh_access_token! # we cheat a bit here - refreshing the token every time we get a new connection trace "#{__method__} to host", host self.imap = Net::IMAP.new(host,host_options) trace "imap capabilities", imap.capability imap.authenticate('XOAUTH2', username, oauth_access_token) imap end
disconnect!()
click to toggle source
# File lib/gmail_cli/imap.rb, line 62 def disconnect! return unless imap trace "calling", __method__ imap.close self.imap = nil rescue Exception => e trace "#{__method__} error", e end
host()
click to toggle source
# File lib/gmail_cli/imap.rb, line 39 def host options[:host] end
host_options()
click to toggle source
# File lib/gmail_cli/imap.rb, line 45 def host_options options[:host_options] end
oauth_access_token()
click to toggle source
# File lib/gmail_cli/imap.rb, line 48 def oauth_access_token oauth_options[:access_token] end
refresh_access_token!()
click to toggle source
# File lib/gmail_cli/imap.rb, line 35 def refresh_access_token! oauth_options[:access_token] = GmailCli::Oauth2Helper.new(oauth_options).refresh_access_token! end
username()
click to toggle source
# File lib/gmail_cli/imap.rb, line 42 def username options[:username] end