Sha256: 55d702579f157a7c5275df7cc4ccab18f443bc731353771f3183835e1af0c341

Contents?: true

Size: 972 Bytes

Versions: 5

Compression:

Stored size: 972 Bytes

Contents

module MetricFu

  def self.graph
    @graph ||= Graph.new
  end

  class Graph
    
    attr_accessor :clazz
    
    def initialize
      self.clazz = []
    end
    
    def add(graph_type, graph_engine)
      grapher_name = graph_type.to_s.capitalize + graph_engine.to_s.capitalize + "Grapher"
      self.clazz.push MetricFu.const_get(grapher_name).new
    end
    
    
    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
  end
end

Version data entries

5 entries across 5 versions & 4 rubygems

Version Path
cayblood-metric_fu-1.1.6 lib/base/graph.rb
nielsm-metric_fu-1.3.1 lib/base/graph.rb
metric_fu-1.3.0 lib/base/graph.rb
edouard-metric_fu-1.2.0 lib/base/graph.rb
metric_fu-1.2.0 lib/base/graph.rb