From 5526c37753394a8a42d064c6bc453bb91bc45561 Mon Sep 17 00:00:00 2001 From: Sang Truong Date: Mon, 11 Oct 2021 23:30:49 +0700 Subject: [PATCH] BUGFIX:MSF-22175 - Revert to use Enumerator on MD object --- VERSION | 2 +- lib/gooddata/mixins/md_object_query.rb | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/VERSION b/VERSION index 9c42c051a..89bf647ee 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.7.34 +3.7.35 diff --git a/lib/gooddata/mixins/md_object_query.rb b/lib/gooddata/mixins/md_object_query.rb index e072bcb78..b087727b8 100644 --- a/lib/gooddata/mixins/md_object_query.rb +++ b/lib/gooddata/mixins/md_object_query.rb @@ -47,17 +47,17 @@ def query(query_obj_type, klass, options = { :client => GoodData.connection, :pr offset = 0 page_limit = 50 - all_objects = [] - loop do - result = client.get(project.md['objects'] + '/query', params: { category: query_obj_type, limit: page_limit, offset: offset }) - result['objects']['items'].each do |item| - all_objects << (klass ? client.create(klass, item, project: project) : item) + Enumerator.new do |y| + loop do + result = client.get(project.md['objects'] + '/query', params: { category: query_obj_type, limit: page_limit, offset: offset }) + result['objects']['items'].each do |item| + y << (klass ? client.create(klass, item, project: project) : item) + end + break if result['objects']['paging']['count'] < page_limit + + offset += page_limit end - break if result['objects']['paging']['count'] < page_limit - - offset += page_limit end - all_objects end def dependency(uri, key = nil, opts = { :client => GoodData.connection })