class Kyklos::JobList
Attributes
jobs[R]
Public Class Methods
new(code = nil)
click to toggle source
# File lib/kyklos/job_list.rb, line 8 def initialize(code = nil) @jobs = {} instance_eval(code) unless code.nil? end
Public Instance Methods
[](id)
click to toggle source
# File lib/kyklos/job_list.rb, line 13 def [](id) @jobs[normalize_id(id)] end
cron(expression, as: nil, desc: nil, &block)
click to toggle source
# File lib/kyklos/job_list.rb, line 29 def cron(expression, as: nil, desc: nil, &block) add_job(Kyklos::Job::Cron, expression, block, as: as, desc: desc) end
each(&block)
click to toggle source
# File lib/kyklos/job_list.rb, line 17 def each(&block) @jobs.each(&block) end
rate(expression, as: nil, desc: nil, &block)
click to toggle source
# File lib/kyklos/job_list.rb, line 25 def rate(expression, as: nil, desc: nil, &block) add_job(Kyklos::Job::Rate, expression, block, as: as, desc: desc) end
run(id)
click to toggle source
# File lib/kyklos/job_list.rb, line 21 def run(id) self[id].run end
Private Instance Methods
add_job(klass, expression, block, as:, desc:)
click to toggle source
# File lib/kyklos/job_list.rb, line 35 def add_job(klass, expression, block, as:, desc:) id = as || job_id(klass, expression) normalized_id = normalize_id(id) @jobs[normalized_id] = klass.new(expression, block, description: desc) normalized_id end
job_id(klass, expression)
click to toggle source
# File lib/kyklos/job_list.rb, line 42 def job_id(klass, expression) [klass, expression].map(&:to_s).join('#') end
normalize_id(id)
click to toggle source
# File lib/kyklos/job_list.rb, line 46 def normalize_id(id) id.to_s.to_sym end