Module: Ucode::CodeChart::Verifier::Builder

Defined in:
lib/ucode/code_chart/verifier/builder.rb

Overview

Selects a Strategy based on tool availability. Preference order:

1. `UCODE_VERIFIER_STRATEGY` env var override — explicit
 user choice. Value is the strategy class name (e.g.
 `"resvg"`, `"mutool"`).
2. {ResvgStrategy} — preferred for accuracy and speed.
3. {MutoolStrategy} — fallback (always installed if the
 trace pipeline works).

Returns nil when no strategy is available; Ucode::CodeChart::Verifier then emits Skipped for every glyph.

Class Method Summary collapse

Class Method Details

.pick(strategies: nil) ⇒ Strategy?

Parameters:

  • strategies (Array<Strategy>, nil) (defaults to: nil)

    injectable list for tests. nil = construct the default chain.

Returns:



26
27
28
29
30
31
32
33
34
# File 'lib/ucode/code_chart/verifier/builder.rb', line 26

def pick(strategies: nil)
  strategies ||= default_strategies
  env_choice = ENV["UCODE_VERIFIER_STRATEGY"]
  if env_choice
    found = strategies.find { |s| name_of(s) == env_choice }
    return found if found&.available?
  end
  strategies.find(&:available?)
end