lib/notification_settings/subscriber.rb in notification-settings-1.0.0.beta10 vs lib/notification_settings/subscriber.rb in notification-settings-1.0.0.beta11
- old
+ new
@@ -1,17 +1,29 @@
+require 'active_support'
+
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
+ extend ActiveSupport::Concern
- def subscribe options = {}
- self.notification_subscriptions.create options
+ included do
+ has_many :notification_subscriptions, as: :subscriber, class_name: 'NotificationSettings::Subscription', dependent: :destroy
+ has_many :notification_subscribables, through: :notification_subscriptions, source: :subscribable
+
+ include NotificationSettings::Subscriber::InstanceMethods
end
- def unsubscribe subscribable
- subscription = self.notification_subscriptions.find_by subscribable_id: subscribable.id, subscribable_type: subscribable.class.to_s
- subscription.destroy
+ module InstanceMethods
+
+ def subscribe options = {}
+ self.notification_subscriptions.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
end