Class: MerbExceptions::Notification

Inherits:
Object
  • Object
show all
Defined in:
lib/merb-exceptions/notification.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(details = nil) ⇒ Notification

Returns a new instance of Notification.



9
10
11
12
# File 'lib/merb-exceptions/notification.rb', line 9

def initialize(details = nil)
  @details = details || {}
  @config = Merb::Plugins.config[:exceptions]
end

Instance Attribute Details

#detailsObject (readonly)

Returns the value of attribute details.



7
8
9
# File 'lib/merb-exceptions/notification.rb', line 7

def details
  @details
end

Instance Method Details

#deliver!Object



14
15
16
17
# File 'lib/merb-exceptions/notification.rb', line 14

def deliver!
  deliver_web_hooks!
  deliver_emails!
end

#deliver_emails!Object



27
28
29
30
31
32
33
# File 'lib/merb-exceptions/notification.rb', line 27

def deliver_emails!
  return unless should_deliver_notifications?
  Merb.logger.info  "DELIVERING EXCEPTION EMAILS"
  email_addresses.each do |address|
    send_notification_email(address)
  end
end

#deliver_web_hooks!Object



19
20
21
22
23
24
25
# File 'lib/merb-exceptions/notification.rb', line 19

def deliver_web_hooks!
  return unless should_deliver_notifications?
  Merb.logger.info "DELIVERING EXCEPTION WEB HOOKS"
  web_hooks.each do |address|
    post_hook(address)
  end
end

#email_addressesObject



37
# File 'lib/merb-exceptions/notification.rb', line 37

def email_addresses; option_as_array(:email_addresses); end

#environmentsObject



39
# File 'lib/merb-exceptions/notification.rb', line 39

def environments; option_as_array(:environments); end

#paramsObject



47
48
49
50
51
52
53
54
55
56
57
# File 'lib/merb-exceptions/notification.rb', line 47

def params
  {
    'request_url'              => details['url'],
    'request_controller'       => details['params'][:controller],
    'request_action'           => details['params'][:action],
    'request_params'           => details['params'],
    'environment'              => details['environment'],
    'exceptions'               => details['exceptions'],
    'app_name'                 => @config[:app_name]
  }
end

#should_deliver_notifications?Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/merb-exceptions/notification.rb', line 42

def should_deliver_notifications?
  environments.include? Merb.env
end

#web_hooksObject



35
# File 'lib/merb-exceptions/notification.rb', line 35

def web_hooks; option_as_array(:web_hooks); end