class QiitaPicks::Mailer

Public Class Methods

new(email, password) click to toggle source
# File lib/qiita_picks/mailer.rb, line 10
def initialize(email, password)
  @gmail = Gmail.new(email, password)
end

Public Instance Methods

deliver(params={}) click to toggle source
# File lib/qiita_picks/mailer.rb, line 14
def deliver(params={})
  return if params[:add_files].compact.empty?
  @gmail.deliver {
    to      params[:to]
    subject params[:subject]
    body    params[:body]
    params[:add_files].each {|f| add_file(f)}
  }
end
weekly_stocked(limit=5) click to toggle source
# File lib/qiita_picks/mailer.rb, line 31
def weekly_stocked(limit=5)
  @gmail.inbox.emails(:unread, from: "noreply@qiita.com").last(limit).inject([]) do |data, mail|
    next unless /^.+?さんが今週Qiitaでストックした記事$/ =~ mail.subject
    doc = Nokogiri::HTML NKF.nkf('-w', NKF.nkf('-w', mail.body.decoded))
    url = doc.css('.stockedArticlesTable a').inject([]){|list, elem|
      list << elem.attr("href").match(/(^http.+?)\?/)[1]
    }.uniq
    data << Hash[:subject, mail.subject, :date, mail.date, :url, url]
  end
end