class SC2Stats
Public Class Methods
new(profileurl)
click to toggle source
# File lib/sc2stats.rb, line 69 def initialize(profileurl) @url = profileurl self.scrape end
Public Instance Methods
==(o)
click to toggle source
# File lib/sc2stats.rb, line 88 def ==(o) if o.is_a? SC2Stats @url == o.url else false end end
league()
click to toggle source
# File lib/sc2stats.rb, line 80 def league; @league; end
name()
click to toggle source
# File lib/sc2stats.rb, line 82 def name; @name; end
points()
click to toggle source
# File lib/sc2stats.rb, line 81 def points; @points; end
scrape()
click to toggle source
# File lib/sc2stats.rb, line 29 def scrape html = Nokogiri::HTML(open("#{@url}/ladder/leagues","User-Agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0) Gecko/20100101 Firefox/4.0")) @league = scrape_league(html) @points = scrape_points(html) @name = scrape_name(html) true end
scrape_league(html)
click to toggle source
# File lib/sc2stats.rb, line 39 def scrape_league(html) league = nil html.css("#profile-menu li a").each do |l| if l.text.include? "1v1" league = l break end end leaguename = league.text.strip.gsub(/\dv\d /, "").gsub(/ Rank.+/, "").downcase unless league.nil? leaguename ||= SC2League::LEAGUES.last SC2League.new(leaguename) end
scrape_name(html)
click to toggle source
# File lib/sc2stats.rb, line 65 def scrape_name(html) html.css("#profile-header h2 a").first.text end
scrape_points(html)
click to toggle source
# File lib/sc2stats.rb, line 55 def scrape_points(html) td = html.css("#current-rank td")[3] if td.nil? 0 else Integer(td.text) end end
to_s()
click to toggle source
# File lib/sc2stats.rb, line 84 def to_s "#{@name} (#{@league}, #{@points} pts)" end
url()
click to toggle source
# File lib/sc2stats.rb, line 75 def url; @url; end
url=(value)
click to toggle source
# File lib/sc2stats.rb, line 76 def url=(value) @url = value end