Sha256: 9e411ba195bbecddfddceff4897f75332bafdceb017767ae355e1c7a12fef203

Contents?: true

Size: 1.02 KB

Versions: 6

Compression:

Stored size: 1.02 KB

Contents

module ActivityNotification
  # Notifier implementation included in notifier model to be notified, like users or administrators.
  module Notifier
    extend ActiveSupport::Concern
    included do
      include Common
      has_many :sent_notifications,
        class_name: "::ActivityNotification::Notification",
        as: :notifier
      class_attribute :_printable_notifier_name
      set_notifier_class_defaults
    end

    class_methods do
      # Checks if the model includes notifier methods are available.
      # @return [Boolean] Always true
      def available_as_notifier?
        true
      end

      # Sets default values to notifier class fields.
      # @return [NilClass] nil
      def set_notifier_class_defaults
        self._printable_notifier_name = :printable_name
        nil
      end
    end

    # Returns printable notifier model name to show in view or email.
    # @return [String] Printable notifier model name
    def printable_notifier_name
      resolve_value(_printable_notifier_name)
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
activity_notification-1.2.1 lib/activity_notification/models/concerns/notifier.rb
activity_notification-1.2.0 lib/activity_notification/models/concerns/notifier.rb
activity_notification-1.1.0 lib/activity_notification/models/concerns/notifier.rb
activity_notification-1.0.2 lib/activity_notification/models/concerns/notifier.rb
activity_notification-1.0.1 lib/activity_notification/models/concerns/notifier.rb
activity_notification-1.0.0 lib/activity_notification/models/concerns/notifier.rb