Class: TrailGuide::Unity
- Inherits:
-
Object
- Object
- TrailGuide::Unity
- Defined in:
- lib/trail_guide/unity.rb
Instance Attribute Summary collapse
-
#user_id ⇒ Object
Returns the value of attribute user_id.
-
#visitor_id ⇒ Object
Returns the value of attribute visitor_id.
Class Method Summary collapse
Instance Method Summary collapse
- #delete! ⇒ Object
-
#initialize(user_id: nil, visitor_id: nil) ⇒ Unity
constructor
A new instance of Unity.
- #save! ⇒ Object
- #stored? ⇒ Boolean
- #stored_user_id ⇒ Object
- #stored_visitor_id ⇒ Object
- #sync! ⇒ Object
- #synced? ⇒ Boolean
- #valid? ⇒ Boolean
Constructor Details
#initialize(user_id: nil, visitor_id: nil) ⇒ Unity
Returns a new instance of Unity.
21 22 23 24 |
# 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 |
Instance Attribute Details
#user_id ⇒ Object
Returns the value of attribute user_id.
18 19 20 |
# File 'lib/trail_guide/unity.rb', line 18 def user_id @user_id end |
#visitor_id ⇒ Object
Returns the value of attribute visitor_id.
18 19 20 |
# File 'lib/trail_guide/unity.rb', line 18 def visitor_id @visitor_id end |
Class Method Details
.clear! ⇒ Object
12 13 14 15 |
# 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 ⇒ Object
4 5 6 |
# File 'lib/trail_guide/unity.rb', line 4 def configuration @configuration ||= Canfig::Config.new(namespace: :unity) end |
.configure(*args, &block) ⇒ Object
8 9 10 |
# File 'lib/trail_guide/unity.rb', line 8 def configure(*args, &block) configuration.configure(*args, &block) end |
Instance Method Details
#delete! ⇒ Object
74 75 76 77 78 79 80 81 |
# 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! ⇒ Object
63 64 65 66 67 68 69 70 71 72 |
# 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? ⇒ Boolean
46 47 48 |
# File 'lib/trail_guide/unity.rb', line 46 def stored? stored_visitor_id.present? && stored_user_id.present? end |
#stored_user_id ⇒ Object
34 35 36 |
# 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 ⇒ Object
38 39 40 |
# File 'lib/trail_guide/unity.rb', line 38 def stored_visitor_id TrailGuide.redis.get(user_key) if user_id.present? end |
#sync! ⇒ Object
56 57 58 59 60 61 |
# File 'lib/trail_guide/unity.rb', line 56 def sync! @user_id ||= stored_user_id @visitor_id ||= stored_visitor_id delete! save! end |
#synced? ⇒ Boolean
50 51 52 53 54 |
# File 'lib/trail_guide/unity.rb', line 50 def synced? valid? && stored? && stored_visitor_id == visitor_id && stored_user_id == user_id end |
#valid? ⇒ Boolean
42 43 44 |
# File 'lib/trail_guide/unity.rb', line 42 def valid? visitor_id.present? && user_id.present? end |