Method: Expire::BackupList#one_per

Defined in:
lib/expire/backup_list.rb

#one_per(noun) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/expire/backup_list.rb', line 20

def one_per(noun)
  backups_per_noun = self.class.new
  return backups_per_noun unless any?

  reversed = sort.reverse

  backups_per_noun << reversed.first

  message = "same_#{noun}?"

  reversed.each do |backup|
    backups_per_noun << backup unless backup.send(message, backups_per_noun.last)
  end

  backups_per_noun
end