Class: MetricFu::Graph

Inherits:
Object
  • Object
show all
Defined in:
lib/base/graph.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeGraph

Returns a new instance of Graph.



11
12
13
# File 'lib/base/graph.rb', line 11

def initialize
  self.clazz = []
end

Instance Attribute Details

#clazzObject

Returns the value of attribute clazz.



9
10
11
# File 'lib/base/graph.rb', line 9

def clazz
  @clazz
end

Instance Method Details

#add(graph_type, graph_engine) ⇒ Object



15
16
17
18
# File 'lib/base/graph.rb', line 15

def add(graph_type, graph_engine)
  grapher_name = graph_type.to_s.gsub(/\/(.?)/) { "::#{$1.upcase}" }.gsub(/(?:^|_)(.)/) { $1.upcase } + graph_engine.to_s.capitalize + "Grapher"
  self.clazz.push MetricFu.const_get(grapher_name).new
end

#generateObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/base/graph.rb', line 21

def generate
  return if self.clazz.empty?
  puts "Generating graphs"
  Dir[File.join(MetricFu.data_directory, '*.yml')].sort.each do |metric_file|
    puts "Generating graphs for #{metric_file}"
    date = metric_file.split('/')[3].split('.')[0]
    y, m, d = date[0..3].to_i, date[4..5].to_i, date[6..7].to_i
    metrics = YAML::load(File.open(metric_file))
    
    self.clazz.each do |grapher|
      grapher.get_metrics(metrics, "#{m}/#{d}")
    end
  end
  self.clazz.each do |grapher|
    grapher.graph!
  end
end