Module: Incoming::Strategy

Defined Under Namespace

Modules: ClassMethods Classes: InvalidOptionError, RequiredOptionError

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#messageObject

Public: A Mail::Message object, constructed by #initialize



70
71
72
# File 'lib/incoming/strategy.rb', line 70

def message
  @message
end

Class Method Details

.included(base) ⇒ Object



3
4
5
6
7
8
# File 'lib/incoming/strategy.rb', line 3

def self.included(base)
  base.extend ClassMethods
  base.class_eval do
    attr_reader :options
  end
end

Instance Method Details

#authenticateObject

Public: Authenticates request before performing #receive

Examples:

class MailReceiver < Incoming::Strategies::MyStrategy
  def initialize(request)
    @secret_word = request.params['secret_word']
  end

  def protected
    @secret_word == 'my secret word'
  end
end

Returns true by default



100
101
102
# File 'lib/incoming/strategy.rb', line 100

def authenticate
  true
end

#initialize(*args) ⇒ Object

Public: Translates arguments into a Mail::Message object



73
# File 'lib/incoming/strategy.rb', line 73

def initialize(*args) ; end

#receive(mail) ⇒ Object

Public: Evaluates message and performs appropriate action. Override in subclass

mail - A Mail::Message object

Returns nothing

Raises:

  • (NotImplementedError)


81
82
83
# File 'lib/incoming/strategy.rb', line 81

def receive(mail)
  raise NotImplementedError.new('You must implement #receive')
end