class MailProcessor

Public Class Methods

new(mail, route, original=nil) click to toggle source
# File lib/airmail/mail_processor.rb, line 3
def initialize mail, route, original=nil
  @mail = mail
  @raw_mail = original
  @route = route
  default_controller
end

Public Instance Methods

default_controller() click to toggle source
# File lib/airmail/mail_processor.rb, line 48
def default_controller
  @delivering_controller = nil
end
deliver(controller) click to toggle source
# File lib/airmail/mail_processor.rb, line 39
def deliver controller
  @delivering_controller ||= controller
end
deliver_to(controller) click to toggle source
# File lib/airmail/mail_processor.rb, line 43
def deliver_to controller
  controller = controller.gsub(/(^|_)([a-z])/){ $2.upcase }
  @delivering_controller ||= "#{controller}Controller".constantize
end
from?(*args) click to toggle source
# File lib/airmail/mail_processor.rb, line 20
def from? *args
  from
end
has_attachment?() click to toggle source
# File lib/airmail/mail_processor.rb, line 24
def has_attachment?
  @mail.attachments.size > 0
end
logger() click to toggle source
# File lib/airmail/mail_processor.rb, line 52
def logger
  Airmail.logger
end
or_regex(phrase) click to toggle source
# File lib/airmail/mail_processor.rb, line 34
def or_regex(phrase)
  return "[#{phrase.join("|")}]" if phrase.is_a? Array
  phrase
end
receive() click to toggle source
# File lib/airmail/mail_processor.rb, line 10
def receive
  default_controller
  self.instance_eval(&@route)

  @delivering_controller ||= AirmailDefaultController
  controller = @delivering_controller.new(@mail, @raw_mail)
  controller.before_receive if controller.respond_to? :before_receive
  controller.receive
end
sentiment(*phrase) click to toggle source

poor mans sentiment analyzer

# File lib/airmail/mail_processor.rb, line 29
def sentiment *phrase
  analizer = Airmail::Sentiment.new(phrase)
  !!analizer.analyze(@mail.body.raw_source)
end