class Xronor::DSL::Job
Public Class Methods
new(frequency, options, &block)
click to toggle source
# File lib/xronor/dsl/job.rb, line 6 def initialize(frequency, options, &block) @frequency = frequency @options = options schedule = case frequency when String # cron expression frequency when Symbol, Numeric # DSL (:hour, 1.min, 1.hour, ...) Xronor::DSL::ScheduleConverter.convert(frequency, options) else raise ArgumentError, "Invalid frequency #{frequency}" end @result = OpenStruct.new( description: nil, name: "", schedule: schedule, command: "", ) instance_eval(&block) end
Public Instance Methods
process_template(template, options)
click to toggle source
# File lib/xronor/dsl/job.rb, line 35 def process_template(template, options) template.gsub(/:\w+/) do |key| before_and_after = [$`[-1..-1], $'[0..0]] option = options[key.sub(':', '').to_sym] || key if before_and_after.all? { |c| c == "'" } escape_single_quotes(option) elsif before_and_after.all? { |c| c == '"' } escape_double_quotes(option) else option end end.gsub(/\s+/m, " ").strip end
result()
click to toggle source
# File lib/xronor/dsl/job.rb, line 50 def result required(:name, @result.name) @result end
Private Instance Methods
escape_double_quotes(str)
click to toggle source
# File lib/xronor/dsl/job.rb, line 61 def escape_double_quotes(str) str.gsub(/"/) { '\"' } end
escape_single_quotes(str)
click to toggle source
# File lib/xronor/dsl/job.rb, line 57 def escape_single_quotes(str) str.gsub(/'/) { "'\\''" } end