gooddata 0.6.9 → 0.6.10
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 +10 -0
- data/lib/gooddata/extensions/enumerable.rb +5 -0
- data/lib/gooddata/models/process.rb +9 -2
- data/lib/gooddata/models/project.rb +18 -2
- data/lib/gooddata/models/project_metadata.rb +4 -4
- data/lib/gooddata/models/schedule.rb +41 -8
- data/lib/gooddata/rest/client.rb +3 -1
- data/lib/gooddata/rest/connection.rb +12 -0
- data/lib/gooddata/rest/connections/rest_client_connection.rb +4 -4
- data/lib/gooddata/version.rb +1 -1
- data/spec/integration/full_process_schedule_spec.rb +10 -0
- data/spec/integration/full_project_spec.rb +4 -1
- metadata +174 -217
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 175e3df2f037ccb6001560d204998e8de3082422
|
4
|
+
data.tar.gz: 11fd46bd19cdf28cf062520df37958bca0074dc4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8a0c62a95ae6631b5b94fc9af128e795debb4e892e216d58477565eb45e70fe678c024ad1893ec76db2a76bccc10d8658d57ac2dac819511f59e9854f6558b14
|
7
|
+
data.tar.gz: 3108128b8750a1ea5826e1d050419a08504e3b99da75ef29542333d2f3a32e879cd0f2fd8a9fe36fc661ae10493b2c334492d92ae97ab05c76938c9314576929
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
# GoodData Ruby SDK Changelog
|
2
2
|
|
3
|
+
## 0.6.10
|
4
|
+
- Fixed client default missing in ProjectMetadata
|
5
|
+
- Listing schedules on processes is working
|
6
|
+
- Scrubing params in logs is back
|
7
|
+
- Added ProjectMetadata helpers on project
|
8
|
+
- Listing processes on client works as expected
|
9
|
+
- Schedule can be enabled/disabled
|
10
|
+
- Added pselect helper function
|
11
|
+
|
12
|
+
|
3
13
|
## 0.6.9
|
4
14
|
- Fixing issues with creating models.
|
5
15
|
- Adding couple more helpers for report/metric computation
|
@@ -21,13 +21,20 @@ module GoodData
|
|
21
21
|
uri = "/gdc/projects/#{project.pid}/dataload/processes"
|
22
22
|
data = c.get(uri)
|
23
23
|
data['processes']['items'].map do |process_data|
|
24
|
-
|
24
|
+
c.create(Process, process_data, project: project)
|
25
25
|
end
|
26
26
|
elsif id == :all
|
27
27
|
uri = "/gdc/account/profile/#{c.user.obj_id}/dataload/processes"
|
28
28
|
data = c.get(uri)
|
29
|
+
pids = data['processes']['items'].map { |process_data| process_data['process']['links']['self'].match(%r{/gdc/projects/(\w*)/})[1] }.uniq
|
30
|
+
projects_lookup = pids.pmap { |pid| c.projects(pid) }.reduce({}) do |a, e|
|
31
|
+
a[e.pid] = e
|
32
|
+
a
|
33
|
+
end
|
34
|
+
|
29
35
|
data['processes']['items'].map do |process_data|
|
30
|
-
|
36
|
+
pid = process_data['process']['links']['self'].match(%r{/gdc/projects/(\w*)/})[1]
|
37
|
+
c.create(Process, process_data, project: projects_lookup[pid])
|
31
38
|
end
|
32
39
|
else
|
33
40
|
uri = "/gdc/projects/#{project.pid}/dataload/processes/#{id}"
|
@@ -40,7 +40,7 @@ module GoodData
|
|
40
40
|
class << self
|
41
41
|
# Returns an array of all projects accessible by
|
42
42
|
# current user
|
43
|
-
def all(opts = {})
|
43
|
+
def all(opts = { client: GoodData.connection })
|
44
44
|
c = client(opts)
|
45
45
|
c.user.projects
|
46
46
|
end
|
@@ -55,7 +55,7 @@ module GoodData
|
|
55
55
|
return id if id.instance_of?(GoodData::Project) || id.respond_to?(:project?) && id.project?
|
56
56
|
|
57
57
|
if id == :all
|
58
|
-
Project.all(opts)
|
58
|
+
Project.all({ client: GoodData.connection }.merge(opts))
|
59
59
|
else
|
60
60
|
if id.to_s !~ %r{^(\/gdc\/(projects|md)\/)?[a-zA-Z\d]+$}
|
61
61
|
fail(ArgumentError, 'wrong type of argument. Should be either project ID or path')
|
@@ -633,6 +633,22 @@ module GoodData
|
|
633
633
|
list.find { |m| m.login == profile.login }
|
634
634
|
end
|
635
635
|
|
636
|
+
# Get data from project specific metadata storage
|
637
|
+
#
|
638
|
+
# @param [Symbol | String] :all or nothing for all keys or a string for value of specific key
|
639
|
+
# @return [Hash] key Hash of stored data
|
640
|
+
def metadata(key = :all)
|
641
|
+
GoodData::ProjectMetadata[key, client: client, project: self]
|
642
|
+
end
|
643
|
+
|
644
|
+
# Set data for specific key in project specific metadata storage
|
645
|
+
#
|
646
|
+
# @param [String] key key of the value to be stored
|
647
|
+
# @return [String] val value to be stored
|
648
|
+
def set_metadata(key, val)
|
649
|
+
GoodData::ProjectMetadata[key, client: client, project: self] = val
|
650
|
+
end
|
651
|
+
|
636
652
|
# Helper for getting metrics of a project
|
637
653
|
#
|
638
654
|
# @return [Array<GoodData::Metric>] matric instance or list
|
@@ -3,11 +3,11 @@
|
|
3
3
|
module GoodData
|
4
4
|
class ProjectMetadata
|
5
5
|
class << self
|
6
|
-
def keys(opts = { :client => GoodData.connection })
|
6
|
+
def keys(opts = { :client => GoodData.connection, :project => GoodData.project })
|
7
7
|
ProjectMetadata[:all, opts].keys
|
8
8
|
end
|
9
9
|
|
10
|
-
def [](key, opts = { :client => GoodData.connection })
|
10
|
+
def [](key, opts = { :client => GoodData.connection, :project => GoodData.project })
|
11
11
|
client = opts[:client]
|
12
12
|
fail ArgumentError, 'No :client specified' if client.nil?
|
13
13
|
|
@@ -31,14 +31,14 @@ module GoodData
|
|
31
31
|
alias_method :get, :[]
|
32
32
|
alias_method :get_key, :[]
|
33
33
|
|
34
|
-
def key?(key, opts = { :client => GoodData.connection })
|
34
|
+
def key?(key, opts = { :client => GoodData.connection, :project => GoodData.project })
|
35
35
|
ProjectMetadata[key, opts]
|
36
36
|
true
|
37
37
|
rescue RestClient::ResourceNotFound
|
38
38
|
false
|
39
39
|
end
|
40
40
|
|
41
|
-
def []=(key, opts = { :client => GoodData.connection }, val = nil)
|
41
|
+
def []=(key, opts = { :client => GoodData.connection, :project => GoodData.project }, val = nil)
|
42
42
|
client = opts[:client]
|
43
43
|
fail ArgumentError, 'No :client specified' if client.nil?
|
44
44
|
|
@@ -5,11 +5,11 @@ require_relative '../extensions/hash'
|
|
5
5
|
|
6
6
|
module GoodData
|
7
7
|
class Schedule < Rest::Resource
|
8
|
-
attr_reader :dirty, :
|
8
|
+
attr_reader :dirty, :json
|
9
9
|
|
10
|
-
alias_method :
|
11
|
-
alias_method :raw_data, :
|
12
|
-
alias_method :to_hash, :
|
10
|
+
alias_method :data, :json
|
11
|
+
alias_method :raw_data, :json
|
12
|
+
alias_method :to_hash, :json
|
13
13
|
|
14
14
|
class << self
|
15
15
|
# Looks for schedule
|
@@ -80,9 +80,9 @@ module GoodData
|
|
80
80
|
:process_id => process_id,
|
81
81
|
:executable => executable
|
82
82
|
},
|
83
|
-
:hidden_params => {}
|
83
|
+
:hidden_params => {},
|
84
|
+
:reschedule => options[:reschedule] || 0
|
84
85
|
}
|
85
|
-
default_opts.merge!(:reschedule => options[:reschedule])
|
86
86
|
|
87
87
|
inject_schema = {
|
88
88
|
:hidden_params => 'hiddenParams'
|
@@ -150,6 +150,38 @@ module GoodData
|
|
150
150
|
client.delete uri
|
151
151
|
end
|
152
152
|
|
153
|
+
# Is schedule enabled?
|
154
|
+
#
|
155
|
+
# @return [Boolean]
|
156
|
+
def disabled?
|
157
|
+
state == 'DISABLED'
|
158
|
+
end
|
159
|
+
|
160
|
+
# Is schedule enabled?
|
161
|
+
#
|
162
|
+
# @return [Boolean]
|
163
|
+
def enabled?
|
164
|
+
!disabled?
|
165
|
+
end
|
166
|
+
|
167
|
+
# enables
|
168
|
+
#
|
169
|
+
# @return [GoodData::Schedule]
|
170
|
+
def enable
|
171
|
+
@json['schedule']['state'] = 'ENABLED'
|
172
|
+
@dirty = true
|
173
|
+
self
|
174
|
+
end
|
175
|
+
|
176
|
+
# Is schedule enabled?
|
177
|
+
#
|
178
|
+
# @return [GoodData::Schedule]
|
179
|
+
def disable
|
180
|
+
@json['schedule']['state'] = 'DISABLED'
|
181
|
+
@dirty = true
|
182
|
+
self
|
183
|
+
end
|
184
|
+
|
153
185
|
# Executes schedule
|
154
186
|
#
|
155
187
|
# @return [Object] Raw Response
|
@@ -313,13 +345,14 @@ module GoodData
|
|
313
345
|
update_json = {
|
314
346
|
'schedule' => {
|
315
347
|
'type' => @json['schedule']['type'],
|
348
|
+
'state' => @json['schedule']['state'],
|
316
349
|
'timezone' => @json['schedule']['timezone'],
|
317
350
|
'cron' => @json['schedule']['cron'],
|
318
351
|
'params' => @json['schedule']['params'],
|
319
|
-
'hiddenParams' => @json['schedule']['hiddenParams']
|
352
|
+
'hiddenParams' => @json['schedule']['hiddenParams'],
|
353
|
+
'reschedule' => @json['schedule']['reschedule'] || 0
|
320
354
|
}
|
321
355
|
}
|
322
|
-
update_json['schedule'].merge!('reschedule' => @json['schedule']['reschedule'])
|
323
356
|
res = GoodData.put uri, update_json
|
324
357
|
@json = res
|
325
358
|
@dirty = false
|
data/lib/gooddata/rest/client.rb
CHANGED
@@ -75,7 +75,9 @@ module GoodData
|
|
75
75
|
fail ArgumentError, 'No username specified' if new_opts[:username].nil?
|
76
76
|
fail ArgumentError, 'No password specified' if new_opts[:password].nil?
|
77
77
|
end
|
78
|
-
|
78
|
+
if username.is_a?(Hash) && username.key?(:server)
|
79
|
+
new_opts[:server] = username[:server]
|
80
|
+
end
|
79
81
|
client = Client.new(new_opts)
|
80
82
|
|
81
83
|
if client
|
@@ -175,6 +175,18 @@ module GoodData
|
|
175
175
|
@cookies = { :cookies => {} }
|
176
176
|
end
|
177
177
|
|
178
|
+
def scrub_params(params, keys)
|
179
|
+
keys = keys.reduce([]) { |a, e| a.concat([e.to_s, e.to_sym]) }
|
180
|
+
|
181
|
+
new_params = params.deep_dup
|
182
|
+
GoodData::Helpers.hash_dfs(new_params) do |k, key|
|
183
|
+
keys.each do |key_to_scrub|
|
184
|
+
k[key_to_scrub] = ('*' * k[key_to_scrub].length) if k && k.key?(key_to_scrub) && k[key_to_scrub]
|
185
|
+
end
|
186
|
+
end
|
187
|
+
new_params
|
188
|
+
end
|
189
|
+
|
178
190
|
# TODO: Store PH_MAP for wildcarding of URLs in reports in separate file
|
179
191
|
PH_MAP = [
|
180
192
|
['/gdc/projects/{id}/users/{id}/permissions', %r{/gdc/projects/[\w]+/users/[\w]+/permissions}],
|
@@ -34,7 +34,7 @@ module GoodData
|
|
34
34
|
#
|
35
35
|
# @param uri [String] Target URI
|
36
36
|
def delete(uri, options = {})
|
37
|
-
GoodData.logger.debug "DELETE: #{uri}"
|
37
|
+
GoodData.logger.debug "DELETE: #{@server.url}#{uri}"
|
38
38
|
profile "DELETE #{uri}" do
|
39
39
|
b = proc { @server[uri].delete cookies }
|
40
40
|
process_response(options, &b)
|
@@ -45,7 +45,7 @@ module GoodData
|
|
45
45
|
#
|
46
46
|
# @param uri [String] Target URI
|
47
47
|
def get(uri, options = {})
|
48
|
-
GoodData.logger.debug "GET: #{uri}"
|
48
|
+
GoodData.logger.debug "GET: #{@server.url}#{uri}"
|
49
49
|
profile "GET #{uri}" do
|
50
50
|
b = proc { @server[uri].get cookies }
|
51
51
|
process_response(options, &b)
|
@@ -57,7 +57,7 @@ module GoodData
|
|
57
57
|
# @param uri [String] Target URI
|
58
58
|
def put(uri, data, options = {})
|
59
59
|
payload = data.is_a?(Hash) ? data.to_json : data
|
60
|
-
GoodData.logger.debug "PUT: #{uri}, #{data}"
|
60
|
+
GoodData.logger.debug "PUT: #{@server.url}#{uri}, #{scrub_params(data, [:password, :login, :authorizationToken])}"
|
61
61
|
profile "PUT #{uri}" do
|
62
62
|
b = proc { @server[uri].put payload, cookies }
|
63
63
|
process_response(options, &b)
|
@@ -68,7 +68,7 @@ module GoodData
|
|
68
68
|
#
|
69
69
|
# @param uri [String] Target URI
|
70
70
|
def post(uri, data, options = {})
|
71
|
-
GoodData.logger.debug "POST: #{uri}, #{data}"
|
71
|
+
GoodData.logger.debug "POST: #{@server.url}#{uri}, #{scrub_params(data, [:password, :login, :authorizationToken])}"
|
72
72
|
profile "POST #{uri}" do
|
73
73
|
payload = data.is_a?(Hash) ? data.to_json : data
|
74
74
|
b = proc { @server[uri].post payload, cookies }
|
data/lib/gooddata/version.rb
CHANGED
@@ -61,6 +61,14 @@ describe "Full process and schedule exercise", :constraint => 'slow' do
|
|
61
61
|
result = schedule.execute
|
62
62
|
log = @client.get(result['execution']['log'])
|
63
63
|
expect(log.index('HELLO WORLD')).not_to eq nil
|
64
|
+
expect(schedule.enabled?).to be_true
|
65
|
+
schedule.disable
|
66
|
+
schedule.save
|
67
|
+
expect(schedule.enabled?).to be_false
|
68
|
+
expect(schedule.disabled?).to be_true
|
69
|
+
schedule.enable
|
70
|
+
schedule.save
|
71
|
+
expect(schedule.enabled?).to be_true
|
64
72
|
ensure
|
65
73
|
process && process.delete
|
66
74
|
end
|
@@ -71,10 +79,12 @@ describe "Full process and schedule exercise", :constraint => 'slow' do
|
|
71
79
|
type: 'RUBY',
|
72
80
|
name: 'Test ETL zipped file Process')
|
73
81
|
begin
|
82
|
+
expect(process.schedules.count).to eq 0
|
74
83
|
schedule = process.create_schedule('0 15 27 7 *', process.executables.first)
|
75
84
|
result = schedule.execute
|
76
85
|
log = @client.get(result['execution']['log'])
|
77
86
|
expect(log.index('HELLO WORLD')).not_to eq nil
|
87
|
+
expect(process.schedules.count).to eq 1
|
78
88
|
ensure
|
79
89
|
process && process.delete
|
80
90
|
end
|
@@ -206,8 +206,11 @@ describe "Full project implementation", :constraint => 'slow' do
|
|
206
206
|
end
|
207
207
|
|
208
208
|
it "should contain metadata for each dataset in project metadata" do
|
209
|
-
k =
|
209
|
+
k = @project.metadata.keys
|
210
210
|
expect(k).to include("manifest_devs")
|
211
|
+
expect(@project.metadata("manifest_devs")).not_to be_nil
|
212
|
+
@project.set_metadata('a', 'b')
|
213
|
+
expect(@project.metadata('a')).to eq 'b'
|
211
214
|
end
|
212
215
|
|
213
216
|
it "should be able to interpolate metric based on" do
|
metadata
CHANGED
@@ -1,440 +1,397 @@
|
|
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.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pavel Kolesnikov
|
8
8
|
- Thomas Watson Steen
|
9
9
|
- Tomas Svarovsky
|
10
10
|
- Tomas Korcak
|
11
|
-
autorequire:
|
11
|
+
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2014-09-
|
14
|
+
date: 2014-09-19 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
|
-
name:
|
18
|
-
requirement: !ruby/object:Gem::Requirement
|
19
|
-
requirements:
|
20
|
-
- - ">="
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: '0'
|
23
|
-
type: :development
|
24
|
-
prerelease: false
|
17
|
+
name: rake
|
25
18
|
version_requirements: !ruby/object:Gem::Requirement
|
26
19
|
requirements:
|
27
|
-
- -
|
20
|
+
- - ~>
|
28
21
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
|
-
name: rake
|
22
|
+
version: 10.3.1
|
32
23
|
requirement: !ruby/object:Gem::Requirement
|
33
24
|
requirements:
|
34
|
-
- -
|
25
|
+
- - ~>
|
35
26
|
- !ruby/object:Gem::Version
|
36
27
|
version: 10.3.1
|
37
|
-
type: :development
|
38
28
|
prerelease: false
|
39
|
-
|
40
|
-
requirements:
|
41
|
-
- - "~>"
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: 10.3.1
|
29
|
+
type: :development
|
44
30
|
- !ruby/object:Gem::Dependency
|
45
31
|
name: rake-notes
|
46
|
-
requirement: !ruby/object:Gem::Requirement
|
47
|
-
requirements:
|
48
|
-
- - "~>"
|
49
|
-
- !ruby/object:Gem::Version
|
50
|
-
version: 0.2.0
|
51
|
-
type: :development
|
52
|
-
prerelease: false
|
53
32
|
version_requirements: !ruby/object:Gem::Requirement
|
54
33
|
requirements:
|
55
|
-
- -
|
34
|
+
- - ~>
|
56
35
|
- !ruby/object:Gem::Version
|
57
36
|
version: 0.2.0
|
58
|
-
- !ruby/object:Gem::Dependency
|
59
|
-
name: redcarpet
|
60
37
|
requirement: !ruby/object:Gem::Requirement
|
61
38
|
requirements:
|
62
|
-
- -
|
39
|
+
- - ~>
|
63
40
|
- !ruby/object:Gem::Version
|
64
|
-
version:
|
65
|
-
type: :development
|
41
|
+
version: 0.2.0
|
66
42
|
prerelease: false
|
67
|
-
|
68
|
-
requirements:
|
69
|
-
- - "~>"
|
70
|
-
- !ruby/object:Gem::Version
|
71
|
-
version: 3.1.1
|
43
|
+
type: :development
|
72
44
|
- !ruby/object:Gem::Dependency
|
73
45
|
name: rspec
|
74
|
-
requirement: !ruby/object:Gem::Requirement
|
75
|
-
requirements:
|
76
|
-
- - "~>"
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
version: 2.14.1
|
79
|
-
type: :development
|
80
|
-
prerelease: false
|
81
46
|
version_requirements: !ruby/object:Gem::Requirement
|
82
47
|
requirements:
|
83
|
-
- -
|
48
|
+
- - ~>
|
84
49
|
- !ruby/object:Gem::Version
|
85
50
|
version: 2.14.1
|
86
|
-
- !ruby/object:Gem::Dependency
|
87
|
-
name: ruby-debug-ide
|
88
51
|
requirement: !ruby/object:Gem::Requirement
|
89
52
|
requirements:
|
90
|
-
- -
|
53
|
+
- - ~>
|
91
54
|
- !ruby/object:Gem::Version
|
92
|
-
version:
|
93
|
-
type: :development
|
55
|
+
version: 2.14.1
|
94
56
|
prerelease: false
|
95
|
-
|
96
|
-
requirements:
|
97
|
-
- - ">="
|
98
|
-
- !ruby/object:Gem::Version
|
99
|
-
version: '0'
|
57
|
+
type: :development
|
100
58
|
- !ruby/object:Gem::Dependency
|
101
59
|
name: rubocop
|
102
|
-
|
60
|
+
version_requirements: !ruby/object:Gem::Requirement
|
103
61
|
requirements:
|
104
|
-
- -
|
62
|
+
- - ~>
|
105
63
|
- !ruby/object:Gem::Version
|
106
64
|
version: 0.20.1
|
107
|
-
|
108
|
-
prerelease: false
|
109
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
110
66
|
requirements:
|
111
|
-
- -
|
67
|
+
- - ~>
|
112
68
|
- !ruby/object:Gem::Version
|
113
69
|
version: 0.20.1
|
70
|
+
prerelease: false
|
71
|
+
type: :development
|
114
72
|
- !ruby/object:Gem::Dependency
|
115
73
|
name: simplecov
|
116
|
-
|
74
|
+
version_requirements: !ruby/object:Gem::Requirement
|
117
75
|
requirements:
|
118
|
-
- -
|
76
|
+
- - ~>
|
119
77
|
- !ruby/object:Gem::Version
|
120
78
|
version: 0.8.2
|
121
|
-
|
122
|
-
prerelease: false
|
123
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirement: !ruby/object:Gem::Requirement
|
124
80
|
requirements:
|
125
|
-
- -
|
81
|
+
- - ~>
|
126
82
|
- !ruby/object:Gem::Version
|
127
83
|
version: 0.8.2
|
84
|
+
prerelease: false
|
85
|
+
type: :development
|
128
86
|
- !ruby/object:Gem::Dependency
|
129
87
|
name: yard
|
130
|
-
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
131
89
|
requirements:
|
132
|
-
- -
|
90
|
+
- - ~>
|
133
91
|
- !ruby/object:Gem::Version
|
134
92
|
version: 0.8.7.3
|
135
|
-
|
136
|
-
prerelease: false
|
137
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirement: !ruby/object:Gem::Requirement
|
138
94
|
requirements:
|
139
|
-
- -
|
95
|
+
- - ~>
|
140
96
|
- !ruby/object:Gem::Version
|
141
97
|
version: 0.8.7.3
|
98
|
+
prerelease: false
|
99
|
+
type: :development
|
142
100
|
- !ruby/object:Gem::Dependency
|
143
101
|
name: yard-rspec
|
144
|
-
|
102
|
+
version_requirements: !ruby/object:Gem::Requirement
|
145
103
|
requirements:
|
146
|
-
- -
|
104
|
+
- - ~>
|
147
105
|
- !ruby/object:Gem::Version
|
148
106
|
version: '0.1'
|
149
|
-
|
150
|
-
prerelease: false
|
151
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirement: !ruby/object:Gem::Requirement
|
152
108
|
requirements:
|
153
|
-
- -
|
109
|
+
- - ~>
|
154
110
|
- !ruby/object:Gem::Version
|
155
111
|
version: '0.1'
|
112
|
+
prerelease: false
|
113
|
+
type: :development
|
156
114
|
- !ruby/object:Gem::Dependency
|
157
115
|
name: ZenTest
|
158
|
-
|
116
|
+
version_requirements: !ruby/object:Gem::Requirement
|
159
117
|
requirements:
|
160
|
-
- -
|
118
|
+
- - ~>
|
161
119
|
- !ruby/object:Gem::Version
|
162
120
|
version: 4.10.0
|
163
|
-
|
164
|
-
prerelease: false
|
165
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirement: !ruby/object:Gem::Requirement
|
166
122
|
requirements:
|
167
|
-
- -
|
123
|
+
- - ~>
|
168
124
|
- !ruby/object:Gem::Version
|
169
125
|
version: 4.10.0
|
126
|
+
prerelease: false
|
127
|
+
type: :development
|
170
128
|
- !ruby/object:Gem::Dependency
|
171
129
|
name: coveralls
|
172
|
-
|
130
|
+
version_requirements: !ruby/object:Gem::Requirement
|
173
131
|
requirements:
|
174
|
-
- -
|
132
|
+
- - ~>
|
175
133
|
- !ruby/object:Gem::Version
|
176
134
|
version: 0.7.0
|
177
|
-
|
178
|
-
prerelease: false
|
179
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirement: !ruby/object:Gem::Requirement
|
180
136
|
requirements:
|
181
|
-
- -
|
137
|
+
- - ~>
|
182
138
|
- !ruby/object:Gem::Version
|
183
139
|
version: 0.7.0
|
140
|
+
prerelease: false
|
141
|
+
type: :development
|
184
142
|
- !ruby/object:Gem::Dependency
|
185
143
|
name: activesupport
|
186
|
-
|
144
|
+
version_requirements: !ruby/object:Gem::Requirement
|
187
145
|
requirements:
|
188
|
-
- -
|
146
|
+
- - ~>
|
189
147
|
- !ruby/object:Gem::Version
|
190
148
|
version: 4.1.0
|
191
|
-
|
192
|
-
prerelease: false
|
193
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirement: !ruby/object:Gem::Requirement
|
194
150
|
requirements:
|
195
|
-
- -
|
151
|
+
- - ~>
|
196
152
|
- !ruby/object:Gem::Version
|
197
153
|
version: 4.1.0
|
154
|
+
prerelease: false
|
155
|
+
type: :runtime
|
198
156
|
- !ruby/object:Gem::Dependency
|
199
157
|
name: bundler
|
200
|
-
|
158
|
+
version_requirements: !ruby/object:Gem::Requirement
|
201
159
|
requirements:
|
202
|
-
- -
|
160
|
+
- - '>='
|
203
161
|
- !ruby/object:Gem::Version
|
204
162
|
version: 1.6.1
|
205
|
-
|
206
|
-
prerelease: false
|
207
|
-
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirement: !ruby/object:Gem::Requirement
|
208
164
|
requirements:
|
209
|
-
- -
|
165
|
+
- - '>='
|
210
166
|
- !ruby/object:Gem::Version
|
211
167
|
version: 1.6.1
|
168
|
+
prerelease: false
|
169
|
+
type: :runtime
|
212
170
|
- !ruby/object:Gem::Dependency
|
213
171
|
name: docile
|
214
|
-
|
172
|
+
version_requirements: !ruby/object:Gem::Requirement
|
215
173
|
requirements:
|
216
|
-
- -
|
174
|
+
- - ~>
|
217
175
|
- !ruby/object:Gem::Version
|
218
176
|
version: 1.1.3
|
219
|
-
|
220
|
-
prerelease: false
|
221
|
-
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirement: !ruby/object:Gem::Requirement
|
222
178
|
requirements:
|
223
|
-
- -
|
179
|
+
- - ~>
|
224
180
|
- !ruby/object:Gem::Version
|
225
181
|
version: 1.1.3
|
182
|
+
prerelease: false
|
183
|
+
type: :runtime
|
226
184
|
- !ruby/object:Gem::Dependency
|
227
185
|
name: erubis
|
228
|
-
|
186
|
+
version_requirements: !ruby/object:Gem::Requirement
|
229
187
|
requirements:
|
230
|
-
- -
|
188
|
+
- - ~>
|
231
189
|
- !ruby/object:Gem::Version
|
232
190
|
version: 2.7.0
|
233
|
-
|
234
|
-
prerelease: false
|
235
|
-
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirement: !ruby/object:Gem::Requirement
|
236
192
|
requirements:
|
237
|
-
- -
|
193
|
+
- - ~>
|
238
194
|
- !ruby/object:Gem::Version
|
239
195
|
version: 2.7.0
|
196
|
+
prerelease: false
|
197
|
+
type: :runtime
|
240
198
|
- !ruby/object:Gem::Dependency
|
241
199
|
name: gli
|
242
|
-
|
200
|
+
version_requirements: !ruby/object:Gem::Requirement
|
243
201
|
requirements:
|
244
|
-
- -
|
202
|
+
- - ~>
|
245
203
|
- !ruby/object:Gem::Version
|
246
204
|
version: 2.10.0
|
247
|
-
|
248
|
-
prerelease: false
|
249
|
-
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirement: !ruby/object:Gem::Requirement
|
250
206
|
requirements:
|
251
|
-
- -
|
207
|
+
- - ~>
|
252
208
|
- !ruby/object:Gem::Version
|
253
209
|
version: 2.10.0
|
210
|
+
prerelease: false
|
211
|
+
type: :runtime
|
254
212
|
- !ruby/object:Gem::Dependency
|
255
213
|
name: highline
|
256
|
-
|
214
|
+
version_requirements: !ruby/object:Gem::Requirement
|
257
215
|
requirements:
|
258
|
-
- -
|
216
|
+
- - ~>
|
259
217
|
- !ruby/object:Gem::Version
|
260
218
|
version: 1.6.21
|
261
|
-
|
262
|
-
prerelease: false
|
263
|
-
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirement: !ruby/object:Gem::Requirement
|
264
220
|
requirements:
|
265
|
-
- -
|
221
|
+
- - ~>
|
266
222
|
- !ruby/object:Gem::Version
|
267
223
|
version: 1.6.21
|
224
|
+
prerelease: false
|
225
|
+
type: :runtime
|
268
226
|
- !ruby/object:Gem::Dependency
|
269
227
|
name: i18n
|
270
|
-
|
228
|
+
version_requirements: !ruby/object:Gem::Requirement
|
271
229
|
requirements:
|
272
|
-
- -
|
230
|
+
- - ~>
|
273
231
|
- !ruby/object:Gem::Version
|
274
232
|
version: 0.6.9
|
275
|
-
|
276
|
-
prerelease: false
|
277
|
-
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirement: !ruby/object:Gem::Requirement
|
278
234
|
requirements:
|
279
|
-
- -
|
235
|
+
- - ~>
|
280
236
|
- !ruby/object:Gem::Version
|
281
237
|
version: 0.6.9
|
238
|
+
prerelease: false
|
239
|
+
type: :runtime
|
282
240
|
- !ruby/object:Gem::Dependency
|
283
241
|
name: json_pure
|
284
|
-
|
242
|
+
version_requirements: !ruby/object:Gem::Requirement
|
285
243
|
requirements:
|
286
|
-
- -
|
244
|
+
- - ~>
|
287
245
|
- !ruby/object:Gem::Version
|
288
246
|
version: 1.8.1
|
289
|
-
|
290
|
-
prerelease: false
|
291
|
-
version_requirements: !ruby/object:Gem::Requirement
|
247
|
+
requirement: !ruby/object:Gem::Requirement
|
292
248
|
requirements:
|
293
|
-
- -
|
249
|
+
- - ~>
|
294
250
|
- !ruby/object:Gem::Version
|
295
251
|
version: 1.8.1
|
252
|
+
prerelease: false
|
253
|
+
type: :runtime
|
296
254
|
- !ruby/object:Gem::Dependency
|
297
255
|
name: multi_json
|
298
|
-
|
256
|
+
version_requirements: !ruby/object:Gem::Requirement
|
299
257
|
requirements:
|
300
|
-
- -
|
258
|
+
- - ~>
|
301
259
|
- !ruby/object:Gem::Version
|
302
260
|
version: 1.10.0
|
303
|
-
|
304
|
-
prerelease: false
|
305
|
-
version_requirements: !ruby/object:Gem::Requirement
|
261
|
+
requirement: !ruby/object:Gem::Requirement
|
306
262
|
requirements:
|
307
|
-
- -
|
263
|
+
- - ~>
|
308
264
|
- !ruby/object:Gem::Version
|
309
265
|
version: 1.10.0
|
266
|
+
prerelease: false
|
267
|
+
type: :runtime
|
310
268
|
- !ruby/object:Gem::Dependency
|
311
269
|
name: parseconfig
|
312
|
-
|
270
|
+
version_requirements: !ruby/object:Gem::Requirement
|
313
271
|
requirements:
|
314
|
-
- -
|
272
|
+
- - ~>
|
315
273
|
- !ruby/object:Gem::Version
|
316
274
|
version: 1.0.4
|
317
|
-
|
318
|
-
prerelease: false
|
319
|
-
version_requirements: !ruby/object:Gem::Requirement
|
275
|
+
requirement: !ruby/object:Gem::Requirement
|
320
276
|
requirements:
|
321
|
-
- -
|
277
|
+
- - ~>
|
322
278
|
- !ruby/object:Gem::Version
|
323
279
|
version: 1.0.4
|
280
|
+
prerelease: false
|
281
|
+
type: :runtime
|
324
282
|
- !ruby/object:Gem::Dependency
|
325
283
|
name: pmap
|
326
|
-
|
284
|
+
version_requirements: !ruby/object:Gem::Requirement
|
327
285
|
requirements:
|
328
|
-
- -
|
286
|
+
- - ~>
|
329
287
|
- !ruby/object:Gem::Version
|
330
288
|
version: 1.0.1
|
331
|
-
|
332
|
-
prerelease: false
|
333
|
-
version_requirements: !ruby/object:Gem::Requirement
|
289
|
+
requirement: !ruby/object:Gem::Requirement
|
334
290
|
requirements:
|
335
|
-
- -
|
291
|
+
- - ~>
|
336
292
|
- !ruby/object:Gem::Version
|
337
293
|
version: 1.0.1
|
294
|
+
prerelease: false
|
295
|
+
type: :runtime
|
338
296
|
- !ruby/object:Gem::Dependency
|
339
297
|
name: pry
|
340
|
-
|
298
|
+
version_requirements: !ruby/object:Gem::Requirement
|
341
299
|
requirements:
|
342
|
-
- -
|
300
|
+
- - ~>
|
343
301
|
- !ruby/object:Gem::Version
|
344
302
|
version: 0.9.12.6
|
345
|
-
|
346
|
-
prerelease: false
|
347
|
-
version_requirements: !ruby/object:Gem::Requirement
|
303
|
+
requirement: !ruby/object:Gem::Requirement
|
348
304
|
requirements:
|
349
|
-
- -
|
305
|
+
- - ~>
|
350
306
|
- !ruby/object:Gem::Version
|
351
307
|
version: 0.9.12.6
|
308
|
+
prerelease: false
|
309
|
+
type: :runtime
|
352
310
|
- !ruby/object:Gem::Dependency
|
353
311
|
name: restforce
|
354
|
-
|
312
|
+
version_requirements: !ruby/object:Gem::Requirement
|
355
313
|
requirements:
|
356
|
-
- -
|
314
|
+
- - ~>
|
357
315
|
- !ruby/object:Gem::Version
|
358
316
|
version: 1.4.3
|
359
|
-
|
360
|
-
prerelease: false
|
361
|
-
version_requirements: !ruby/object:Gem::Requirement
|
317
|
+
requirement: !ruby/object:Gem::Requirement
|
362
318
|
requirements:
|
363
|
-
- -
|
319
|
+
- - ~>
|
364
320
|
- !ruby/object:Gem::Version
|
365
321
|
version: 1.4.3
|
322
|
+
prerelease: false
|
323
|
+
type: :runtime
|
366
324
|
- !ruby/object:Gem::Dependency
|
367
325
|
name: rest-client
|
368
|
-
|
326
|
+
version_requirements: !ruby/object:Gem::Requirement
|
369
327
|
requirements:
|
370
|
-
- -
|
328
|
+
- - ~>
|
371
329
|
- !ruby/object:Gem::Version
|
372
330
|
version: 1.6.7
|
373
|
-
|
374
|
-
prerelease: false
|
375
|
-
version_requirements: !ruby/object:Gem::Requirement
|
331
|
+
requirement: !ruby/object:Gem::Requirement
|
376
332
|
requirements:
|
377
|
-
- -
|
333
|
+
- - ~>
|
378
334
|
- !ruby/object:Gem::Version
|
379
335
|
version: 1.6.7
|
336
|
+
prerelease: false
|
337
|
+
type: :runtime
|
380
338
|
- !ruby/object:Gem::Dependency
|
381
339
|
name: rubyzip
|
382
|
-
|
340
|
+
version_requirements: !ruby/object:Gem::Requirement
|
383
341
|
requirements:
|
384
|
-
- -
|
342
|
+
- - ~>
|
385
343
|
- !ruby/object:Gem::Version
|
386
344
|
version: 1.1.0
|
387
|
-
|
388
|
-
prerelease: false
|
389
|
-
version_requirements: !ruby/object:Gem::Requirement
|
345
|
+
requirement: !ruby/object:Gem::Requirement
|
390
346
|
requirements:
|
391
|
-
- -
|
347
|
+
- - ~>
|
392
348
|
- !ruby/object:Gem::Version
|
393
349
|
version: 1.1.0
|
350
|
+
prerelease: false
|
351
|
+
type: :runtime
|
394
352
|
- !ruby/object:Gem::Dependency
|
395
353
|
name: terminal-table
|
396
|
-
|
354
|
+
version_requirements: !ruby/object:Gem::Requirement
|
397
355
|
requirements:
|
398
|
-
- -
|
356
|
+
- - ~>
|
399
357
|
- !ruby/object:Gem::Version
|
400
358
|
version: 1.4.5
|
401
|
-
|
402
|
-
prerelease: false
|
403
|
-
version_requirements: !ruby/object:Gem::Requirement
|
359
|
+
requirement: !ruby/object:Gem::Requirement
|
404
360
|
requirements:
|
405
|
-
- -
|
361
|
+
- - ~>
|
406
362
|
- !ruby/object:Gem::Version
|
407
363
|
version: 1.4.5
|
364
|
+
prerelease: false
|
365
|
+
type: :runtime
|
408
366
|
- !ruby/object:Gem::Dependency
|
409
367
|
name: salesforce_bulk_query
|
410
|
-
|
368
|
+
version_requirements: !ruby/object:Gem::Requirement
|
411
369
|
requirements:
|
412
|
-
- -
|
370
|
+
- - ~>
|
413
371
|
- !ruby/object:Gem::Version
|
414
372
|
version: '0.0'
|
415
|
-
|
416
|
-
prerelease: false
|
417
|
-
version_requirements: !ruby/object:Gem::Requirement
|
373
|
+
requirement: !ruby/object:Gem::Requirement
|
418
374
|
requirements:
|
419
|
-
- -
|
375
|
+
- - ~>
|
420
376
|
- !ruby/object:Gem::Version
|
421
377
|
version: '0.0'
|
378
|
+
prerelease: false
|
379
|
+
type: :runtime
|
422
380
|
- !ruby/object:Gem::Dependency
|
423
381
|
name: aws-sdk
|
424
|
-
|
382
|
+
version_requirements: !ruby/object:Gem::Requirement
|
425
383
|
requirements:
|
426
|
-
- -
|
384
|
+
- - ~>
|
427
385
|
- !ruby/object:Gem::Version
|
428
386
|
version: '1.45'
|
429
|
-
|
430
|
-
prerelease: false
|
431
|
-
version_requirements: !ruby/object:Gem::Requirement
|
387
|
+
requirement: !ruby/object:Gem::Requirement
|
432
388
|
requirements:
|
433
|
-
- -
|
389
|
+
- - ~>
|
434
390
|
- !ruby/object:Gem::Version
|
435
391
|
version: '1.45'
|
436
|
-
|
437
|
-
|
392
|
+
prerelease: false
|
393
|
+
type: :runtime
|
394
|
+
description: Use the GoodData::Client class to integrate GoodData into your own application or use the CLI to work with GoodData directly from the command line.
|
438
395
|
email: pavel@gooddata.com
|
439
396
|
executables:
|
440
397
|
- gooddata
|
@@ -443,13 +400,13 @@ extra_rdoc_files:
|
|
443
400
|
- LICENSE
|
444
401
|
- README.md
|
445
402
|
files:
|
446
|
-
-
|
447
|
-
-
|
448
|
-
-
|
449
|
-
-
|
450
|
-
-
|
451
|
-
-
|
452
|
-
-
|
403
|
+
- .autotest
|
404
|
+
- .document
|
405
|
+
- .gitignore
|
406
|
+
- .rspec
|
407
|
+
- .rubocop.yml
|
408
|
+
- .travis.yml
|
409
|
+
- .yardopts
|
453
410
|
- CHANGELOG.md
|
454
411
|
- CLI.md
|
455
412
|
- Gemfile
|
@@ -721,25 +678,25 @@ homepage: http://github.com/gooddata/gooddata-ruby
|
|
721
678
|
licenses:
|
722
679
|
- BSD
|
723
680
|
metadata: {}
|
724
|
-
post_install_message:
|
681
|
+
post_install_message:
|
725
682
|
rdoc_options: []
|
726
683
|
require_paths:
|
727
684
|
- lib
|
728
685
|
required_ruby_version: !ruby/object:Gem::Requirement
|
729
686
|
requirements:
|
730
|
-
- -
|
687
|
+
- - '>='
|
731
688
|
- !ruby/object:Gem::Version
|
732
689
|
version: '0'
|
733
690
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
734
691
|
requirements:
|
735
|
-
- -
|
692
|
+
- - '>='
|
736
693
|
- !ruby/object:Gem::Version
|
737
694
|
version: '0'
|
738
695
|
requirements: []
|
739
|
-
rubyforge_project:
|
696
|
+
rubyforge_project:
|
740
697
|
rubygems_version: 2.1.9
|
741
|
-
signing_key:
|
698
|
+
signing_key:
|
742
699
|
specification_version: 4
|
743
700
|
summary: A convenient Ruby wrapper around the GoodData RESTful API
|
744
701
|
test_files: []
|
745
|
-
has_rdoc:
|
702
|
+
has_rdoc:
|