Class: GameReviews::Scraper

Inherits:
Object
  • Object
show all
Defined in:
lib/game_reviews/scraper.rb

Constant Summary collapse

@@games =
[]

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(url, score) ⇒ Scraper

Returns a new instance of Scraper.



5
6
7
8
# File 'lib/game_reviews/scraper.rb', line 5

def initialize(url, score)
  @url = url 
  @score = score
end

Instance Attribute Details

#scoreObject

Returns the value of attribute score.



3
4
5
# File 'lib/game_reviews/scraper.rb', line 3

def score
  @score
end

#urlObject

Returns the value of attribute url.



3
4
5
# File 'lib/game_reviews/scraper.rb', line 3

def url
  @url
end

Class Method Details

.gamesObject



12
13
14
# File 'lib/game_reviews/scraper.rb', line 12

def self.games
  @@games 
end

Instance Method Details

#clearObject



16
17
18
# File 'lib/game_reviews/scraper.rb', line 16

def clear
  @@games.clear
end

#displayObject



36
37
38
39
40
41
42
43
# File 'lib/game_reviews/scraper.rb', line 36

def display
  @@games.delete_if{|game| game.metascore.to_i < @score.to_i}.each_with_index do |game, i|
    puts "  \n#{i+1}. #{game.title} \n    
    Metascore: #{game.metascore}    
    Release Date: #{game.release_date}    
    Link: #{game.link}\n \n"
  end
end

#scraperObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/game_reviews/scraper.rb', line 21

def scraper
 game_list = Nokogiri::HTML(open(self.url, 'User-Agent' => 'Chrome'))
 
  game_list.css("ol.list_products li.game_product").each do |game|

    @@games << GameReviews::Reviews.new({
      :title => game.css("div.product_title a").text.strip,
      :metascore => game.css("div.metascore_w").text,
      :release_date => game.css("li.release_date span.data").text,
      :link => 'http://www.metacritic.com/' + 
                game.css("div.product_title a").attribute("href").text
    })
  end
end