# Download the given URI object to <outfile_name>.
# Should use the progress_proc parameter to show
# a progress bar using the Ruby/ProgressBar library.
- def download_with_progress_bar(uri, outfile_name)
+ def download_with_progress_bar(uri, outfile_name, headers = {})
# We wrap the whole thing in a begin/rescue so that
# we can clean up afterwards in case of an error.
begin
File.open(outfile_name, 'wb') do |outfile|
pbar = nil
- uri.open(:content_length_proc => lambda {|content_length|
- if content_length && (0 < content_length)
+ uri.open({:content_length_proc => lambda {|content_length|
+ if content_length && (0 < content_length)
pbar = ProgressBar.new("Download", content_length)
pbar.instance_eval { @bar_mark = '=' }
pbar.file_transfer_mode
},
:progress_proc => lambda {|size|
pbar.set(size) if pbar
- }) do |video_file|
+ }
+ }.merge!(headers)) do |video_file|
outfile.write(video_file.read)
- end
+ end
end
# Toss out an empty line to get rid of the progress bar.
raise(e)
end
end
-
+
end