Class: KillSite
- Inherits:
-
Object
- Object
- KillSite
- Defined in:
- lib/killsite.rb
Instance Method Summary collapse
-
#initialize(prefix, limit = 1, verbose = false) ⇒ KillSite
constructor
A new instance of KillSite.
- #run ⇒ Object
Constructor Details
#initialize(prefix, limit = 1, verbose = false) ⇒ KillSite
Returns a new instance of KillSite.
6 7 8 9 10 11 12 13 |
# File 'lib/killsite.rb', line 6 def initialize(prefix, limit = 1, verbose = false) @count = 1 @prefix = prefix @visited = [prefix] @queue = [prefix] @verbose = verbose @limit = limit end |
Instance Method Details
#run ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/killsite.rb', line 15 def run EM.stop if @count == 0 return if @queue.empty? url = @queue.shift http = EventMachine::HttpRequest.new(url).get http.callback do puts "Processing '#{url}'" if @verbose Nokogiri::HTML.parse(http.response).xpath("//a[@href]").each do |link| next_url = process_url link['href'] if next_url and !@visited.include? next_url puts " Queueing '#{next_url}'" if @verbose @limit.times { @queue << next_url } @visited << next_url @count += @limit end end @count -= 1 EM.next_tick { run } end end |