X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/11c6f1d759040f2af8a68d80ae78dd57a9b2d976..195b23ed7fd0c6261d0a945a9f0e541d78a0648e:/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 3f74407c01..1a3c6b7e3c 100644 --- a/apps/workbench/app/models/arvados_resource_list.rb +++ b/apps/workbench/app/models/arvados_resource_list.rb @@ -1,4 +1,5 @@ class ArvadosResourceList + include ArvadosApiClientHelper include Enumerable def initialize resource_class=nil @@ -25,6 +26,17 @@ class ArvadosResourceList self end + def select(columns=nil) + # If no column arguments were given, invoke Enumerable#select. + if columns.nil? + super() + else + @select ||= [] + @select += columns + self + end + end + def filter _filters @filters ||= [] @filters += _filters @@ -53,7 +65,7 @@ class ArvadosResourceList end cond.keys.select { |x| x.match /_kind$/ }.each do |kind_key| if cond[kind_key].is_a? Class - cond = cond.merge({ kind_key => 'arvados#' + $arvados_api_client.class_kind(cond[kind_key]) }) + cond = cond.merge({ kind_key => 'arvados#' + arvados_api_client.class_kind(cond[kind_key]) }) end end api_params = { @@ -63,10 +75,11 @@ class ArvadosResourceList api_params[:eager] = '1' if @eager api_params[:limit] = @limit if @limit api_params[:offset] = @offset if @offset + api_params[:select] = @select if @select api_params[:order] = @orderby_spec if @orderby_spec api_params[:filters] = @filters if @filters - res = $arvados_api_client.api @resource_class, '', api_params - @results = $arvados_api_client.unpack_api_response res + res = arvados_api_client.api @resource_class, '', api_params + @results = arvados_api_client.unpack_api_response res self end