Sha256: 6bbbb0919222454c7f963c5cdd329ef1262f5315abe20237d03467273c609f7d

Contents?: true

Size: 830 Bytes

Versions: 1

Compression:

Stored size: 830 Bytes

Contents

$: << File.dirname(__FILE__) + '/../lib'
require 'em-whois'
require 'whois-parser'

# Asynchronous, parallel multi-domain WHOIS lookup
domains = ARGV.empty? ? ["github.com", "google.com", "bing.com", "yahoo.com", "mikejarema.com"] : ARGV
whois   = {}

EM.synchrony do

  # Progress indicator
  EM.add_periodic_timer(0.1) do
    STDERR.print "."
  end

  # Exit condition
  EM.add_periodic_timer(0.1) do
    if domains.size == whois.keys.size
      puts ""
      whois.each do |k,v|
        if v.parser.available?
          puts "#{k}: available"
        else
          puts "#{k}: taken, expires #{v.parser.expires_on}"
        end
      end

      EM.stop
    end
  end

  # Async WHOIS lookup - fire and forget via parallel fibers
  domains.each do |i|
    Fiber.new do
      whois[i] = Whois.whois(i)
    end.resume
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
em-whois-0.4.0 examples/async_parallel_whois.rb