Class: PgExport::Ftp::Repository

Inherits:
Object
  • Object
show all
Defined in:
lib/pg_export/ftp/repository.rb

Instance Method Summary collapse

Constructor Details

#initialize(adapter:, logger:) ⇒ Repository

Returns a new instance of Repository.



4
5
6
# File 'lib/pg_export/ftp/repository.rb', line 4

def initialize(adapter:, logger:)
  @adapter, @logger = adapter, logger
end

Instance Method Details

#allObject



31
32
33
# File 'lib/pg_export/ftp/repository.rb', line 31

def all
  adapter.list('*')
end

#find_by_name(name) ⇒ Object



27
28
29
# File 'lib/pg_export/ftp/repository.rb', line 27

def find_by_name(name)
  adapter.list(name + '_*')
end

#get(db_name) ⇒ Object



13
14
15
16
17
18
# File 'lib/pg_export/ftp/repository.rb', line 13

def get(db_name)
  dump = Dump.new(name: 'Encrypted Dump', db_name: db_name)
  adapter.get(dump.path, dump.db_name)
  logger.info "Get #{dump} #{db_name} from #{adapter}"
  dump
end

#persist(dump) ⇒ Object



8
9
10
11
# File 'lib/pg_export/ftp/repository.rb', line 8

def persist(dump)
  adapter.persist(dump.path, dump.timestamped_name)
  logger.info "Persist #{dump} #{dump.timestamped_name} to #{adapter}"
end

#remove_old(name, keep) ⇒ Object



20
21
22
23
24
25
# File 'lib/pg_export/ftp/repository.rb', line 20

def remove_old(name, keep)
  find_by_name(name).drop(keep).each do |filename|
    adapter.delete(filename)
    logger.info "Remove #{filename} from #{adapter}"
  end
end