Class: Persona::Pruner

Inherits:
Object
  • Object
show all
Defined in:
lib/persona/pruner.rb

Class Method Summary collapse

Class Method Details

.enforce_cap_for(record) ⇒ Object

Prune per-record if max_events_per_record is set



9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/persona/pruner.rb', line 9

def self.enforce_cap_for(record)
  cap = Persona.configuration.max_events_per_record
  return unless cap

  count = record.persona_events.count
  return unless count > cap

  oldest_ids = record.persona_events
                     .order(created_at: :asc)
                     .limit(count - cap)
                     .pluck(:id)
  PersonaEvent.where(id: oldest_ids).delete_all
end

.prune_older_than(days) ⇒ Object

Prune events older than N days globally



4
5
6
# File 'lib/persona/pruner.rb', line 4

def self.prune_older_than(days)
  PersonaEvent.where("created_at < ?", days.days.ago).delete_all
end