class TrailGuide::Unity

Attributes

user_id[R]
visitor_id[R]

Public Class Methods

clear!() click to toggle source
# File lib/trail_guide/unity.rb, line 12
def clear!
  keys = TrailGuide.redis.keys("#{configuration.namespace}:*")
  TrailGuide.redis.del *keys unless keys.empty?
end
configuration() click to toggle source
# File lib/trail_guide/unity.rb, line 4
def configuration
  @configuration ||= Canfig::Config.new(namespace: :unity)
end
configure(*args, &block) click to toggle source
# File lib/trail_guide/unity.rb, line 8
def configure(*args, &block)
  configuration.configure(*args, &block)
end
new(user_id: nil, visitor_id: nil) click to toggle source
# File lib/trail_guide/unity.rb, line 21
def initialize(user_id: nil, visitor_id: nil)
  @user_id = user_id.to_s if user_id.present?
  @visitor_id = visitor_id.to_s if visitor_id.present?
end

Public Instance Methods

delete!() click to toggle source
# File lib/trail_guide/unity.rb, line 74
def delete!
  keys = []
  keys << stored_user_key if stored_user_id.present?
  keys << stored_visitor_key if stored_visitor_id.present?
  keys << user_key if user_id.present?
  keys << visitor_key if visitor_id.present?
  TrailGuide.redis.del(*keys) unless keys.empty?
end
save!() click to toggle source
# File lib/trail_guide/unity.rb, line 63
def save!
  return false unless valid?
  TrailGuide.redis.set(user_key, visitor_id)
  TrailGuide.redis.set(visitor_key, user_id)
  if TrailGuide.configuration.unity_ttl
    TrailGuide.redis.expire(user_key, TrailGuide.configuration.unity_ttl)
    TrailGuide.redis.expire(visitor_key, TrailGuide.configuration.unity_ttl)
  end
  true
end
stored?() click to toggle source
# File lib/trail_guide/unity.rb, line 46
def stored?
  stored_visitor_id.present? && stored_user_id.present?
end
stored_user_id() click to toggle source
# File lib/trail_guide/unity.rb, line 34
def stored_user_id
  TrailGuide.redis.get(visitor_key) if visitor_id.present?
end
stored_visitor_id() click to toggle source
# File lib/trail_guide/unity.rb, line 38
def stored_visitor_id
  TrailGuide.redis.get(user_key) if user_id.present?
end
sync!() click to toggle source
# File lib/trail_guide/unity.rb, line 56
def sync!
  @user_id ||= stored_user_id
  @visitor_id ||= stored_visitor_id
  delete!
  save!
end
synced?() click to toggle source
# File lib/trail_guide/unity.rb, line 50
def synced?
  valid? && stored? && 
    stored_visitor_id == visitor_id &&
    stored_user_id == user_id
end
user_id=(uid) click to toggle source
# File lib/trail_guide/unity.rb, line 26
def user_id=(uid)
  @user_id = uid.to_s
end
valid?() click to toggle source
# File lib/trail_guide/unity.rb, line 42
def valid?
  visitor_id.present? && user_id.present?
end
visitor_id=(vid) click to toggle source
# File lib/trail_guide/unity.rb, line 30
def visitor_id=(vid)
  @visitor_id = vid.to_s
end

Protected Instance Methods

stored_user_key() click to toggle source
# File lib/trail_guide/unity.rb, line 93
def stored_user_key
  "#{configuration.namespace}:uids:#{stored_user_id}"
end
stored_visitor_key() click to toggle source
# File lib/trail_guide/unity.rb, line 97
def stored_visitor_key
  "#{configuration.namespace}:vids:#{stored_visitor_id}"
end
user_key() click to toggle source
# File lib/trail_guide/unity.rb, line 85
def user_key
  "#{configuration.namespace}:uids:#{user_id}"
end
visitor_key() click to toggle source
# File lib/trail_guide/unity.rb, line 89
def visitor_key
  "#{configuration.namespace}:vids:#{visitor_id}"
end