class Geminabox::Proxy::FileHandler
def create_local_folder
def create_local_folder FileUtils.mkdir_p(local_file_folder) end
def create_proxy_folder
def create_proxy_folder FileUtils.mkdir_p(proxy_file_folder) end
def encoding
def encoding "UTF-8" end
def ensure_destination_exists
def ensure_destination_exists create_local_folder unless local_folder_exists? create_proxy_folder unless proxy_folder_exists? end
def file_exists?(path)
def file_exists?(path) File.exist? path end
def initialize(file_name)
def initialize(file_name) @file_name = file_name ensure_destination_exists end
def local_content
def local_content File.read(local_path).force_encoding(encoding) end
def local_file_exists?
def local_file_exists? file_exists? local_path end
def local_file_folder
def local_file_folder File.dirname local_path end
def local_folder_exists?
def local_folder_exists? Dir.exist?(local_file_folder) end
def local_path
def local_path File.expand_path(file_name, root_path) end
def proxy_file_exists?
def proxy_file_exists? file_exists? proxy_path end
def proxy_file_folder
def proxy_file_folder File.dirname proxy_path end
def proxy_folder_exists?
def proxy_folder_exists? Dir.exist?(proxy_file_folder) end
def proxy_folder_name
def proxy_folder_name 'proxy' end
def proxy_folder_path
def proxy_folder_path File.join(root_path, proxy_folder_name) end
def proxy_path
def proxy_path File.expand_path(file_name, proxy_folder_path) end
def remote_content
def remote_content Geminabox.http_adapter.get_content(remote_url).force_encoding(encoding) rescue return nil if Geminabox.allow_remote_failure raise GemStoreError.new(500, "Unable to get content from #{remote_url}") end
def remote_url
def remote_url URI.join(Geminabox.ruby_gems_url, file_name) end
def root_path
def root_path Geminabox.data end