Class: LcpRuby::Dsl::JobBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/lcp_ruby/dsl/job_builder.rb

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ JobBuilder

Returns a new instance of JobBuilder.



4
5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/lcp_ruby/dsl/job_builder.rb', line 4

def initialize(name)
  @name = name.to_s
  @handler_value = nil
  @queue_value = nil
  @retry_count_value = nil
  @retry_interval_value = nil
  @timeout_value = nil
  @unique_by_value = nil
  @schedule_value = nil
  @steps_value = []
  @on_step_error_value = nil
  @triggers_value = []
  @params_value = {}
end

Instance Method Details

#handler(value) ⇒ Object



19
20
21
# File 'lib/lcp_ruby/dsl/job_builder.rb', line 19

def handler(value)
  @handler_value = value
end

#on_step_error(value) ⇒ Object



49
50
51
# File 'lib/lcp_ruby/dsl/job_builder.rb', line 49

def on_step_error(value)
  @on_step_error_value = value.to_s
end

#params(value) ⇒ Object



58
59
60
# File 'lib/lcp_ruby/dsl/job_builder.rb', line 58

def params(value)
  @params_value = value.transform_keys(&:to_s)
end

#queue(value) ⇒ Object



23
24
25
# File 'lib/lcp_ruby/dsl/job_builder.rb', line 23

def queue(value)
  @queue_value = value.to_s
end

#retry_policy(retries: 3, interval: :exponential) ⇒ Object



27
28
29
30
# File 'lib/lcp_ruby/dsl/job_builder.rb', line 27

def retry_policy(retries: 3, interval: :exponential)
  @retry_count_value = retries
  @retry_interval_value = interval.to_s
end

#schedule(value) ⇒ Object



40
41
42
# File 'lib/lcp_ruby/dsl/job_builder.rb', line 40

def schedule(value)
  @schedule_value = value.to_s
end

#step(config) ⇒ Object



44
45
46
47
# File 'lib/lcp_ruby/dsl/job_builder.rb', line 44

def step(config)
  config = config.transform_keys(&:to_s) if config.is_a?(Hash)
  @steps_value << config
end

#timeout(value) ⇒ Object



32
33
34
# File 'lib/lcp_ruby/dsl/job_builder.rb', line 32

def timeout(value)
  @timeout_value = value.to_i
end

#to_hashObject



62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/lcp_ruby/dsl/job_builder.rb', line 62

def to_hash
  hash = { "name" => @name }
  hash["handler"] = normalize_handler_value if @handler_value
  hash["queue"] = @queue_value if @queue_value
  hash["retry"] = @retry_count_value if @retry_count_value
  hash["retry_interval"] = @retry_interval_value if @retry_interval_value
  hash["timeout"] = @timeout_value if @timeout_value
  hash["unique_by"] = @unique_by_value if @unique_by_value
  hash["schedule"] = @schedule_value if @schedule_value
  hash["steps"] = @steps_value unless @steps_value.empty?
  hash["on_step_error"] = @on_step_error_value if @on_step_error_value
  hash["triggers"] = @triggers_value unless @triggers_value.empty?
  hash["params"] = @params_value unless @params_value.empty?
  hash
end

#trigger(config) ⇒ Object



53
54
55
56
# File 'lib/lcp_ruby/dsl/job_builder.rb', line 53

def trigger(config)
  config = config.transform_keys(&:to_s) if config.is_a?(Hash)
  @triggers_value << config
end

#unique_by(*keys) ⇒ Object



36
37
38
# File 'lib/lcp_ruby/dsl/job_builder.rb', line 36

def unique_by(*keys)
  @unique_by_value = keys.flatten.map(&:to_s)
end