mirror of
https://github.com/edcommonwealth/Dashboard.git
synced 2026-03-07 13:38:12 -08:00
31 lines
759 B
Ruby
31 lines
759 B
Ruby
require "net/sftp"
|
|
require "uri"
|
|
require "csv"
|
|
|
|
module Dashboard
|
|
module Sftp
|
|
class Directory
|
|
def self.open(path: "/data/survey_responses/clean", &block)
|
|
sftptogo_url = ENV["ECP_SFTPTOGO_URL"]
|
|
uri = URI.parse(sftptogo_url)
|
|
Net::SFTP.start(uri.host, uri.user, password: uri.password) do |sftp|
|
|
sftp.dir.foreach(path) do |entry|
|
|
next unless entry.file?
|
|
|
|
filename = entry.name
|
|
puts filename
|
|
|
|
sftp.file.open(filepath(path:, filename:), "r", &block)
|
|
end
|
|
end
|
|
end
|
|
|
|
def self.filepath(path:, filename:)
|
|
path += "/" unless path.end_with?("/")
|
|
"#{path}#{filename}"
|
|
end
|
|
|
|
private_class_method :filepath
|
|
end
|
|
end
|
|
end
|