class BestBooks::Decade
Attributes
decade[RW]
name[RW]
top10[RW]
url[RW]
Public Class Methods
all()
click to toggle source
# File lib/best_books/decade.rb, line 39 def self.all @@all end
books()
click to toggle source
# File lib/best_books/decade.rb, line 44 def self.books @@all.each do |geturl| bookscraper = BestBooks::Book.scrape(geturl.url) top10 = [] top10 = bookscraper geturl.top10 = top10 end @@all end
description(input, book_input)
click to toggle source
# File lib/best_books/decade.rb, line 62 def self.description(input, book_input) #BestBooks::Decade.books iterate = @@all[input.to_i] iterate.top10.each do |book| if book.ranking.to_i == book_input puts "#{book.ranking} #{book.title} by #{book.author}" puts "Rated #{book.rating}" puts "#{book.description}" else puts " " end end end
new()
click to toggle source
# File lib/best_books/decade.rb, line 7 def initialize @name = name @url = url @top10 = top10 end
print()
click to toggle source
# File lib/best_books/decade.rb, line 29 def self.print BestBooks::Decade.scraper.each_with_index do |key, i| puts "#{i+1}. #{key.name}" if i < 9 end end
save()
click to toggle source
# File lib/best_books/decade.rb, line 35 def self.save @@all << self end
scraper()
click to toggle source
# File lib/best_books/decade.rb, line 13 def self.scraper decades = Nokogiri::HTML(open("https://www.goodreads.com/list/show/7")) decades.css("div.mediumText a").each do |scrape| if scrape.text.include?("Century") decade = self.new decade.name = scrape.text.strip.gsub("Best Books of the ", "") decade.url = scrape.attr("href") decade @@all << decade else scrape end end @@all end
top10(input)
click to toggle source
# File lib/best_books/decade.rb, line 54 def self.top10(input) BestBooks::Decade.books iterate = @@all[input] iterate.top10.each do |book| puts "#{book.ranking}. #{book.title} by #{book.author}" end end