Sha256: 97f18aaedf4324517428afa25bac8a3e08dd17ee9ddf17f8d9c377d9863a8b72
Contents?: true
Size: 1.18 KB
Versions: 2
Compression:
Stored size: 1.18 KB
Contents
require 'nokogiri' require 'open-uri' require 'date' # Author: Lee Chen (mailto: chung1350@hotmail.com) # License: MIT module CodeBadges # This class get the user account as an input # return a hash of user's badges information class CodecademyBadges TITLE_XPATH = "//div[@class = 'grid-row']//h5[@class = 'margin-top--1']" DATE_XPATH = "//small[@class = 'text--ellipsis']" USERS_URL = 'http://www.codecademy.com/users' ACHIEVEMENTS_DIR = 'achievements' def self.get_badges(username) doc = get_html(username) titles = get_titles(doc) dates = get_dates(doc) integrate(titles, dates) end def self.get_html(username) url = "#{USERS_URL}/#{username}/#{ACHIEVEMENTS_DIR}" Nokogiri::HTML(open(url)) end def self.get_titles(document) titles = document.xpath(TITLE_XPATH) titles.map { |t| t.text } end def self.get_dates(document) dates = document.xpath(DATE_XPATH) dates.map { |d| Date.parse(d) } end def self.integrate(titles, dates) badge_array = titles.each_with_index.map do |_, index| [titles[index], dates[index]] end Hash[badge_array] end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
codebadges-0.1.1 | lib/codebadges/badges.rb |
codebadges-0.1.0 | lib/codebadges/badges.rb |