class GoodData::Model::AttributeBlueprintField

Public Instance Methods

labels() click to toggle source

Returns list of labels on the attribute. There has to be always at least one attribute

@return [Array] returns list of the errors represented by hash structures

# File lib/gooddata/models/blueprint/attribute_field.rb, line 24
def labels
  @dataset_blueprint.labels_for_attribute(self)
end
reference_label() click to toggle source

Returns label that is considered referencing. It is either first one or the one marked with reference_label: true in blueprint

@return [Array<GoodData::Model::LabelBlueprintField>] Returns list of labels

# File lib/gooddata/models/blueprint/attribute_field.rb, line 16
def reference_label
  reference_label = labels.find { |label| label.respond_to?(:reference_label) && label.reference_label == true }
  reference_label || labels.first
end
validate() click to toggle source

Validates the fields in the attribute

@return [Array] returns list of the errors represented by hash structures

# File lib/gooddata/models/blueprint/attribute_field.rb, line 31
def validate
  errors = validate_presence_of(:id).map do |e|
    { type: :error, message: "Field \"#{e}\" is not defined or empty for attribute \"#{id}\"" }
  end
  if labels.select(&:reference_label?).count > 1
    errors << {
      type: :error,
      message: "Anchor \"#{id}\" can have only one label with reference_label field set to true"
    }
  end
  errors
end