class GoodData::ProjectMetadata

Public Class Methods

[](key, opts = { :client => GoodData.connection, :project => GoodData.project }) click to toggle source
# File lib/gooddata/models/project_metadata.rb, line 14
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
Also aliased as: get, get_key
[]=(key, opts = { :client => GoodData.connection, :project => GoodData.project }, val = nil) click to toggle source
# File lib/gooddata/models/project_metadata.rb, line 47
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
get(key, opts = { :client => GoodData.connection, :project => GoodData.project })
Alias for: []
get_key(key, opts = { :client => GoodData.connection, :project => GoodData.project })
Alias for: []
key?(key, opts = { :client => GoodData.connection, :project => GoodData.project }) click to toggle source
# File lib/gooddata/models/project_metadata.rb, line 40
def key?(key, opts = { :client => GoodData.connection, :project => GoodData.project })
  ProjectMetadata[key, opts]
  true
rescue RestClient::ResourceNotFound
  false
end
keys(opts = { :client => GoodData.connection, :project => GoodData.project }) click to toggle source
# File lib/gooddata/models/project_metadata.rb, line 10
def keys(opts = { :client => GoodData.connection, :project => GoodData.project })
  ProjectMetadata[:all, opts].keys
end