class Redis::EmailActivationToken

Constants

VERSION

Public Class Methods

new(opts = {}) click to toggle source
# File lib/redis/email_activation_token/redis_ext.rb, line 5
def initialize(opts = {})
  @redis = opts.delete(:redis) || Redis.new(opts)
end

Public Instance Methods

generate(email, expire: 259200) click to toggle source
# File lib/redis/email_activation_token/redis_ext.rb, line 9
def generate(email, expire: 259200)
  token = generate_token
  set_key(email, token, expire)
  token
end
get(token) click to toggle source
# File lib/redis/email_activation_token/redis_ext.rb, line 15
def get(token)
  get_key token
end
get_created_at(token) click to toggle source
# File lib/redis/email_activation_token/redis_ext.rb, line 23
def get_created_at(token)
  Time.parse @redis.hget(token, "created_at")
end
get_email(token) click to toggle source
# File lib/redis/email_activation_token/redis_ext.rb, line 19
def get_email(token)
  @redis.hget(token, "email")
end

Private Instance Methods

generate_token() click to toggle source
# File lib/redis/email_activation_token/redis_ext.rb, line 39
def generate_token
  SecureRandom.urlsafe_base64
end
get_key(token) click to toggle source
# File lib/redis/email_activation_token/redis_ext.rb, line 35
def get_key(token)
  { token: token, email: get_email(token), created_at: get_created_at(token) } 
end
set_key(email, token, expire) click to toggle source
# File lib/redis/email_activation_token/redis_ext.rb, line 29
def set_key(email, token, expire)
  @redis.hset(token, "email", email)
  @redis.hset(token, "created_at", Time.now)
  @redis.expire(token, expire)
end