Sha256: 9f7fb49dd13b1374b5bbec1e16cc834cae1635ea89651d440a5c47f3684e4c04

Contents?: true

Size: 1.08 KB

Versions: 10

Compression:

Stored size: 1.08 KB

Contents

module Clever
  module APIOperations
    # Handles paginated requests.
    class PageList
      include Enumerable

      # Create a new PageList, without making any requests immediately
      # @api private
      # @return [PageList]
      def initialize(uri, filters = {}, headers = {})
        @uri = uri
        @filters = filters
        @headers = headers
      end

      # Iterate through each page, making requests as you iterate
      # @api private
      # @return [nil]
      # @example
      #   pagelist.each do |page|
      #     page.each do |elem|
      #       puts elem
      #     end
      #   end
      def each
        page = Page.new @uri, @filters, @headers
        until page.nil?
          yield page
          page = page.next
        end
      end

      # Convert PageList into a ResultsList for easier iteration
      # @api private
      # @return [Clever::APIOperations::ResultsList]
      # @example
      #   pagelist.to_results_list.each { |elem| puts elem }
      def to_results_list
        Clever::APIOperations::ResultsList.new self
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
clever-ruby-0.14.0 lib/clever-ruby/api_operations/pagelist.rb
clever-ruby-0.13.2 lib/clever-ruby/api_operations/pagelist.rb
clever-ruby-0.13.1 lib/clever-ruby/api_operations/pagelist.rb
clever-ruby-0.13.0 lib/clever-ruby/api_operations/pagelist.rb
clever-ruby-0.11.1 lib/clever-ruby/api_operations/pagelist.rb
clever-ruby-0.11.0 lib/clever-ruby/api_operations/pagelist.rb
clever-ruby-0.10.2 lib/clever-ruby/api_operations/pagelist.rb
clever-ruby-0.10.1 lib/clever-ruby/api_operations/pagelist.rb
clever-ruby-0.10.0 lib/clever-ruby/api_operations/pagelist.rb
clever-ruby-0.9.0 lib/clever-ruby/api_operations/pagelist.rb