class MetricFu::Run

Public Class Methods

new() click to toggle source
# File lib/metric_fu/run.rb, line 3
def initialize
  STDOUT.sync = true
end

Public Instance Methods

display_results() click to toggle source
# File lib/metric_fu/run.rb, line 27
def display_results
  reporter.display_results
end
measure() click to toggle source
# File lib/metric_fu/run.rb, line 17
def measure
  reporter.start
  report_metrics.each {|metric|
    reporter.start_metric(metric)
    MetricFu.result.add(metric)
    reporter.finish_metric(metric)
  }
  reporter.finish
end
report_metrics(metrics = MetricFu::Metric.enabled_metrics) click to toggle source
# File lib/metric_fu/run.rb, line 13
def report_metrics(metrics = MetricFu::Metric.enabled_metrics)
  metrics.map(&:name)
end
run(options = {}) click to toggle source
# File lib/metric_fu/run.rb, line 7
def run(options = {})
  configure_run(options)
  measure
  display_results if options[:open]
end

Private Instance Methods

configure_formatters(options) click to toggle source
# File lib/metric_fu/run.rb, line 62
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
configure_metric(metric, metric_options) click to toggle source
# File lib/metric_fu/run.rb, line 53
def configure_metric(metric, metric_options)
  MetricFu::Configuration.configure_metric(metric) do |metric|
    metric_options.each do |option, value|
      mf_log "Setting #{metric} option #{option} to #{value}"
      metric.public_send("#{option}=", value)
    end
  end
end
configure_run(options) click to toggle source
# File lib/metric_fu/run.rb, line 33
def configure_run(options)
  disable_metrics(options)
  configure_formatters(options)
end
disable_metrics(options) click to toggle source
# File lib/metric_fu/run.rb, line 38
def disable_metrics(options)
  return if options.size == 0
  report_metrics.each do |metric|
    metric = metric.to_sym
    if (metric_options = options[metric])
      mf_debug "using metric #{metric}"
      configure_metric(metric, metric_options) if metric_options.is_a?(Hash)
    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
reporter() click to toggle source
# File lib/metric_fu/run.rb, line 78
def reporter
  MetricFu::Reporter.new(MetricFu.configuration.formatters)
end