lib/azure_blob/blob_list.rb
# frozen_string_literal: true require "rexml" module AzureBlob class BlobList include REXML include Enumerable def initialize(fetcher) @fetcher = fetcher end def size to_a.size end def each loop do fetch current_page.each do |key| yield key end break unless marker end end def to_s to_a.to_s end def inspect to_a.inspect end private def marker document && document.get_elements("//EnumerationResults/NextMarker").first.get_text()&.to_s end def current_page document .get_elements("//EnumerationResults/Blobs/Blob/Name") .map { |element| element.get_text.to_s } end def fetch @document = Document.new(fetcher.call(marker)) end attr_reader :document, :fetcher end end