class Backup

Attributes

keep[R]
s3_object[R]
ts[R]

Public Class Methods

generate_id() click to toggle source
# File lib/pg_s3_dumper/backup.rb, line 3
def self.generate_id
  SecureRandom.hex(32)
end
new(s3_object) click to toggle source
# File lib/pg_s3_dumper/backup.rb, line 15
def initialize(s3_object)
  @s3_object = s3_object
  @ts = Time.parse(s3_object.key.split('/').last)
  @keep = false
end

Public Instance Methods

<=>(other) click to toggle source
# File lib/pg_s3_dumper/backup.rb, line 11
def <=>(other)
  ts <=> other.ts
end
basename() click to toggle source
# File lib/pg_s3_dumper/backup.rb, line 70
def basename
  File.basename(s3_object.key)
end
delete() click to toggle source
# File lib/pg_s3_dumper/backup.rb, line 57
def delete
  puts "Deleting backup: #{self}"
  s3_object.delete
end
id() click to toggle source
# File lib/pg_s3_dumper/backup.rb, line 62
def id
  @id ||= s3_object.metadata['backup_id']
end
keep_on_day(date) click to toggle source
# File lib/pg_s3_dumper/backup.rb, line 37
def keep_on_day(date)
  @keep = true if on_day?(date)
end
keep_on_month(date) click to toggle source
# File lib/pg_s3_dumper/backup.rb, line 45
def keep_on_month(date)
  @keep = true if on_month?(date)
end
keep_on_week(date) click to toggle source
# File lib/pg_s3_dumper/backup.rb, line 41
def keep_on_week(date)
  @keep = true if on_week?(date)
end
on_day?(date) click to toggle source
# File lib/pg_s3_dumper/backup.rb, line 25
def on_day?(date)
  ts.strftime('%F') == date.strftime('%F')
end
on_month?(date) click to toggle source
# File lib/pg_s3_dumper/backup.rb, line 33
def on_month?(date)
  ts.strftime('%Y-%m') == date.strftime('%Y-%m')
end
on_week?(date) click to toggle source
# File lib/pg_s3_dumper/backup.rb, line 29
def on_week?(date)
  ts.strftime('%Y-%U') == date.strftime('%Y-%U')
end
prune() click to toggle source
# File lib/pg_s3_dumper/backup.rb, line 49
def prune
  if keep
    puts "Keeping backup: #{self}"
  else
    delete
  end
end
short_id() click to toggle source
# File lib/pg_s3_dumper/backup.rb, line 66
def short_id
  id[0..8]
end
to_s() click to toggle source
# File lib/pg_s3_dumper/backup.rb, line 21
def to_s
  "id: #{short_id}, key: #{basename}"
end