Sha256: f00ecf711b7689371c0a71ee0be7f5c46a2ede1c7bc0d857390bdcf461a99099
Contents?: true
Size: 857 Bytes
Versions: 2
Compression:
Stored size: 857 Bytes
Contents
# frozen_string_literal: true require 'active_support' module NotificationSettings module Subscriber extend ActiveSupport::Concern included do has_many :notification_subscribables, as: :subscriber, class_name: 'NotificationSettings::Subscription', dependent: :destroy include NotificationSettings::Subscriber::InstanceMethods end module InstanceMethods def subscribe(subscribable, options = {}) notification_subscribables.create( options.merge(subscribable: subscribable) ) end def unsubscribe(subscribable) subscription = notification_subscribables.find_by( subscribable_id: subscribable.id, subscribable_type: subscribable.class.name ) subscription&.destroy end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
notification-settings-3.0.2 | lib/notification_settings/subscriber.rb |
notification-settings-2.0.0 | lib/notification_settings/subscriber.rb |