class Actionable::Recurrence

Public Instance Methods

ensure_scheduled() click to toggle source
# File lib/actionable/recurrence.rb, line 28
def ensure_scheduled
  schedule_next unless next_scheduled?
end
next_scheduled?() click to toggle source
# File lib/actionable/recurrence.rb, line 24
def next_scheduled?
  Actionable::Action.where(:status.in => [:scheduled,:late,:enqueued,:working], target_id: id).exists?
end
schedule_next() click to toggle source
# File lib/actionable/recurrence.rb, line 20
def schedule_next
  schedule_actionable(next_run_time,job_class,payload)
end

Private Instance Methods

job_class() click to toggle source
# File lib/actionable/recurrence.rb, line 38
def job_class
  unless read_attribute(:job_class).blank?
    read_attribute(:job_class).constantize 
  end
end
next_run_time() click to toggle source
# File lib/actionable/recurrence.rb, line 34
def next_run_time
  Rufus::CronLine.new(recurrence_string).next_time.to_datetime.utc
end
valid_job_class() click to toggle source
# File lib/actionable/recurrence.rb, line 52
def valid_job_class
  begin
    job_class
  rescue => e
    errors.add(:job_class,e.message)
  end
end
valid_recurrence_string() click to toggle source
# File lib/actionable/recurrence.rb, line 44
def valid_recurrence_string
  begin
    next_run_time
  rescue => e
    errors.add(:recurrence_string,e.message)
  end
end