Class: Almicube::RangedRanking
Constant Summary
Constants inherited
from Ranking
Almicube::Ranking::KEY_PATTERN
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Ranking
#aggregate!, #all, #attribute_name, build, connection, #date, default_options, #exists?, #incr, #initialize, #key, #page, #per_page, #per_page=, #ranged, #rank, #score
Class Method Details
.overwrite_params ⇒ Object
4
5
6
|
# File 'lib/almicube/ranged_ranking.rb', line 4
def overwrite_params
{ key: '%{prefix}:%{class_name}:%{range}:%{suffix}', type: :range }
end
|
Instance Method Details
#aggregate(options = {}) ⇒ Object
9
10
11
12
13
14
15
16
|
# File 'lib/almicube/ranged_ranking.rb', line 9
def aggregate(options={})
keys = range_days(range).times.inject([]) do |keys, i|
key = key_format(@options[:data_key], @options.merge( date: date.to_date - i.days, type: :data ))
keys << key if connection.exists key
keys
end
connection.zunionstore key, keys, aggregate: :sum
end
|
#default_range ⇒ Object
22
23
24
|
# File 'lib/almicube/ranged_ranking.rb', line 22
def default_range
:weekly
end
|
#range ⇒ Object
18
19
20
|
# File 'lib/almicube/ranged_ranking.rb', line 18
def range
@options.fetch(:range, default_range)
end
|