Class: FastCov::ConstGetTracker

Inherits:
AbstractTracker show all
Defined in:
lib/fast_cov/trackers/const_get_tracker.rb

Overview

Tracks constants looked up dynamically via Module#const_get.

This catches dynamic constant lookups that static analysis misses:

  • Object.const_get(“Foo::Bar”)

  • Rails’ “UserMailer”.constantize (uses const_get under the hood)

  • Any metaprogramming that looks up constants by string name

Note: This does NOT catch direct constant references like ‘Foo::Bar` in source code - those compile to opt_getconstant_path bytecode and bypass const_get.

Register via: coverage_map.use(FastCov::ConstGetTracker)

Defined Under Namespace

Modules: ConstGetPatch

Instance Attribute Summary

Attributes inherited from AbstractTracker

#coverage_map

Instance Method Summary collapse

Methods inherited from AbstractTracker

#initialize, #on_record, #on_start, #on_stop, #record, record, reset, #root, #start, #stop

Constructor Details

This class inherits a constructor from FastCov::AbstractTracker

Instance Method Details

#installObject



18
19
20
21
22
# File 'lib/fast_cov/trackers/const_get_tracker.rb', line 18

def install
  return if Module.ancestors.include?(ConstGetPatch)

  Module.prepend(ConstGetPatch)
end