Class: Blackbeard::MetricData::Unique
- Inherits:
-
Base
- Object
- Base
- Blackbeard::MetricData::Unique
show all
- Defined in:
- lib/blackbeard/metric_data/unique.rb
Constant Summary
collapse
- DEFAULT_SEGMENT =
'uniques'
Instance Attribute Summary
Attributes inherited from Base
#group, #metric
Instance Method Summary
collapse
Methods inherited from Base
#hour_keys_for_day, #initialize, #key, #recent_days, #recent_hours, #result_for_day, #segments
#config, #db, #guest_method, included, #tz
Instance Method Details
#add(uid, amount = nil, segment = DEFAULT_SEGMENT) ⇒ Object
8
9
10
|
# File 'lib/blackbeard/metric_data/unique.rb', line 8
def add(uid, amount = nil, segment = DEFAULT_SEGMENT)
add_at(tz.now, uid, amount, segment)
end
|
#add_at(time, uid, amount = nil, segment = DEFAULT_SEGMENT) ⇒ Object
12
13
14
15
16
17
18
19
20
|
# File 'lib/blackbeard/metric_data/unique.rb', line 12
def add_at(time, uid, amount = nil, segment = DEFAULT_SEGMENT)
key = key_for_hour(time)
segment_key = segment_key(key, segment)
db.set_add_member(hours_set_key, key)
db.set_add_member(key, segment_key)
db.set_add_member(segment_key, uid)
end
|
#result_for_hour(time) ⇒ Object
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/blackbeard/metric_data/unique.rb', line 22
def result_for_hour(time)
key = key_for_hour(time)
segment_keys = db.set_members(key)
result = {}
segment_keys.each do |segment_key|
segment = segment_key.split(/::/).last
result[segment] = db.set_count(segment_key)
end
result
end
|
#segment_key(key, segment) ⇒ Object
33
34
35
|
# File 'lib/blackbeard/metric_data/unique.rb', line 33
def segment_key(key, segment)
"#{key}::#{segment}"
end
|