Sha256: 2549e9058c31b1a03dddd550061e177ce8623e5a46437730242ef5720603a98c

Contents?: true

Size: 1.36 KB

Versions: 3

Compression:

Stored size: 1.36 KB

Contents

module Lipsiadmin
  module Mailer
    # This class send notification through mail if an exception
    # occour in a controller.
    class ExceptionNotifier < ActionMailer::Base

      @@sender_address = %("Exception Notifier" <exception.notifier@default.com>)
      cattr_accessor :sender_address

      @@recipients_addresses = []
      cattr_accessor :recipients_addresses

      @@extra_options = {}
      cattr_accessor :extra_options

      @@send_mail = true
      cattr_accessor :send_mail

      @@email_prefix = "[ERROR] "
      cattr_accessor :email_prefix

      self.mailer_name = "exception"
      self.template_root = "#{File.dirname(__FILE__)}"

      def self.reloadable?#:nodoc:
        false
      end

      # This method deliver the exception for the given controller and request
      def exception(exception, controller, request)
        content_type "text/plain"

        subject    "#{email_prefix} A #{exception.class} occurred in #{controller.controller_name}##{controller.action_name}"

        recipients recipients_addresses
        from       sender_address

        body       :controller => controller, :request => request,
                   :exception => exception, :host => (request.env["HTTP_X_FORWARDED_HOST"] || request.env["HTTP_HOST"]),
                   :backtrace => exception.backtrace, :extra_options => extra_options
      end

    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
lipsiadmin-5.1.9 lib/mailer/exception_notifier.rb
lipsiadmin-5.1.8 lib/mailer/exception_notifier.rb
lipsiadmin-5.1.7 lib/mailer/exception_notifier.rb