Class: ExceptionNotifier::EmailNotifier
- Inherits:
-
BaseNotifier
- Object
- BaseNotifier
- ExceptionNotifier::EmailNotifier
- Defined in:
- lib/exception_notifier/email_notifier.rb
Defined Under Namespace
Modules: Mailer
Instance Attribute Summary collapse
-
#background_sections ⇒ Object
Returns the value of attribute background_sections.
-
#deliver_with ⇒ Object
Returns the value of attribute deliver_with.
-
#delivery_method ⇒ Object
Returns the value of attribute delivery_method.
-
#email_format ⇒ Object
Returns the value of attribute email_format.
-
#email_headers ⇒ Object
Returns the value of attribute email_headers.
-
#email_prefix ⇒ Object
Returns the value of attribute email_prefix.
-
#exception_recipients ⇒ Object
Returns the value of attribute exception_recipients.
-
#mailer_parent ⇒ Object
Returns the value of attribute mailer_parent.
-
#mailer_settings ⇒ Object
Returns the value of attribute mailer_settings.
-
#normalize_subject ⇒ Object
Returns the value of attribute normalize_subject.
-
#post_callback ⇒ Object
Returns the value of attribute post_callback.
-
#pre_callback ⇒ Object
Returns the value of attribute pre_callback.
-
#sections ⇒ Object
Returns the value of attribute sections.
-
#sender_address ⇒ Object
Returns the value of attribute sender_address.
-
#template_path ⇒ Object
Returns the value of attribute template_path.
-
#verbose_subject ⇒ Object
Returns the value of attribute verbose_subject.
Attributes inherited from BaseNotifier
Class Method Summary collapse
Instance Method Summary collapse
- #call(exception, options = {}) ⇒ Object
- #create_email(exception, options = {}) ⇒ Object
-
#initialize(options) ⇒ EmailNotifier
constructor
A new instance of EmailNotifier.
- #mailer ⇒ Object
- #options ⇒ Object
Methods inherited from BaseNotifier
#_post_callback, #_pre_callback, #send_notice
Constructor Details
#initialize(options) ⇒ EmailNotifier
Returns a new instance of EmailNotifier.
125 126 127 128 129 130 131 132 133 134 135 136 137 |
# File 'lib/exception_notifier/email_notifier.rb', line 125 def initialize() super delivery_method = ([:delivery_method] || :smtp) mailer_settings_key = "#{delivery_method}_settings".to_sym [:mailer_settings] = .delete(mailer_settings_key) .reverse_merge(EmailNotifier.).select{|k,v|[ :sender_address, :exception_recipients, :pre_callback, :post_callback, :email_prefix, :email_format, :sections, :background_sections, :verbose_subject, :normalize_subject, :delivery_method, :mailer_settings, :email_headers, :mailer_parent, :template_path, :deliver_with].include?(k)}.each{|k,v| send("#{k}=", v)} end |
Instance Attribute Details
#background_sections ⇒ Object
Returns the value of attribute background_sections.
8 9 10 |
# File 'lib/exception_notifier/email_notifier.rb', line 8 def background_sections @background_sections end |
#deliver_with ⇒ Object
Returns the value of attribute deliver_with.
8 9 10 |
# File 'lib/exception_notifier/email_notifier.rb', line 8 def deliver_with @deliver_with end |
#delivery_method ⇒ Object
Returns the value of attribute delivery_method.
8 9 10 |
# File 'lib/exception_notifier/email_notifier.rb', line 8 def delivery_method @delivery_method end |
#email_format ⇒ Object
Returns the value of attribute email_format.
8 9 10 |
# File 'lib/exception_notifier/email_notifier.rb', line 8 def email_format @email_format end |
#email_headers ⇒ Object
Returns the value of attribute email_headers.
8 9 10 |
# File 'lib/exception_notifier/email_notifier.rb', line 8 def email_headers @email_headers end |
#email_prefix ⇒ Object
Returns the value of attribute email_prefix.
8 9 10 |
# File 'lib/exception_notifier/email_notifier.rb', line 8 def email_prefix @email_prefix end |
#exception_recipients ⇒ Object
Returns the value of attribute exception_recipients.
8 9 10 |
# File 'lib/exception_notifier/email_notifier.rb', line 8 def exception_recipients @exception_recipients end |
#mailer_parent ⇒ Object
Returns the value of attribute mailer_parent.
8 9 10 |
# File 'lib/exception_notifier/email_notifier.rb', line 8 def mailer_parent @mailer_parent end |
#mailer_settings ⇒ Object
Returns the value of attribute mailer_settings.
8 9 10 |
# File 'lib/exception_notifier/email_notifier.rb', line 8 def mailer_settings @mailer_settings end |
#normalize_subject ⇒ Object
Returns the value of attribute normalize_subject.
8 9 10 |
# File 'lib/exception_notifier/email_notifier.rb', line 8 def normalize_subject @normalize_subject end |
#post_callback ⇒ Object
Returns the value of attribute post_callback.
8 9 10 |
# File 'lib/exception_notifier/email_notifier.rb', line 8 def post_callback @post_callback end |
#pre_callback ⇒ Object
Returns the value of attribute pre_callback.
8 9 10 |
# File 'lib/exception_notifier/email_notifier.rb', line 8 def pre_callback @pre_callback end |
#sections ⇒ Object
Returns the value of attribute sections.
8 9 10 |
# File 'lib/exception_notifier/email_notifier.rb', line 8 def sections @sections end |
#sender_address ⇒ Object
Returns the value of attribute sender_address.
8 9 10 |
# File 'lib/exception_notifier/email_notifier.rb', line 8 def sender_address @sender_address end |
#template_path ⇒ Object
Returns the value of attribute template_path.
8 9 10 |
# File 'lib/exception_notifier/email_notifier.rb', line 8 def template_path @template_path end |
#verbose_subject ⇒ Object
Returns the value of attribute verbose_subject.
8 9 10 |
# File 'lib/exception_notifier/email_notifier.rb', line 8 def verbose_subject @verbose_subject end |
Class Method Details
.default_options ⇒ Object
170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 |
# File 'lib/exception_notifier/email_notifier.rb', line 170 def self. { :sender_address => %("Exception Notifier" <[email protected]>), :exception_recipients => [], :email_prefix => "[ERROR] ", :email_format => :text, :sections => %w(request session environment backtrace), :background_sections => %w(backtrace data), :verbose_subject => true, :normalize_subject => false, :delivery_method => nil, :mailer_settings => nil, :email_headers => {}, :mailer_parent => 'ActionMailer::Base', :template_path => 'exception_notifier', :deliver_with => :deliver_now } end |
.normalize_digits(string) ⇒ Object
189 190 191 |
# File 'lib/exception_notifier/email_notifier.rb', line 189 def self.normalize_digits(string) string.gsub(/[0-9]+/, 'N') end |
Instance Method Details
#call(exception, options = {}) ⇒ Object
152 153 154 |
# File 'lib/exception_notifier/email_notifier.rb', line 152 def call(exception, ={}) create_email(exception, ).send(deliver_with) end |
#create_email(exception, options = {}) ⇒ Object
156 157 158 159 160 161 162 163 164 165 166 167 168 |
# File 'lib/exception_notifier/email_notifier.rb', line 156 def create_email(exception, ={}) env = [:env] = self. if env.nil? send_notice(exception, , nil, ) do |_, default_opts| mailer.background_exception_notification(exception, , default_opts) end else send_notice(exception, , nil, ) do |_, default_opts| mailer.exception_notification(env, exception, , default_opts) end end end |
#mailer ⇒ Object
145 146 147 148 149 150 |
# File 'lib/exception_notifier/email_notifier.rb', line 145 def mailer @mailer ||= Class.new(mailer_parent.constantize).tap do |mailer| mailer.extend(EmailNotifier::Mailer) mailer.mailer_name = template_path end end |
#options ⇒ Object
139 140 141 142 143 |
# File 'lib/exception_notifier/email_notifier.rb', line 139 def @options ||= {}.tap do |opts| self.instance_variables.each { |var| opts[var[1..-1].to_sym] = self.instance_variable_get(var) } end end |