Class: Ablab::Store::Redis
- Inherits:
-
Object
- Object
- Ablab::Store::Redis
- Defined in:
- lib/ablab/store/redis.rb
Instance Attribute Summary collapse
-
#redis ⇒ Object
readonly
Returns the value of attribute redis.
Instance Method Summary collapse
- #conversions(experiment, bucket) ⇒ Object
- #counts(experiment, bucket) ⇒ Object
-
#initialize(opts = {}) ⇒ Redis
constructor
A new instance of Redis.
- #sessions(experiment, bucket) ⇒ Object
- #successes(experiment, bucket) ⇒ Object
- #track_success!(experiment, bucket, session_id) ⇒ Object
- #track_view!(experiment, bucket, session_id) ⇒ Object
- #views(experiment, bucket) ⇒ Object
Constructor Details
#initialize(opts = {}) ⇒ Redis
Returns a new instance of Redis.
8 9 10 11 |
# File 'lib/ablab/store/redis.rb', line 8 def initialize(opts = {}) @key_prefix = opts[:key_prefix] || 'ablab' @redis = ::Redis.new(opts) end |
Instance Attribute Details
#redis ⇒ Object (readonly)
Returns the value of attribute redis.
6 7 8 |
# File 'lib/ablab/store/redis.rb', line 6 def redis @redis end |
Instance Method Details
#conversions(experiment, bucket) ⇒ Object
33 34 35 |
# File 'lib/ablab/store/redis.rb', line 33 def conversions(experiment, bucket) (redis.pfcount(key(:conversions, experiment, bucket)) || 0).to_i end |
#counts(experiment, bucket) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/ablab/store/redis.rb', line 37 def counts(experiment, bucket) v, s, x, c = nil, nil, nil, nil redis.multi do v = redis.get(key(:views, experiment, bucket)) s = redis.pfcount(key(:sessions, experiment, bucket)) x = redis.get(key(:successes, experiment, bucket)) c = redis.pfcount(key(:conversions, experiment, bucket)) end { views: (v.value || 0).to_i, sessions: (s.value || 0).to_i, successes: (x.value || 0).to_i, conversions: (c.value || 0).to_i } end |
#sessions(experiment, bucket) ⇒ Object
25 26 27 |
# File 'lib/ablab/store/redis.rb', line 25 def sessions(experiment, bucket) (redis.pfcount(key(:sessions, experiment, bucket)) || 0).to_i end |
#successes(experiment, bucket) ⇒ Object
29 30 31 |
# File 'lib/ablab/store/redis.rb', line 29 def successes(experiment, bucket) (redis.get(key(:successes, experiment, bucket)) || 0).to_i end |
#track_success!(experiment, bucket, session_id) ⇒ Object
17 18 19 |
# File 'lib/ablab/store/redis.rb', line 17 def track_success!(experiment, bucket, session_id) track(experiment, bucket, session_id, :successes, :conversions) end |
#track_view!(experiment, bucket, session_id) ⇒ Object
13 14 15 |
# File 'lib/ablab/store/redis.rb', line 13 def track_view!(experiment, bucket, session_id) track(experiment, bucket, session_id, :views, :sessions) end |
#views(experiment, bucket) ⇒ Object
21 22 23 |
# File 'lib/ablab/store/redis.rb', line 21 def views(experiment, bucket) (redis.get(key(:views, experiment, bucket)) || 0).to_i end |