Sha256: d5f86e9c9fdac86e3b70604764dc701f5fb70971f0527544889ea2f87c297934
Contents?: true
Size: 1.63 KB
Versions: 2
Compression:
Stored size: 1.63 KB
Contents
module Knapsack class Tracker include Singleton attr_reader :global_time, :spec_files_with_time attr_writer :spec_path def initialize set_defaults end def config(opts={}) @config ||= default_config @config.merge!(opts) end def reset! set_defaults end def start_timer @start_time = Time.now.to_f end def stop_timer @execution_time = Time.now.to_f - @start_time update_global_time update_spec_file_time @execution_time end def spec_path raise("spec_path needs to be set by Knapsack Adapter's bind method") unless @spec_path @spec_path.sub(/^\.\//, '') end def time_exceeded? global_time > max_node_time_execution end def max_node_time_execution report_distributor.node_time_execution + config[:time_offset_in_seconds] end def exceeded_time global_time - max_node_time_execution end private def default_config { enable_time_offset_warning: true, time_offset_in_seconds: 30, generate_report: generate_report } end def generate_report ENV['KNAPSACK_GENERATE_REPORT'] || false end def set_defaults @global_time = 0 @spec_files_with_time = {} @spec_path = nil end def update_global_time @global_time += @execution_time end def update_spec_file_time @spec_files_with_time[spec_path] ||= 0 @spec_files_with_time[spec_path] += @execution_time end def report_distributor @report_distributor ||= Knapsack::Distributors::ReportDistributor.new end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
knapsack-0.1.1 | lib/knapsack/tracker.rb |
knapsack-0.1.0 | lib/knapsack/tracker.rb |