gooddata 0.6.11 → 0.6.12

Sign up to get free protection for your applications and to get access to all the features.
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