lib/gooddata/mixins/md_object_query.rb in gooddata-0.6.19 vs lib/gooddata/mixins/md_object_query.rb in gooddata-0.6.20

- old
+ new

@@ -31,11 +31,21 @@ fail ArgumentError, 'No :project specified' if p.nil? project = GoodData::Project[p, options] fail ArgumentError, 'Wrong :project specified' if project.nil? - query_result = client.get(project.md['query'] + "/#{query_obj_type}/")['query']['entries'] - options[:full] == false ? query_result : query_result.pmap { |item| klass[item['link'], options] } + offset = 0 + page_limit = 50 + 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 + end end def dependency(uri, key = nil, opts = { :client => GoodData.connection }) c = opts[:client] fail ArgumentError, 'No :client specified' if c.nil?