class KnittingYarnDeals::Scraper
Public Class Methods
get_page()
click to toggle source
# File lib/knitting_yarn_deals/scraper.rb, line 3 def self.get_page html = Nokogiri::HTML(open("http://www.knitpicks.com/yarns/knitting_yarns.html")) end
scrape_details(yarn_ball, index)
click to toggle source
# File lib/knitting_yarn_deals/scraper.rb, line 16 def self.scrape_details(yarn_ball, index) skein = @yarn_array[index] yarn_ball.price = skein.css("span.costSmall").text.delete(" ").gsub /^\s*/, '' yarn_ball.url = "http://www.knitpicks.com#{skein.css("a").attribute("href").value}" yarn_ball.description = Nokogiri::HTML(open(yarn_ball.url)).css("div#prodDesc span.prodDesc").text.gsub /^\s*/, ' ' yarn_ball.availability = true end
this_day()
click to toggle source
# File lib/knitting_yarn_deals/scraper.rb, line 7 def self.this_day if KnittingYarnDeals::YarnDeal.all == [] self.yarn_index KnittingYarnDeals::YarnDeal.all else KnittingYarnDeals::YarnDeal.all end end
yarn_index()
click to toggle source
# File lib/knitting_yarn_deals/scraper.rb, line 25 def self.yarn_index html = self.get_page @yarn_array = html.css("div.jcarousel li") @yarn_array.each do |each_skein| yarn_ball = KnittingYarnDeals::YarnDeal.new yarn_ball.name = each_skein.css("a.titleSmall").text yarn_ball.save end end