Sha256: 1c09fd8299c3ff5e65c758b77309ec31f7d9b084f7b23b1a4ef01d8486178988

Contents?: true

Size: 1.99 KB

Versions: 75

Compression:

Stored size: 1.99 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.

require_relative '../metadata'

module GoodData
  class Dataset < MdObject
    class << self
      # Method intended to get all objects of that type in a specified project
      #
      # @param options [Hash] the options hash
      # @option options [Boolean] :full if passed true the subclass can decide
      # to pull in full objects. This is desirable from the usability POV
      # but unfortunately has negative impact on performance so it is
      # not the default.
      # @return [Array<GoodData::MdObject> | Array<Hash>] Return the appropriate metadata objects or their representation
      def all(options = { :client => GoodData.connection, :project => GoodData.project })
        query('dataSet', Dataset, options)
      end
    end

    # Gives you list of attributes on a dataset
    #
    # @return [Array<GoodData::Attribute>]
    def attributes
      attribute_uris.pmap { |a_uri| project.attributes(a_uri) }
    end

    # Gives you list of attribute uris on a dataset
    #
    # @return [Array<String>]
    def attribute_uris
      content['attributes']
    end

    # Gives you list of facts on a dataset
    #
    # @return [Array<GoodData::Fact>]
    def facts
      fact_uris.pmap { |a_uri| project.facts(a_uri) }
    end

    # Gives you list of fact uris on a dataset
    #
    # @return [Array<String>]
    def fact_uris
      content['facts']
    end

    # Tells you if a dataset is a date dimension. This is done by looking at
    # the attributes and inspecting their identifiers.
    #
    # @return [Boolean]
    def date_dimension?
      content['urn'] && !content['urn'].empty? && fact_uris.empty?
    end

    # Delete the data in a dataset
    def synchronize
      project.execute_maql("SYNCHRONIZE {#{identifier}}")
    end
    alias_method :delete_data, :synchronize
  end
end

Version data entries

75 entries across 75 versions & 1 rubygems

Version Path
gooddata-1.2.1-java lib/gooddata/models/metadata/dataset.rb
gooddata-1.2.1 lib/gooddata/models/metadata/dataset.rb
gooddata-1.2.0-java lib/gooddata/models/metadata/dataset.rb
gooddata-1.2.0 lib/gooddata/models/metadata/dataset.rb
gooddata-1.1.0-java lib/gooddata/models/metadata/dataset.rb
gooddata-1.1.0 lib/gooddata/models/metadata/dataset.rb
gooddata-1.0.2-java lib/gooddata/models/metadata/dataset.rb
gooddata-1.0.2 lib/gooddata/models/metadata/dataset.rb
gooddata-1.0.1 lib/gooddata/models/metadata/dataset.rb
gooddata-1.0.1-java lib/gooddata/models/metadata/dataset.rb
gooddata-1.0.0-java lib/gooddata/models/metadata/dataset.rb
gooddata-1.0.0 lib/gooddata/models/metadata/dataset.rb
gooddata-0.6.54 lib/gooddata/models/metadata/dataset.rb
gooddata-0.6.53 lib/gooddata/models/metadata/dataset.rb
gooddata-0.6.52 lib/gooddata/models/metadata/dataset.rb