# File lib/rcov/differential_analyzer.rb, line 6 def initialize(install_hook_meth, remove_hook_meth, reset_meth) @cache_state = :wait @start_raw_data = data_default @end_raw_data = data_default @aggregated_data = data_default @install_hook_meth = install_hook_meth @remove_hook_meth= remove_hook_meth @reset_meth= reset_meth end
Start monitoring execution to gather information. Such data will be collected until remove_hook is called.
Use run_hooked instead if possible.
# File lib/rcov/differential_analyzer.rb, line 29 def install_hook @start_raw_data = raw_data_absolute Rcov::RCOV__.send(@install_hook_meth) @cache_state = :hooked @@mutex.synchronize{ self.class.hook_level += 1 } end
Stop collecting information. remove_hook will also stop collecting info if it is run inside a run_hooked block.
# File lib/rcov/differential_analyzer.rb, line 39 def remove_hook @@mutex.synchronize do self.class.hook_level -= 1 Rcov::RCOV__.send(@remove_hook_meth) if self.class.hook_level == 0 end @end_raw_data = raw_data_absolute @cache_state = :done # force computation of the stats for the traced code in this run; # we cannot simply let it be if self.class.hook_level == 0 because # some other analyzer could install a hook, causing the raw_data_absolute # to change again. # TODO: lazy computation of raw_data_relative, only when the hook gets # activated again. raw_data_relative end
Remove the data collected so far. Further collection will start from scratch.
# File lib/rcov/differential_analyzer.rb, line 57 def reset @@mutex.synchronize do if self.class.hook_level == 0 # Unfortunately there's no way to report this as covered with rcov: # if we run the tests under rcov self.class.hook_level will be >= 1 ! # It is however executed when we run the tests normally. Rcov::RCOV__.send(@reset_meth) @start_raw_data = data_default @end_raw_data = data_default else @start_raw_data = @end_raw_data = raw_data_absolute end @raw_data_relative = data_default @aggregated_data = data_default end end
# File lib/rcov/differential_analyzer.rb, line 88 def aggregate_data(aggregated_data, delta) raise "must be implemented by the subclass" end
# File lib/rcov/differential_analyzer.rb, line 92 def compute_raw_data_difference(first, last) raise "must be implemented by the subclass" end
Generated with the Darkfish Rdoc Generator 2.