include ArvadosApiClientHelper
include Enumerable
+ attr_reader :resource_class
+
def initialize resource_class=nil
@resource_class = resource_class
@fetch_multiple_pages = true
self
end
+ def distinct(bool=true)
+ @distinct = bool
+ self
+ end
+
def limit(max_results)
if not max_results.nil? and not max_results.is_a? Integer
raise ArgumentError("argument to limit() must be an Integer or nil")
end
def items_available
+ results
@items_available
end
def result_limit
+ results
@result_limit
end
def result_offset
+ results
@result_offset
end
api_params[:select] = @select if @select
api_params[:order] = @orderby_spec if @orderby_spec
api_params[:filters] = @filters if @filters
+ api_params[:distinct] = @distinct if @distinct
item_count = 0
reader_tokens: @reader_tokens)
items = arvados_api_client.unpack_api_response res
- break if items.nil? or not items.any?
-
@items_available = items.items_available if items.respond_to?(:items_available)
@result_limit = items.limit if (@fetch_multiple_pages == false) and items.respond_to?(:limit)
@result_offset = items.offset if (@fetch_multiple_pages == false) and items.respond_to?(:offset)
+ break if items.nil? or not items.any?
+
item_count += items.size
if items.respond_to?(:offset)
offset = items.offset + items.size