gooddata 1.0.1 → 1.0.2
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 +5 -5
- data/.gitignore +3 -0
- data/CHANGELOG.md +9 -0
- data/Rakefile +5 -4
- data/lib/gooddata/lcm/actions/collect_data_product.rb +1 -1
- data/lib/gooddata/lcm/actions/collect_tagged_objects.rb +1 -1
- data/lib/gooddata/lcm/actions/synchronize_user_filters.rb +17 -2
- data/lib/gooddata/lcm/actions/synchronize_users.rb +1 -1
- data/lib/gooddata/lcm/helpers/check_helper.rb +4 -3
- data/lib/gooddata/models/project.rb +1 -1
- data/lib/gooddata/models/user_filters/user_filter_builder.rb +4 -2
- data/lib/gooddata/version.rb +1 -1
- data/spec/unit/actions/shared_examples_for_user_actions.rb +17 -0
- data/spec/unit/actions/synchronize_user_filters_spec.rb +52 -11
- data/spec/unit/actions/synchronize_users_spec.rb +49 -3
- data/spec/unit/helpers/check_helper_spec.rb +46 -0
- data/spec/unit/models/user_filters/user_filter_builder_spec.rb +4 -4
- metadata +5 -184
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 42cb69099c5d99a0d83aff24779aa7d4c3b25e0863a0e570d8b9cca8d15fd233
|
4
|
+
data.tar.gz: 5c9adb5947e1649f7ef447bbed17a3adedda04c7e3e6c8a3b9822952027f1931
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cdbf9d5043c43877ae17bc6fdf9f08e663883aadbea8d441c5ae00baf8504c87551877bcf9964a43cb235554c13b9b95a684403c0e3083716d35152a50b25e4c
|
7
|
+
data.tar.gz: 712b361518564bf5004e0a3d5e98ef9210200d5b6949fceb194a50c1640ea458397bd1468443f0ee3f93431b48302180f77ce4dbfd0e009a07fa681acca0781a
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,13 @@
|
|
1
1
|
# GoodData Ruby SDK Changelog
|
2
|
+
## 1.0.2
|
3
|
+
- TMA-775: smart attribute polling
|
4
|
+
- TMA-809: Fix new visualization object in bricks
|
5
|
+
- TMA-809: new visualizationObject in replace_from_mapping
|
6
|
+
- TMA-690 && TMA-633 tests now verify that synchronize users action fails when supplied with unsupported sync_mode param
|
7
|
+
- deprecations.txt is in .gitignore file
|
8
|
+
- TMA-691 colect data product action has human readable output
|
9
|
+
- TMA-732: fix edge cases for user input sanitized MUFs
|
10
|
+
|
2
11
|
## 1.0.1
|
3
12
|
- Bump version to 1.0.1
|
4
13
|
- TMA-776: Improve error handling of sync clients
|
data/Rakefile
CHANGED
@@ -35,11 +35,12 @@ namespace :gem do
|
|
35
35
|
gem = "gooddata-#{GoodData::VERSION}.gem"
|
36
36
|
|
37
37
|
puts "Building #{gem} ..."
|
38
|
-
res =
|
39
|
-
|
38
|
+
res = `gem build ./gooddata.gemspec`
|
39
|
+
file = res.match('File: (.*)')[1]
|
40
|
+
next unless file
|
40
41
|
|
41
|
-
puts "Pushing #{
|
42
|
-
system("gem push #{
|
42
|
+
puts "Pushing #{file} ..."
|
43
|
+
system("gem push #{file}")
|
43
44
|
end
|
44
45
|
end
|
45
46
|
|
@@ -48,7 +48,7 @@ module GoodData
|
|
48
48
|
production_tags = Helpers.parse_production_tags(params.production_tags || params.production_tag, segment_tags)
|
49
49
|
objects = []
|
50
50
|
if transfer_all
|
51
|
-
vizs = MdObject.query('
|
51
|
+
vizs = MdObject.query('visualizationObject', MdObject, client: development_client, project: from_project)
|
52
52
|
viz_widgets = MdObject.query('visualizationWidget', MdObject, client: development_client, project: from_project)
|
53
53
|
objects = (from_project.reports.to_a + from_project.metrics.to_a + from_project.variables.to_a + vizs.to_a + viz_widgets.to_a).map(&:uri)
|
54
54
|
elsif production_tags.any?
|
@@ -19,7 +19,7 @@ module GoodData
|
|
19
19
|
param :input_source, instance_of(Type::HashType), required: true
|
20
20
|
|
21
21
|
description 'Synchronization Mode (e.g. sync_one_project_based_on_pid)'
|
22
|
-
param :sync_mode, instance_of(Type::StringType), required: false
|
22
|
+
param :sync_mode, instance_of(Type::StringType), required: false, default: 'sync_project'
|
23
23
|
|
24
24
|
description 'Column That Contains Target Project IDs'
|
25
25
|
param :multiple_projects_column, instance_of(Type::StringType), required: false
|
@@ -47,6 +47,17 @@ module GoodData
|
|
47
47
|
end
|
48
48
|
|
49
49
|
class << self
|
50
|
+
MODES = %w(
|
51
|
+
add_to_organization
|
52
|
+
sync_project
|
53
|
+
sync_domain_and_project
|
54
|
+
sync_multiple_projects_based_on_pid
|
55
|
+
sync_one_project_based_on_pid
|
56
|
+
sync_one_project_based_on_custom_id
|
57
|
+
sync_multiple_projects_based_on_custom_id
|
58
|
+
sync_domain_client_workspaces
|
59
|
+
)
|
60
|
+
|
50
61
|
def call(params)
|
51
62
|
client = params.gdc_gd_client
|
52
63
|
domain_name = params.organization || params.domain
|
@@ -63,7 +74,10 @@ module GoodData
|
|
63
74
|
symbolized_config[:labels] = symbolized_config[:labels].map { |l| GoodData::Helpers.symbolize_keys(l) }
|
64
75
|
headers_in_options = params.csv_headers == 'false' || true
|
65
76
|
|
66
|
-
mode = params.sync_mode
|
77
|
+
mode = params.sync_mode
|
78
|
+
unless MODES.include?(mode)
|
79
|
+
fail "The parameter \"sync_mode\" has to have one of the values #{MODES.map(&:to_s).join(', ')} or has to be empty."
|
80
|
+
end
|
67
81
|
filters = []
|
68
82
|
|
69
83
|
csv_with_headers = if GoodData::UserFilterBuilder.row_based?(symbolized_config)
|
@@ -139,6 +153,7 @@ module GoodData
|
|
139
153
|
CSV.foreach(File.open(data_source.realize(params), 'r:UTF-8'), headers: csv_with_headers, return_headers: false, encoding: 'utf-8') do |row|
|
140
154
|
filters << row.to_hash
|
141
155
|
end
|
156
|
+
fail 'The filter set can not be empty when using sync_multiple_projects_based_on_custom_id mode' if filters.empty?
|
142
157
|
filters.group_by { |u| u[multiple_projects_column] }.flat_map do |client_id, new_filters|
|
143
158
|
fail "Client id cannot be empty" if client_id.blank?
|
144
159
|
project = domain.clients(client_id, data_product).project
|
@@ -52,7 +52,7 @@ module GoodData
|
|
52
52
|
data_source = GoodData::Helpers::DataSource.new(params.input_source)
|
53
53
|
data_product = params.data_product
|
54
54
|
mode = params.sync_mode
|
55
|
-
unless
|
55
|
+
unless MODES.include?(mode)
|
56
56
|
fail "The parameter \"sync_mode\" has to have one of the values #{MODES.map(&:to_s).join(', ')} or has to be empty."
|
57
57
|
end
|
58
58
|
|
@@ -14,9 +14,10 @@ module GoodData
|
|
14
14
|
specification.keys.each do |param_name|
|
15
15
|
value = params.send(param_name)
|
16
16
|
type = specification[param_name][:type]
|
17
|
-
|
18
|
-
|
19
|
-
|
17
|
+
if value.nil? || (value.is_a?(String) && value.empty?)
|
18
|
+
if specification[param_name][:opts][:default]
|
19
|
+
params[param_name] = specification[param_name][:opts][:default]
|
20
|
+
elsif specification[param_name][:opts][:required]
|
20
21
|
fail("Mandatory parameter '#{param_name}' of type '#{type}' is not specified")
|
21
22
|
end
|
22
23
|
else
|
@@ -1422,7 +1422,7 @@ module GoodData
|
|
1422
1422
|
end
|
1423
1423
|
|
1424
1424
|
{
|
1425
|
-
visualizations: MdObject.query('
|
1425
|
+
visualizations: MdObject.query('visualizationObject', MdObject, client: client, project: self),
|
1426
1426
|
visualization_widgets: MdObject.query('visualizationWidget', MdObject, client: client, project: self),
|
1427
1427
|
kpis: MdObject.query('kpi', MdObject, client: client, project: self)
|
1428
1428
|
}.each do |key, collection|
|
@@ -140,11 +140,10 @@ module GoodData
|
|
140
140
|
|
141
141
|
def self.create_label_cache(result, options = {})
|
142
142
|
project = options[:project]
|
143
|
-
project_labels = project.labels
|
144
143
|
|
145
144
|
result.reduce({}) do |a, e|
|
146
145
|
e[:filters].map do |filter|
|
147
|
-
a[filter[:label]] =
|
146
|
+
a[filter[:label]] = project.labels(filter[:label]) unless a.key?(filter[:label])
|
148
147
|
end
|
149
148
|
a
|
150
149
|
end
|
@@ -539,6 +538,8 @@ module GoodData
|
|
539
538
|
end
|
540
539
|
|
541
540
|
# Removes MUFs from to_delete unless in user is in users_brick_input
|
541
|
+
# if this does not happen, users that are about to be deleted by users_brick
|
542
|
+
# would have all their filters removed now, which is not desirable
|
542
543
|
def self.sanitize_filters_to_delete(to_delete, users_brick_input, project_users)
|
543
544
|
return to_delete unless users_brick_input && users_brick_input.any?
|
544
545
|
user_profiles = users_brick_input.map do |user|
|
@@ -546,6 +547,7 @@ module GoodData
|
|
546
547
|
next unless result
|
547
548
|
result.profile_url
|
548
549
|
end.compact
|
550
|
+
return to_delete unless user_profiles.any?
|
549
551
|
to_delete.reject do |_, value|
|
550
552
|
user_profiles.none? { |profile| profile == value.first.json[:related] }
|
551
553
|
end
|
data/lib/gooddata/version.rb
CHANGED
@@ -24,3 +24,20 @@ shared_examples 'a user action filtering segments' do
|
|
24
24
|
subject.class.call(params)
|
25
25
|
end
|
26
26
|
end
|
27
|
+
|
28
|
+
shared_examples 'when using unsuported sync_mode' do
|
29
|
+
before do
|
30
|
+
allow(project).to receive(:metadata).and_return(
|
31
|
+
'GOODOT_CUSTOM_PROJECT_ID' => 'project-123'
|
32
|
+
)
|
33
|
+
allow(project).to receive(:uri).and_return('project-uri')
|
34
|
+
allow(data_source).to receive(:realize).and_return('filepath')
|
35
|
+
allow(File).to receive(:open).and_return("client_id\n123456789")
|
36
|
+
allow(project).to receive(:add_data_permissions)
|
37
|
+
allow(domain).to receive(:clients).and_return([])
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'fails' do
|
41
|
+
expect { subject.class.call(params) }.to raise_error(/sync_mode/)
|
42
|
+
end
|
43
|
+
end
|
@@ -3,6 +3,20 @@ require 'gooddata/lcm/lcm2'
|
|
3
3
|
|
4
4
|
require_relative 'shared_examples_for_user_actions'
|
5
5
|
|
6
|
+
shared_context 'using mode with custom_id' do
|
7
|
+
let(:CSV) { double('CSV') }
|
8
|
+
|
9
|
+
before do
|
10
|
+
allow(project).to receive(:metadata).and_return(
|
11
|
+
'GOODOT_CUSTOM_PROJECT_ID' => 'project-123'
|
12
|
+
)
|
13
|
+
allow(project).to receive(:uri).and_return('project-uri')
|
14
|
+
allow(project).to receive(:add_data_permissions)
|
15
|
+
allow(domain).to receive(:clients).and_return([])
|
16
|
+
allow(data_source).to receive(:realize).and_return('filepath')
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
6
20
|
describe GoodData::LCM2::SynchronizeUserFilters do
|
7
21
|
let(:client) { double('client') }
|
8
22
|
let(:user) { double('user') }
|
@@ -76,6 +90,7 @@ describe GoodData::LCM2::SynchronizeUserFilters do
|
|
76
90
|
end
|
77
91
|
|
78
92
|
context 'when using sync_one_project_based_on_custom_id mode with multiple_projects_column' do
|
93
|
+
include_context 'using mode with custom_id'
|
79
94
|
let(:params) do
|
80
95
|
params = {
|
81
96
|
GDC_GD_CLIENT: client,
|
@@ -88,17 +103,6 @@ describe GoodData::LCM2::SynchronizeUserFilters do
|
|
88
103
|
}
|
89
104
|
GoodData::LCM2.convert_to_smart_hash(params)
|
90
105
|
end
|
91
|
-
let(:CSV) { double('CSV') }
|
92
|
-
|
93
|
-
before do
|
94
|
-
allow(project).to receive(:metadata).and_return(
|
95
|
-
'GOODOT_CUSTOM_PROJECT_ID' => 'project-123'
|
96
|
-
)
|
97
|
-
allow(project).to receive(:uri).and_return('project-uri')
|
98
|
-
allow(project).to receive(:add_data_permissions)
|
99
|
-
allow(domain).to receive(:clients).and_return([])
|
100
|
-
allow(data_source).to receive(:realize).and_return('filepath')
|
101
|
-
end
|
102
106
|
|
103
107
|
context 'when params do not match client data in domain' do
|
104
108
|
before do
|
@@ -143,4 +147,41 @@ describe GoodData::LCM2::SynchronizeUserFilters do
|
|
143
147
|
end
|
144
148
|
end
|
145
149
|
end
|
150
|
+
|
151
|
+
context 'when using sync_multiple_projects_based_on_custom_id mode' do
|
152
|
+
include_context 'using mode with custom_id'
|
153
|
+
let(:params) do
|
154
|
+
params = {
|
155
|
+
input_source: 'foo',
|
156
|
+
domain: 'bar',
|
157
|
+
multiple_projects_column: 'id_column',
|
158
|
+
sync_mode: 'sync_multiple_projects_based_on_custom_id',
|
159
|
+
gdc_logger: logger,
|
160
|
+
GDC_GD_CLIENT: client,
|
161
|
+
filters_config: { labels: [] }
|
162
|
+
}
|
163
|
+
GoodData::LCM2.convert_to_smart_hash(params)
|
164
|
+
end
|
165
|
+
it 'fails if the MUF set is empty' do
|
166
|
+
expect(File).to receive(:open)
|
167
|
+
expect(CSV).to receive(:foreach)
|
168
|
+
expect { subject.class.call(params) }.to raise_error(/The filter set can not be empty/)
|
169
|
+
end
|
170
|
+
end
|
171
|
+
context 'when using unsuported sync_mode' do
|
172
|
+
let(:params) do
|
173
|
+
params = {
|
174
|
+
filters_config: { labels: [] },
|
175
|
+
GDC_GD_CLIENT: client,
|
176
|
+
input_source: 'foo',
|
177
|
+
domain: 'bar',
|
178
|
+
multiple_projects_column: 'id_column',
|
179
|
+
sync_mode: 'unsuported_sync_mode', # sync_one_project_based_on_custom_id
|
180
|
+
gdc_logger: logger
|
181
|
+
}
|
182
|
+
GoodData::LCM2.convert_to_smart_hash(params)
|
183
|
+
end
|
184
|
+
|
185
|
+
it_should_behave_like 'when using unsuported sync_mode'
|
186
|
+
end
|
146
187
|
end
|
@@ -46,11 +46,11 @@ describe GoodData::LCM2::SynchronizeUsers do
|
|
46
46
|
|
47
47
|
let(:params) do
|
48
48
|
params = {
|
49
|
+
sync_mode: 'sync_one_project_based_on_custom_id',
|
49
50
|
GDC_GD_CLIENT: client,
|
50
51
|
input_source: 'foo',
|
51
52
|
domain: 'bar',
|
52
53
|
gdc_logger: logger,
|
53
|
-
sync_mode: 'sync_one_project_based_on_custom_id'
|
54
54
|
}
|
55
55
|
GoodData::LCM2.convert_to_smart_hash(params)
|
56
56
|
end
|
@@ -75,11 +75,11 @@ describe GoodData::LCM2::SynchronizeUsers do
|
|
75
75
|
context 'when mode requires client_id' do
|
76
76
|
let(:params) do
|
77
77
|
params = {
|
78
|
+
sync_mode: 'sync_one_project_based_on_pid',
|
78
79
|
GDC_GD_CLIENT: client,
|
79
80
|
input_source: 'foo',
|
80
81
|
domain: 'bar',
|
81
|
-
gdc_logger: logger
|
82
|
-
sync_mode: 'sync_one_project_based_on_pid'
|
82
|
+
gdc_logger: logger
|
83
83
|
}
|
84
84
|
GoodData::LCM2.convert_to_smart_hash(params)
|
85
85
|
end
|
@@ -130,5 +130,51 @@ describe GoodData::LCM2::SynchronizeUsers do
|
|
130
130
|
let(:message_for_project) { :import_users }
|
131
131
|
end
|
132
132
|
end
|
133
|
+
context 'when using mistyped mode' do
|
134
|
+
let(:params) do
|
135
|
+
params = {
|
136
|
+
GDC_GD_CLIENT: client,
|
137
|
+
input_source: 'foo',
|
138
|
+
domain: 'bar',
|
139
|
+
gdc_logger: logger,
|
140
|
+
sync_mode: 'unsuported_sync_mode'
|
141
|
+
}
|
142
|
+
GoodData::LCM2.convert_to_smart_hash(params)
|
143
|
+
end
|
144
|
+
|
145
|
+
before do
|
146
|
+
allow(domain).to receive(:clients).and_return(organization)
|
147
|
+
end
|
148
|
+
it_should_behave_like 'when using unsuported sync_mode'
|
149
|
+
end
|
150
|
+
context 'when using no mode' do
|
151
|
+
let(:params) do
|
152
|
+
params = {
|
153
|
+
GDC_GD_CLIENT: client,
|
154
|
+
input_source: 'foo',
|
155
|
+
domain: 'bar',
|
156
|
+
gdc_logger: logger
|
157
|
+
}
|
158
|
+
GoodData::LCM2.convert_to_smart_hash(params)
|
159
|
+
end
|
160
|
+
|
161
|
+
before do
|
162
|
+
allow(domain).to receive(:clients).and_return(organization)
|
163
|
+
end
|
164
|
+
before do
|
165
|
+
allow(data_source).to receive(:realize).and_return('filepath')
|
166
|
+
allow(File).to receive(:open).and_return("client_id\n123456789")
|
167
|
+
allow(project).to receive(:metadata).and_return(
|
168
|
+
'GOODOT_CUSTOM_PROJECT_ID' => 'project-123'
|
169
|
+
)
|
170
|
+
allow(project).to receive(:uri).and_return('project-uri')
|
171
|
+
allow(project).to receive(:add_data_permissions)
|
172
|
+
allow(domain).to receive(:clients).and_return([])
|
173
|
+
end
|
174
|
+
|
175
|
+
it 'fails' do
|
176
|
+
expect { subject.class.call(params) }.to raise_error(/sync_mode/)
|
177
|
+
end
|
178
|
+
end
|
133
179
|
end
|
134
180
|
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
#
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
4
|
+
# This source code is licensed under the BSD-style license found in the
|
5
|
+
# LICENSE file in the root directory of this source tree.
|
6
|
+
require 'gooddata/lcm/actions/base_action'
|
7
|
+
require 'gooddata/lcm/helpers/check_helper'
|
8
|
+
require 'gooddata/lcm/types/types'
|
9
|
+
|
10
|
+
describe 'GoodData::LCM2::Helpers::Checkout' do
|
11
|
+
let(:params) do
|
12
|
+
params = {
|
13
|
+
test_param_two: 'Testing param two',
|
14
|
+
test_param_three: 'Testing param three',
|
15
|
+
test_param_four: 4
|
16
|
+
}
|
17
|
+
GoodData::LCM2.convert_to_smart_hash(params)
|
18
|
+
end
|
19
|
+
it 'verifies required' do
|
20
|
+
PARAMS = GoodData::LCM2::BaseAction.define_params(self) do
|
21
|
+
description 'Testing param one'
|
22
|
+
param :test_param_one, instance_of(GoodData::LCM2::Type::StringType), required: true
|
23
|
+
end
|
24
|
+
expect { GoodData::LCM2::Helpers.check_params(PARAMS, params) }.to raise_error(/Mandatory/)
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'fills default' do
|
28
|
+
PARAMS_2 = GoodData::LCM2::BaseAction.define_params(self) do
|
29
|
+
description 'Testing param one'
|
30
|
+
param :test_param_one, instance_of(GoodData::LCM2::Type::StringType), required: true, default: 'filled_default_value'
|
31
|
+
|
32
|
+
description 'Testing param two'
|
33
|
+
param :test_param_two, instance_of(GoodData::LCM2::Type::StringType), required: false
|
34
|
+
end
|
35
|
+
GoodData::LCM2::Helpers.check_params(PARAMS_2, params)
|
36
|
+
expect(params[:test_param_one]).to match(/filled_default_value/)
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'checks types' do
|
40
|
+
PARAMS_3 = GoodData::LCM2::BaseAction.define_params(self) do
|
41
|
+
description 'Testing param four'
|
42
|
+
param :test_param_four, instance_of(GoodData::LCM2::Type::StringType), required: false
|
43
|
+
end
|
44
|
+
expect { GoodData::LCM2::Helpers.check_params(PARAMS_3, params) }.to raise_error(/has invalid type/)
|
45
|
+
end
|
46
|
+
end
|
@@ -36,10 +36,10 @@ describe GoodData::UserFilterBuilder do
|
|
36
36
|
let(:profile_url) { '/gdc/account/profile/foo' }
|
37
37
|
|
38
38
|
before do
|
39
|
-
allow(project).to receive(:labels)
|
40
|
-
.and_return(
|
41
|
-
allow(project).to receive(:labels)
|
42
|
-
.and_return(
|
39
|
+
allow(project).to receive(:labels).with(label_uri)
|
40
|
+
.and_return(label)
|
41
|
+
allow(project).to receive(:labels).with("label.csv_policies.state")
|
42
|
+
.and_return(label)
|
43
43
|
allow(project).to receive(:attributes)
|
44
44
|
allow(project).to receive(:users).and_return(project_users)
|
45
45
|
allow(project).to receive(:data_permissions).and_return([existing_filter])
|
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: 1.0.
|
4
|
+
version: 1.0.2
|
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: 2018-
|
14
|
+
date: 2018-03-09 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: bundler
|
@@ -1027,6 +1027,7 @@ files:
|
|
1027
1027
|
- spec/unit/core/nil_logger_spec.rb
|
1028
1028
|
- spec/unit/extensions/hash_spec.rb
|
1029
1029
|
- spec/unit/godzilla/goodzilla_spec.rb
|
1030
|
+
- spec/unit/helpers/check_helper_spec.rb
|
1030
1031
|
- spec/unit/helpers/csv_helper_spec.rb
|
1031
1032
|
- spec/unit/helpers/data_helper_spec.rb
|
1032
1033
|
- spec/unit/helpers/global_helpers_spec.rb
|
@@ -1077,188 +1078,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1077
1078
|
version: '0'
|
1078
1079
|
requirements: []
|
1079
1080
|
rubyforge_project:
|
1080
|
-
rubygems_version: 2.
|
1081
|
+
rubygems_version: 2.7.4
|
1081
1082
|
signing_key:
|
1082
1083
|
specification_version: 4
|
1083
1084
|
summary: A convenient Ruby wrapper around the GoodData RESTful API
|
1084
|
-
test_files:
|
1085
|
-
- spec/bricks/bricks_spec.rb
|
1086
|
-
- spec/bricks/default-config.json
|
1087
|
-
- spec/data/.gooddata
|
1088
|
-
- spec/data/blueprints/additional_dataset_module.json
|
1089
|
-
- spec/data/blueprints/attribute_sort_order_blueprint.json
|
1090
|
-
- spec/data/blueprints/big_blueprint_not_pruned.json
|
1091
|
-
- spec/data/blueprints/invalid_blueprint.json
|
1092
|
-
- spec/data/blueprints/m_n_model.json
|
1093
|
-
- spec/data/blueprints/model_module.json
|
1094
|
-
- spec/data/blueprints/test_blueprint.json
|
1095
|
-
- spec/data/blueprints/test_project_model_spec.json
|
1096
|
-
- spec/data/cc/data/source/commits.csv
|
1097
|
-
- spec/data/cc/data/source/devs.csv
|
1098
|
-
- spec/data/cc/data/source/repos.csv
|
1099
|
-
- spec/data/cc/devel.prm
|
1100
|
-
- spec/data/cc/graph/graph.grf
|
1101
|
-
- spec/data/cc/workspace.prm
|
1102
|
-
- spec/data/column_based_permissions.csv
|
1103
|
-
- spec/data/column_based_permissions2.csv
|
1104
|
-
- spec/data/dynamic_schedule_params_table.csv
|
1105
|
-
- spec/data/gd_gse_data_blueprint.json
|
1106
|
-
- spec/data/gd_gse_data_manifest.json
|
1107
|
-
- spec/data/gd_gse_data_model.json
|
1108
|
-
- spec/data/gooddata_version_process/gooddata_version.rb
|
1109
|
-
- spec/data/gooddata_version_process/gooddata_version.zip
|
1110
|
-
- spec/data/hello_world_process/hello_world.rb
|
1111
|
-
- spec/data/hello_world_process/hello_world.zip
|
1112
|
-
- spec/data/integration_model.json
|
1113
|
-
- spec/data/integration_policies.csv
|
1114
|
-
- spec/data/line_based_permissions.csv
|
1115
|
-
- spec/data/manifests/test_blueprint.json
|
1116
|
-
- spec/data/manifests/test_project.json
|
1117
|
-
- spec/data/reports/left_attr_report.json
|
1118
|
-
- spec/data/reports/metric_only_one_line.json
|
1119
|
-
- spec/data/reports/report_1.json
|
1120
|
-
- spec/data/reports/top_attr_report.json
|
1121
|
-
- spec/data/ruby_params_process/ruby_params.rb
|
1122
|
-
- spec/data/ruby_process/deep_files/deep_stuff.txt
|
1123
|
-
- spec/data/ruby_process/process.rb
|
1124
|
-
- spec/data/ruby_process/stuff.txt
|
1125
|
-
- spec/data/superfluous_titles_view.json
|
1126
|
-
- spec/data/test-ci-data.csv
|
1127
|
-
- spec/data/users.csv
|
1128
|
-
- spec/data/wire_models/attribute_sort_by_model.json
|
1129
|
-
- spec/data/wire_models/model_view.json
|
1130
|
-
- spec/data/wire_models/nu_model.json
|
1131
|
-
- spec/data/wire_models/test_blueprint.json
|
1132
|
-
- spec/data/wire_test_project.json
|
1133
|
-
- spec/data/workspace_table.csv
|
1134
|
-
- spec/environment/default.rb
|
1135
|
-
- spec/environment/development.rb
|
1136
|
-
- spec/environment/environment.rb
|
1137
|
-
- spec/environment/production.rb
|
1138
|
-
- spec/environment/staging.rb
|
1139
|
-
- spec/environment/testing.rb
|
1140
|
-
- spec/helpers/appstore_project_helper.rb
|
1141
|
-
- spec/helpers/blueprint_helper.rb
|
1142
|
-
- spec/helpers/cli_helper.rb
|
1143
|
-
- spec/helpers/connection_helper.rb
|
1144
|
-
- spec/helpers/constants.rb
|
1145
|
-
- spec/helpers/crypto_helper.rb
|
1146
|
-
- spec/helpers/csv_helper.rb
|
1147
|
-
- spec/helpers/process_helper.rb
|
1148
|
-
- spec/helpers/project_helper.rb
|
1149
|
-
- spec/helpers/schedule_helper.rb
|
1150
|
-
- spec/helpers/spec_helper.rb
|
1151
|
-
- spec/integration/ads_output_stage_spec.rb
|
1152
|
-
- spec/integration/blueprint_updates_spec.rb
|
1153
|
-
- spec/integration/blueprint_with_ca_spec.rb
|
1154
|
-
- spec/integration/blueprint_with_grain_spec.rb
|
1155
|
-
- spec/integration/channel_configuration_spec.rb
|
1156
|
-
- spec/integration/clients_spec.rb
|
1157
|
-
- spec/integration/command_datawarehouse_spec.rb
|
1158
|
-
- spec/integration/command_projects_spec.rb
|
1159
|
-
- spec/integration/commands/command_projects_spec.rb
|
1160
|
-
- spec/integration/core/connection_spec.rb
|
1161
|
-
- spec/integration/core/logging_spec.rb
|
1162
|
-
- spec/integration/core/project_spec.rb
|
1163
|
-
- spec/integration/create_from_template_spec.rb
|
1164
|
-
- spec/integration/create_project_spec.rb
|
1165
|
-
- spec/integration/date_dim_switch_spec.rb
|
1166
|
-
- spec/integration/deprecated_load_spec.rb
|
1167
|
-
- spec/integration/full_process_schedule_spec.rb
|
1168
|
-
- spec/integration/full_project_spec.rb
|
1169
|
-
- spec/integration/helpers_spec.rb
|
1170
|
-
- spec/integration/lcm_spec.rb
|
1171
|
-
- spec/integration/mixins/id_to_uri_spec.rb
|
1172
|
-
- spec/integration/models/data_product_spec.rb
|
1173
|
-
- spec/integration/models/domain_spec.rb
|
1174
|
-
- spec/integration/models/invitation_spec.rb
|
1175
|
-
- spec/integration/models/label_spec.rb
|
1176
|
-
- spec/integration/models/membership_spec.rb
|
1177
|
-
- spec/integration/models/metadata/report_spec.rb
|
1178
|
-
- spec/integration/models/params_spec.rb
|
1179
|
-
- spec/integration/models/profile_spec.rb
|
1180
|
-
- spec/integration/models/project_role_spec.rb
|
1181
|
-
- spec/integration/models/project_spec.rb
|
1182
|
-
- spec/integration/models/schedule_spec.rb
|
1183
|
-
- spec/integration/models/unit_project_spec.rb
|
1184
|
-
- spec/integration/over_to_user_filters_spec.rb
|
1185
|
-
- spec/integration/partial_md_export_import_spec.rb
|
1186
|
-
- spec/integration/project_spec.rb
|
1187
|
-
- spec/integration/rest_spec.rb
|
1188
|
-
- spec/integration/schedule_spec.rb
|
1189
|
-
- spec/integration/segments_spec.rb
|
1190
|
-
- spec/integration/subscription_spec.rb
|
1191
|
-
- spec/integration/urn_date_dim_spec.rb
|
1192
|
-
- spec/integration/user_filters_spec.rb
|
1193
|
-
- spec/integration/user_group_spec.rb
|
1194
|
-
- spec/integration/variables_spec.rb
|
1195
|
-
- spec/logging_in_logging_out_spec.rb
|
1196
|
-
- spec/spec_helper.rb
|
1197
|
-
- spec/unit/actions/associate_clients_spec.rb
|
1198
|
-
- spec/unit/actions/collect_client_projects_spec.rb
|
1199
|
-
- spec/unit/actions/collect_clients_spec.rb
|
1200
|
-
- spec/unit/actions/collect_data_product_spec.rb
|
1201
|
-
- spec/unit/actions/collect_dynamic_schedule_params_spec.rb
|
1202
|
-
- spec/unit/actions/collect_meta_spec.rb
|
1203
|
-
- spec/unit/actions/collect_segment_clients_spec.rb
|
1204
|
-
- spec/unit/actions/collect_tagged_objects_spec.rb
|
1205
|
-
- spec/unit/actions/collect_users_brick_users_spec.rb
|
1206
|
-
- spec/unit/actions/create_segment_masters_spec.rb
|
1207
|
-
- spec/unit/actions/ensure_data_product_spec.rb
|
1208
|
-
- spec/unit/actions/ensure_technical_users_domain_spec.rb
|
1209
|
-
- spec/unit/actions/ensure_technical_users_project_spec.rb
|
1210
|
-
- spec/unit/actions/execute_schedules_spec.rb
|
1211
|
-
- spec/unit/actions/provision_clients_spec.rb
|
1212
|
-
- spec/unit/actions/purge_clients_spec.rb
|
1213
|
-
- spec/unit/actions/rename_existing_client_projects_spec.rb
|
1214
|
-
- spec/unit/actions/segments_filter_spec.rb
|
1215
|
-
- spec/unit/actions/shared_examples_for_user_actions.rb
|
1216
|
-
- spec/unit/actions/synchronize_cas_spec.rb
|
1217
|
-
- spec/unit/actions/synchronize_clients_spec.rb
|
1218
|
-
- spec/unit/actions/synchronize_etls_in_segment_spec.rb
|
1219
|
-
- spec/unit/actions/synchronize_ldm_spec.rb
|
1220
|
-
- spec/unit/actions/synchronize_user_filters_spec.rb
|
1221
|
-
- spec/unit/actions/synchronize_user_groups_spec.rb
|
1222
|
-
- spec/unit/actions/synchronize_users_spec.rb
|
1223
|
-
- spec/unit/bricks/bricks_spec.rb
|
1224
|
-
- spec/unit/bricks/middleware/aws_middelware_spec.rb
|
1225
|
-
- spec/unit/bricks/middleware/bench_middleware_spec.rb
|
1226
|
-
- spec/unit/bricks/middleware/bulk_salesforce_middleware_spec.rb
|
1227
|
-
- spec/unit/bricks/middleware/gooddata_middleware_spec.rb
|
1228
|
-
- spec/unit/bricks/middleware/logger_middleware_spec.rb
|
1229
|
-
- spec/unit/bricks/middleware/restforce_middleware_spec.rb
|
1230
|
-
- spec/unit/bricks/middleware/stdout_middleware_spec.rb
|
1231
|
-
- spec/unit/bricks/middleware/twitter_middleware_spec.rb
|
1232
|
-
- spec/unit/cli/cli_spec.rb
|
1233
|
-
- spec/unit/cli/commands/cmd_auth_spec.rb
|
1234
|
-
- spec/unit/core/nil_logger_spec.rb
|
1235
|
-
- spec/unit/extensions/hash_spec.rb
|
1236
|
-
- spec/unit/godzilla/goodzilla_spec.rb
|
1237
|
-
- spec/unit/helpers/csv_helper_spec.rb
|
1238
|
-
- spec/unit/helpers/data_helper_spec.rb
|
1239
|
-
- spec/unit/helpers/global_helpers_spec.rb
|
1240
|
-
- spec/unit/helpers_spec.rb
|
1241
|
-
- spec/unit/lcm/lcm2_spec.rb
|
1242
|
-
- spec/unit/lcm/user_bricks_helper_spec.rb
|
1243
|
-
- spec/unit/models/blueprint/attribute_sort_by_spec.rb
|
1244
|
-
- spec/unit/models/blueprint/attributes_spec.rb
|
1245
|
-
- spec/unit/models/blueprint/dataset_spec.rb
|
1246
|
-
- spec/unit/models/blueprint/label_blueprint_field_spec.rb
|
1247
|
-
- spec/unit/models/blueprint/project_blueprint_spec.rb
|
1248
|
-
- spec/unit/models/blueprint/reference_spec.rb
|
1249
|
-
- spec/unit/models/blueprint/schema_builder_spec.rb
|
1250
|
-
- spec/unit/models/blueprint/to_wire_spec.rb
|
1251
|
-
- spec/unit/models/execution_spec.rb
|
1252
|
-
- spec/unit/models/from_wire_spec.rb
|
1253
|
-
- spec/unit/models/metadata_spec.rb
|
1254
|
-
- spec/unit/models/metric_spec.rb
|
1255
|
-
- spec/unit/models/model_spec.rb
|
1256
|
-
- spec/unit/models/project_creator_spec.rb
|
1257
|
-
- spec/unit/models/project_spec.rb
|
1258
|
-
- spec/unit/models/report_result_data_spec.rb
|
1259
|
-
- spec/unit/models/to_manifest_spec.rb
|
1260
|
-
- spec/unit/models/user_filters/user_filter_builder_spec.rb
|
1261
|
-
- spec/unit/models/user_filters_spec.rb
|
1262
|
-
- spec/unit/models/variable_spec.rb
|
1263
|
-
- spec/unit/rest/polling_spec.rb
|
1264
|
-
- spec/unit/rest/resource_spec.rb
|
1085
|
+
test_files: []
|