Module: PageRankr::Trackers

Included in:
Backlinks, Indexes, Ranks, Socials
Defined in:
lib/page_rankr/trackers.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#site_trackersObject

Returns the value of attribute site_trackers.



5
6
7
# File 'lib/page_rankr/trackers.rb', line 5

def site_trackers
  @site_trackers
end

Instance Method Details

#initializeObject



7
8
9
# File 'lib/page_rankr/trackers.rb', line 7

def initialize
  @site_trackers = self.class.constants.collect{|tracker| symbol_for(tracker)}
end

#lookup(site, *trackers) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/page_rankr/trackers.rb', line 11

def lookup(site, *trackers)
  trackers = site_trackers if trackers.empty?

  tracked = trackers.map do |tracker|
    name, klass = constant_name(tracker), self.class
    
    next unless klass.const_defined? name

    [
      tracker,
      build_thread(tracker, klass.const_get(name), site)
    ]
  end.each do |_, thread|
    thread.join
  end.map do |tracker, thread|
    [tracker, thread.value]
  end
  
  Hash[tracked]
end