module ActsAsNotifier::LocalInstanceMethods
Public Instance Methods
force_notification(options = {})
click to toggle source
find a notification action matching options and trigger it, ignoring conditions
# File lib/acts_as_notifier.rb, line 65 def force_notification(options = {}) opts = options.to_a action = self.class.notifier_actions.find { |action| action.to_a & opts == opts } notifier_send(action) end
Private Instance Methods
notifier_conditions_satisfied?(action)
click to toggle source
# File lib/acts_as_notifier.rb, line 91 def notifier_conditions_satisfied?(action) condition = action[:if] condition = case condition when String instance_eval(condition) when Proc instance_exec(action, &condition) when Symbol self.send(condition) when nil true else condition end !!condition end
notifier_create_handler()
click to toggle source
# File lib/acts_as_notifier.rb, line 73 def notifier_create_handler notifier_handler(:after_create) unless ActsAsNotifier::Config.disabled end
notifier_get_mailer(action)
click to toggle source
# File lib/acts_as_notifier.rb, line 135 def notifier_get_mailer(action) mailer = action[:mailer] || ActsAsNotifier::Config.default_mailer mailer = eval(mailer.to_s) if mailer.is_a?(String) || mailer.is_a?(Symbol) raise "ActsAsNotifier invalid mailer configuration, mailer not specified" unless mailer.present? method = action[:method] || ActsAsNotifier::Config.default_method raise "ActsAsNotifier invalid mailer method configuration, method not specified" unless method.present? raise "ActsAsNotifier invalid mailer method configuration, method must be a string or symbol" unless method.is_a?(String) || method.is_a?(Symbol) raise "ActsAsNotifier invalid mailer method configuration, #{method} is not a valid method of #{mailer.to_s}" unless mailer.respond_to?(method) return mailer, method end
notifier_handler(callback_type)
click to toggle source
# File lib/acts_as_notifier.rb, line 85 def notifier_handler(callback_type) self.class.notifier_actions.each do |action| notifier_send(action) if action[:callback_type].to_sym == callback_type && notifier_conditions_satisfied?(action) end end
notifier_recipients(action)
click to toggle source
# File lib/acts_as_notifier.rb, line 108 def notifier_recipients(action) recipients = action[:recipients] recipients = case recipients when Proc instance_exec(action, &recipients) when Symbol self.send(recipients) else recipients end recipients = [ recipients ] unless recipients.is_a?(Array) recipient_list = recipients.map {|r| r.respond_to?(:email) ? r.email : r }.join(', ') recipient_list end
notifier_save_handler()
click to toggle source
# File lib/acts_as_notifier.rb, line 77 def notifier_save_handler notifier_handler(:after_save) unless ActsAsNotifier::Config.disabled end
notifier_send(action)
click to toggle source
# File lib/acts_as_notifier.rb, line 123 def notifier_send(action) if (recipients = notifier_recipients(action)).present? mailer, method = notifier_get_mailer(action) if ActsAsNotifier::Config.use_delayed_job && mailer.respond_to?(:delay) mailer.delay.send(method, recipients, self) else message = mailer.send(method, recipients, self) message.deliver if message.respond_to?(:deliver) end end end
notifier_update_handler()
click to toggle source
# File lib/acts_as_notifier.rb, line 81 def notifier_update_handler notifier_handler(:after_update) unless ActsAsNotifier::Config.disabled end