class Pendulum::DSL::Schedule
Attributes
name[RW]
Public Class Methods
new(name, &block)
click to toggle source
# File lib/pendulum/dsl/schedule.rb, line 7 def initialize(name, &block) self.name = name self.instance_eval(&block) if block_given? end
Public Instance Methods
cron(cron)
click to toggle source
# File lib/pendulum/dsl/schedule.rb, line 19 def cron(cron) @cron = %i(hourly daily monthly).include?(cron) ? "@#{cron}" : cron end
priority(priority)
click to toggle source
# File lib/pendulum/dsl/schedule.rb, line 23 def priority(priority) @priority = priority.is_a?(Integer) ? priority : priority_id_of(priority) end
query_file(path)
click to toggle source
# File lib/pendulum/dsl/schedule.rb, line 15 def query_file(path) query(File.read(path)) end
result(type, &block)
click to toggle source
# File lib/pendulum/dsl/schedule.rb, line 31 def result(type, &block) result = Result.new(type, &block) @result = result.to_url end
result_json(type, hash = {})
click to toggle source
# File lib/pendulum/dsl/schedule.rb, line 36 def result_json(type, hash = {}) @result = {type: type}.merge(hash).to_json end
result_url(url)
click to toggle source
# File lib/pendulum/dsl/schedule.rb, line 27 def result_url(url) @result = url end
to_params()
click to toggle source
# File lib/pendulum/dsl/schedule.rb, line 40 def to_params instance_variables.inject({}) do |params, v| params[v.to_s.delete('@').to_sym] = instance_variable_get(v) params end end
Private Instance Methods
priority_id_of(name)
click to toggle source
# File lib/pendulum/dsl/schedule.rb, line 49 def priority_id_of(name) case name.to_sym when :very_low then -2 when :low then -1 when :normal then 0 when :high then 1 when :very_high then 2 else 0 end end