Class: Resque::JobChain::Builder

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

Instance Method Summary collapse

Constructor Details

#initialize(chain_id) ⇒ Builder

Returns a new instance of Builder.



4
5
6
7
8
9
# File 'lib/resque/job_chain/builder.rb', line 4

def initialize(chain_id)
  @chain_id = chain_id
  @steps = []
  @default_strategy = nil
  @initial_context = {}
end

Instance Method Details

#context(**initial_data) ⇒ Object



26
27
28
# File 'lib/resque/job_chain/builder.rb', line 26

def context(**initial_data)
  @initial_context.merge!(initial_data)
end

#on_failure(strategy) ⇒ Object



22
23
24
# File 'lib/resque/job_chain/builder.rb', line 22

def on_failure(strategy)
  @default_strategy = strategy
end

#step(job_class, **options) ⇒ Object



11
12
13
14
15
16
17
18
19
20
# File 'lib/resque/job_chain/builder.rb', line 11

def step(job_class, **options)
  step_args = options.except(:on_failure, :max_attempts, :queue)
  @steps << Step.new(
    job_class,
    args: step_args,
    on_failure: options[:on_failure],
    max_attempts: options[:max_attempts],
    queue: options[:queue]
  )
end

#to_chainObject



30
31
32
33
34
35
36
37
# File 'lib/resque/job_chain/builder.rb', line 30

def to_chain
  Chain.new(
    id: @chain_id,
    steps: @steps,
    default_strategy: @default_strategy,
    initial_context: @initial_context
  )
end