module Dmail::Impl

Constants

DOCS_PATH

Public Instance Methods

help() click to toggle source
# File lib/dmail/impl.rb, line 12
def help
  doc = ARGV[1].nil? ? 'main.txt' : "dmail-#{ARGV[1]}.txt"
  puts IO.read(File.join(DOCS_PATH, doc))
end
list() click to toggle source
# File lib/dmail/impl.rb, line 17
def list
  params = get_params(
    :mailbox,
    count:  %w(-c --count),
    unread: %w(-u --unread)
  )
  query = { read_only: true, order: :asc, what: :first }
  query[:mailbox] = params[:mailbox] || 'INBOX'
  query[:count] = params[:count].nil? ? 10 : params[:count].to_i
  query[:keys] = 'UNSEEN' if params[:unread]

  setup_pager!
  Mail.find(query).each { |email| print_email_header(email) }
end
show() click to toggle source
# File lib/dmail/impl.rb, line 32
def show
  params = get_params(
    :mailbox,
    leave_unread: %w(-m --leave-unread)
  )
  query = {}
  query[:mailbox] = params[:mailbox] || 'INBOX'
  query[:read_only] = true if params[:leave_unread]

  message_id = ARGV[1]
  if message_id then
    query[:keys] = "HEADER Message-id #{message_id}"
  else
    query[:what] = :last
    query[:count] = 1
  end

  setup_pager!
  [Mail.find(query)].flatten.each do |email|
    print_email_header(email)
    puts
    puts email.text_part.decoded.strip
    puts
  end
end
status() click to toggle source
# File lib/dmail/impl.rb, line 58
def status
  params = get_params(:mailbox)
  query = { keys: 'UNSEEN', read_only: true }
  query[:mailbox] = params[:mailbox] || 'INBOX'
  query[:count] = 1000 # Hack to read all unreads and not only 10
  unseen = Mail.find(query).count
  puts "Unread: #{unseen}"
end

Private Instance Methods

print_email_header(email) click to toggle source