Class: PgExport::DumpStorage

Inherits:
Object
  • Object
show all
Includes:
Logging
Defined in:
lib/pg_export/services/dump_storage.rb

Constant Summary collapse

TIMESTAMP =
'_%Y%m%d_%H%M%S'.freeze
TIMESTAMP_REGEX =
'[0-9]{8}_[0-9]{6}'.freeze

Instance Method Summary collapse

Methods included from Logging

#logger, logger

Constructor Details

#initialize(ftp_service, name) ⇒ DumpStorage

Returns a new instance of DumpStorage.



8
9
10
# File 'lib/pg_export/services/dump_storage.rb', line 8

def initialize(ftp_service, name)
  @ftp_service, @name = ftp_service, name
end

Instance Method Details

#remove_old(keep:) ⇒ Object



18
19
20
21
22
23
# File 'lib/pg_export/services/dump_storage.rb', line 18

def remove_old(keep:)
  ftp_service.list(ftp_regex).drop(keep.to_i).each do |filename|
    ftp_service.delete(filename)
    logger.info "Remove #{filename} from FTP"
  end
end

#upload(dump) ⇒ Object



12
13
14
15
16
# File 'lib/pg_export/services/dump_storage.rb', line 12

def upload(dump)
  dump_name = timestamped_name(dump)
  ftp_service.upload_file(dump.path, dump_name)
  logger.info "Export #{dump} #{dump_name} to #{ftp_service}"
end