class ActiveFedora::File::Streaming::FileBody
def each(no_of_requests_limit = 3, &block)
def each(no_of_requests_limit = 3, &block) raise ArgumentError, 'HTTP redirect too deep' if no_of_requests_limit.zero? Net::HTTP.start(uri.host, uri.port, use_ssl: (uri.scheme == 'https')) do |http| request = Net::HTTP::Get.new uri, headers http.request request do |response| case response when Net::HTTPSuccess response.read_body do |chunk| yield chunk end when Net::HTTPRedirection no_of_requests_limit -= 1 @uri = URI(response["location"]) each(no_of_requests_limit, &block) else raise "Couldn't get data from Fedora (#{uri}). Response: #{response.code}" end end end end
def initialize(uri, headers)
def initialize(uri, headers) @uri = uri @headers = headers end