gooddata 0.6.49 → 0.6.50

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 (390) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -4
  3. data/CLI.md +0 -4
  4. data/DEPENDENCIES.md +0 -8
  5. data/Dockerfile.jruby +19 -0
  6. data/Dockerfile.ruby +19 -0
  7. data/LICENSE +2 -2
  8. data/LICENSE.rb +1 -1
  9. data/Rakefile +1 -1
  10. data/gooddata.gemspec +29 -28
  11. data/lib/gooddata.rb +2 -1
  12. data/lib/gooddata/app/app.rb +1 -1
  13. data/lib/gooddata/bricks/base_downloader.rb +1 -1
  14. data/lib/gooddata/bricks/brick.rb +3 -4
  15. data/lib/gooddata/bricks/bricks.rb +3 -1
  16. data/lib/gooddata/bricks/middleware/aws_middleware.rb +6 -8
  17. data/lib/gooddata/bricks/middleware/base_middleware.rb +2 -1
  18. data/lib/gooddata/bricks/middleware/bench_middleware.rb +2 -1
  19. data/lib/gooddata/bricks/middleware/bulk_salesforce_middleware.rb +3 -3
  20. data/lib/gooddata/bricks/middleware/decode_params_middleware.rb +3 -2
  21. data/lib/gooddata/bricks/middleware/dwh_middleware.rb +28 -0
  22. data/lib/gooddata/bricks/middleware/fs_download_middleware.rb +2 -2
  23. data/lib/gooddata/bricks/middleware/fs_upload_middleware.rb +2 -2
  24. data/lib/gooddata/bricks/middleware/gooddata_middleware.rb +84 -21
  25. data/lib/gooddata/bricks/middleware/logger_middleware.rb +1 -1
  26. data/lib/gooddata/bricks/middleware/middleware.rb +1 -1
  27. data/lib/gooddata/bricks/middleware/params_inspect_middleware.rb +21 -0
  28. data/lib/gooddata/bricks/middleware/restforce_middleware.rb +26 -26
  29. data/lib/gooddata/bricks/middleware/stdout_middleware.rb +1 -1
  30. data/lib/gooddata/bricks/middleware/twitter_middleware.rb +1 -1
  31. data/lib/gooddata/bricks/middleware/undot_params_middleware.rb +1 -1
  32. data/lib/gooddata/bricks/pipeline.rb +6 -13
  33. data/lib/gooddata/bricks/utils.rb +3 -3
  34. data/lib/gooddata/cli/cli.rb +1 -1
  35. data/lib/gooddata/cli/commands/auth_cmd.rb +1 -1
  36. data/lib/gooddata/cli/commands/domain_cmd.rb +1 -1
  37. data/lib/gooddata/cli/commands/project_cmd.rb +1 -18
  38. data/lib/gooddata/cli/hooks.rb +1 -2
  39. data/lib/gooddata/cli/shared.rb +1 -1
  40. data/lib/gooddata/cli/terminal.rb +1 -1
  41. data/lib/gooddata/client.rb +1 -1
  42. data/lib/gooddata/commands/api.rb +1 -1
  43. data/lib/gooddata/commands/auth.rb +1 -1
  44. data/lib/gooddata/commands/base.rb +1 -1
  45. data/lib/gooddata/commands/commands.rb +1 -1
  46. data/lib/gooddata/commands/datasets.rb +1 -1
  47. data/lib/gooddata/commands/datawarehouse.rb +1 -1
  48. data/lib/gooddata/commands/domain.rb +1 -1
  49. data/lib/gooddata/commands/process.rb +1 -1
  50. data/lib/gooddata/commands/project.rb +2 -31
  51. data/lib/gooddata/commands/projects.rb +1 -1
  52. data/lib/gooddata/commands/role.rb +1 -1
  53. data/lib/gooddata/commands/runners.rb +1 -1
  54. data/lib/gooddata/commands/scaffold.rb +1 -1
  55. data/lib/gooddata/commands/user.rb +1 -1
  56. data/lib/gooddata/connection.rb +1 -1
  57. data/lib/gooddata/core/core.rb +1 -1
  58. data/lib/gooddata/core/logging.rb +1 -1
  59. data/lib/gooddata/core/nil_logger.rb +1 -1
  60. data/lib/gooddata/core/project.rb +1 -1
  61. data/lib/gooddata/core/rest.rb +1 -1
  62. data/lib/gooddata/core/user.rb +1 -1
  63. data/lib/gooddata/data/data.rb +1 -1
  64. data/lib/gooddata/data/guesser.rb +1 -1
  65. data/lib/gooddata/exceptions/attr_element_not_found.rb +1 -1
  66. data/lib/gooddata/exceptions/command_failed.rb +1 -1
  67. data/lib/gooddata/exceptions/exceptions.rb +1 -1
  68. data/lib/gooddata/exceptions/execution_limit_exceeded.rb +1 -1
  69. data/lib/gooddata/exceptions/export_clone.rb +4 -0
  70. data/lib/gooddata/exceptions/filter_maqlization.rb +1 -1
  71. data/lib/gooddata/exceptions/import_clone.rb +4 -0
  72. data/lib/gooddata/exceptions/malformed_user.rb +1 -1
  73. data/lib/gooddata/exceptions/maql_execution.rb +1 -1
  74. data/lib/gooddata/exceptions/no_project_error.rb +1 -1
  75. data/lib/gooddata/exceptions/object_migration.rb +1 -1
  76. data/lib/gooddata/exceptions/project_not_found.rb +1 -1
  77. data/lib/gooddata/exceptions/segment_not_empty.rb +1 -1
  78. data/lib/gooddata/exceptions/uncomputable_report.rb +1 -1
  79. data/lib/gooddata/exceptions/user_in_different_domain.rb +1 -1
  80. data/lib/gooddata/exceptions/validation_error.rb +1 -1
  81. data/lib/gooddata/extensions/big_decimal.rb +1 -1
  82. data/lib/gooddata/extensions/class.rb +11 -0
  83. data/lib/gooddata/extensions/enumerable.rb +1 -1
  84. data/lib/gooddata/extensions/extensions.rb +1 -1
  85. data/lib/gooddata/extensions/false.rb +9 -1
  86. data/lib/gooddata/extensions/hash.rb +12 -1
  87. data/lib/gooddata/extensions/integer.rb +5 -0
  88. data/lib/gooddata/extensions/nil.rb +5 -1
  89. data/lib/gooddata/extensions/numeric.rb +1 -1
  90. data/lib/gooddata/extensions/object.rb +5 -1
  91. data/lib/gooddata/extensions/symbol.rb +1 -1
  92. data/lib/gooddata/extensions/true.rb +9 -1
  93. data/lib/gooddata/extract.rb +1 -1
  94. data/lib/gooddata/goodzilla/goodzilla.rb +1 -1
  95. data/lib/gooddata/helpers/auth_helpers.rb +1 -1
  96. data/lib/gooddata/helpers/csv_helper.rb +1 -1
  97. data/lib/gooddata/helpers/data_helper.rb +19 -10
  98. data/lib/gooddata/helpers/erb_helper.rb +23 -0
  99. data/lib/gooddata/helpers/global_helpers.rb +5 -73
  100. data/lib/gooddata/helpers/global_helpers_params.rb +73 -7
  101. data/lib/gooddata/helpers/helpers.rb +1 -1
  102. data/lib/gooddata/lcm/actions/actions.rb +12 -0
  103. data/lib/gooddata/lcm/actions/associate_clients.rb +46 -0
  104. data/lib/gooddata/lcm/actions/base_action.rb +23 -0
  105. data/lib/gooddata/lcm/actions/collect_clients.rb +89 -0
  106. data/lib/gooddata/lcm/actions/collect_segment_clients.rb +103 -0
  107. data/lib/gooddata/lcm/actions/collect_segments.rb +59 -0
  108. data/lib/gooddata/lcm/actions/create_segment_masters.rb +167 -0
  109. data/lib/gooddata/lcm/actions/ensure_release_table.rb +56 -0
  110. data/lib/gooddata/lcm/actions/ensure_segments.rb +35 -0
  111. data/lib/gooddata/lcm/actions/ensure_technical_users_domain.rb +66 -0
  112. data/lib/gooddata/lcm/actions/ensure_technical_users_project.rb +68 -0
  113. data/lib/gooddata/lcm/actions/ensure_titles.rb +54 -0
  114. data/lib/gooddata/lcm/actions/hello_world.rb +44 -0
  115. data/lib/gooddata/lcm/actions/print_actions.rb +61 -0
  116. data/lib/gooddata/lcm/actions/print_modes.rb +72 -0
  117. data/lib/gooddata/lcm/actions/print_types.rb +55 -0
  118. data/lib/gooddata/lcm/actions/provision_clients.rb +80 -0
  119. data/lib/gooddata/lcm/actions/purge_clients.rb +78 -0
  120. data/lib/gooddata/lcm/actions/segments_filter.rb +50 -0
  121. data/lib/gooddata/lcm/actions/synchronize_attribute_drillpaths.rb +60 -0
  122. data/lib/gooddata/lcm/actions/synchronize_clients.rb +87 -0
  123. data/lib/gooddata/lcm/actions/synchronize_color_palette.rb +59 -0
  124. data/lib/gooddata/lcm/actions/synchronize_label_types.rb +61 -0
  125. data/lib/gooddata/lcm/actions/synchronize_ldm.rb +64 -0
  126. data/lib/gooddata/lcm/actions/synchronize_meta.rb +55 -0
  127. data/lib/gooddata/lcm/actions/synchronize_new_segments.rb +55 -0
  128. data/lib/gooddata/lcm/actions/synchronize_processes.rb +66 -0
  129. data/lib/gooddata/lcm/actions/synchronize_schedules.rb +81 -0
  130. data/lib/gooddata/lcm/actions/update_release_table.rb +80 -0
  131. data/lib/gooddata/lcm/data/create_lcm_release.sql.erb +5 -0
  132. data/lib/gooddata/lcm/data/insert_into_lcm_release.sql.erb +11 -0
  133. data/lib/gooddata/lcm/data/select_from_lcm_release.sql.erb +8 -0
  134. data/lib/gooddata/lcm/data/update_lcm_release.sql.erb +7 -0
  135. data/lib/gooddata/lcm/dsl/dsl.rb +50 -0
  136. data/lib/gooddata/lcm/dsl/params_dsl.rb +61 -0
  137. data/lib/gooddata/lcm/dsl/type_dsl.rb +61 -0
  138. data/lib/gooddata/lcm/helpers/check_helper.rb +37 -0
  139. data/lib/gooddata/lcm/helpers/helpers.rb +12 -0
  140. data/lib/gooddata/lcm/lcm.rb +161 -20
  141. data/lib/gooddata/lcm/lcm2.rb +260 -0
  142. data/lib/gooddata/lcm/types/base_type.rb +29 -0
  143. data/lib/gooddata/lcm/types/class/ads_client.rb +35 -0
  144. data/lib/gooddata/lcm/types/class/class.rb +21 -0
  145. data/lib/gooddata/lcm/types/class/gd_client.rb +35 -0
  146. data/lib/gooddata/lcm/types/class/types.rb +12 -0
  147. data/lib/gooddata/lcm/types/complex/complex.rb +33 -0
  148. data/lib/gooddata/lcm/types/complex/release_query.rb +35 -0
  149. data/lib/gooddata/lcm/types/complex/segment.rb +37 -0
  150. data/lib/gooddata/lcm/types/complex/synchronization_info.rb +32 -0
  151. data/lib/gooddata/lcm/types/complex/tokens.rb +31 -0
  152. data/lib/gooddata/lcm/types/complex/types.rb +12 -0
  153. data/lib/gooddata/lcm/types/complex/update_preference.rb +32 -0
  154. data/lib/gooddata/lcm/types/param.rb +16 -0
  155. data/lib/gooddata/lcm/types/scalar/bool.rb +22 -0
  156. data/lib/gooddata/lcm/types/scalar/hash.rb +22 -0
  157. data/lib/gooddata/lcm/types/scalar/integer.rb +22 -0
  158. data/lib/gooddata/lcm/types/scalar/object.rb +22 -0
  159. data/lib/gooddata/lcm/types/scalar/string.rb +22 -0
  160. data/lib/gooddata/lcm/types/scalar/types.rb +12 -0
  161. data/lib/gooddata/lcm/types/special/array.rb +35 -0
  162. data/lib/gooddata/lcm/types/special/enum.rb +17 -0
  163. data/lib/gooddata/lcm/types/special/types.rb +12 -0
  164. data/lib/gooddata/lcm/types/types.rb +12 -0
  165. data/lib/gooddata/mixins/author.rb +1 -1
  166. data/lib/gooddata/mixins/content_getter.rb +1 -1
  167. data/lib/gooddata/mixins/content_property_reader.rb +1 -1
  168. data/lib/gooddata/mixins/content_property_writer.rb +1 -1
  169. data/lib/gooddata/mixins/contributor.rb +1 -1
  170. data/lib/gooddata/mixins/data_getter.rb +1 -1
  171. data/lib/gooddata/mixins/data_property_reader.rb +1 -1
  172. data/lib/gooddata/mixins/data_property_writer.rb +1 -1
  173. data/lib/gooddata/mixins/inspector.rb +1 -1
  174. data/lib/gooddata/mixins/is_attribute.rb +1 -1
  175. data/lib/gooddata/mixins/is_dimension.rb +1 -1
  176. data/lib/gooddata/mixins/is_fact.rb +1 -1
  177. data/lib/gooddata/mixins/is_label.rb +1 -1
  178. data/lib/gooddata/mixins/links.rb +1 -1
  179. data/lib/gooddata/mixins/md_finders.rb +1 -1
  180. data/lib/gooddata/mixins/md_grantees.rb +1 -1
  181. data/lib/gooddata/mixins/md_id_to_uri.rb +9 -3
  182. data/lib/gooddata/mixins/md_json.rb +1 -1
  183. data/lib/gooddata/mixins/md_lock.rb +1 -1
  184. data/lib/gooddata/mixins/md_object_id.rb +1 -1
  185. data/lib/gooddata/mixins/md_object_indexer.rb +1 -1
  186. data/lib/gooddata/mixins/md_object_query.rb +1 -1
  187. data/lib/gooddata/mixins/md_relations.rb +1 -1
  188. data/lib/gooddata/mixins/meta_getter.rb +1 -1
  189. data/lib/gooddata/mixins/meta_property_reader.rb +1 -1
  190. data/lib/gooddata/mixins/meta_property_writer.rb +1 -1
  191. data/lib/gooddata/mixins/mixins.rb +1 -1
  192. data/lib/gooddata/mixins/not_attribute.rb +1 -1
  193. data/lib/gooddata/mixins/not_exportable.rb +1 -1
  194. data/lib/gooddata/mixins/not_fact.rb +1 -1
  195. data/lib/gooddata/mixins/not_group.rb +1 -1
  196. data/lib/gooddata/mixins/not_label.rb +1 -1
  197. data/lib/gooddata/mixins/not_metric.rb +1 -1
  198. data/lib/gooddata/mixins/obj_id.rb +1 -1
  199. data/lib/gooddata/mixins/rest_getters.rb +1 -1
  200. data/lib/gooddata/mixins/rest_resource.rb +1 -1
  201. data/lib/gooddata/mixins/root_key_getter.rb +1 -1
  202. data/lib/gooddata/mixins/root_key_setter.rb +1 -1
  203. data/lib/gooddata/mixins/timestamps.rb +1 -1
  204. data/lib/gooddata/models/ads_output_stage.rb +85 -0
  205. data/lib/gooddata/models/automated_data_distribution.rb +36 -0
  206. data/lib/gooddata/models/blueprint/anchor_field.rb +4 -3
  207. data/lib/gooddata/models/blueprint/attribute_field.rb +18 -2
  208. data/lib/gooddata/models/blueprint/blueprint.rb +1 -1
  209. data/lib/gooddata/models/blueprint/blueprint_field.rb +1 -1
  210. data/lib/gooddata/models/blueprint/dashboard_builder.rb +1 -1
  211. data/lib/gooddata/models/blueprint/dataset_blueprint.rb +6 -1
  212. data/lib/gooddata/models/blueprint/date_dimension.rb +1 -1
  213. data/lib/gooddata/models/blueprint/fact_field.rb +1 -1
  214. data/lib/gooddata/models/blueprint/label_field.rb +5 -1
  215. data/lib/gooddata/models/blueprint/project_blueprint.rb +1 -1
  216. data/lib/gooddata/models/blueprint/project_builder.rb +1 -1
  217. data/lib/gooddata/models/blueprint/reference_field.rb +1 -1
  218. data/lib/gooddata/models/blueprint/schema_blueprint.rb +1 -1
  219. data/lib/gooddata/models/blueprint/schema_builder.rb +1 -1
  220. data/lib/gooddata/models/blueprint/to_manifest.rb +7 -3
  221. data/lib/gooddata/models/blueprint/to_wire.rb +12 -1
  222. data/lib/gooddata/models/channel_configuration.rb +112 -0
  223. data/lib/gooddata/models/client.rb +42 -6
  224. data/lib/gooddata/models/client_synchronization_result.rb +1 -1
  225. data/lib/gooddata/models/client_synchronization_result_details.rb +1 -1
  226. data/lib/gooddata/models/datawarehouse.rb +25 -3
  227. data/lib/gooddata/models/domain.rb +29 -4
  228. data/lib/gooddata/models/execution.rb +1 -1
  229. data/lib/gooddata/models/execution_detail.rb +1 -1
  230. data/lib/gooddata/models/from_wire.rb +8 -1
  231. data/lib/gooddata/models/invitation.rb +1 -1
  232. data/lib/gooddata/models/links.rb +1 -1
  233. data/lib/gooddata/models/membership.rb +1 -1
  234. data/lib/gooddata/models/metadata.rb +3 -2
  235. data/lib/gooddata/models/metadata/attribute.rb +7 -1
  236. data/lib/gooddata/models/metadata/dashboard.rb +3 -3
  237. data/lib/gooddata/models/metadata/dashboard/dashboard_item.rb +1 -1
  238. data/lib/gooddata/models/metadata/dashboard/filter_apply_item.rb +2 -2
  239. data/lib/gooddata/models/metadata/dashboard/filter_item.rb +2 -2
  240. data/lib/gooddata/models/metadata/dashboard/geo_chart_item.rb +2 -2
  241. data/lib/gooddata/models/metadata/dashboard/headline_item.rb +2 -2
  242. data/lib/gooddata/models/metadata/dashboard/iframe_item.rb +2 -2
  243. data/lib/gooddata/models/metadata/dashboard/report_item.rb +2 -2
  244. data/lib/gooddata/models/metadata/dashboard/text_item.rb +2 -2
  245. data/lib/gooddata/models/metadata/dashboard_tab.rb +2 -2
  246. data/lib/gooddata/models/metadata/dataset.rb +1 -1
  247. data/lib/gooddata/models/metadata/dimension.rb +1 -1
  248. data/lib/gooddata/models/metadata/fact.rb +1 -1
  249. data/lib/gooddata/models/metadata/folder.rb +1 -1
  250. data/lib/gooddata/models/metadata/label.rb +1 -1
  251. data/lib/gooddata/models/metadata/metadata.rb +1 -1
  252. data/lib/gooddata/models/metadata/metric.rb +1 -1
  253. data/lib/gooddata/models/metadata/report.rb +1 -1
  254. data/lib/gooddata/models/metadata/report_definition.rb +1 -1
  255. data/lib/gooddata/models/metadata/scheduled_mail.rb +2 -2
  256. data/lib/gooddata/models/metadata/scheduled_mail/dashboard_attachment.rb +1 -1
  257. data/lib/gooddata/models/metadata/scheduled_mail/report_attachment.rb +1 -1
  258. data/lib/gooddata/models/metadata/variable.rb +1 -1
  259. data/lib/gooddata/models/model.rb +1 -1
  260. data/lib/gooddata/models/models.rb +1 -1
  261. data/lib/gooddata/models/module_constants.rb +1 -1
  262. data/lib/gooddata/models/notification_rule.rb +113 -0
  263. data/lib/gooddata/models/process.rb +10 -3
  264. data/lib/gooddata/models/profile.rb +9 -1
  265. data/lib/gooddata/models/project.rb +248 -50
  266. data/lib/gooddata/models/project_creator.rb +2 -2
  267. data/lib/gooddata/models/project_metadata.rb +1 -1
  268. data/lib/gooddata/models/project_role.rb +1 -1
  269. data/lib/gooddata/models/report_data_result.rb +1 -1
  270. data/lib/gooddata/models/schedule.rb +49 -13
  271. data/lib/gooddata/models/segment.rb +3 -3
  272. data/lib/gooddata/models/style_setting.rb +71 -0
  273. data/lib/gooddata/models/subscription.rb +181 -0
  274. data/lib/gooddata/models/tab_builder.rb +1 -1
  275. data/lib/gooddata/models/user_filters/mandatory_user_filter.rb +1 -1
  276. data/lib/gooddata/models/user_filters/user_filter.rb +1 -1
  277. data/lib/gooddata/models/user_filters/user_filter_builder.rb +11 -5
  278. data/lib/gooddata/models/user_filters/user_filters.rb +1 -1
  279. data/lib/gooddata/models/user_filters/variable_user_filter.rb +1 -1
  280. data/lib/gooddata/models/user_group.rb +19 -12
  281. data/lib/gooddata/rest/client.rb +9 -1
  282. data/lib/gooddata/rest/connection.rb +18 -9
  283. data/lib/gooddata/rest/object.rb +1 -1
  284. data/lib/gooddata/rest/object_factory.rb +1 -1
  285. data/lib/gooddata/rest/resource.rb +1 -1
  286. data/lib/gooddata/rest/rest.rb +1 -1
  287. data/lib/gooddata/version.rb +2 -2
  288. data/spec/.rubocop.yml +16 -0
  289. data/spec/bricks/bricks_spec.rb +13 -15
  290. data/spec/data/blueprints/attribute_sort_order_blueprint.json +72 -0
  291. data/spec/data/gooddata_version_process/gooddata_version.rb +1 -1
  292. data/spec/data/hello_world_process/hello_world.rb +2 -2
  293. data/spec/data/ruby_params_process/ruby_params.rb +1 -1
  294. data/spec/data/ruby_process/process.rb +2 -2
  295. data/spec/data/wire_models/attribute_sort_by_model.json +73 -0
  296. data/spec/environment/default.rb +14 -13
  297. data/spec/environment/develop.rb +26 -11
  298. data/spec/environment/environment.rb +2 -1
  299. data/spec/environment/hotfix.rb +15 -7
  300. data/spec/environment/production.rb +6 -14
  301. data/spec/environment/staging.rb +9 -10
  302. data/spec/helpers/blueprint_helper.rb +11 -10
  303. data/spec/helpers/cli_helper.rb +26 -24
  304. data/spec/helpers/connection_helper.rb +28 -26
  305. data/spec/helpers/crypto_helper.rb +8 -6
  306. data/spec/helpers/csv_helper.rb +7 -5
  307. data/spec/helpers/process_helper.rb +13 -11
  308. data/spec/helpers/project_helper.rb +36 -34
  309. data/spec/helpers/schedule_helper.rb +13 -11
  310. data/spec/helpers/spec_helper.rb +8 -6
  311. data/spec/integration/ads_output_stage_spec.rb +55 -0
  312. data/spec/integration/blueprint_updates_spec.rb +22 -16
  313. data/spec/integration/blueprint_with_grain_spec.rb +5 -3
  314. data/spec/integration/channel_configuration_spec.rb +67 -0
  315. data/spec/integration/clients_spec.rb +31 -22
  316. data/spec/integration/command_datawarehouse_spec.rb +4 -4
  317. data/spec/integration/command_projects_spec.rb +6 -6
  318. data/spec/integration/create_from_template_spec.rb +4 -3
  319. data/spec/integration/create_project_spec.rb +7 -4
  320. data/spec/integration/date_dim_switch_spec.rb +25 -28
  321. data/spec/integration/deprecated_load_spec.rb +11 -9
  322. data/spec/integration/full_process_schedule_spec.rb +82 -13
  323. data/spec/integration/full_project_spec.rb +67 -45
  324. data/spec/integration/lcm_spec.rb +41 -0
  325. data/spec/integration/over_to_user_filters_spec.rb +14 -10
  326. data/spec/integration/partial_md_export_import_spec.rb +3 -4
  327. data/spec/integration/project_spec.rb +101 -42
  328. data/spec/integration/rest_spec.rb +5 -4
  329. data/spec/integration/schedule_spec.rb +28 -39
  330. data/spec/integration/segments_spec.rb +42 -31
  331. data/spec/integration/subscription_spec.rb +63 -0
  332. data/spec/integration/user_filters_spec.rb +49 -39
  333. data/spec/integration/user_group_spec.rb +25 -5
  334. data/spec/integration/variables_spec.rb +34 -32
  335. data/spec/logging_in_logging_out_spec.rb +6 -8
  336. data/spec/spec_helper.rb +3 -3
  337. data/spec/unit/bricks/bricks_spec.rb +3 -4
  338. data/spec/unit/bricks/middleware/aws_middelware_spec.rb +8 -15
  339. data/spec/unit/bricks/middleware/bench_middleware_spec.rb +2 -2
  340. data/spec/unit/bricks/middleware/bulk_salesforce_middleware_spec.rb +2 -2
  341. data/spec/unit/bricks/middleware/gooddata_middleware_spec.rb +2 -2
  342. data/spec/unit/bricks/middleware/logger_middleware_spec.rb +2 -2
  343. data/spec/unit/bricks/middleware/restforce_middleware_spec.rb +3 -3
  344. data/spec/unit/bricks/middleware/stdout_middleware_spec.rb +3 -3
  345. data/spec/unit/bricks/middleware/twitter_middleware_spec.rb +3 -3
  346. data/spec/unit/cli/cli_spec.rb +3 -3
  347. data/spec/unit/cli/commands/cmd_auth_spec.rb +2 -2
  348. data/spec/unit/commands/command_projects_spec.rb +3 -3
  349. data/spec/unit/core/connection_spec.rb +3 -4
  350. data/spec/unit/core/logging_spec.rb +2 -5
  351. data/spec/unit/core/nil_logger_spec.rb +2 -2
  352. data/spec/unit/core/project_spec.rb +4 -4
  353. data/spec/unit/extensions/hash_spec.rb +3 -4
  354. data/spec/unit/godzilla/goodzilla_spec.rb +22 -26
  355. data/spec/unit/helpers/csv_helper_spec.rb +3 -3
  356. data/spec/unit/helpers/data_helper_spec.rb +6 -18
  357. data/spec/unit/helpers/global_helpers_spec.rb +112 -28
  358. data/spec/unit/helpers_spec.rb +139 -2
  359. data/spec/unit/models/blueprint/attribute_sort_by_spec.rb +20 -0
  360. data/spec/unit/models/blueprint/attributes_spec.rb +1 -2
  361. data/spec/unit/models/blueprint/dataset_spec.rb +2 -3
  362. data/spec/unit/models/blueprint/labels_spec.rb +1 -2
  363. data/spec/unit/models/blueprint/project_blueprint_spec.rb +34 -35
  364. data/spec/unit/models/blueprint/reference_spec.rb +1 -2
  365. data/spec/unit/models/blueprint/schema_builder_spec.rb +5 -7
  366. data/spec/unit/models/blueprint/to_wire_spec.rb +76 -55
  367. data/spec/unit/models/domain_spec.rb +4 -5
  368. data/spec/unit/models/execution_spec.rb +16 -15
  369. data/spec/unit/models/from_wire_spec.rb +24 -19
  370. data/spec/unit/models/invitation_spec.rb +1 -1
  371. data/spec/unit/models/membership_spec.rb +36 -41
  372. data/spec/unit/models/metadata_spec.rb +20 -18
  373. data/spec/unit/models/metric_spec.rb +67 -55
  374. data/spec/unit/models/model_spec.rb +32 -37
  375. data/spec/unit/models/params_spec.rb +1 -1
  376. data/spec/unit/models/profile_spec.rb +40 -45
  377. data/spec/unit/models/project_creator_spec.rb +27 -29
  378. data/spec/unit/models/project_role_spec.rb +1 -1
  379. data/spec/unit/models/project_spec.rb +65 -2
  380. data/spec/unit/models/report_result_data_spec.rb +7 -12
  381. data/spec/unit/models/schedule_spec.rb +71 -35
  382. data/spec/unit/models/to_manifest_spec.rb +69 -4
  383. data/spec/unit/models/unit_project_spec.rb +12 -12
  384. data/spec/unit/models/user_filters_spec.rb +40 -40
  385. data/spec/unit/models/variable_spec.rb +108 -93
  386. data/spec/unit/rest/polling_spec.rb +7 -7
  387. data/spec/unit/rest/resource_spec.rb +2 -2
  388. metadata +145 -228
  389. data/spec/environment/release.rb +0 -21
  390. data/spec/environment/staging_3.rb +0 -36
@@ -1,6 +1,6 @@
1
1
  # encoding: UTF-8
2
2
  #
3
- # Copyright (c) 2010-2015 GoodData Corporation. All rights reserved.
3
+ # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
4
  # This source code is licensed under the BSD-style license found in the
5
5
  # LICENSE file in the root directory of this source tree.
6
6
 
@@ -37,7 +37,8 @@ describe 'Create project using GoodData client', :constraint => 'slow' do
37
37
  ['01/01/2011', 'thomas', '2'],
38
38
  ['01/01/2011', 'jim', '2'],
39
39
  ['01/01/2011', 'peter', '2'],
40
- ['01/01/2011', 'john', '3']]
40
+ ['01/01/2011', 'john', '3']
41
+ ]
41
42
  @project.upload(data, @blueprint, 'dataset.users')
42
43
 
43
44
  expect(@project.blueprint.datasets.first.count(@project)).to eq 4
@@ -64,7 +65,8 @@ describe 'Create project using GoodData client', :constraint => 'slow' do
64
65
  ['01/01/2011', 'thomas', '2'],
65
66
  ['01/01/2011', 'jim', '2'],
66
67
  ['01/01/2011', 'peter', '2'],
67
- ['01/01/2011', 'john', '3']]
68
+ ['01/01/2011', 'john', '3']
69
+ ]
68
70
  @project.upload(data, @blueprint, 'dataset.users')
69
71
 
70
72
  expect(@project.blueprint.datasets.first.count(@project)).to eq 5
@@ -0,0 +1,67 @@
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
+
7
+ require 'gooddata'
8
+
9
+ describe GoodData::ChannelConfiguration, :constraint => 'slow' do
10
+ before(:all) do
11
+ @client = ConnectionHelper.create_default_connection
12
+ end
13
+
14
+ after(:all) do
15
+ @client.disconnect
16
+ end
17
+
18
+ it 'should be able to create a channel' do
19
+ begin
20
+ channel = GoodData::ChannelConfiguration.create(client: @client)
21
+ expect(channel.to).to eq ConnectionHelper::DEFAULT_USERNAME
22
+ expect(channel.title).to eq ConnectionHelper::DEFAULT_USERNAME
23
+ ensure
24
+ channel && channel.delete
25
+ end
26
+ end
27
+
28
+ it 'should not create dubplicate channel' do
29
+ begin
30
+ channel = GoodData::ChannelConfiguration.create(client: @client)
31
+ GoodData::ChannelConfiguration.create(client: @client, title: 'another channel')
32
+ expect(GoodData::ChannelConfiguration.all).to eq [channel]
33
+ ensure
34
+ channel && channel.delete
35
+ end
36
+ end
37
+
38
+ it 'should be able to edit a channel' do
39
+ begin
40
+ channel = GoodData::ChannelConfiguration.create(client: @client, title: 'my channel')
41
+ expect(channel.to).to eq ConnectionHelper::DEFAULT_USERNAME
42
+ expect(channel.title).to eq 'my channel'
43
+
44
+ channel.title = 'New title'
45
+ channel.save
46
+
47
+ expect(GoodData::ChannelConfiguration[channel.channel_id].title).to eq 'New title'
48
+ ensure
49
+ channel && channel.delete
50
+ end
51
+ end
52
+
53
+ it 'should be able to list all channels' do
54
+ begin
55
+ expect(GoodData::ChannelConfiguration.all).to eq []
56
+ channel = GoodData::ChannelConfiguration.create(client: @client)
57
+ expect(GoodData::ChannelConfiguration.all).to eq [channel]
58
+ ensure
59
+ channel && channel.delete
60
+ end
61
+ end
62
+
63
+ it 'should be able to delete a channel' do
64
+ channel = GoodData::ChannelConfiguration.create(client: @client)
65
+ channel.delete
66
+ end
67
+ end
@@ -1,6 +1,6 @@
1
1
  # encoding: UTF-8
2
2
  #
3
- # Copyright (c) 2010-2015 GoodData Corporation. All rights reserved.
3
+ # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
4
  # This source code is licensed under the BSD-style license found in the
5
5
  # LICENSE file in the root directory of this source tree.
6
6
 
@@ -8,12 +8,10 @@ require 'gooddata/models/segment'
8
8
  require 'securerandom'
9
9
 
10
10
  describe GoodData::Client do
11
- TOKEN = 'mustangs'
12
-
13
11
  before(:all) do
14
- @client = GoodData.connect('mustang@gooddata.com', 'jindrisska', server: 'https://mustangs.intgdc.com', verify_ssl: false )
15
- @domain = @client.domain('mustangs')
16
- @master_project = @client.create_project(title: 'Test project', auth_token: TOKEN)
12
+ @client = ConnectionHelper.create_default_connection
13
+ @domain = @client.domain(ConnectionHelper::DEFAULT_DOMAIN)
14
+ @master_project = @client.create_project(title: 'Test project', auth_token: ConnectionHelper::GD_PROJECT_TOKEN)
17
15
  @segment_name = "segment-#{SecureRandom.uuid}"
18
16
  @segment = @domain.create_segment(segment_id: @segment_name, master_project: @master_project)
19
17
  end
@@ -27,14 +25,14 @@ describe GoodData::Client do
27
25
  describe '#[]' do
28
26
  before(:all) do
29
27
  client_id = SecureRandom.uuid
30
- @client_project = @client.create_project(title: "client_#{client_id} project", auth_token: TOKEN)
28
+ @client_project = @client.create_project(title: "client_#{client_id} project", auth_token: ConnectionHelper::GD_PROJECT_TOKEN)
31
29
  @segment_client = @segment.create_client(id: "tenant_#{client_id}", project: @client_project)
32
30
  end
33
31
 
34
32
  it 'Returns all clients of a segment' do
35
33
  clients = @segment.clients
36
34
  expect(clients.to_a).to be_an_instance_of(Array)
37
- expect(clients.to_a.count).to eq 1
35
+ expect(clients.to_a.size).to eq 1
38
36
  end
39
37
 
40
38
  it 'Returns specific tenant when schedule ID passed' do
@@ -44,10 +42,9 @@ describe GoodData::Client do
44
42
  end
45
43
 
46
44
  after(:all) do
47
- @segment_client && @segment_client.delete
48
45
  @client_project && @client_project.delete
46
+ @segment_client && @segment_client.delete
49
47
  end
50
-
51
48
  end
52
49
 
53
50
  describe '#delete' do
@@ -63,16 +60,12 @@ describe GoodData::Client do
63
60
  expect(@segment.clients.count).to eq 0
64
61
  @segment_client = nil
65
62
  end
66
-
67
- after(:all) do
68
- @segment_client && @segment_client.delete
69
- end
70
63
  end
71
64
 
72
65
  describe '#delete' do
73
66
  before(:all) do
74
67
  client_id = SecureRandom.uuid
75
- @client_project = @client.create_project(title: 'client_1 project', auth_token: TOKEN)
68
+ @client_project = @client.create_project(title: 'client_1 project', auth_token: ConnectionHelper::GD_PROJECT_TOKEN)
76
69
  @segment_client = @segment.create_client(id: "tenant_#{client_id}", project: @client_project)
77
70
  end
78
71
 
@@ -84,6 +77,22 @@ describe GoodData::Client do
84
77
  expect(@client_project.reload!.state).to eq :deleted
85
78
  @segment_client = nil
86
79
  end
80
+ end
81
+
82
+ describe '#settings' do
83
+ before(:all) do
84
+ @segment_client = @segment.create_client(id: "tenant_#{SecureRandom.uuid}", project: @client_project)
85
+ end
86
+
87
+ it 'can create/update setting' do
88
+ expect(@segment_client.settings).to eq []
89
+
90
+ GoodData::Client.add_setting('lcm.token', 'XXX-lcm-token-XXX', domain: @domain, client_id: @segment_client.client_id)
91
+ expect(@segment_client.settings).to eq [{ name: 'lcm.token', value: 'XXX-lcm-token-XXX' }]
92
+
93
+ GoodData::Client.update_setting('lcm.token', 'XXX-lcm-token-XXX-(updated)', domain: @domain, client_id: @segment_client.client_id)
94
+ expect(@segment_client.settings).to eq [{ name: 'lcm.token', value: 'XXX-lcm-token-XXX-(updated)' }]
95
+ end
87
96
 
88
97
  after(:all) do
89
98
  @segment_client && @segment_client.delete
@@ -93,13 +102,13 @@ describe GoodData::Client do
93
102
  describe '#save' do
94
103
  before(:all) do
95
104
  @client_id = SecureRandom.uuid
96
- @client_project = @client.create_project(title: 'client_1 project', auth_token: TOKEN)
105
+ @client_project = @client.create_project(title: 'client_1 project', auth_token: ConnectionHelper::GD_PROJECT_TOKEN)
97
106
  @segment_client = @segment.create_client(id: "tenant_#{@client_id}", project: @client_project)
98
107
  end
99
108
 
100
109
  it 'can update project id' do
101
110
  begin
102
- other_client_project = @client.create_project(title: "client_#{@client_id} other project", auth_token: TOKEN)
111
+ other_client_project = @client.create_project(title: "client_#{@client_id} other project", auth_token: ConnectionHelper::GD_PROJECT_TOKEN)
103
112
  @segment_client.project = other_client_project
104
113
  @segment_client.save
105
114
  expect(@segment.clients(@segment_client).project_uri).to eq other_client_project.uri
@@ -110,20 +119,20 @@ describe GoodData::Client do
110
119
 
111
120
  it 'throws error when trying to update tenants segment id' do
112
121
  second_segment_name = "segment-#{SecureRandom.uuid}"
113
- second_master_project = @client.create_project(title: 'Test project', auth_token: TOKEN)
122
+ second_master_project = @client.create_project(title: 'Test project', auth_token: ConnectionHelper::GD_PROJECT_TOKEN)
114
123
  second_segment = @domain.create_segment(segment_id: second_segment_name, master_project: second_master_project)
115
124
  @segment_client.segment = second_segment
116
125
 
117
- expect {
126
+ expect do
118
127
  @segment_client.save
119
- }.to raise_error(RestClient::BadRequest)
128
+ end.to raise_error(RestClient::BadRequest)
120
129
  end
121
130
 
122
131
  it 'cannot update a client id' do
123
132
  @segment_client.client_id = 'different_id'
124
- expect {
133
+ expect do
125
134
  @segment_client.save
126
- }.to raise_error RestClient::BadRequest
135
+ end.to raise_error RestClient::BadRequest
127
136
  end
128
137
 
129
138
  after(:all) do
@@ -1,6 +1,6 @@
1
1
  # encoding: UTF-8
2
2
  #
3
- # Copyright (c) 2010-2015 GoodData Corporation. All rights reserved.
3
+ # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
4
  # This source code is licensed under the BSD-style license found in the
5
5
  # LICENSE file in the root directory of this source tree.
6
6
 
@@ -16,11 +16,11 @@ describe GoodData::Command::DataWarehouse do
16
16
  end
17
17
 
18
18
  it "Is Possible to create GoodData::Command::DataWarehouse instance" do
19
- cmd = GoodData::Command::DataWarehouse.new()
19
+ cmd = GoodData::Command::DataWarehouse.new
20
20
  cmd.should be_a(GoodData::Command::DataWarehouse)
21
21
  end
22
22
 
23
- it "Can create a data warehouse" do
23
+ it "Can create a data warehouse", broken: true do
24
24
  title = 'my warehouse'
25
25
  summary = 'hahahaha'
26
26
  dwh = nil
@@ -36,4 +36,4 @@ describe GoodData::Command::DataWarehouse do
36
36
  dwh.delete if dwh
37
37
  end
38
38
  end
39
- end
39
+ end
@@ -1,6 +1,6 @@
1
1
  # encoding: UTF-8
2
2
  #
3
- # Copyright (c) 2010-2015 GoodData Corporation. All rights reserved.
3
+ # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
4
  # This source code is licensed under the BSD-style license found in the
5
5
  # LICENSE file in the root directory of this source tree.
6
6
 
@@ -13,7 +13,7 @@ describe GoodData::Command::Project, :constraint => 'slow' do
13
13
 
14
14
  @blueprint = GoodData::Model::ProjectBlueprint.from_json("./spec/data/blueprints/test_project_model_spec.json")
15
15
  @module_blueprint = GoodData::Model::ProjectBlueprint.from_json("./spec/data/blueprints/additional_dataset_module.json")
16
- @project = GoodData::Command::Project.build({:spec => @blueprint, :token => ConnectionHelper::GD_PROJECT_TOKEN, environment: ProjectHelper::ENVIRONMENT, :client => @client})
16
+ @project = GoodData::Command::Project.build(:spec => @blueprint, :token => ConnectionHelper::GD_PROJECT_TOKEN, environment: ProjectHelper::ENVIRONMENT, :client => @client)
17
17
  end
18
18
 
19
19
  after(:all) do
@@ -23,10 +23,10 @@ describe GoodData::Command::Project, :constraint => 'slow' do
23
23
 
24
24
  it "should update the project" do
25
25
  @blueprint.merge!(@module_blueprint)
26
- @project.blueprint.datasets.count.should == 3
27
- @project.blueprint.datasets(:all, :include_date_dimensions => true).count.should == 4
26
+ expect(@project.blueprint.datasets.count).to eq(3)
27
+ expect(@project.blueprint.datasets(:all, :include_date_dimensions => true).count).to eq(4)
28
28
  @project.update_from_blueprint(@blueprint)
29
- @project.blueprint.datasets.count.should == 4
30
- @project.blueprint.datasets(:all, :include_date_dimensions => true).count.should == 5
29
+ expect(@project.blueprint.datasets.count).to eq(4)
30
+ expect(@project.blueprint.datasets(:all, :include_date_dimensions => true).count).to eq(5)
31
31
  end
32
32
  end
@@ -1,6 +1,6 @@
1
1
  # encoding: UTF-8
2
2
  #
3
- # Copyright (c) 2010-2015 GoodData Corporation. All rights reserved.
3
+ # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
4
  # This source code is licensed under the BSD-style license found in the
5
5
  # LICENSE file in the root directory of this source tree.
6
6
 
@@ -16,7 +16,8 @@ describe "Spin a project from template", :constraint => 'slow' do
16
16
  end
17
17
 
18
18
  it "should spin a project from a template that does not exist. It should throw an error" do
19
- expect{GoodData::Project.create(:title => "Test project", :template => "/some/nonexisting/template/uri", :auth_token => ConnectionHelper::GD_PROJECT_TOKEN, environment: ProjectHelper::ENVIRONMENT, :client => @client)}.to raise_error
19
+ expect do
20
+ GoodData::Project.create(:title => "Test project", :template => "/some/nonexisting/template/uri", :auth_token => ConnectionHelper::GD_PROJECT_TOKEN, environment: ProjectHelper::ENVIRONMENT, :client => @client)
21
+ end.to raise_error
20
22
  end
21
-
22
23
  end
@@ -1,6 +1,6 @@
1
1
  # encoding: UTF-8
2
2
  #
3
- # Copyright (c) 2010-2015 GoodData Corporation. All rights reserved.
3
+ # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
4
  # This source code is licensed under the BSD-style license found in the
5
5
  # LICENSE file in the root directory of this source tree.
6
6
 
@@ -17,8 +17,11 @@ describe 'Create project using GoodData client', :constraint => 'slow' do
17
17
 
18
18
  it 'Should create project using GoodData::Rest::Client#create_project' do
19
19
  project_title = 'Test #create_project'
20
- project = @client.create_project(:title => project_title, :auth_token => ConnectionHelper::GD_PROJECT_TOKEN, environment: ProjectHelper::ENVIRONMENT)
21
- expect(project.title).to eq(project_title)
22
- project.delete
20
+ begin
21
+ project = @client.create_project(:title => project_title, :auth_token => ConnectionHelper::GD_PROJECT_TOKEN, environment: ProjectHelper::ENVIRONMENT)
22
+ expect(project.title).to eq(project_title)
23
+ ensure
24
+ project.delete if project
25
+ end
23
26
  end
24
27
  end
@@ -1,6 +1,6 @@
1
1
  # encoding: UTF-8
2
2
  #
3
- # Copyright (c) 2010-2015 GoodData Corporation. All rights reserved.
3
+ # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
4
  # This source code is licensed under the BSD-style license found in the
5
5
  # LICENSE file in the root directory of this source tree.
6
6
 
@@ -8,7 +8,7 @@ require 'gooddata'
8
8
 
9
9
  describe "Swapping a date dimension and exchanging all attributes/elements", :constraint => 'slow' do
10
10
  before(:all) do
11
- @client = ConnectionHelper::create_default_connection
11
+ @client = ConnectionHelper.create_default_connection
12
12
  @blueprint = GoodData::Model::ProjectBlueprint.build("My project from blueprint") do |p|
13
13
  p.add_date_dimension('created_on')
14
14
  p.add_date_dimension('created_on_2')
@@ -27,12 +27,11 @@ describe "Swapping a date dimension and exchanging all attributes/elements", :co
27
27
  # Load data
28
28
  users_data = [
29
29
  ["label.users.id", "created_on", "fact.users.some_number"],
30
- [1,"01/01/2014",1],
31
- [2,"10/15/2014",2],
32
- [3,"05/02/2014",3]
30
+ [1, "01/01/2014", 1],
31
+ [2, "10/15/2014", 2],
32
+ [3, "05/02/2014", 3]
33
33
  ]
34
34
  @project.upload(users_data, @blueprint, 'dataset.users')
35
-
36
35
  end
37
36
 
38
37
  after(:all) do
@@ -42,15 +41,13 @@ describe "Swapping a date dimension and exchanging all attributes/elements", :co
42
41
  end
43
42
 
44
43
  it "should swap the dimension, exhcange all stuff and not break anything" do
45
-
46
44
  # WE have 2 date dims
47
- expect(@blueprint.date_dimensions.map(&:id)).to eq ["created_on", "created_on_2"]
45
+ expect(@blueprint.date_dimensions.map(&:id)).to eq %w(created_on created_on_2)
48
46
  # One is connected
49
47
  expect(@blueprint.datasets.flat_map(&:references).map(&:reference).include?('created_on')).to be_truthy
50
48
  # The other is disconnected
51
49
  expect(@blueprint.datasets.flat_map(&:references).map(&:reference).include?('created_on_2')).to be_falsey
52
50
 
53
-
54
51
  # Create a metric
55
52
  @metric_1 = @project.attributes('created_on.date').create_metric(title: 'Count of days in DD')
56
53
  @metric_1.save
@@ -61,8 +58,8 @@ describe "Swapping a date dimension and exchanging all attributes/elements", :co
61
58
 
62
59
  def suggest_mapping(label_a, label_b, project)
63
60
  as = project.attributes
64
- a1 = as.select {|a| a.identifier.include?("#{label_a}.")}.pmapcat { |a| [a] + a.labels }
65
- a2 = as.select {|a| a.identifier.include?("#{label_b}.")}.pmapcat { |a| [a] + a.labels }
61
+ a1 = as.select { |a| a.identifier.include?("#{label_a}.") }.pmapcat { |a| [a] + a.labels }
62
+ a2 = as.select { |a| a.identifier.include?("#{label_b}.") }.pmapcat { |a| [a] + a.labels }
66
63
  a1.reduce({}) do |a, e|
67
64
  match = a2.find { |l| l.identifier.gsub(/^#{label_b}/, '') == e.identifier.gsub(/^#{label_a}/, '') }
68
65
  a[e.identifier] = match && match.identifier
@@ -74,41 +71,41 @@ describe "Swapping a date dimension and exchanging all attributes/elements", :co
74
71
  @metric_2 = @project.attributes('created_on.date').create_metric(title: 'Count of days in DD Secret')
75
72
  @metric_2.deprecated = true
76
73
  @metric_2.save
77
- @report_with_private = @project.create_report({
74
+ @report_with_private = @project.create_report(
78
75
  left: @metric_2,
79
76
  top: ['created_on.day.in.week'],
80
77
  title: 'Beautiful report with private'
81
- })
78
+ )
82
79
  @report_with_private.save
83
80
 
84
81
  # Create a definition with a filter value
85
- @report = @project.create_report({
82
+ @report = @project.create_report(
86
83
  left: @metric_2,
87
84
  top: ['created_on.quarter'],
88
85
  filters: [['created_on.year', 2015, 2016]],
89
86
  title: 'Beautiful report with filters'
90
- })
87
+ )
91
88
  @report.save
92
89
 
93
90
  @label = @project.labels('created_on.year').primary_label
94
- @variable = @project.create_variable(title: 'uaaa', attribute: @label.attribute).save
91
+ @variable = @project.create_variable(title: 'uaaa', attribute: @label.attribute).save
95
92
  filters = [[ConnectionHelper::DEFAULT_USERNAME, @label.uri, '2015', '2016']]
96
93
  @project.add_variable_permissions(filters, @variable)
97
-
98
- as = @project.attributes.select {|a| a.identifier.include?('created_on_2.')}
99
- expect(as.pmapcat {|a| a.usedby('report')}).to be_empty
100
- expect(as.pmapcat {|a| a.usedby('metric')}).to be_empty
101
- expect(as.pmapcat {|a| a.usedby('dashboard')}).to be_empty
94
+
95
+ as = @project.attributes.select { |a| a.identifier.include?('created_on_2.') }
96
+ expect(as.pmapcat { |a| a.usedby('report') }).to be_empty
97
+ expect(as.pmapcat { |a| a.usedby('metric') }).to be_empty
98
+ expect(as.pmapcat { |a| a.usedby('dashboard') }).to be_empty
102
99
 
103
100
  # replace values
104
101
  mapping = GoodData::Helpers.prepare_mapping(suggest_mapping('created_on', 'created_on_2', @project), project: @project)
105
102
  @project.replace_from_mapping(mapping)
106
103
 
107
104
  # Check if any of the attributes is used by any of the objects. All should be empty
108
- as = @project.attributes.select {|a| a.identifier.include?('created_on.')}
109
- expect(as.pmapcat {|a| a.usedby('report')}).to be_empty
110
- expect(as.pmapcat {|a| a.usedby('metric')}).to be_empty
111
- expect(as.pmapcat {|a| a.usedby('dashboard')}).to be_empty
105
+ as = @project.attributes.select { |a| a.identifier.include?('created_on.') }
106
+ expect(as.pmapcat { |a| a.usedby('report') }).to be_empty
107
+ expect(as.pmapcat { |a| a.usedby('metric') }).to be_empty
108
+ expect(as.pmapcat { |a| a.usedby('dashboard') }).to be_empty
112
109
 
113
110
  # Reload stuff
114
111
  @metric_2.reload!
@@ -120,7 +117,7 @@ describe "Swapping a date dimension and exchanging all attributes/elements", :co
120
117
  @report.execute
121
118
  @report_with_private.execute
122
119
 
123
- # Labels
120
+ # Labels
124
121
  GoodData::SmallGoodZilla.get_uris(@metric_2.expression)
125
122
  expect(@report.definition.attributes.map(&:identifier)).to eq ["created_on_2.quarter"]
126
123
  ids = GoodData::SmallGoodZilla.get_uris(@report.definition.filters.first).map { |x| x.split('/')[-2..-1].join('/') }
@@ -129,7 +126,7 @@ describe "Swapping a date dimension and exchanging all attributes/elements", :co
129
126
  ids = GoodData::SmallGoodZilla.get_uris(@report.definition.filters.first).map { |x| x.split('/')[-2..-1].join('/') }
130
127
  expect(ids).to eq ["obj/2286", "2286/elements?id=2015", "2286/elements?id=2016"]
131
128
 
132
- ids = GoodData::SmallGoodZilla.get_uris(@variable.values.first.expression).map {|v| v.split('/')[-2..-1].join('/')}
129
+ ids = GoodData::SmallGoodZilla.get_uris(@variable.values.first.expression).map { |v| v.split('/')[-2..-1].join('/') }
133
130
  expect(ids).to eq ["obj/2286", "2286/elements?id=2015", "2286/elements?id=2016"]
134
131
 
135
132
  # Swap the dims
@@ -139,4 +136,4 @@ describe "Swapping a date dimension and exchanging all attributes/elements", :co
139
136
  expect(bp.datasets.flat_map(&:references).map(&:reference).include?('created_on')).to be_falsey
140
137
  expect(bp.datasets.flat_map(&:references).map(&:reference).include?('created_on_2')).to be_truthy
141
138
  end
142
- end
139
+ end