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