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