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