class Kolekti::Runner
Attributes
collectors[R]
repository_path[R]
wanted_metric_configurations[R]
Public Class Methods
new(repository_path, wanted_metric_configurations, persistence_strategy)
click to toggle source
# File lib/kolekti/runner.rb, line 20 def initialize(repository_path, wanted_metric_configurations, persistence_strategy) @repository_path = repository_path @wanted_metric_configurations = wanted_metric_configurations.map { |m| [m.metric.code, m] }.to_h @persistence_strategy = persistence_strategy @collectors = find_collectors end
Public Instance Methods
clean_output()
click to toggle source
# File lib/kolekti/runner.rb, line 33 def clean_output @collectors.each do |collector| collector.clean(@repository_path, @wanted_metric_configurations) end end
run_wanted_metrics()
click to toggle source
# File lib/kolekti/runner.rb, line 27 def run_wanted_metrics @collectors.each do |collector| collector.collect_metrics(@repository_path, @wanted_metric_configurations, @persistence_strategy) end end
Private Instance Methods
find_collectors()
click to toggle source
# File lib/kolekti/runner.rb, line 41 def find_collectors collectors = wanted_metric_configurations.map do |code, metric_configuration| collector_name = metric_configuration.metric.metric_collector_name found_collector = Kolekti.collectors.find do |collector| collector.name == collector_name && collector.supported_metrics.include?(code.to_sym) end raise UnavailableMetricError.new("No Metric Collector for metric code #{code}") if found_collector.nil? found_collector end collectors.uniq end