module DomainsScanner

Constants

TOP_LEVEL_DOMAINS
VERSION

Attributes

engines[RW]
max_page[RW]
verbose[RW]

Public Class Methods

analysis_output_queue() click to toggle source
# File lib/domains_scanner.rb, line 34
def analysis_output_queue
  list = {}
  begin
    while(result = output_queue.pop(non_block = true)) do
      domain, top_level_domain, engine = result.values_at(:domain, :top_level_domain, :engine)
      next unless domain

      group = list[top_level_domain] ||= {}
      group[domain] ||= []

      group[domain] << engine unless group[domain].include?(engine)
    end
  rescue ThreadError # queue is empty
  end

  list
end
output_queue() click to toggle source
# File lib/domains_scanner.rb, line 18
def output_queue
  @output_queue ||= Queue.new
end
scan(domain_word:, top_level_domains: TOP_LEVEL_DOMAINS) click to toggle source
# File lib/domains_scanner.rb, line 22
def scan(domain_word:, top_level_domains: TOP_LEVEL_DOMAINS)
  top_level_domains ||= TOP_LEVEL_DOMAINS

  runners = top_level_domains.map do |top_level_domain|
    Runner.new(domain_word: domain_word, top_level_domain: top_level_domain)
  end
  runners.each(&:run)

  DomainsScanner::Printer.puts { "Start analysis crawl results...".green }
  analysis_output_queue
end