Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
September 28, 2021 12:31 am GMT

I built a gem that makes it easy to automatically unsubscribe from emails in Rails.

Source Code

https://github.com/stevepolitodesign/unsubscribe

Demo

Demo

Docs

Unsubscribe

Automatically unsubscribe from emails in Rails.

Installation

Add this line to your application's Gemfile:

gem 'unsubscribe'

And then execute:

$ bundle

Or install it yourself as:

$ gem install unsubscribe

Then run the installation commands:

rails g unsubscribe:installrails unsubscribe:install:migrationsrails db:migrate

Usage

Unsubscribe::Owner

  • Add include Unsubscribe::Owner to a Model. The Model must have an email column.
class User < ApplicationRecord  include Unsubscribe::Ownerend
Available Methods
User.first.mailer_subscriptions# => #<ActiveRecord::Associations::CollectionProxy [#<Unsubscribe::MailerSubscription>, #<Unsubscribe::MailerSubscription>] >User.first.subscribed_to_mailer? "MarketingMailer"# => true/falseUser.first.to_sgid_for_mailer_subscription# => #<SignedGlobalID:123 ...>

Unsubscribe::Mailer

  • Add include Unsubscribe::Mailer to a Mailer.
  • Optionally call unsubscribe_settings to set a name and description. This will be used in the unsubscribe page.
  • Set mail to: to @recipient.email. The @recipient is an instance of whatever Class include Unsubscribe::Owner was added to.
class MarketingMailer < ApplicationMailer    include Unsubscribe::Mailer  unsubscribe_settings name: "Marketing Emails", description: "Updates on promotions and sales."  def promotion    mail to: @recipient.email  end  end
  • Call the Mailer with a recipient parameter.
  MarketingMailer.with(    recipient: User.first  ).promotion.deliver_now

Available Methods

Unsubscribe::MailerSubscription.first.action# => "Unsubscribe from"/"Subscribe to"Unsubscribe::MailerSubscription.first.call_to_action# => "Unsubscribe from Marketing Emails"/"Subscribe to Marketing Emails"Unsubscribe::MailerSubscription.first.description# => "Updates on promotions and sales."Unsubscribe::MailerSubscription.first.name# => "Marketing Emails"

Unsubscribe Link

  • Add the @unsubscribe_url link to the Mailer.
<%= link_to "Unsubscribe", @unsubscribe_url %>

Customize Templates

Run rails g unsubscribe:views if you want to modify the existing templates.

I18n

The language used for Unsubscribe::MailerSubscription#action can be translated.

# config/locales/en.ymlen:  unsubscribe:    action:      subscribe: "Subscribe to"      unsubscribe: "Unsubscribe from"

Contributing

If you'd like to open a PR please make sure the following things pass:

bin/rails testbundle exec standardrb

License

The gem is available as open source under the terms of the MIT License.


Original Link: https://dev.to/stevepolitodesign/i-built-a-gem-that-makes-it-easy-to-automatically-unsubscribe-from-emails-in-rails-345o

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To