module Redlics::Tracker
Tracker
class
Constants
- CONTEXT
Context constant for given class.
Public Instance Methods
track(*args, &block)
click to toggle source
Track for a given event and object id with options.
@param *args [Array] list of arguments for track @return [Array] list of tracked granularities
# File lib/redlics/tracker.rb, line 15 def track(*args, &block) return track_with_block(&block) if block_given? return track_with_hash(args.first) if args.first.is_a?(Hash) track_with_args(*args) end
Private Instance Methods
track_with_args(*args)
click to toggle source
Track with hash.
@param *args [Array] list of arguments for track @return [Array] list of tracked granularities
# File lib/redlics/tracker.rb, line 52 def track_with_args(*args) options = args.last.instance_of?(Hash) ? args.pop : {} options.merge!({ event: args[0], id: args[1] }) track_with_hash(options) end
track_with_block() { |options = open_struct| ... }
click to toggle source
Track with hash.
@param [&Block] a block with configuration options @return [Array] list of tracked granularities
# File lib/redlics/tracker.rb, line 43 def track_with_block yield options = OpenStruct.new track_with_hash(options.to_h) end
track_with_hash(options)
click to toggle source
Track with hash.
@param options [Hash] configuration options @return [Array] list of tracked granularities
# File lib/redlics/tracker.rb, line 27 def track_with_hash(options) Granularity.validate(CONTEXT, options[:granularity]).each do |granularity| key = Key.name(CONTEXT, options[:event], granularity, options[:past]) Redlics.redis do |conn| conn.pipelined do |redis| redis.setbit(key, options[:id].to_i, 1) redis.expire(key, (options[:expiration_for] && options[:expiration_for][granularity] || Redlics.config.tracker_expirations[granularity]).to_i) end end end end