Sha256: 12a3f4f919f9d61946301a15fd1eab46ed0e28dcb4bb0fa2793077e9931c943d
Contents?: true
Size: 1.67 KB
Versions: 9
Compression:
Stored size: 1.67 KB
Contents
module MetricFu # MetricFu.result memoizes access to a Result object, that will be # used throughout the lifecycle of the MetricFu app. def self.result @result ||= Result.new end # = Result # # The Result class is responsible for one thing: # # It tracks the results generated by each metric used in this test run. class Result # Renders the result of the result_hash into a yaml serialization # ready for writing out to a file. # # @return YAML # A YAML object containing the results of the result generation # process def as_yaml result_hash.to_yaml end def per_file_data @per_file_data ||= Hash.new do |hash, filename| hash[filename] = Hash.new do |h, line| h[line] = Array.new end end end def result_hash #:nodoc: @result_hash ||= {} end # Adds a hash from a passed result, produced by one of the Generator # classes to the aggregate result_hash managed by this hash. # # @param result_type Hash # The hash to add to the aggregate result_hash def add(result_type) mf_debug "result requested #{result_type}" metric_options = metric_options_for_result_type(result_type) generator_class = MetricFu::Generator.get_generator(result_type) mf_debug "result class found #{generator_class}" generator = generator_class.new(metric_options) result_hash.merge!(generator.generate_result) generator.per_file_info(per_file_data) if generator.respond_to?(:per_file_info) end private def metric_options_for_result_type(result_type) MetricFu::Metric.get_metric(result_type).run_options end end end
Version data entries
9 entries across 9 versions & 3 rubygems