gooddata 0.6.23 → 0.6.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +1 -0
- data/lib/gooddata/commands/datasets.rb +1 -1
- data/lib/gooddata/models/metadata/dashboard.rb +1 -1
- data/lib/gooddata/models/metadata/label.rb +5 -4
- data/lib/gooddata/models/metadata/report.rb +24 -11
- data/lib/gooddata/models/metadata/report_definition.rb +1 -25
- data/lib/gooddata/version.rb +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 30374dd9fc0772222ad087d4c46a0e0cbf67afa7
|
4
|
+
data.tar.gz: ca952f77f35a66ed185d4397f2316d40e39bdb6f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eab3feca7ef26f5e9b97bbc6b7878910afa7da4317b5a802327bd383fa767de654cf6466537ff34e7ee3944b76da5f858e6c5e76f8b535c29929ead8bd9e6138
|
7
|
+
data.tar.gz: 00491d58b885d2b11ae9364e011ec008e91aeb39777e0318619c21a20fb4bf64642f2b689e6ebb23357e1d0a64e214f374c9d342030e5201ebd4fa81a6d8cc05
|
data/CHANGELOG.md
CHANGED
@@ -131,7 +131,7 @@ module GoodData
|
|
131
131
|
guesser.headers.each_with_index do |header, i|
|
132
132
|
options = guess[header].map(&:to_s)
|
133
133
|
options = options.select { |t| t != :connection_point.to_s } if connection_point_set
|
134
|
-
type = ask((question_fmt % [i + 1, header]), :answers => options)
|
134
|
+
type = ask((question_fmt % [i + 1, header]), :answers => options)
|
135
135
|
model.push :title => header, :name => header, :type => type.upcase
|
136
136
|
connection_point_set = true if type == :connection_point.to_s
|
137
137
|
end
|
@@ -125,7 +125,7 @@ module GoodData
|
|
125
125
|
tab = options[:tab] || ''
|
126
126
|
|
127
127
|
req_uri = "/gdc/projects/#{project.pid}/clientexport"
|
128
|
-
x = client.post(req_uri, 'clientExport' => { 'url' => "
|
128
|
+
x = client.post(req_uri, 'clientExport' => { 'url' => "#{client.connection.server_url}/dashboard.html#project=#{GoodData.project.uri}&dashboard=#{uri}&tab=#{tab}&export=1", 'name' => title })
|
129
129
|
client.poll_on_code(x['asyncTask']['link']['poll'], options.merge(process: false))
|
130
130
|
end
|
131
131
|
|
@@ -19,7 +19,7 @@ module GoodData
|
|
19
19
|
# @return [String]
|
20
20
|
def find_value_uri(value)
|
21
21
|
escaped_value = CGI.escape(value)
|
22
|
-
results = client.post("#{uri}/validElements?limit=1&offset=0&order=asc&filter=#{escaped_value}", {})
|
22
|
+
results = client.post("#{uri}/validElements?limit=1&offset=0&order=asc&filter=#{escaped_value}", 'validElementsRequest' => {})
|
23
23
|
items = results['validElements']['items']
|
24
24
|
if items.empty?
|
25
25
|
fail(AttributeElementNotFound, value)
|
@@ -63,7 +63,7 @@ module GoodData
|
|
63
63
|
offset = options[:offset] || 0
|
64
64
|
page_limit = options[:limit] || 100
|
65
65
|
loop do
|
66
|
-
results = client.post("#{uri}/validElements?limit=#{page_limit}&offset=#{offset}&order=asc", {})
|
66
|
+
results = client.post("#{uri}/validElements?limit=#{page_limit}&offset=#{offset}&order=asc", 'validElementsRequest' => {})
|
67
67
|
|
68
68
|
# Implementation of polling is based on
|
69
69
|
# https://opengrok.intgdc.com/source/xref/gdc-backend/src/test/java/com/gooddata/service/dao/ValidElementsDaoTest.java
|
@@ -90,8 +90,9 @@ module GoodData
|
|
90
90
|
end
|
91
91
|
|
92
92
|
def values_count
|
93
|
-
results = client.post("#{uri}/validElements?limit=1&offset=0&order=asc", {})
|
94
|
-
results
|
93
|
+
results = client.post("#{uri}/validElements?limit=1&offset=0&order=asc", 'validElementsRequest' => {})
|
94
|
+
count = GoodData::Helpers.get_path(results, %w(validElements paging total))
|
95
|
+
count && count.to_i
|
95
96
|
end
|
96
97
|
|
97
98
|
# Gives an attribute of current label
|
@@ -57,6 +57,29 @@ module GoodData
|
|
57
57
|
report['report']['meta']['identifier'] = options[:identifier] if options[:identifier]
|
58
58
|
client.create(Report, report, :project => project)
|
59
59
|
end
|
60
|
+
|
61
|
+
def data_result(result, options = {})
|
62
|
+
client = options[:client]
|
63
|
+
data_result_uri = result['execResult']['dataResult']
|
64
|
+
begin
|
65
|
+
result = client.poll_on_response(data_result_uri, options) do |body|
|
66
|
+
body && body['taskState'] && body['taskState']['status'] == 'WAIT'
|
67
|
+
end
|
68
|
+
rescue RestClient::BadRequest => e
|
69
|
+
resp = JSON.parse(e.response)
|
70
|
+
if GoodData::Helpers.get_path(resp, %w(error component)) == 'MD::DataResult'
|
71
|
+
raise GoodData::UncomputableReport
|
72
|
+
else
|
73
|
+
raise e
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
if result.empty?
|
78
|
+
ReportDataResult.new(data: [], top: 0, left: 0)
|
79
|
+
else
|
80
|
+
ReportDataResult.from_xtab(result)
|
81
|
+
end
|
82
|
+
end
|
60
83
|
end
|
61
84
|
|
62
85
|
# Add a report definition to a report. This will show on a UI as a new version.
|
@@ -127,17 +150,7 @@ module GoodData
|
|
127
150
|
def execute(options = {})
|
128
151
|
fail 'You have to save the report before executing. If you do not want to do that please use GoodData::ReportDefinition' unless saved?
|
129
152
|
result = client.post '/gdc/xtab2/executor3', 'report_req' => { 'report' => uri }
|
130
|
-
|
131
|
-
|
132
|
-
result = client.poll_on_response(data_result_uri, options) do |body|
|
133
|
-
body && body['taskState'] && body['taskState']['status'] == 'WAIT'
|
134
|
-
end
|
135
|
-
|
136
|
-
if result.empty?
|
137
|
-
client.create(ReportDataResult, data: [], top: 0, left: 0, project: project)
|
138
|
-
else
|
139
|
-
ReportDataResult.from_xtab(result, client: client, project: project)
|
140
|
-
end
|
153
|
+
GoodData::Report.data_result(result, options.merge(client: client))
|
141
154
|
end
|
142
155
|
|
143
156
|
# Returns true if you can export and object
|
@@ -242,7 +242,7 @@ module GoodData
|
|
242
242
|
uri = "/gdc/app/projects/#{project.pid}/execute"
|
243
243
|
client.post(uri, data)
|
244
244
|
end
|
245
|
-
data_result(result, opts)
|
245
|
+
GoodData::Report.data_result(result, opts.merge(client: client))
|
246
246
|
end
|
247
247
|
|
248
248
|
def filters
|
@@ -352,29 +352,5 @@ module GoodData
|
|
352
352
|
def table?
|
353
353
|
content['format'] == 'grid'
|
354
354
|
end
|
355
|
-
|
356
|
-
private
|
357
|
-
|
358
|
-
def data_result(result, options = {})
|
359
|
-
data_result_uri = result['execResult']['dataResult']
|
360
|
-
begin
|
361
|
-
result = client.poll_on_response(data_result_uri, options) do |body|
|
362
|
-
body && body['taskState'] && body['taskState']['status'] == 'WAIT'
|
363
|
-
end
|
364
|
-
rescue RestClient::BadRequest => e
|
365
|
-
resp = JSON.parse(e.response)
|
366
|
-
if GoodData::Helpers.get_path(resp, %w(error component)) == 'MD::DataResult'
|
367
|
-
raise GoodData::UncomputableReport
|
368
|
-
else
|
369
|
-
raise e
|
370
|
-
end
|
371
|
-
end
|
372
|
-
|
373
|
-
if result.empty?
|
374
|
-
client.create(ReportDataResult, data: [], top: 0, left: 0, project: project)
|
375
|
-
else
|
376
|
-
ReportDataResult.from_xtab(result, client: client, project: project)
|
377
|
-
end
|
378
|
-
end
|
379
355
|
end
|
380
356
|
end
|
data/lib/gooddata/version.rb
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
# GoodData Module
|
8
8
|
module GoodData
|
9
|
-
VERSION = '0.6.
|
9
|
+
VERSION = '0.6.24'
|
10
10
|
|
11
11
|
class << self
|
12
12
|
# Version
|
@@ -17,7 +17,7 @@ module GoodData
|
|
17
17
|
# Identifier of gem version
|
18
18
|
# @return Formatted gem version
|
19
19
|
def gem_version_string
|
20
|
-
"gooddata-gem/#{VERSION}"
|
20
|
+
"gooddata-gem/#{VERSION}/#{RUBY_PLATFORM}/#{RUBY_VERSION}"
|
21
21
|
end
|
22
22
|
end
|
23
23
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gooddata
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.24
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pavel Kolesnikov
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2015-
|
14
|
+
date: 2015-10-13 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: bundler
|
@@ -1030,7 +1030,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1030
1030
|
version: '0'
|
1031
1031
|
requirements: []
|
1032
1032
|
rubyforge_project:
|
1033
|
-
rubygems_version: 2.4.
|
1033
|
+
rubygems_version: 2.4.6
|
1034
1034
|
signing_key:
|
1035
1035
|
specification_version: 4
|
1036
1036
|
summary: A convenient Ruby wrapper around the GoodData RESTful API
|