Sha256: a34b01fb9a962bb28c9f76f1091577fac0503f0860f0fe05dfdbb6e756a2695f
Contents?: true
Size: 1.05 KB
Versions: 3
Compression:
Stored size: 1.05 KB
Contents
module Braintree class ResourceCollection include Enumerable def initialize(response, &block) # :nodoc: @ids = Util.extract_attribute_as_array(response[:search_results], :ids) @page_size = response[:search_results][:page_size] @paging_block = block end # Yields each item def each(&block) @ids.each_slice(@page_size) do |page_of_ids| resources = @paging_block.call(page_of_ids) resources.each(&block) end end def empty? @ids.empty? end # Returns the first item in the collection or nil if the collection is empty def first @paging_block.call([@ids.first]).first end # Only the maximum size of a resource collection can be determined since the data on the server can change while # fetching blocks of results for iteration. For example, customers can be deleted while iterating, so the number # of results iterated over may be less than the maximum_size. In general, this method should be avoided. def maximum_size @ids.size end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
braintree-2.4.0 | lib/braintree/resource_collection.rb |
braintree-2.3.1 | lib/braintree/resource_collection.rb |
braintree-2.2.0 | lib/braintree/resource_collection.rb |