Sha256: 140ede1235b0181d7094c10e45ed69e708c33c6a5f232222744f88ae35f42883

Contents?: true

Size: 698 Bytes

Versions: 2

Compression:

Stored size: 698 Bytes

Contents

module NotificationSettings
    module Subscriber

        has_many :notification_subscriptions, as: :subscriber, class_name: 'NotificationSettings::Subscription', dependent: :destroy
        has_many :notification_subscribables, through: :notification_subscriptions, source: :subscribable

        def subscribe options = {}
            options[:subscriber] = self
            NotificationSettings::Subscription.create options
        end

        def unsubscribe subscribable
            subscription = self.notification_subscriptions.find_by subscribable_id: subscribable.id, subscribable_type: subscribable.class.to_s
            subscription.destroy
        end

    end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
notification-settings-1.0.0.beta8 lib/notification_settings/subscriber.rb
notification-settings-1.0.0.beta7 lib/notification_settings/subscriber.rb