Module: Bulldogger::Probe

Defined in:
lib/bulldogger/probe.rb,
lib/bulldogger/probe/bucket.rb,
lib/bulldogger/probe/target.rb,
lib/bulldogger/probe/writer.rb,
lib/bulldogger/probe/session.rb,
lib/bulldogger/probe/registry.rb,
lib/bulldogger/probe/comparator.rb,
lib/bulldogger/probe/method_stats.rb,
lib/bulldogger/probe/raise_tracker.rb,
lib/bulldogger/probe/target_resolver.rb

Overview

Targeted capture: instead of a snapshot at the moment a test fails (Capture), a probe watches one or a few named methods across many calls and reports the shape of what it saw -- argument and return classes, nil counts, raise-exit counts, callers -- so a coding agent can answer "what does this method actually receive and return" without reading every call site by hand.

See lib/bulldogger/probe/session.rb for the mechanism: one TracePoint per target method (:call/:return, targeted -- cheap and strictly filtered) plus one shared, ref-counted pair of untargeted TracePoints (:raise/:rescue -- :raise cannot be targeted to one method, so this pair is the only way to tell a raise-exit apart from a method that legitimately returns nil; see raise_tracker.rb).

Defined Under Namespace

Modules: Comparator, Registry, TargetResolver, Writer Classes: Bucket, MethodStats, RaiseTracker, Session, Target

Class Method Summary collapse

Class Method Details

.call(target_strings, config:, run:, &block) ⇒ Object



29
30
31
# File 'lib/bulldogger/probe.rb', line 29

def self.call(target_strings, config:, run:, &block)
  Session.run(target_strings, config: config, run: run, &block)
end

.compare(path_a, path_b) ⇒ Object



33
34
35
# File 'lib/bulldogger/probe.rb', line 33

def self.compare(path_a, path_b)
  Comparator.compare(path_a, path_b)
end

.start(target_strings, config:, run:) ⇒ Object



25
26
27
# File 'lib/bulldogger/probe.rb', line 25

def self.start(target_strings, config:, run:)
  Session.start(target_strings, config: config, run: run)
end