Class: Polyrun::Coverage::ExampleDiff::TrackFilter

Inherits:
Object
  • Object
show all
Defined in:
lib/polyrun/coverage/example_diff_track_filter.rb

Overview

Path inclusion for scoped snapshots and track-aware diffs.

Instance Method Summary collapse

Constructor Details

#initialize(root:, track_under: nil, ignore_paths: []) ⇒ TrackFilter

Returns a new instance of TrackFilter.



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/polyrun/coverage/example_diff_track_filter.rb', line 6

def initialize(root:, track_under: nil, ignore_paths: [])
  @root = root ? File.expand_path(root) : nil
  @track_under = Array(track_under).map(&:to_s).reject(&:empty?)
  @ignore = Array(ignore_paths).map(&:to_s).reject(&:empty?)
  @prefixes =
    if @root && !@track_under.empty?
      @track_under.map { |directory| File.join(@root, directory) }
    else
      []
    end
end

Instance Method Details

#include_path?(path) ⇒ Boolean

Returns:

  • (Boolean)


18
19
20
21
22
23
24
25
# File 'lib/polyrun/coverage/example_diff_track_filter.rb', line 18

def include_path?(path)
  absolute = absolute_path(path)
  return false if ignored?(absolute)

  return true if @prefixes.empty?

  @prefixes.any? { |prefix| absolute == prefix || absolute.start_with?(prefix + "/") }
end