class LatestGames::PCGame

Attributes

also_on[RW]
metascore[RW]
name[RW]
publisher[RW]
release_date[RW]
summary[RW]
url[RW]

Public Class Methods

all() click to toggle source
# File lib/latest_games/pcgame.rb, line 9
def self.all
  @@all ||= scrape_pc_games
end
find(i) click to toggle source
# File lib/latest_games/pcgame.rb, line 13
def self.find(i)
  self.all[i-1]
end
find_by_name(name) click to toggle source
# File lib/latest_games/pcgame.rb, line 17
def self.find_by_name(name)
  self.all.detect do |game|
    game.name.downcase.strip == name.downcase.strip ||
    game.name.split("(").first.strip.downcase == name.downcase.strip
  end
end
new(name = nil, url = nil) click to toggle source
# File lib/latest_games/pcgame.rb, line 4
def initialize(name = nil, url = nil)
  @name = name
  @url = url
end

Private Class Methods

scrape_pc_games() click to toggle source
# File lib/latest_games/pcgame.rb, line 45
def self.scrape_pc_games
  doc = Nokogiri::HTML(open('http://www.metacritic.com/browse/games/release-date/new-releases/pc', 'User-Agent'=>'chrome'))
  names = doc.search("div[class='basic_stat product_title'] a")
  names.collect{|title| new(title.text.strip, "http://www.metacritic.com#{title.attr("href")}")}
end

Private Instance Methods

doc() click to toggle source
# File lib/latest_games/pcgame.rb, line 51
def doc
  @doc ||= Nokogiri::HTML(open(self.url, 'User-Agent'=>'chrome'))
end