gooddata 0.6.11 → 0.6.12

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.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +6 -0
  3. data/.travis.yml +5 -0
  4. data/CHANGELOG.md +34 -1
  5. data/CLI.md +1 -1
  6. data/authors.sh +4 -0
  7. data/lib/gooddata.rb +1 -1
  8. data/lib/gooddata/cli/commands/api_cmd.rb +0 -2
  9. data/lib/gooddata/cli/commands/auth_cmd.rb +0 -3
  10. data/lib/gooddata/cli/commands/console_cmd.rb +1 -2
  11. data/lib/gooddata/cli/commands/domain_cmd.rb +0 -2
  12. data/lib/gooddata/cli/commands/process_cmd.rb +0 -2
  13. data/lib/gooddata/cli/commands/project_cmd.rb +0 -2
  14. data/lib/gooddata/cli/commands/projects_cmd.rb +0 -2
  15. data/lib/gooddata/cli/commands/run_ruby_cmd.rb +2 -3
  16. data/lib/gooddata/cli/commands/scaffold_cmd.rb +0 -3
  17. data/lib/gooddata/cli/commands/user_cmd.rb +0 -2
  18. data/lib/gooddata/cli/shared.rb +1 -2
  19. data/lib/gooddata/commands/datawarehouse.rb +24 -0
  20. data/lib/gooddata/commands/process.rb +0 -1
  21. data/lib/gooddata/commands/project.rb +1 -1
  22. data/lib/gooddata/commands/scaffold.rb +0 -1
  23. data/lib/gooddata/core/connection.rb +376 -0
  24. data/lib/gooddata/core/logging.rb +13 -0
  25. data/lib/gooddata/core/rest.rb +40 -16
  26. data/lib/gooddata/exceptions/user_in_different_domain.rb +11 -0
  27. data/lib/gooddata/extensions/enumerable.rb +8 -0
  28. data/lib/gooddata/goodzilla/goodzilla.rb +24 -0
  29. data/lib/gooddata/helpers/global_helpers.rb +126 -12
  30. data/lib/gooddata/mixins/author.rb +11 -5
  31. data/lib/gooddata/mixins/is_dimension.rb +13 -0
  32. data/lib/gooddata/mixins/md_object_indexer.rb +17 -1
  33. data/lib/gooddata/mixins/md_object_query.rb +10 -2
  34. data/lib/gooddata/mixins/md_relations.rb +2 -2
  35. data/lib/gooddata/mixins/rest_resource.rb +1 -0
  36. data/lib/gooddata/models/data_result.rb +0 -1
  37. data/lib/gooddata/models/datawarehouse.rb +90 -0
  38. data/lib/gooddata/models/domain.rb +202 -76
  39. data/lib/gooddata/models/execution.rb +11 -0
  40. data/lib/gooddata/models/from_wire.rb +4 -4
  41. data/lib/gooddata/models/invitation.rb +0 -5
  42. data/lib/gooddata/models/membership.rb +121 -91
  43. data/lib/gooddata/models/metadata.rb +1 -2
  44. data/lib/gooddata/models/metadata/attribute.rb +7 -0
  45. data/lib/gooddata/models/metadata/dashboard.rb +1 -1
  46. data/lib/gooddata/models/metadata/dimension.rb +52 -0
  47. data/lib/gooddata/models/metadata/fact.rb +1 -1
  48. data/lib/gooddata/models/metadata/label.rb +21 -7
  49. data/lib/gooddata/models/metadata/metric.rb +1 -23
  50. data/lib/gooddata/models/metadata/report.rb +2 -2
  51. data/lib/gooddata/models/metadata/report_definition.rb +22 -2
  52. data/lib/gooddata/models/metadata/variable.rb +81 -0
  53. data/lib/gooddata/models/model.rb +2 -1
  54. data/lib/gooddata/models/process.rb +3 -4
  55. data/lib/gooddata/models/profile.rb +50 -82
  56. data/lib/gooddata/models/project.rb +170 -213
  57. data/lib/gooddata/models/project_blueprint.rb +14 -5
  58. data/lib/gooddata/models/project_creator.rb +2 -2
  59. data/lib/gooddata/models/schedule.rb +10 -8
  60. data/lib/gooddata/models/to_wire.rb +2 -2
  61. data/lib/gooddata/models/user_filters/mandatory_user_filter.rb +67 -0
  62. data/lib/gooddata/models/user_filters/user_filter.rb +96 -0
  63. data/lib/gooddata/models/user_filters/user_filter_builder.rb +409 -0
  64. data/lib/gooddata/{rest/connections/connections.rb → models/user_filters/user_filters.rb} +1 -0
  65. data/lib/gooddata/models/user_filters/variable_user_filter.rb +14 -0
  66. data/lib/gooddata/rest/client.rb +32 -21
  67. data/lib/gooddata/rest/connection.rb +283 -11
  68. data/lib/gooddata/rest/connections/rest_client_connection.rb +47 -109
  69. data/lib/gooddata/version.rb +1 -1
  70. data/spec/data/column_based_permissions.csv +7 -0
  71. data/spec/data/column_based_permissions2.csv +6 -0
  72. data/spec/data/hello_world_process/hello_world.rb +3 -1
  73. data/spec/data/line_based_permissions.csv +3 -0
  74. data/spec/data/m_n_model/blueprint.json +76 -0
  75. data/spec/data/{model_view.json → wire_models/model_view.json} +0 -0
  76. data/spec/data/wire_models/nu_model.json +3046 -0
  77. data/spec/helpers/process_helper.rb +2 -2
  78. data/spec/helpers/project_helper.rb +29 -0
  79. data/spec/helpers/schedule_helper.rb +1 -1
  80. data/spec/integration/command_datawarehouse_spec.rb +32 -0
  81. data/spec/integration/create_project_spec.rb +0 -1
  82. data/spec/integration/full_process_schedule_spec.rb +13 -5
  83. data/spec/integration/full_project_spec.rb +2 -1
  84. data/spec/integration/over_to_user_filters_spec.rb +92 -0
  85. data/spec/integration/project_spec.rb +233 -0
  86. data/spec/integration/rest_spec.rb +209 -0
  87. data/spec/integration/user_filters_spec.rb +193 -0
  88. data/spec/integration/variables_spec.rb +196 -0
  89. data/spec/unit/commands/command_auth_spec.rb +0 -7
  90. data/spec/unit/commands/command_process_spec.rb +10 -13
  91. data/spec/unit/core/connection_spec.rb +0 -19
  92. data/spec/unit/helpers/global_helpers_spec.rb +57 -0
  93. data/spec/unit/models/domain_spec.rb +80 -40
  94. data/spec/unit/models/from_wire_spec.rb +8 -1
  95. data/spec/unit/models/params_spec.rb +6 -6
  96. data/spec/unit/models/profile_spec.rb +23 -22
  97. data/spec/unit/models/project_blueprint_spec.rb +1 -6
  98. data/spec/unit/models/project_spec.rb +331 -286
  99. data/spec/unit/models/schedule_spec.rb +39 -14
  100. data/spec/unit/models/user_filters_spec.rb +89 -0
  101. data/spec/unit/models/variable_spec.rb +259 -0
  102. metadata +31 -7
  103. data/lib/gooddata/rest/connections/dummy_connection.rb +0 -52
  104. data/spec/unit/core/rest_spec.rb +0 -106
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.11
4
+ version: 0.6.12
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: 2014-12-09 00:00:00.000000000 Z
14
+ date: 2015-01-21 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rake
@@ -567,6 +567,7 @@ files:
567
567
  - README.md
568
568
  - Rakefile
569
569
  - TODO.md
570
+ - authors.sh
570
571
  - bin/gooddata
571
572
  - examples.rb
572
573
  - gooddata
@@ -610,6 +611,7 @@ files:
610
611
  - lib/gooddata/commands/base.rb
611
612
  - lib/gooddata/commands/commands.rb
612
613
  - lib/gooddata/commands/datasets.rb
614
+ - lib/gooddata/commands/datawarehouse.rb
613
615
  - lib/gooddata/commands/domain.rb
614
616
  - lib/gooddata/commands/process.rb
615
617
  - lib/gooddata/commands/project.rb
@@ -619,6 +621,7 @@ files:
619
621
  - lib/gooddata/commands/scaffold.rb
620
622
  - lib/gooddata/commands/user.rb
621
623
  - lib/gooddata/connection.rb
624
+ - lib/gooddata/core/connection.rb
622
625
  - lib/gooddata/core/core.rb
623
626
  - lib/gooddata/core/logging.rb
624
627
  - lib/gooddata/core/nil_logger.rb
@@ -632,6 +635,7 @@ files:
632
635
  - lib/gooddata/exceptions/exceptions.rb
633
636
  - lib/gooddata/exceptions/no_project_error.rb
634
637
  - lib/gooddata/exceptions/project_not_found.rb
638
+ - lib/gooddata/exceptions/user_in_different_domain.rb
635
639
  - lib/gooddata/exceptions/validation_error.rb
636
640
  - lib/gooddata/extensions/big_decimal.rb
637
641
  - lib/gooddata/extensions/enumerable.rb
@@ -653,6 +657,7 @@ files:
653
657
  - lib/gooddata/mixins/data_property_writer.rb
654
658
  - lib/gooddata/mixins/inspector.rb
655
659
  - lib/gooddata/mixins/is_attribute.rb
660
+ - lib/gooddata/mixins/is_dimension.rb
656
661
  - lib/gooddata/mixins/is_fact.rb
657
662
  - lib/gooddata/mixins/is_label.rb
658
663
  - lib/gooddata/mixins/links.rb
@@ -681,6 +686,7 @@ files:
681
686
  - lib/gooddata/mixins/timestamps.rb
682
687
  - lib/gooddata/models/dashboard_builder.rb
683
688
  - lib/gooddata/models/data_result.rb
689
+ - lib/gooddata/models/datawarehouse.rb
684
690
  - lib/gooddata/models/domain.rb
685
691
  - lib/gooddata/models/empty_result.rb
686
692
  - lib/gooddata/models/execution.rb
@@ -692,12 +698,14 @@ files:
692
698
  - lib/gooddata/models/metadata.rb
693
699
  - lib/gooddata/models/metadata/attribute.rb
694
700
  - lib/gooddata/models/metadata/dashboard.rb
701
+ - lib/gooddata/models/metadata/dimension.rb
695
702
  - lib/gooddata/models/metadata/fact.rb
696
703
  - lib/gooddata/models/metadata/label.rb
697
704
  - lib/gooddata/models/metadata/metadata.rb
698
705
  - lib/gooddata/models/metadata/metric.rb
699
706
  - lib/gooddata/models/metadata/report.rb
700
707
  - lib/gooddata/models/metadata/report_definition.rb
708
+ - lib/gooddata/models/metadata/variable.rb
701
709
  - lib/gooddata/models/model.rb
702
710
  - lib/gooddata/models/models.rb
703
711
  - lib/gooddata/models/module_constants.rb
@@ -716,11 +724,14 @@ files:
716
724
  - lib/gooddata/models/tab_builder.rb
717
725
  - lib/gooddata/models/to_manifest.rb
718
726
  - lib/gooddata/models/to_wire.rb
727
+ - lib/gooddata/models/user_filters/mandatory_user_filter.rb
728
+ - lib/gooddata/models/user_filters/user_filter.rb
729
+ - lib/gooddata/models/user_filters/user_filter_builder.rb
730
+ - lib/gooddata/models/user_filters/user_filters.rb
731
+ - lib/gooddata/models/user_filters/variable_user_filter.rb
719
732
  - lib/gooddata/rest/README.md
720
733
  - lib/gooddata/rest/client.rb
721
734
  - lib/gooddata/rest/connection.rb
722
- - lib/gooddata/rest/connections/connections.rb
723
- - lib/gooddata/rest/connections/dummy_connection.rb
724
735
  - lib/gooddata/rest/connections/rest_client_connection.rb
725
736
  - lib/gooddata/rest/object.rb
726
737
  - lib/gooddata/rest/object_factory.rb
@@ -746,6 +757,8 @@ files:
746
757
  - spec/data/cc/devel.prm
747
758
  - spec/data/cc/graph/graph.grf
748
759
  - spec/data/cc/workspace.prm
760
+ - spec/data/column_based_permissions.csv
761
+ - spec/data/column_based_permissions2.csv
749
762
  - spec/data/gd_gse_data_blueprint.json
750
763
  - spec/data/gd_gse_data_manifest.json
751
764
  - spec/data/gd_gse_data_model.json
@@ -753,9 +766,10 @@ files:
753
766
  - spec/data/gooddata_version_process/gooddata_version.zip
754
767
  - spec/data/hello_world_process/hello_world.rb
755
768
  - spec/data/hello_world_process/hello_world.zip
769
+ - spec/data/line_based_permissions.csv
770
+ - spec/data/m_n_model/blueprint.json
756
771
  - spec/data/manifest_test_project.json
757
772
  - spec/data/model_module.json
758
- - spec/data/model_view.json
759
773
  - spec/data/ruby_params_process/ruby_params.rb
760
774
  - spec/data/ruby_process/deep_files/deep_stuff.txt
761
775
  - spec/data/ruby_process/process.rb
@@ -764,6 +778,8 @@ files:
764
778
  - spec/data/test-ci-data.csv
765
779
  - spec/data/test_project_model_spec.json
766
780
  - spec/data/users.csv
781
+ - spec/data/wire_models/model_view.json
782
+ - spec/data/wire_models/nu_model.json
767
783
  - spec/data/wire_test_project.json
768
784
  - spec/helpers/blueprint_helper.rb
769
785
  - spec/helpers/cli_helper.rb
@@ -773,12 +789,18 @@ files:
773
789
  - spec/helpers/process_helper.rb
774
790
  - spec/helpers/project_helper.rb
775
791
  - spec/helpers/schedule_helper.rb
792
+ - spec/integration/command_datawarehouse_spec.rb
776
793
  - spec/integration/command_projects_spec.rb
777
794
  - spec/integration/create_from_template_spec.rb
778
795
  - spec/integration/create_project_spec.rb
779
796
  - spec/integration/full_process_schedule_spec.rb
780
797
  - spec/integration/full_project_spec.rb
798
+ - spec/integration/over_to_user_filters_spec.rb
781
799
  - spec/integration/partial_md_export_import_spec.rb
800
+ - spec/integration/project_spec.rb
801
+ - spec/integration/rest_spec.rb
802
+ - spec/integration/user_filters_spec.rb
803
+ - spec/integration/variables_spec.rb
782
804
  - spec/logging_in_logging_out_spec.rb
783
805
  - spec/spec_helper.rb
784
806
  - spec/unit/bricks/bricks_spec.rb
@@ -810,11 +832,11 @@ files:
810
832
  - spec/unit/core/logging_spec.rb
811
833
  - spec/unit/core/nil_logger_spec.rb
812
834
  - spec/unit/core/project_spec.rb
813
- - spec/unit/core/rest_spec.rb
814
835
  - spec/unit/data/guesser_spec.rb
815
836
  - spec/unit/extensions/hash_spec.rb
816
837
  - spec/unit/godzilla/goodzilla_spec.rb
817
838
  - spec/unit/helpers/csv_helper_spec.rb
839
+ - spec/unit/helpers/global_helpers_spec.rb
818
840
  - spec/unit/helpers_spec.rb
819
841
  - spec/unit/models/attribute_column_spec.rb
820
842
  - spec/unit/models/domain_spec.rb
@@ -834,6 +856,8 @@ files:
834
856
  - spec/unit/models/schema_builder_spec.rb
835
857
  - spec/unit/models/to_manifest_spec.rb
836
858
  - spec/unit/models/to_wire_spec.rb
859
+ - spec/unit/models/user_filters_spec.rb
860
+ - spec/unit/models/variable_spec.rb
837
861
  - spec/unit/rest/resource_spec.rb
838
862
  - tmp/.gitkeepme
839
863
  - yard-server.sh
@@ -857,7 +881,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
857
881
  version: '0'
858
882
  requirements: []
859
883
  rubyforge_project:
860
- rubygems_version: 2.1.9
884
+ rubygems_version: 2.4.5
861
885
  signing_key:
862
886
  specification_version: 4
863
887
  summary: A convenient Ruby wrapper around the GoodData RESTful API
@@ -1,52 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require_relative '../connection'
4
-
5
- module GoodData
6
- module Rest
7
- module Connections
8
- # Implementation of GoodData::Rest::Connection using https://rubygems.org/gems/rest-client
9
- class DummyConnection < GoodData::Rest::Connection
10
- def initialize(opts = {})
11
- super
12
- end
13
-
14
- # Connect using username and password
15
- def connect(_username, _password)
16
- end
17
-
18
- # Disconnect
19
- def disconnect
20
- end
21
-
22
- # HTTP DELETE
23
- #
24
- # @param uri [String] Target URI
25
- def delete(uri, _options = {})
26
- puts "DELETE #{uri}"
27
- end
28
-
29
- # HTTP GET
30
- #
31
- # @param uri [String] Target URI
32
- def get(uri, _options = {})
33
- puts "GET #{uri}"
34
- end
35
-
36
- # HTTP PUT
37
- #
38
- # @param uri [String] Target URI
39
- def put(uri, _data, _options = {})
40
- puts "PUT #{uri}"
41
- end
42
-
43
- # HTTP POST
44
- #
45
- # @param uri [String] Target URI
46
- def post(uri, _data, _options = {})
47
- puts "POST #{uri}"
48
- end
49
- end
50
- end
51
- end
52
- end
@@ -1,106 +0,0 @@
1
- # encoding: UTF-8
2
- require 'tempfile'
3
-
4
- require 'gooddata/core/rest'
5
-
6
- describe GoodData do
7
- before(:each) do
8
- @client = ConnectionHelper.create_default_connection
9
- @project = ProjectHelper.get_default_project(:client => @client)
10
- end
11
-
12
- after(:each) do
13
- @client.disconnect
14
- end
15
-
16
- describe '#get_project_webdav_path' do
17
- it 'Returns path' do
18
- @client.get_project_webdav_path('test-file.csv', :project => @project)
19
- end
20
- end
21
-
22
-
23
- def test_webdav_upload(params)
24
- GoodData.with_project(@project, :client => @client) do
25
- dir = Time.now.to_i.to_s
26
-
27
- path = 'spec/data/test-ci-data.csv'
28
-
29
- if params[:special_chars]
30
- source_file = Tempfile.new('abc-16:55:29+ha#he.csv')
31
- FileUtils.cp(path, source_file)
32
- path = source_file.path
33
- end
34
-
35
- path = File.expand_path(path) if params[:absolute_path]
36
-
37
- # upload it there
38
- upload_method = GoodData.method(params[:upload_method])
39
- upload_method.call(path, directory: dir)
40
-
41
- # download it from there
42
- file = Tempfile.new('foo.csv')
43
-
44
- download_method = GoodData.method(params[:download_method])
45
- download_method.call(File.basename(path), file, directory: dir)
46
-
47
- expect(file.size).to be > 0
48
- end
49
-
50
- end
51
- describe '#upload_to_project_webdav' do
52
- it 'Uploads file with relative path to a dir' do
53
- test_webdav_upload(
54
- upload_method: 'upload_to_project_webdav',
55
- download_method: 'download_from_project_webdav'
56
- )
57
- end
58
-
59
- it 'Uploads file with absolute path to a dir' do
60
- test_webdav_upload(
61
- absolute_path: true,
62
- upload_method: 'upload_to_project_webdav',
63
- download_method: 'download_from_project_webdav'
64
- )
65
- end
66
-
67
- it 'Uploads file with special chars in filename' do
68
- test_webdav_upload(
69
- special_chars: true,
70
- upload_method: 'upload_to_project_webdav',
71
- download_method: 'download_from_project_webdav'
72
- )
73
- end
74
- end
75
-
76
- describe '#upload_to_user_webdav' do
77
- it 'Uploads file with relative path to a dir' do
78
- test_webdav_upload(
79
- upload_method: 'upload_to_user_webdav',
80
- download_method: 'download_from_user_webdav'
81
- )
82
- end
83
-
84
- it 'Uploads file with absolute path to a dir' do
85
- test_webdav_upload(
86
- absolute_path: true,
87
- upload_method: 'upload_to_user_webdav',
88
- download_method: 'download_from_user_webdav'
89
- )
90
- end
91
- it 'Uploads file with special chars in filename' do
92
- test_webdav_upload(
93
- special_chars: true,
94
- upload_method: 'upload_to_user_webdav',
95
- download_method: 'download_from_user_webdav'
96
- )
97
- end
98
- end
99
-
100
-
101
- describe '#get_user_webdav_path' do
102
- it 'Gets the path' do
103
- @client.get_user_webdav_path('test.csv', :project => @project)
104
- end
105
- end
106
- end