gooddata 0.6.7 → 0.6.8
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 +19 -1
- data/README.md +10 -2
- data/TODO.md +32 -0
- data/gooddata.gemspec +5 -0
- data/lib/gooddata.rb +4 -0
- data/lib/gooddata/app/app.rb +12 -0
- data/lib/gooddata/bricks/middleware/gooddata_middleware.rb +4 -3
- data/lib/gooddata/bricks/middleware/restforce_middleware.rb +2 -1
- data/lib/gooddata/cli/commands/console_cmd.rb +23 -5
- data/lib/gooddata/cli/commands/domain_cmd.rb +9 -10
- data/lib/gooddata/cli/commands/process_cmd.rb +11 -9
- data/lib/gooddata/cli/commands/project_cmd.rb +25 -27
- data/lib/gooddata/cli/commands/projects_cmd.rb +2 -2
- data/lib/gooddata/cli/commands/run_ruby_cmd.rb +1 -1
- data/lib/gooddata/cli/commands/user_cmd.rb +2 -2
- data/lib/gooddata/cli/hooks.rb +4 -2
- data/lib/gooddata/cli/shared.rb +1 -1
- data/lib/gooddata/cli/terminal.rb +1 -1
- data/lib/gooddata/commands/api.rb +1 -1
- data/lib/gooddata/commands/auth.rb +4 -28
- data/lib/gooddata/commands/domain.rb +9 -4
- data/lib/gooddata/commands/process.rb +26 -23
- data/lib/gooddata/commands/project.rb +74 -50
- data/lib/gooddata/commands/projects.rb +3 -2
- data/lib/gooddata/commands/role.rb +9 -3
- data/lib/gooddata/commands/user.rb +6 -4
- data/lib/gooddata/connection.rb +11 -45
- data/lib/gooddata/core/logging.rb +0 -1
- data/lib/gooddata/core/project.rb +22 -22
- data/lib/gooddata/core/rest.rb +9 -8
- data/lib/gooddata/core/user.rb +0 -11
- data/lib/gooddata/exceptions/project_not_found.rb +1 -0
- data/lib/gooddata/extensions/enumerable.rb +10 -0
- data/lib/gooddata/extensions/hash.rb +25 -0
- data/lib/gooddata/goodzilla/goodzilla.rb +4 -4
- data/lib/gooddata/helper/class_helper.rb +1 -0
- data/lib/gooddata/helper/helpers.rb +8 -0
- data/lib/gooddata/helpers/auth_helpers.rb +41 -0
- data/lib/gooddata/mixins/author.rb +1 -1
- data/lib/gooddata/mixins/contributor.rb +1 -1
- data/lib/gooddata/mixins/data_property_reader.rb +2 -0
- data/lib/gooddata/mixins/data_property_writer.rb +2 -0
- data/lib/gooddata/mixins/inspector.rb +49 -0
- data/lib/gooddata/mixins/md_finders.rb +16 -8
- data/lib/gooddata/mixins/md_id_to_uri.rb +12 -4
- data/lib/gooddata/mixins/md_object_indexer.rb +15 -4
- data/lib/gooddata/mixins/md_object_query.rb +42 -20
- data/lib/gooddata/mixins/md_relations.rb +21 -12
- data/lib/gooddata/mixins/meta_getter.rb +2 -0
- data/lib/gooddata/mixins/meta_property_reader.rb +2 -0
- data/lib/gooddata/mixins/meta_property_writer.rb +2 -0
- data/lib/gooddata/mixins/rest_resource.rb +32 -10
- data/lib/gooddata/mixins/root_key_getter.rb +1 -1
- data/lib/gooddata/models/data_result.rb +3 -1
- data/lib/gooddata/models/domain.rb +31 -22
- data/lib/gooddata/models/empty_result.rb +22 -0
- data/lib/gooddata/models/invitation.rb +11 -9
- data/lib/gooddata/models/links.rb +5 -3
- data/lib/gooddata/models/membership.rb +23 -28
- data/lib/gooddata/models/metadata.rb +35 -35
- data/lib/gooddata/models/metadata/attribute.rb +10 -8
- data/lib/gooddata/models/metadata/dashboard.rb +1 -1
- data/lib/gooddata/models/metadata/fact.rb +3 -3
- data/lib/gooddata/models/metadata/label.rb +4 -4
- data/lib/gooddata/models/metadata/metric.rb +76 -38
- data/lib/gooddata/models/metadata/report.rb +52 -17
- data/lib/gooddata/models/metadata/report_definition.rb +178 -28
- data/lib/gooddata/models/model.rb +13 -6
- data/lib/gooddata/models/process.rb +93 -30
- data/lib/gooddata/models/profile.rb +18 -20
- data/lib/gooddata/models/project.rb +344 -127
- data/lib/gooddata/models/project_creator.rb +32 -22
- data/lib/gooddata/models/project_metadata.rb +26 -14
- data/lib/gooddata/models/project_role.rb +15 -17
- data/lib/gooddata/models/report_data_result.rb +4 -0
- data/lib/gooddata/models/schedule.rb +51 -20
- data/lib/gooddata/models/schema_blueprint.rb +9 -3
- data/lib/gooddata/rest/README.md +37 -0
- data/lib/gooddata/rest/client.rb +318 -0
- data/lib/gooddata/rest/connection.rb +235 -0
- data/lib/gooddata/rest/connections/connections.rb +8 -0
- data/lib/gooddata/rest/connections/dummy_connection.rb +52 -0
- data/lib/gooddata/rest/connections/rest_client_connection.rb +177 -0
- data/lib/gooddata/rest/object.rb +32 -0
- data/lib/gooddata/rest/object_factory.rb +67 -0
- data/lib/gooddata/rest/resource.rb +17 -0
- data/lib/gooddata/rest/rest.rb +20 -0
- data/lib/gooddata/version.rb +1 -1
- data/spec/data/cc/data/source/commits.csv +4 -0
- data/spec/data/cc/data/source/devs.csv +4 -0
- data/spec/data/cc/data/source/repos.csv +3 -0
- data/spec/data/cc/devel.prm +0 -0
- data/spec/data/cc/graph/graph.grf +11 -0
- data/spec/data/cc/workspace.prm +19 -0
- data/spec/data/hello_world_process/hello_world.rb +1 -0
- data/spec/data/hello_world_process/hello_world.zip +0 -0
- data/spec/data/users.csv +12 -12
- data/spec/helpers/connection_helper.rb +6 -0
- data/spec/helpers/process_helper.rb +12 -0
- data/spec/helpers/project_helper.rb +2 -2
- data/spec/integration/command_projects_spec.rb +11 -9
- data/spec/integration/create_from_template_spec.rb +6 -2
- data/spec/integration/full_process_schedule_spec.rb +49 -36
- data/spec/integration/full_project_spec.rb +221 -256
- data/spec/integration/partial_md_export_import_spec.rb +18 -17
- data/spec/logging_in_logging_out_spec.rb +17 -8
- data/spec/spec_helper.rb +4 -2
- data/spec/unit/cli/commands/cmd_api_spec.rb +1 -1
- data/spec/unit/cli/commands/cmd_auth_spec.rb +1 -1
- data/spec/unit/cli/commands/cmd_domain_spec.rb +29 -3
- data/spec/unit/cli/commands/cmd_process_spec.rb +1 -1
- data/spec/unit/cli/commands/cmd_project_spec.rb +1 -1
- data/spec/unit/cli/commands/cmd_role_spec.rb +13 -2
- data/spec/unit/cli/commands/cmd_run_ruby_spec.rb +1 -1
- data/spec/unit/cli/commands/cmd_scaffold_spec.rb +1 -1
- data/spec/unit/cli/commands/cmd_user_spec.rb +1 -1
- data/spec/unit/commands/command_api_spec.rb +0 -19
- data/spec/unit/commands/command_auth_spec.rb +20 -13
- data/spec/unit/commands/command_dataset_spec.rb +2 -2
- data/spec/unit/commands/command_process_spec.rb +24 -21
- data/spec/unit/commands/command_projects_spec.rb +2 -2
- data/spec/unit/commands/command_scaffold_spec.rb +2 -2
- data/spec/unit/commands/command_user_spec.rb +3 -3
- data/spec/unit/core/connection_spec.rb +9 -10
- data/spec/unit/core/project_spec.rb +8 -4
- data/spec/unit/core/rest_spec.rb +6 -6
- data/spec/unit/models/domain_spec.rb +14 -7
- data/spec/unit/models/invitation_spec.rb +2 -2
- data/spec/unit/models/membership_spec.rb +5 -5
- data/spec/unit/models/metric_spec.rb +92 -0
- data/spec/unit/models/profile_spec.rb +25 -21
- data/spec/unit/models/project_blueprint_spec.rb +6 -6
- data/spec/unit/models/project_role_spec.rb +3 -5
- data/spec/unit/models/project_spec.rb +43 -37
- data/spec/unit/models/schedule_spec.rb +58 -107
- data/spec/unit/rest/resource_spec.rb +6 -0
- metadata +87 -10
- data/lib/gooddata/cli/commands/role_cmd.rb +0 -28
- data/lib/gooddata/core/connection.rb +0 -392
- data/lib/gooddata/core/threaded.rb +0 -14
- data/lib/gooddata/models/md_object.rb +0 -25
- data/lib/gooddata/models/metadata/folder.rb +0 -24
- data/spec/unit/models/md_object_spec.rb +0 -55
- data/spec/unit/models/metric.rb +0 -92
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
|
|
3
|
-
require_relative '../md_object'
|
|
4
|
-
|
|
5
|
-
module GoodData
|
|
6
|
-
module Model
|
|
7
|
-
##
|
|
8
|
-
# Base class for GoodData attribute and fact folder abstractions
|
|
9
|
-
#
|
|
10
|
-
class Folder < MdObject
|
|
11
|
-
def initialize(title)
|
|
12
|
-
# TODO: should a super be here?
|
|
13
|
-
# how to deal with name vs title?
|
|
14
|
-
@title = title
|
|
15
|
-
@name = GoodData::Helpers.sanitize_string(title)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def to_maql_create
|
|
19
|
-
"CREATE FOLDER {#{type_prefix}.#{name}}" \
|
|
20
|
-
+ " VISUAL (#{visual}) TYPE #{type};\n"
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
|
|
3
|
-
require 'gooddata/models/md_object'
|
|
4
|
-
|
|
5
|
-
describe GoodData::Model::MdObject do
|
|
6
|
-
TEST_TITLE = 'Test Title'
|
|
7
|
-
TEST_NAME = 'Test Name'
|
|
8
|
-
|
|
9
|
-
before(:each) do
|
|
10
|
-
@instance = GoodData::Model::MdObject.new()
|
|
11
|
-
@instance.title = TEST_TITLE
|
|
12
|
-
@instance.name = TEST_NAME
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
describe '#initialize' do
|
|
16
|
-
it 'Creates new instance' do
|
|
17
|
-
@instance.should_not == nil
|
|
18
|
-
@instance.should be_an_instance_of(GoodData::Model::MdObject)
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
describe '#visual' do
|
|
23
|
-
it 'Returns visual representation' do
|
|
24
|
-
result = @instance.visual
|
|
25
|
-
result.should_not == nil
|
|
26
|
-
result.should be_an_instance_of(String)
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
describe '#title_esc' do
|
|
31
|
-
it 'Returns escaped title' do
|
|
32
|
-
result = @instance.title_esc
|
|
33
|
-
result.should_not == nil
|
|
34
|
-
result.should be_an_instance_of(String)
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
describe '#identifier' do
|
|
39
|
-
it 'Returns identifier' do
|
|
40
|
-
pending('GoodData::Model::MdObject::type_prefix is not defined')
|
|
41
|
-
|
|
42
|
-
result = @instance.identifier
|
|
43
|
-
result.should_not == nil
|
|
44
|
-
result.should == be_an_instance_of(String)
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
describe '#all' do
|
|
49
|
-
it 'Throws an error. This is implemented on subclasses' do
|
|
50
|
-
expect do
|
|
51
|
-
GoodData::MdObject.all
|
|
52
|
-
end.to raise_exception(NotImplementedError)
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
end
|
data/spec/unit/models/metric.rb
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
|
|
3
|
-
require 'gooddata/models/metadata/metric'
|
|
4
|
-
|
|
5
|
-
describe GoodData::Metric do
|
|
6
|
-
|
|
7
|
-
RAW_DATA2 = {'metric'=>
|
|
8
|
-
{'content'=>
|
|
9
|
-
{'format'=>'#,##0',
|
|
10
|
-
'expression'=> 'SELECT SUM([/gdc/md/ksjy0nr3goz6k8yrpklz97l0mych7nez/obj/700])'},
|
|
11
|
-
'meta' =>
|
|
12
|
-
{'author'=>'/gdc/account/profile/4e1e8cacc4989228e0ae531b30853248',
|
|
13
|
-
'uri'=>'/gdc/md/ksjy0nr3goz6k8yrpklz97l0mych7nez/obj/70',
|
|
14
|
-
'tags'=>'a b cg r t',
|
|
15
|
-
'created'=>'2014-04-30 22:47:57',
|
|
16
|
-
'identifier'=>'afo7bx1VakCz',
|
|
17
|
-
'deprecated'=>'0',
|
|
18
|
-
'summary'=>'',
|
|
19
|
-
'title'=>'sum of Lines changed',
|
|
20
|
-
'category'=>'metric',
|
|
21
|
-
'updated'=>'2014-05-05 20:00:42',
|
|
22
|
-
'contributor'=>'/gdc/account/profile/4e1e8cacc4989228e0ae531b30853248'}}}
|
|
23
|
-
|
|
24
|
-
RAW_DATA3 = {'metric'=>
|
|
25
|
-
{'content'=>
|
|
26
|
-
{'format'=>'#,##0',
|
|
27
|
-
'expression'=> 'SELECT SUM([/gdc/md/ksjy0nr3goz6k8yrpklz97l0mych7nez/obj/710])'},
|
|
28
|
-
'meta' =>
|
|
29
|
-
{'author'=>'/gdc/account/profile/4e1e8cacc4989228e0ae531b30853248',
|
|
30
|
-
'uri'=>'/gdc/md/ksjy0nr3goz6k8yrpklz97l0mych7nez/obj/71',
|
|
31
|
-
'tags'=>'a b cg r t',
|
|
32
|
-
'created'=>'2014-04-30 22:47:57',
|
|
33
|
-
'identifier'=>'afo7bx1VakCz',
|
|
34
|
-
'deprecated'=>'0',
|
|
35
|
-
'summary'=>'',
|
|
36
|
-
'title'=>'sum of Lines changed',
|
|
37
|
-
'category'=>'metric',
|
|
38
|
-
'updated'=>'2014-05-05 20:00:42',
|
|
39
|
-
'contributor'=>'/gdc/account/profile/4e1e8cacc4989228e0ae531b30853248'}}}
|
|
40
|
-
|
|
41
|
-
USED_METRIC = GoodData::Metric.new(RAW_DATA2)
|
|
42
|
-
UNUSED_METRIC = GoodData::Metric.new(RAW_DATA3)
|
|
43
|
-
|
|
44
|
-
RAW_DATA = {'metric'=>
|
|
45
|
-
{'content'=>
|
|
46
|
-
{'format'=>'#,##0',
|
|
47
|
-
'expression'=>
|
|
48
|
-
"SELECT SUM([#{USED_METRIC.uri})"},
|
|
49
|
-
'meta'=>
|
|
50
|
-
{'author'=>'/gdc/account/profile/4e1e8cacc4989228e0ae531b30853248',
|
|
51
|
-
'uri'=>'/gdc/md/ksjy0nr3goz6k8yrpklz97l0mych7nez/obj/252',
|
|
52
|
-
'tags'=>'a b cg r t',
|
|
53
|
-
'created'=>'2014-04-30 22:47:57',
|
|
54
|
-
'identifier'=>'afo7bx1VakCz',
|
|
55
|
-
'deprecated'=>'0',
|
|
56
|
-
'summary'=>'',
|
|
57
|
-
'title'=>'sum of Lines changed',
|
|
58
|
-
'category'=>'metric',
|
|
59
|
-
'updated'=>'2014-05-05 20:00:42',
|
|
60
|
-
'contributor'=>'/gdc/account/profile/4e1e8cacc4989228e0ae531b30853248'}}}
|
|
61
|
-
|
|
62
|
-
before(:each) do
|
|
63
|
-
@instance = GoodData::Metric.new(RAW_DATA)
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
describe '#contain?' do
|
|
67
|
-
it 'should say it contains a depending metric if it does' do
|
|
68
|
-
@instance.contain?(USED_METRIC).should == true
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
it 'should say it contains a depending object which is given as a string if it does' do
|
|
72
|
-
@instance.contain?(USED_METRIC).should == true
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
it 'should be able to replace an object if the object is used in the expression' do
|
|
76
|
-
pending('resolve mutating constant if I init from it')
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
it 'should be able to return an expression of the metric' do
|
|
80
|
-
@instance.expression.should == "SELECT SUM([#{USED_METRIC.uri})"
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
it 'should be able to replace an object if the object is used in the expression' do
|
|
84
|
-
@instance.contain?(USED_METRIC).should == true
|
|
85
|
-
@instance.contain?(UNUSED_METRIC).should == false
|
|
86
|
-
@instance.replace(USED_METRIC, UNUSED_METRIC)
|
|
87
|
-
@instance.contain?(USED_METRIC).should == false
|
|
88
|
-
@instance.contain?(UNUSED_METRIC).should == true
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
end
|
|
92
|
-
end
|