Method: GoodData::Metric#replace_value

Defined in:
lib/gooddata/models/metadata/metric.rb

#replace_value(label, value, for_label, for_value = nil) ⇒ GoodData::Metric

Method used for replacing attribute element values. Looks up certain value of a label in the MAQL expression and exchanges it for a different value of the same label.

Parameters:

  • label (GoodData::Label)

    Label through which the value and for_value are resolved

  • value (String)

    value that is going to be replaced

  • for_value (String) (defaults to: nil)

    value that is going to be the new one

Returns:



182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
# File 'lib/gooddata/models/metadata/metric.rb', line 182

def replace_value(label, value, for_label, for_value = nil)
  label = label.respond_to?(:primary_label) ? label.primary_label : label
  if for_value
    for_label = for_label.respond_to?(:primary_label) ? for_label.primary_label : for_label
    value_uri = label.find_value_uri(value)
    for_value_uri = for_label.find_value_uri(for_value)
    self.expression = expression.gsub(value_uri, for_value_uri)
    self.expression = expression.gsub(label.attribute.uri, for_label.attribute.uri)
  else
    for_value = for_label
    value_uri = label.find_value_uri(value)
    for_value_uri = label.find_value_uri(for_value)
    self.expression = expression.gsub(value_uri, for_value_uri)
  end
  self
end