class SC2Achievements::CategoryPage

Public Class Methods

get_achievements_for(user_path, category) click to toggle source
# File lib/sc2_achievements/category_page.rb, line 5
def self.get_achievements_for(user_path, category)
  page = fetch_page_of user_path, :category => category
  page.css('.achievement.earned', '.series-tiles .series-tile:not(.tile-locked)').inject({}) do |achievements, achievement|
    achievements[key_for(achievement)] = {
      :title       => title_of(achievement),
      :description => description_of(achievement),
      :category    => category_of(achievement),
      :points      => points_of(achievement),
      :date        => date_of(achievement) }
    achievements
  end
end

Private Class Methods

category_of(achievement) click to toggle source
# File lib/sc2_achievements/category_page.rb, line 40
def self.category_of(achievement)
  wrapper = achievement.ancestors('#profile-wrapper')
  text_of(wrapper, '#profile-menu .active a')
end
date_of(achievement) click to toggle source
# File lib/sc2_achievements/category_page.rb, line 53
def self.date_of(achievement)
  if achievement.attr('class') =~ /series-tile/
    achievement = achievement.ancestors('.achievement')
  end
  date_from(achievement, '.meta')
end
description_of(achievement) click to toggle source
# File lib/sc2_achievements/category_page.rb, line 32
def self.description_of(achievement)
  if achievement.attr('class') =~ /series-tile/
    text_of(achievement, achievement.attr('data-tooltip'))
  else
    text_of(achievement, '.desc')
  end
end
key_for(achievement) click to toggle source

See Homepage.key_for

# File lib/sc2_achievements/category_page.rb, line 20
def self.key_for(achievement)
  title_of(achievement)
end
points_of(achievement) click to toggle source
# File lib/sc2_achievements/category_page.rb, line 45
def self.points_of(achievement)
  if achievement.attr('class') =~ /series-tile/
    text_of(achievement, '.series-badge').to_i
  else
    text_of(achievement, '.meta span').to_i
  end
end
title_of(achievement) click to toggle source
# File lib/sc2_achievements/category_page.rb, line 24
def self.title_of(achievement)
  if achievement.attr('class') =~ /series-tile/
    text_of(achievement, achievement.attr('data-tooltip') + ' .tooltip-title')
  else
    text_of(achievement, '.desc span')
  end
end