class NewGameScores::CollectionScraper
Attributes
game_url[RW]
metascore[RW]
name[RW]
score[RW]
title[RW]
url[RW]
userscore[RW]
Public Class Methods
collection()
click to toggle source
# File lib/new_game_scores/collection_scraper.rb, line 12 def self.collection @@collection end
new(url = nil, score = nil)
click to toggle source
# File lib/new_game_scores/collection_scraper.rb, line 7 def initialize(url = nil, score = nil) @url = url @score = score end
Public Instance Methods
clear()
click to toggle source
# File lib/new_game_scores/collection_scraper.rb, line 16 def clear @@collection.clear end
display_list()
click to toggle source
# File lib/new_game_scores/collection_scraper.rb, line 35 def display_list @@collection.each_with_index do |game, i| game.each do |key, value| if key = :metasocre && value.to_i >= @score.to_i puts " \n#{i+1}. #{game[:title]} \n \n Metascore: #{game[:metascore]} \n Userscore: #{game[:userscore]} \n Release Date: #{game[:release_date]}\n Game Link: #{game[:game_url]}\n \n" end end end end
scrape_list()
click to toggle source
# File lib/new_game_scores/collection_scraper.rb, line 20 def scrape_list game_list = Nokogiri::HTML(open(self.url, ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE, 'User-Agent' => 'safari')) game_list.css("ol.list_products li.game_product").each do |game| @@collection << { :title => game.css("div.product_title a").text.strip, :metascore => game.css("div.metascore_w").text, :userscore => game.css("li.product_avguserscore span.textscore").text, :release_date => game.css("li.release_date span.data").text, :game_url => 'http://www.metacritic.com/' +game.css("div.product_title a").attribute("href").text } end end