Class: Almicube::Ranking::SubRanking

Inherits:
Base
  • Object
show all
Defined in:
lib/almicube/ranking/sub_ranking.rb

Instance Attribute Summary collapse

Attributes inherited from Base

#aggregator, #class_name, #date, #per_page, #selector

Instance Method Summary collapse

Methods inherited from Base

#aggregate, #aggregate!, #bundled_keys, #connection, #data?, #page, #records

Constructor Details

#initialize(ranking, options = {}) ⇒ SubRanking

Returns a new instance of SubRanking.



6
7
8
9
10
11
12
13
# File 'lib/almicube/ranking/sub_ranking.rb', line 6

def initialize(ranking, options={})
  super(options)

  @ranking = ranking
  self.selector ||= ranking.selector
  self.bundler = ( options[:bundler] || Almicube::Bundler::YesterdayBundler.new )
  @class_name ||= ranking.class_name
end

Instance Attribute Details

#bundlerObject

Returns the value of attribute bundler.



4
5
6
# File 'lib/almicube/ranking/sub_ranking.rb', line 4

def bundler
  @bundler
end

#rankingObject (readonly)

Returns the value of attribute ranking.



4
5
6
# File 'lib/almicube/ranking/sub_ranking.rb', line 4

def ranking
  @ranking
end

Instance Method Details

#data_keyObject



24
25
26
# File 'lib/almicube/ranking/sub_ranking.rb', line 24

def data_key
  ranking.key
end

#keyObject



15
16
17
18
19
20
21
22
# File 'lib/almicube/ranking/sub_ranking.rb', line 15

def key
  key = ranking.key
  key[:type] = :built
  key[:suffix] = suffix
  key[:selector] = selector
  key[:distinction] = "%{date}:in-%{selector}" unless selector.is_a? Selector::AllSelector
  key
end

#ranged(name) ⇒ Object



38
39
40
41
42
# File 'lib/almicube/ranking/sub_ranking.rb', line 38

def ranged(name)
  bundler_class = "Almicube::Bundler::#{name.to_s.classify}Bundler".constantize
  self.bundler = bundler_class.new if bundler_class.is_a? Class
  self
end

#selector=(value) ⇒ Object



33
34
35
36
# File 'lib/almicube/ranking/sub_ranking.rb', line 33

def selector=(value)
  @selector = value
  value.ranking = self
end