X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/43e019a1e37effa0ccde680b52a61fbba1f858d4..4e2319cec48ef5f6fec5789a127ce26fe360d098:/apps/workbench/app/models/arvados_resource_list.rb diff --git a/apps/workbench/app/models/arvados_resource_list.rb b/apps/workbench/app/models/arvados_resource_list.rb index 6890b87451..9f66d39227 100644 --- a/apps/workbench/app/models/arvados_resource_list.rb +++ b/apps/workbench/app/models/arvados_resource_list.rb @@ -16,6 +16,11 @@ class ArvadosResourceList 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") @@ -148,14 +153,17 @@ class ArvadosResourceList end def items_available + results @items_available end def result_limit + results @result_limit end def result_offset + results @result_offset end @@ -175,6 +183,7 @@ class ArvadosResourceList 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 @@ -191,12 +200,12 @@ class ArvadosResourceList 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