module Mailkick::Model

Public Instance Methods

has_subscriptions() click to toggle source
# File lib/mailkick/model.rb, line 3
def has_subscriptions
  class_eval do
    has_many :mailkick_subscriptions, class_name: "Mailkick::Subscription", as: :subscriber
    scope :subscribed, -> (list) { joins(:mailkick_subscriptions).where(mailkick_subscriptions: {list: list}) }

    def subscribe(list)
      mailkick_subscriptions.where(list: list).first_or_create!
      nil
    end

    def unsubscribe(list)
      mailkick_subscriptions.where(list: list).delete_all
      nil
    end

    def subscribed?(list)
      mailkick_subscriptions.where(list: list).exists?
    end
  end
end
subscribe(list) click to toggle source
# File lib/mailkick/model.rb, line 8
def subscribe(list)
  mailkick_subscriptions.where(list: list).first_or_create!
  nil
end
subscribed?(list) click to toggle source
# File lib/mailkick/model.rb, line 18
def subscribed?(list)
  mailkick_subscriptions.where(list: list).exists?
end
unsubscribe(list) click to toggle source
# File lib/mailkick/model.rb, line 13
def unsubscribe(list)
  mailkick_subscriptions.where(list: list).delete_all
  nil
end