class Duties::Duty

Attributes

record[R]

Public Class Methods

call(record) click to toggle source
# File lib/duties/duty.rb, line 2
def self.call(record)
  new(record).call
end
enqueue(name, data = {}) click to toggle source
# File lib/duties/duty.rb, line 6
def self.enqueue(name, data = {})
  duty = Duties::DutyRecord.create! name: name, data: data

  Duties::DutyJob.perform_async duty.id

  duty.id
end
new(record) click to toggle source
# File lib/duties/duty.rb, line 14
def initialize(record)
  @record = record
end

Public Instance Methods

call() click to toggle source
# File lib/duties/duty.rb, line 22
def call
  enqueue_activities
  start_activities
end
enqueue_activities() click to toggle source
# File lib/duties/duty.rb, line 18
def enqueue_activities
  # Hook for subclasses to implement
end

Private Instance Methods

enqueue_activity(name, options) click to toggle source
# File lib/duties/duty.rb, line 31
def enqueue_activity(name, options)
  record.activity_records.create! name: name, position: options[:at]
end
start_activities() click to toggle source
# File lib/duties/duty.rb, line 35
def start_activities
  record.activity_records.by_position(1).each do |activity|
    Duties::ActivityJob.perform_async activity.id
  end
end