Method: Scruber::Core::Crawler#run
- Defined in:
- lib/scruber/core/crawler.rb
#run(&block) ⇒ Object
Crawling engine
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/scruber/core/crawler.rb', line 60 def run(&block) instance_eval &block while @queue.has_work? do @fetcher.run @queue show_progress while page = @queue.fetch_downloaded do if @callbacks[page.page_type.to_sym] processed_page = process_page(page, page.page_type.to_sym) instance_exec page, processed_page, &(@callbacks[page.page_type.to_sym]) page.processed! unless page.sent_to_redownload? end end if @on_page_error_callback while page = @queue.fetch_error do instance_exec page, &(@on_page_error_callback) end end end @on_complete_callbacks.sort_by{|c| -c[0] }.map do |(_,callback)| instance_exec &(callback) end.first end |