module AutoAlert::ActsAsAlert::ClassMethods

Public Instance Methods

acts_as_alert() click to toggle source

Class method to register a model as alertable

# File lib/auto_alert/acts_as_alert.rb, line 7
def acts_as_alert
  belongs_to :alertable, polymorphic: true
  scope :resolved, -> { where(resolved: true) }
  scope :unresolved, -> { where(resolved: false) }

  validates :kind,
    uniqueness: {
      scope: :alertable,
      message: ->(record, data) { "This #{record.alertable_type} already has a '#{data[:value]}' alert." },
    }
  include AutoAlert::ActsAsAlert::LocalInstanceMethods
  extend AutoAlert::ActsAsAlert::SingletonMethods
end