Sha256: 067e7b3456c746ad58ac035ba4a62012101516584f77d56b7ddea4d70c4faf87

Contents?: true

Size: 786 Bytes

Versions: 2

Compression:

Stored size: 786 Bytes

Contents

# frozen_string_literal: true

module Nuntius
  module Nuntiable
    extend ActiveSupport::Concern

    class_methods do
      def nuntiable_options
        @_nuntius_nuntiable_options || {}
      end

      def messenger
        Nuntius::BaseMessenger.messenger_for_class(name)
      end
    end

    included do
      raise "Nuntius Messenger has not been implemented for class #{name}" unless messenger

      Nuntius.config.add_nuntiable_class(self)
      has_many :messages, as: :nuntiable, class_name: "Nuntius::Message", dependent: :destroy
      has_many :nuntius_subscriptions, as: :nuntiable, class_name: "Nuntius::Subscriber", dependent: :delete_all
      has_many :nuntius_lists, through: :nuntius_subscriptions, class_name: "Nuntius::List", source: :list
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
nuntius-1.3.19 lib/nuntius/nuntiable.rb
nuntius-1.3.18 lib/nuntius/nuntiable.rb