module Spree::Core::TokenGenerator

Public Instance Methods

generate_token(model_class = Spree::Order) click to toggle source
# File lib/spree/core/token_generator.rb, line 4
def generate_token(model_class = Spree::Order)
  loop do
    token = "#{random_token}#{unique_ending}"
    break token unless model_class.exists?(token: token)
  end
end

Private Instance Methods

random_token() click to toggle source
# File lib/spree/core/token_generator.rb, line 13
def random_token
  SecureRandom.urlsafe_base64(nil, false)
end
unique_ending() click to toggle source
# File lib/spree/core/token_generator.rb, line 17
def unique_ending
  (Time.now.to_f * 1000).to_i
end