lib/prss/downloader.rb in prss-0.1.1 vs lib/prss/downloader.rb in prss-0.2.0

- old
+ new

@@ -1,15 +1,13 @@ -require 'typhoeus' +require 'net/http' require 'pathname' module PRSS class Downloader - attr_reader :hydra def initialize(links) @links = links - @hydra = Typhoeus::Hydra.new end def self.verify!(output_path) output = Pathname.new(output_path).expand_path raise 'output path is not directory' unless output.directory? @@ -17,33 +15,23 @@ end def download_to(output_path) output = self.class.verify!(output_path) - @files = [] - @links.each do |link| - request = Typhoeus::Request.new(link, followlocation: true) - - request.on_complete do |response| - @files << save_file(response, output) - end - - hydra.queue request - end - - hydra.run - - @files + @files = @links.each.map do |uri| + response = Net::HTTP.get_response(uri) + save_file(response, output) + end.compact end def save_file(response, output) - filename = response.headers_hash['Content-Disposition'][/filename="(.+)"$/ ,1] + filename = response['Content-Disposition'][/filename="(.+)"$/ ,1] file = output.join(filename) return if file.exist? open(file, 'wb') do |file| - file.write(response.body) + response.read_body(file) end filename end