class ResqueJobsTree::Tree

Attributes

definition[R]
nodes[R]
resources[R]

Public Class Methods

new(definition, resources) click to toggle source
# File lib/resque_jobs_tree/tree.rb, line 7
def initialize definition, resources
  @definition = definition
  @resources = resources
  @nodes = []
end

Public Instance Methods

finish() click to toggle source
# File lib/resque_jobs_tree/tree.rb, line 51
def finish
  after_perform
  unstore
end
inspect() click to toggle source
# File lib/resque_jobs_tree/tree.rb, line 47
def inspect
  "<ResqueJobsTree::Tree @name=#{name} @resources=#{resources} >"
end
launch() click to toggle source
# File lib/resque_jobs_tree/tree.rb, line 17
def launch
  if uniq?
    before_perform
    store
    root.register
    enqueue_jobs
  else
    raise ResqueJobsTree::JobNotUniq,
      "Tree Definition must be uniq"
  end
end
name() click to toggle source
# File lib/resque_jobs_tree/tree.rb, line 13
def name
  @definition.name
end
on_failure() click to toggle source
# File lib/resque_jobs_tree/tree.rb, line 33
def on_failure
  run_callback :on_failure
rescue
  puts "[ResqueJobsTree::Tree] on_failure callback of tree #{name} has failed. Continuing for cleanup."
end
register_node(node) click to toggle source
# File lib/resque_jobs_tree/tree.rb, line 43
def register_node node
  @nodes << node
end
root() click to toggle source
# File lib/resque_jobs_tree/tree.rb, line 39
def root
  @root ||= ResqueJobsTree::Node.new(definition.root, resources, nil, self)
end

Private Instance Methods

enqueue_jobs() click to toggle source
# File lib/resque_jobs_tree/tree.rb, line 58
def enqueue_jobs
  @nodes.each do |leaf|
    leaf.enqueue unless leaf.definition.options[:triggerable]
  end
end
run_callback(callback) click to toggle source
# File lib/resque_jobs_tree/tree.rb, line 64
def run_callback callback
  callback = definition.send(callback)
  callback.call(*resources) if callback.kind_of? Proc
end