class PgExport::Adapters::FtpAdapter
Constants
- CHUNK_SIZE
- MEANINGFUL_KEYS
Attributes
host[R]
password[R]
user[R]
Public Class Methods
new(host:, user:, password:)
click to toggle source
# File lib/pg_export/lib/pg_export/adapters/ftp_adapter.rb, line 12 def initialize(host:, user:, password:) @host, @user, @password, @logger = host, user, password ObjectSpace.define_finalizer(self, proc { ftp.close if @ftp }) end
Public Instance Methods
close_ftp()
click to toggle source
# File lib/pg_export/lib/pg_export/adapters/ftp_adapter.rb, line 23 def close_ftp @ftp&.close end
delete(name)
click to toggle source
# File lib/pg_export/lib/pg_export/adapters/ftp_adapter.rb, line 35 def delete(name) ftp.delete(name) end
ftp()
click to toggle source
# File lib/pg_export/lib/pg_export/adapters/ftp_adapter.rb, line 51 def ftp @ftp ||= open_ftp end
get(file, name)
click to toggle source
# File lib/pg_export/lib/pg_export/adapters/ftp_adapter.rb, line 43 def get(file, name) ftp.getbinaryfile(name, file.path, CHUNK_SIZE) end
list(regex_string)
click to toggle source
# File lib/pg_export/lib/pg_export/adapters/ftp_adapter.rb, line 27 def list(regex_string) ftp .list(regex_string) .map { |row| extracted_meaningful_attributes(row) } .sort_by { |item| item[:name] } .reverse end
open_ftp()
click to toggle source
# File lib/pg_export/lib/pg_export/adapters/ftp_adapter.rb, line 17 def open_ftp @ftp = Net::FTP.new(host, user, password) @ftp.passive = true @ftp end
persist(file, name)
click to toggle source
# File lib/pg_export/lib/pg_export/adapters/ftp_adapter.rb, line 39 def persist(file, name) ftp.putbinaryfile(file.path, name, CHUNK_SIZE) end
to_s()
click to toggle source
# File lib/pg_export/lib/pg_export/adapters/ftp_adapter.rb, line 47 def to_s host end
Private Instance Methods
extracted_meaningful_attributes(item)
click to toggle source
# File lib/pg_export/lib/pg_export/adapters/ftp_adapter.rb, line 59 def extracted_meaningful_attributes(item) MEANINGFUL_KEYS.zip(item.split(' ').values_at(8, 4)).to_h end