Class: GoodData::DashboardTab

Inherits:
Object
  • Object
show all
Defined in:
lib/gooddata/models/metadata/dashboard_tab.rb

Constant Summary collapse

EMPTY_OBJECT =
{
  :title => '',
  :items => []
}
ASSIGNABLE_MEMBERS =
[
  :title,
  :items,
  :identifier
]

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dashboard, json) ⇒ DashboardTab

Returns a new instance of DashboardTab.



49
50
51
52
# File 'lib/gooddata/models/metadata/dashboard_tab.rb', line 49

def initialize(dashboard, json)
  @dashboard = dashboard
  @json = json
end

Instance Attribute Details

#dashboardObject (readonly)

Returns the value of attribute dashboard.



25
26
27
# File 'lib/gooddata/models/metadata/dashboard_tab.rb', line 25

def dashboard
  @dashboard
end

#jsonObject

Returns the value of attribute json.



26
27
28
# File 'lib/gooddata/models/metadata/dashboard_tab.rb', line 26

def json
  @json
end

Class Method Details

.create(dashboard, tab) ⇒ Object



40
41
42
43
44
45
46
# File 'lib/gooddata/models/metadata/dashboard_tab.rb', line 40

def create(dashboard, tab)
  res = GoodData::DashboardTab.new(dashboard, GoodData::Helpers.deep_dup(GoodData::Helpers.stringify_keys(EMPTY_OBJECT)))
  tab.each do |k, v|
    res.send("#{k}=", v) if ASSIGNABLE_MEMBERS.include? k
  end
  res
end

Instance Method Details

#create_filter_apply_item(item) ⇒ Object



60
61
62
63
64
# File 'lib/gooddata/models/metadata/dashboard_tab.rb', line 60

def create_filter_apply_item(item)
  new_item = GoodData::FilterApplyItem.create(self, item)
  json['items'] << new_item.json
  new_item
end

#create_filter_item(item) ⇒ Object



54
55
56
57
58
# File 'lib/gooddata/models/metadata/dashboard_tab.rb', line 54

def create_filter_item(item)
  new_item = GoodData::FilterItem.create(self, item)
  json['items'] << new_item.json
  new_item
end

#create_geo_chart_item(item) ⇒ Object Also known as: add_geo_chart_item



66
67
68
69
70
# File 'lib/gooddata/models/metadata/dashboard_tab.rb', line 66

def create_geo_chart_item(item)
  new_item = GoodData::GeoChartItem.create(self, item)
  json['items'] << new_item.json
  new_item
end

#create_headline_item(item) ⇒ Object Also known as: add_headline_item



73
74
75
76
77
# File 'lib/gooddata/models/metadata/dashboard_tab.rb', line 73

def create_headline_item(item)
  new_item = GoodData::HeadlineItem.create(self, item)
  json['items'] << new_item.json
  new_item
end

#create_iframe_item(item) ⇒ Object Also known as: add_iframe_item



80
81
82
83
84
# File 'lib/gooddata/models/metadata/dashboard_tab.rb', line 80

def create_iframe_item(item)
  new_item = GoodData::IframeItem.create(self, item)
  json['items'] << new_item.json
  new_item
end

#create_report_item(item) ⇒ Object Also known as: add_report_item



87
88
89
90
91
# File 'lib/gooddata/models/metadata/dashboard_tab.rb', line 87

def create_report_item(item)
  new_item = GoodData::ReportItem.create(self, item)
  json['items'] << new_item.json
  new_item
end

#create_text_item(item) ⇒ Object Also known as: add_text_item



94
95
96
97
98
# File 'lib/gooddata/models/metadata/dashboard_tab.rb', line 94

def create_text_item(item)
  new_item = GoodData::TextItem.create(self, item)
  json['items'] << new_item.json
  new_item
end

#identifierObject



101
102
103
# File 'lib/gooddata/models/metadata/dashboard_tab.rb', line 101

def identifier
  @json['identifier']
end

#identifier=(new_identifier) ⇒ Object



105
106
107
# File 'lib/gooddata/models/metadata/dashboard_tab.rb', line 105

def identifier=(new_identifier)
  @json['identifier'] = new_identifier
end

#itemsObject



109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# File 'lib/gooddata/models/metadata/dashboard_tab.rb', line 109

def items
  @json['items'].map do |item|
    type = item.keys.first
    case type
    when 'filterItem'
      GoodData::FilterItem.new(self, item)
    when 'filterApplyItem'
      GoodData::FilterApplyItem.new(self, item)
    when 'geoChartItem'
      GoodData::GeoChartItem.new(self, item)
    when 'headlineItem'
      GoodData::HeadlineItem.new(self, item)
    when 'iframeItem'
      GoodData::IframeItem.new(self, item)
    when 'reportItem'
      GoodData::ReportItem.new(self, item)
    when 'textItem'
      GoodData::TextItem.new(self, item)
    else
      GoodData::DashboardItem.new(self, item)
    end
  end
end

#titleObject



133
134
135
# File 'lib/gooddata/models/metadata/dashboard_tab.rb', line 133

def title
  @json['title']
end

#title=(new_title) ⇒ Object



137
138
139
# File 'lib/gooddata/models/metadata/dashboard_tab.rb', line 137

def title=(new_title)
  @json['title'] = new_title
end