lib/geminabox/proxy/copier.rb
# frozen_string_literal: true
module Geminabox
module Proxy
class Copier < FileHandler
def self.copy(file_name)
copier = new(file_name)
copier.get_file
copier
end
def get_file
return true if proxy_file_exists?
return copy_local if local_file_exists?
get_remote
end
def copy_local
FileUtils.cp local_path, proxy_path
end
def get_remote
begin
if rc = remote_content
File.open(proxy_path, 'wb'){|f| f.write(rc) }
end
rescue
File.unlink(proxy_path) if File.exist?(proxy_path)
raise $!
end
end
end
end
end