class Neo4j::RakeTasks::Download
Public Class Methods
new(url)
click to toggle source
# File lib/neo4j/rake_tasks/download.rb, line 7 def initialize(url) @url = url end
Public Instance Methods
exists?()
click to toggle source
# File lib/neo4j/rake_tasks/download.rb, line 11 def exists? status = head(@url).code.to_i (200...300).cover?(status) end
fetch(message)
click to toggle source
# File lib/neo4j/rake_tasks/download.rb, line 16 def fetch(message) require 'open-uri' open(@url, content_length_proc: lambda do |total| create_progress_bar(message, total) if total && total > 0 end, progress_proc: method(:update_progress_bar)).read end
Private Instance Methods
create_progress_bar(message, total)
click to toggle source
# File lib/neo4j/rake_tasks/download.rb, line 27 def create_progress_bar(message, total) @progress_bar ||= ProgressBar.create title: message, total: total end
head(url)
click to toggle source
# File lib/neo4j/rake_tasks/download.rb, line 38 def head(url) uri = URI(url) Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http| return http.head("#{uri.path}?#{uri.query}") end end
update_progress_bar(value)
click to toggle source
# File lib/neo4j/rake_tasks/download.rb, line 32 def update_progress_bar(value) return unless @progress_bar value = @progress_bar.total >= value ? value : @progress_bar.total @progress_bar.progress = value end