Class: Recluse::Tasks::Task

Inherits:
Object
  • Object
show all
Defined in:
lib/recluse/tasks/task.rb

Overview

Task interface. Runs the queue with customized behavior.

Direct Known Subclasses

Assert, Find, Status

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(profile, queue_options: {}, results: nil) ⇒ Task

Create new task.



19
20
21
22
23
24
25
26
27
28
29
30
31
# 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

Instance Attribute Details

#queueObject

Queue of links to check.



15
16
17
# File 'lib/recluse/tasks/task.rb', line 15

def queue
  @queue
end

#resultsObject (readonly)

HashTree representation of results.



11
12
13
# File 'lib/recluse/tasks/task.rb', line 11

def results
  @results
end

Instance Method Details

#add(link) ⇒ Object

Add link (or links) to the queue.



35
36
37
# File 'lib/recluse/tasks/task.rb', line 35

def add(link)
  @queue.add link
end

#runObject

Run the queue.



41
42
43
# File 'lib/recluse/tasks/task.rb', line 41

def run
  @queue.run
end