Class: EmailControllerHelper::BaseEmailUnsubscriber
- Inherits:
-
Object
- Object
- EmailControllerHelper::BaseEmailUnsubscriber
- Defined in:
- lib/email_controller_helper/base_email_unsubscriber.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#unsubscribe_key ⇒ Object
readonly
Returns the value of attribute unsubscribe_key.
Instance Method Summary collapse
-
#initialize(unsubscribe_key) ⇒ BaseEmailUnsubscriber
constructor
A new instance of BaseEmailUnsubscriber.
-
#prepare_unsubscribe_options(controller) ⇒ Object
Sets instance variables in the ‘EmailController#unsubscribe`, which are later available in the view.
-
#unsubscribe(params) ⇒ Object
Called by the ‘EmailController#perform_unsubscribe` and defines what unsubscribing means.
Constructor Details
#initialize(unsubscribe_key) ⇒ BaseEmailUnsubscriber
Returns a new instance of BaseEmailUnsubscriber.
6 7 8 |
# File 'lib/email_controller_helper/base_email_unsubscriber.rb', line 6 def initialize(unsubscribe_key) @unsubscribe_key = unsubscribe_key end |
Instance Attribute Details
#unsubscribe_key ⇒ Object (readonly)
Returns the value of attribute unsubscribe_key.
10 11 12 |
# File 'lib/email_controller_helper/base_email_unsubscriber.rb', line 10 def unsubscribe_key @unsubscribe_key end |
Instance Method Details
#prepare_unsubscribe_options(controller) ⇒ Object
Sets instance variables in the ‘EmailController#unsubscribe`, which are later available in the view. Don’t forget to call super when extending this method.
14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/email_controller_helper/base_email_unsubscriber.rb', line 14 def (controller) controller.instance_variable_set(:@digest_unsubscribe, false) controller.instance_variable_set(:@watched_count, nil) controller.instance_variable_set(:@type, unsubscribe_key.unsubscribe_key_type) controller.instance_variable_set(:@user, key_owner) controller.instance_variable_set( :@unsubscribed_from_all, key_owner.user_option.unsubscribed_from_all?, ) end |
#unsubscribe(params) ⇒ Object
Called by the ‘EmailController#perform_unsubscribe` and defines what unsubscribing means.
Receives the request params and returns a boolean indicating if any preferences were updated.
Don’t forget to call super when extending this method.
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/email_controller_helper/base_email_unsubscriber.rb', line 32 def unsubscribe(params) updated = false if params[:disable_mailing_list] key_owner.user_option.update_columns(mailing_list_mode: false) updated = true end if params[:unsubscribe_all] key_owner.user_option.update_columns( email_digests: false, email_level: UserOption.email_level_types[:never], email_messages_level: UserOption.email_level_types[:never], mailing_list_mode: false, ) updated = true end updated end |