Class: SendgridEvents::Handlers::Base
- Inherits:
-
Object
- Object
- SendgridEvents::Handlers::Base
show all
- Defined in:
- lib/sendgrid_events/handlers/base.rb
Class Method Summary
collapse
Class Method Details
.acceptable_handlers ⇒ Object
.choose_and_handle(event) ⇒ Object
16
17
18
19
20
|
# File 'lib/sendgrid_events/handlers/base.rb', line 16
def self.choose_and_handle(event)
if registered_handlers[event[:event]] and selected_handlers[event[:event]]
registered_handlers[event[:event]].handle(event)
end
end
|
.find_and_update_event(event) ⇒ Object
43
44
45
46
47
|
# File 'lib/sendgrid_events/handlers/base.rb', line 43
def self.find_and_update_event(event)
SendgridEmailRecord.find_by_id(event[:sendgrid_events_id]).tap do |record|
record.update_attributes(:status => handlee) unless record.nil?
end
end
|
.handle(event) ⇒ Object
38
39
40
41
|
# File 'lib/sendgrid_events/handlers/base.rb', line 38
def self.handle(event)
found_event = find_and_update_event(event)
handler.call(found_event) unless found_event.nil? or handler.nil?
end
|
.handler(&block) ⇒ Object
34
35
36
|
# File 'lib/sendgrid_events/handlers/base.rb', line 34
def self.handler(&block)
block_given? ? @handler = block : @handler
end
|
.register_as_handler_for(handlee) ⇒ Object
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/sendgrid_events/handlers/base.rb', line 22
def self.register_as_handler_for(handlee)
if acceptable_handlers[handlee]
handlee = handlee.to_s
registered_handlers[handlee] = self.name.constantize
self.name.constantize.send :define_singleton_method, :handlee do
self.name.demodulize.downcase
end
else
raise ArgumentError, "#{handlee.to_s.titleize} is not in the Dispatch's list of acceptable handlers"
end
end
|
.registered_handlers ⇒ Object
.selected_handlers ⇒ Object