class Newly::NewsCrawler
Attributes
selector[R]
title[R]
url[R]
Public Class Methods
new(args)
click to toggle source
# File lib/newly/news_crawler.rb, line 10 def initialize(args) @feed = args[:feed] @url = args[:url] raise "The url is required" unless @url @selector = args[:selector] || Newly::Selector.new(Nokogiri::HTML(open @url)) end
Public Instance Methods
fetch()
click to toggle source
# File lib/newly/news_crawler.rb, line 18 def fetch news_fetched = Set.new all_news = @selector.all(container: @feed.container, max: @feed.limit) all_news.each do |item| news = build_news_by(item) if news news_fetched << news end end news_fetched.to_a end
Private Instance Methods
build_news_by(item)
click to toggle source
# File lib/newly/news_crawler.rb, line 33 def build_news_by(item) if (item) page_crawler = Newly::PageCrawler.new(@feed.host, item) Newly::News.new(page_crawler: page_crawler, feed: @feed, feed_url: @url) end end