Sha256: 046cb8e7c67dd72ae18738a16ebf421af86b099ab4290a3b568574c29b3d34d7

Contents?: true

Size: 581 Bytes

Versions: 2

Compression:

Stored size: 581 Bytes

Contents

module Storytime
  class Subscription < ActiveRecord::Base
    belongs_to :site

    scope :active, -> { where(subscribed: true) }

    validates_presence_of :email
    validates_format_of :email, with: Storytime.email_regexp
    validates :email, uniqueness: true

    before_create :generate_token

    def generate_token
      key = Rails.application.secrets.secret_key_base
      digest = OpenSSL::Digest.new('sha1')

      self.token = OpenSSL::HMAC.hexdigest(digest, key, self.email)
    end

    def unsubscribe!
      update_attributes(subscribed: false)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
storytime-1.2.0 app/models/storytime/subscription.rb
storytime-1.1.1 app/models/storytime/subscription.rb