class Bullet::Notification::Base
Attributes
Public Class Methods
Source
# File lib/bullet/notification/base.rb, line 9 def initialize(base_class, association_or_associations, path = nil) @base_class = base_class @associations = association_or_associations.is_a?(Array) ? association_or_associations : [association_or_associations] @path = path end
Public Instance Methods
Source
# File lib/bullet/notification/base.rb, line 20 def body raise NoMethodError, 'no method body defined' end
Source
# File lib/bullet/notification/base.rb, line 41 def body_with_caller "#{body}\n#{call_stack_messages}\n" end
Source
# File lib/bullet/notification/base.rb, line 24 def call_stack_messages '' end
Source
# File lib/bullet/notification/base.rb, line 72 def eql?(other) self.class == other.class && klazz_associations_str == other.klazz_associations_str end
Source
# File lib/bullet/notification/base.rb, line 76 def hash [self.class, klazz_associations_str].hash end
Source
# File lib/bullet/notification/base.rb, line 63 def notification_data hash = {} hash[:user] = whoami unless Bullet.skip_user_in_notification hash[:url] = url hash[:title] = title hash[:body] = body_with_caller hash end
Source
# File lib/bullet/notification/base.rb, line 45 def notify_inline notifier.inline_notify(notification_data) end
Source
# File lib/bullet/notification/base.rb, line 49 def notify_out_of_channel notifier.out_of_channel_notify(notification_data) end
Source
# File lib/bullet/notification/base.rb, line 53 def short_notice parts = [] parts << whoami.presence unless Bullet.skip_user_in_notification parts << url parts << title parts << body parts.compact.join(' ') end
Source
# File lib/bullet/notification/base.rb, line 16 def title raise NoMethodError, 'no method title defined' end
Source
# File lib/bullet/notification/base.rb, line 28 def whoami @user ||= ENV['USER'].presence || ( begin `whoami`.chomp rescue StandardError '' end ) @user.present? ? "user: #{@user}" : '' end
Protected Instance Methods
Source
# File lib/bullet/notification/base.rb, line 86 def associations_str ".includes(#{@associations.map { |a| a.to_s.to_sym } .inspect})" end
Source
# File lib/bullet/notification/base.rb, line 82 def klazz_associations_str " #{@base_class} => [#{@associations.map(&:inspect).join(', ')}]" end