Class: SidekiqWorkflows::Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/sidekiq_workflows/builder.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(node, skip_workers = []) ⇒ Builder

Returns a new instance of Builder.



7
8
9
10
# File 'lib/sidekiq_workflows/builder.rb', line 7

def initialize(node, skip_workers = [])
  @node = node
  @skip_workers = skip_workers
end

Instance Attribute Details

#nodeObject (readonly)

Returns the value of attribute node.



5
6
7
# File 'lib/sidekiq_workflows/builder.rb', line 5

def node
  @node
end

#skip_workersObject (readonly)

Returns the value of attribute skip_workers.



5
6
7
# File 'lib/sidekiq_workflows/builder.rb', line 5

def skip_workers
  @skip_workers
end

Instance Method Details

#perform(workers, *args, delay: nil) ⇒ Object



12
13
14
15
16
17
18
19
# File 'lib/sidekiq_workflows/builder.rb', line 12

def perform(workers, *args, delay: nil)
  workers = [worker: workers, payload: args, delay: delay] unless workers.is_a?(Array)
  workers.reject! { |w| skip_workers.include?(w[:worker]) }
  return self if workers.empty?

  child = @node.add_group(workers)
  Builder.new(child, skip_workers)
end

#then(&block) ⇒ Object



21
22
23
# File 'lib/sidekiq_workflows/builder.rb', line 21

def then(&block)
  instance_eval(&block)
end