Sha256: ccae061f5a7e6a7201eff206e6be6a89356530a8e538d11566e3353a3331f444
Contents?: true
Size: 1.93 KB
Versions: 77
Compression:
Stored size: 1.93 KB
Contents
# encoding: UTF-8 # # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved. # This source code is licensed under the BSD-style license found in the # LICENSE file in the root directory of this source tree. module GoodData class ProjectMetadata class << self def keys(opts = { :client => GoodData.connection, :project => GoodData.project }) ProjectMetadata[:all, opts].keys end def [](key, opts = { :client => GoodData.connection, :project => GoodData.project }) client, project = GoodData.get_client_and_project(opts) get_opts = { do_not_log: [ RestClient::ResourceNotFound ] } if key == :all uri = "/gdc/projects/#{project.pid}/dataload/metadata" res = client.get(uri, get_opts) res['metadataItems']['items'].reduce({}) do |memo, i| memo[i['metadataItem']['key']] = i['metadataItem']['value'] memo end else uri = "/gdc/projects/#{project.pid}/dataload/metadata/#{key}" res = client.get(uri, get_opts) res['metadataItem']['value'] end end alias_method :get, :[] alias_method :get_key, :[] def key?(key, opts = { :client => GoodData.connection, :project => GoodData.project }) ProjectMetadata[key, opts] true rescue RestClient::ResourceNotFound false end def []=(key, opts = { :client => GoodData.connection, :project => GoodData.project }, val = nil) client, project = GoodData.get_client_and_project(opts) data = { :metadataItem => { :key => key, :value => val } } uri = "/gdc/projects/#{project.pid}/dataload/metadata/" update_uri = uri + key if key?(key, opts) client.put(update_uri, data) else client.post(uri, data) end end end end end
Version data entries
77 entries across 77 versions & 1 rubygems