class Recluse::Tasks::Task

Task interface. Runs the queue with customized behavior.

Attributes

queue[RW]

Queue of links to check.

results[R]

HashTree representation of results.

Public Class Methods

new(profile, queue_options: {}, results: nil) click to toggle source

Create new task.

# File lib/recluse/tasks/task.rb, line 19
def initialize(profile, queue_options: {}, results: nil)
  @queue = Recluse::Queue.new(profile.email, queue_options)
  if results.nil?
    @results = Recluse::HashTree.new do |url1, url2|
      url1, url2 = url2, url1 if url2.length > url1.length
      # Detect if URL exists already, but just has a slash at end
      (url1 == url2 || (url1.length == (url2.length + 1) && url1[-1] == '/' && url2[-1] != '/' && url1[0...-1] == url2))
    end
  else
    @results = results
  end
  @queue.add profile.roots
end

Public Instance Methods

add(link) click to toggle source

Add link (or links) to the queue.

# File lib/recluse/tasks/task.rb, line 35
def add(link)
  @queue.add link
end
run() click to toggle source

Run the queue.

# File lib/recluse/tasks/task.rb, line 41
def run
  @queue.run
end