Class: ActiveMetric::GraphViewModel

Inherits:
Object
  • Object
show all
Includes:
Mongoid::Document
Defined in:
lib/active_metric/graph_view_model.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.create_from_meta_data(axises_defined, stats_defined, options = {}) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/active_metric/graph_view_model.rb', line 17

def self.(axises_defined,stats_defined, options = {})
  graph = self.new(options)
  graph.populate_axises(axises_defined)
  graph.populate_series(stats_defined)
  graph.save!
  graph
end

Instance Method Details

#delete_axis_at_index(index) ⇒ Object



47
48
49
50
51
52
53
54
# File 'lib/active_metric/graph_view_model.rb', line 47

def delete_axis_at_index(index)
  existing_axises = y_axises.select{|axis| axis.index == index}
  if existing_axises.size > 0
    existing_axises.each do |existing_axis|
      y_axises.delete(existing_axis)
    end
  end
end

#ordered_y_axisesObject



13
14
15
# File 'lib/active_metric/graph_view_model.rb', line 13

def ordered_y_axises
  y_axises.asc(:index)
end

#populate_axises(axises_defined) ⇒ Object



25
26
27
28
29
30
# File 'lib/active_metric/graph_view_model.rb', line 25

def populate_axises(axises_defined)
  axises_defined.each do |axis_options|
    delete_axis_at_index(axis_options[:index])
    y_axises << Axis.new(axis_options)
  end
end

#populate_series(stats_defined) ⇒ Object



32
33
34
35
36
# File 'lib/active_metric/graph_view_model.rb', line 32

def populate_series(stats_defined)
  stats_defined.each do |stat_definition|
    series_data << PointSeriesData.from_stat_definition(stat_definition) if stat_definition.graphable?
  end
end

#series_for(label) ⇒ Object



38
39
40
# File 'lib/active_metric/graph_view_model.rb', line 38

def series_for(label)
  series_data.select{|series| series.label.eql? label}.first
end

#sizeObject



42
43
44
45
# File 'lib/active_metric/graph_view_model.rb', line 42

def size
  return 0 unless series_data.size > 0
  series_data.first.size
end