module Newsletterable::Subscriber::ClassMethods
Public Instance Methods
subscribe_on(list_name, options = {})
click to toggle source
# File lib/newsletterable/subscriber.rb, line 68 def subscribe_on(list_name, options = {}) field = options[:field] || list_name self.__newsletterable_options ||= {} self.__newsletterable_options[list_name] = options.merge(field: field) after_save -> { manage_subscription(list_name) }, if: :"#{field}_changed?" define_method :"update_subscription_#{list_name}" do |&block| update_subscription(list_name, &block) end around_update :"update_subscription_#{list_name}", if: -> { send(:"#{field}?") && email_changed? } unless options[:unsubscribe_on_destroy] before_destroy -> { remove_subscription(list_name) }, if: :"#{field}?" end end