class Hermes::Cli::Pop

Public Class Methods

new(host, port = nil) click to toggle source
# File lib/hermes/cli/pop.rb, line 13
def initialize host, port = nil
  if not port and host =~ /:(\d+)\z/ then
    host, port = $`, $1.to_i
  end
  @host, @port = host, port
  require "net/pop"
end

Public Instance Methods

count() click to toggle source
# File lib/hermes/cli/pop.rb, line 41
def count ; @pop.n_mails ; end
each() { |pop| ... } click to toggle source
# File lib/hermes/cli/pop.rb, line 43
def each
  @pop.mails.each do |m|
    begin
      yield m.pop
      m.delete
    rescue Keep
    end
  end
end
login(user, password) { || ... } click to toggle source
# File lib/hermes/cli/pop.rb, line 21
def login user, password
  do_apop do
    @pop = Net::POP3.new @host, @port, @apop
    do_ssl
    @pop.start user, password do |pop|
      @user = user
      yield
    end
  end
ensure
  @user = nil
end
name() click to toggle source
# File lib/hermes/cli/pop.rb, line 34
def name
  @user or raise "Not logged in."
  r = "#@user@#@host"
  r << ":#@port" if @port
  r
end

Private Instance Methods

do_apop() { || ... } click to toggle source
# File lib/hermes/cli/pop.rb, line 55
def do_apop
  @apop = true
  begin
    yield
  rescue Net::POPAuthenticationError
    raise unless @apop
    @apop = false
    retry
  end
end
do_ssl() click to toggle source
# File lib/hermes/cli/pop.rb, line 66
def do_ssl
  @pop.disable_ssl
end