Method: GoodData::Model::ProjectBuilder#add_dataset

Defined in:
lib/gooddata/models/blueprint/project_builder.rb

#add_dataset(id, options = {}, &block) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/gooddata/models/blueprint/project_builder.rb', line 48

def add_dataset(id, options = {}, &block)
  builder = GoodData::Model::SchemaBuilder.new(id, options)
  block.call(builder) if block
  fail 'Dataset has to have id defined' if id.blank?
  datasets = data[:datasets]
  if datasets.any? { |item| item[:id] == id }
    ds = datasets.find { |item| item[:id] == id }
    index = datasets.index(ds)
    stuff = GoodData::Model.merge_dataset_columns(ds, builder.to_hash)
    datasets.delete_at(index)
    datasets.insert(index, stuff)
  else
    datasets << builder.to_hash
  end
end