Class: Xronor::DSL
- Inherits:
-
Object
show all
- Defined in:
- lib/xronor/dsl.rb,
lib/xronor/dsl/job.rb,
lib/xronor/dsl/checker.rb,
lib/xronor/dsl/default.rb,
lib/xronor/dsl/numeric_seconds.rb,
lib/xronor/dsl/schedule_converter.rb
Defined Under Namespace
Modules: Checker
Classes: Default, DuplicatedError, Job, NumericSeconds, ScheduleConverter
Constant Summary
collapse
- DEFAULT_PREFIX =
"scheduler-"
- DEFAULT_TIMEZONE =
"UTC"
- DEFAULT_CRON_TIMEZONE =
"UTC"
- DEFAULT_JOB_TEMPLATE =
":job"
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(body) ⇒ DSL
Returns a new instance of DSL.
Class Method Details
.eval(body) ⇒ Object
11
12
13
|
# File 'lib/xronor/dsl.rb', line 11
def eval(body)
self.new(body)
end
|
.seconds(number, units) ⇒ Object
Instance Method Details
#default(&block) ⇒ Object
34
35
36
|
# File 'lib/xronor/dsl.rb', line 34
def default(&block)
@result.options.merge!(Xronor::DSL::Default.new(&block).result.to_h)
end
|
#every(frequency, options = {}, &block) ⇒ Object
38
39
40
41
42
|
# File 'lib/xronor/dsl.rb', line 38
def every(frequency, options = {}, &block)
job = Xronor::DSL::Job.new(frequency, @result.options.merge(options), &block).result
raise Xronor::DSL::DuplicatedError, "Job \"#{job.name}\" already exists" if @result.jobs[job.name]
@result.jobs[job.name] = job
end
|
#job_template(template) ⇒ Object
44
45
46
|
# File 'lib/xronor/dsl.rb', line 44
def job_template(template)
@result.options[:job_template] = template
end
|
#job_type(name, template) ⇒ Object
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/xronor/dsl.rb', line 48
def job_type(name, template)
Xronor::DSL::Job.class_eval do
define_method(name) do |task, *args|
options = { task: task }
options.merge!(args[0]) if args[0].is_a? Hash
job = process_template(template, options)
@result.command = process_template(@options[:job_template], options.merge({ job: job }))
end
end
end
|
#result ⇒ Object
59
60
61
|
# File 'lib/xronor/dsl.rb', line 59
def result
@result
end
|