Fluxion::Config::Node
A YAML value together with the dotted path that reached it.
Every diagnostic Fluxion prints names the exact config location that caused
it (jobs[1].steps[0].packageManager), which is only possible if the path
travels with the value. Walking the document by hand rather than
deserializing into DTOs is what buys that, plus the freedom to accept the
several shapes the schema allows for one field.
A missing key produces a node rather than nil, so a chain like
node["spec"]["target"]["os"] never needs intermediate nil checks and
still reports the full path when the leaf turns out to be required.
Constructors
Instance methods
Child lookup. Accepts the first key that is present, so schema aliases
read as node["shell", "shellPath"] and report the canonical name.
Sequence elements, each carrying an indexed path. A non-sequence yields
nothing; callers that want to complain about the shape check sequence?.
Keys in document order, so diagnostics and generated output follow what the user actually wrote.
An absent node. Distinct from a node holding YAML null, which counts as
present-but-empty for the same purposes.
Scalar as a string, whatever its YAML type. A release written as 44
rather than "44" should not be a different field.
Sequence of strings, tolerating a bare scalar as a one-element list —
commands: git status and commands: [git status] mean the same thing.