- pbar = nil
- 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
- end
- },
- :progress_proc => lambda {|size|
- pbar.set(size) if pbar
- }
- }.merge!(headers)) do |video_file|
+ # Convert our methods to Proc objects.
+ content_length_callback = method(:content_length_callback)
+ progress_callback = method(:progress_callback)
+
+ # So that they can be passed as arguments to open().
+ open_params = { :content_length_proc => content_length_callback,
+ :progress_proc => progress_callback}
+
+ # Add the headers as additional parameters to the open() call.
+ open_params.merge!(headers)
+
+ uri.open(open_params) do |video_file|