class BrowserCrawler::EngineUtilities::InspectPageProcess
Inspect a passed link and update the loop queue if it is necessary.
Attributes
link_inspector[R]
logger[R]
page_inspector[R]
screenshot_operator[R]
Public Class Methods
new(link_inspector:, capybara_session:, report_store:, screenshot_operator: nil, logger:)
click to toggle source
# File lib/browser_crawler/engine_utilities/inspect_page_process.rb, line 15 def initialize(link_inspector:, capybara_session:, report_store:, screenshot_operator: nil, logger:) @page_inspector = PageInspector.new( link_inspector: link_inspector, capybara_session: capybara_session, report_store: report_store ) @link_inspector = link_inspector @screenshot_operator = screenshot_operator @logger = logger end
Public Instance Methods
call(unvisited_links_queue:)
click to toggle source
# File lib/browser_crawler/engine_utilities/inspect_page_process.rb, line 30 def call(unvisited_links_queue:) visit_page update_queue(unvisited_links_queue: unvisited_links_queue) end
Private Instance Methods
add_to_queue?(links:)
click to toggle source
# File lib/browser_crawler/engine_utilities/inspect_page_process.rb, line 37 def add_to_queue?(links:) links && !links.empty? end
find_unvisited_links()
click to toggle source
returns array consists of unvisited_links if some hooks is existed to execute hooks instead of base behavior
# File lib/browser_crawler/engine_utilities/inspect_page_process.rb, line 43 def find_unvisited_links exchange_on_hooks(type: :unvisited_links) do @page_inspector.scan_result end end
update_queue(unvisited_links_queue:)
click to toggle source
# File lib/browser_crawler/engine_utilities/inspect_page_process.rb, line 60 def update_queue(unvisited_links_queue:) unvisited_links = find_unvisited_links logger .info("#{unvisited_links.size} will add to unvisited links queue.") return unless add_to_queue?(links: unvisited_links) unvisited_links_queue.push(*unvisited_links).uniq! logger.info("#{unvisited_links_queue.size} - current state the queue.") end
visit_page()
click to toggle source
# File lib/browser_crawler/engine_utilities/inspect_page_process.rb, line 49 def visit_page logger.info("Visiting #{link_inspector.raw_link}") @page_inspector.visit_page @page_inspector.save_to_report(screenshot_operator: screenshot_operator) logger .info("#{@page_inspector.scan_result.size} links found on the page.") end