class TodoistizeMail::Mailer
Constants
- MAILBOX_NAME
- SUBJECT_ATTR
Public Class Methods
new(host, port, usessl)
click to toggle source
# File lib/todoistize_mail/mailer.rb, line 10 def initialize(host, port, usessl) @imap = Net::IMAP.new(host, port, usessl) end
Public Instance Methods
login(user, passwd) { |self| ... }
click to toggle source
# File lib/todoistize_mail/mailer.rb, line 14 def login(user, passwd) @imap.login(user, passwd) if block_given? yield self logout end self end
logout()
click to toggle source
# File lib/todoistize_mail/mailer.rb, line 23 def logout @imap.logout self end
mark_read(subject) { |target| ... }
click to toggle source
# File lib/todoistize_mail/mailer.rb, line 37 def mark_read(subject) target = unread_list.select { |_k, unread_subject| subject =~ /^#{unread_subject}$/ } return if target.count == 0 yield target if block_given? @imap.select(MAILBOX_NAME) target.each { |id, _v| @imap.store(id, '+FLAGS', [:Seen]) } end
unread?(subject)
click to toggle source
# File lib/todoistize_mail/mailer.rb, line 32 def unread?(subject) unread_list.each { |_id, unread_subject| return true if subject =~ /^#{unread_subject}$/ } false end
unread_subjects()
click to toggle source
# File lib/todoistize_mail/mailer.rb, line 28 def unread_subjects unread_list.each_with_object([]) { |(_id, subject), subjects| subjects << subject } end
Private Instance Methods
unread_list()
click to toggle source
# File lib/todoistize_mail/mailer.rb, line 47 def unread_list @imap.examine(MAILBOX_NAME) @imap.search(['UNSEEN']).each_with_object({}) do |id, hash| msg = @imap.fetch(id, [SUBJECT_ATTR]).first hash.merge!(id => msg.attr[SUBJECT_ATTR].toutf8.strip) end end