Search code examples
rubyfilecurlcurb

Zipfile download through CURL to an actual Zip-file in your file structure


I am trying to build a file downloader with the RubyGem Curb. (Look at This Question.)

I am trying to download a zip file and then with the class File I am trying to actually make the file so that I can double click it in Finder (I am on OS X). How would I go about to convert this "Curl'ed" body to a zip-file.

require 'rubygems'
require 'curb'

class Download
  def start
    curl = Curl::Easy.new('http://wordpress.org/latest.zip')
    curl.perform
    curl.on_body {
      |d| f = File.new('test.zip', 'w') {|f| f.write d}
    }
  end
end

dl = Download.new
dl.start

I am not getting any error, neither can I find any file. I have tried absolute paths with no difference.


Solution

  • You're adding the on_body event after calling perform, which transfers the body. If you move the event declaration to before the perform call, this should work.