Class: Trigger

Inherits:
ApplicationRecord
  • Object
show all
Defined in:
app/models/trigger.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.fireObject



13
14
15
16
# File 'app/models/trigger.rb', line 13

def fire
  where("due_at <= ?", Time.zone.now).destroy_all
  true
end

.post_action(due_at, item, method = "came_due") ⇒ Object



7
8
9
10
11
# File 'app/models/trigger.rb', line 7

def post_action(due_at, item, method = "came_due")
  create!(due_at: due_at, pending_item: item,
          trigger_method: method)
  fire
end

.remove(pending_item, conditions = {}) ⇒ Object



18
19
20
21
22
23
24
# File 'app/models/trigger.rb', line 18

def remove(pending_item, conditions = {})
  return if pending_item.new_record?

  conditions = conditions.merge(pending_item_id: pending_item.id,
                                pending_item_type: pending_item.class.to_s)
  where(conditions).delete_all
end

Instance Method Details

#trigger_pending_itemObject



30
31
32
33
# File 'app/models/trigger.rb', line 30

def trigger_pending_item
  pending_item&.send(trigger_method)
  true
end