Sha256: f3f0649abe77e75a93916ac485e3312f679b16919fc0203d16f25564bedd8a59

Contents?: true

Size: 1.98 KB

Versions: 5

Compression:

Stored size: 1.98 KB

Contents

MetricFu.configure
module MetricFu
  class Run
    def initialize
      STDOUT.sync = true
      load_user_configuration
    end
    def run(options={})
      configure_run(options)
      measure
      display_results if options[:open]
    end

    def report_metrics(metrics=MetricFu::Metric.enabled_metrics)
      metrics.map(&:name)
    end
    def measure
      reporter.start
      report_metrics.each {|metric|
        reporter.start_metric(metric)
        MetricFu.result.add(metric)
        reporter.finish_metric(metric)
      }
      reporter.finish
    end
    def display_results
      reporter.display_results
    end
    private
    def load_user_configuration
      file = File.join(Dir.pwd, '.metrics')
      load file if File.exist?(file)
    end
    # Updates configuration based on runtime options.
    def configure_run(options)
      disable_metrics(options)
      configure_formatters(options)
    end
    def disable_metrics(options)
      return if options.size == 0
      report_metrics.each do |metric|
        if options[metric.to_sym]
          mf_debug "using metric #{metric}"
        else
          mf_debug "disabling metric #{metric}"
          MetricFu::Metric.get_metric(metric).enabled = false
          mf_debug "active metrics are #{MetricFu::Metric.enabled_metrics.inspect}"
        end
      end
    end
    def configure_formatters(options)
      # Configure from command line if any.
      if options[:format]
        MetricFu.configuration.formatters.clear # Command-line format takes precedence.
        Array(options[:format]).each do |format, o|
          MetricFu.configuration.configure_formatter(format, o)
        end
      end
      # If no formatters specified, use defaults.
      if MetricFu.configuration.formatters.empty?
        Array(MetricFu::Formatter::DEFAULT).each do |format, o|
          MetricFu.configuration.configure_formatter(format, o)
        end
      end
    end
    def reporter
      Reporter.new(MetricFu.configuration.formatters)
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
metric_fu-4.4.4 lib/metric_fu/run.rb
metric_fu-4.4.3 lib/metric_fu/run.rb
metric_fu-4.4.2 lib/metric_fu/run.rb
metric_fu-4.4.1 lib/metric_fu/run.rb
metric_fu-4.4.0 lib/metric_fu/run.rb