Sha256: 2560c933bb3c1c0abc8f5916df10742cd027a69011cf6937bcd4cdabfb0cc8b6

Contents?: true

Size: 479 Bytes

Versions: 62

Compression:

Stored size: 479 Bytes

Contents

module Workarea::UrlToken
  extend ActiveSupport::Concern

  include ActiveRecord::SecureToken

  included do
    field :token, type: String
    index({ token: 1 }, { unique: true })
    has_secure_token
    before_validation :ensure_token_exists
  end

  module ClassMethods
    def find_by_token(token)
      find_by(token: token) rescue nil
    end
  end

  private

  def ensure_token_exists
    self.token = self.class.generate_unique_secure_token if token.blank?
  end
end

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
workarea-core-3.5.27 lib/workarea/url_token.rb
workarea-core-3.5.26 lib/workarea/url_token.rb
workarea-core-3.4.45 lib/workarea/url_token.rb
workarea-core-3.5.25 lib/workarea/url_token.rb
workarea-core-3.5.23 lib/workarea/url_token.rb
workarea-core-3.4.44 lib/workarea/url_token.rb
workarea-core-3.5.22 lib/workarea/url_token.rb
workarea-core-3.4.43 lib/workarea/url_token.rb
workarea-core-3.5.21 lib/workarea/url_token.rb
workarea-core-3.4.42 lib/workarea/url_token.rb
workarea-core-3.5.20 lib/workarea/url_token.rb
workarea-core-3.4.41 lib/workarea/url_token.rb
workarea-core-3.5.19 lib/workarea/url_token.rb
workarea-core-3.4.40 lib/workarea/url_token.rb
workarea-core-3.5.18 lib/workarea/url_token.rb
workarea-core-3.4.39 lib/workarea/url_token.rb
workarea-core-3.5.17 lib/workarea/url_token.rb
workarea-core-3.4.38 lib/workarea/url_token.rb
workarea-core-3.5.16 lib/workarea/url_token.rb
workarea-core-3.4.37 lib/workarea/url_token.rb