struct

Fluxion::Config::Node

Inherits Struct < Value < Object

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

new(raw : YAML::Any | Nil, path : String = "")
Source
root(document : YAML::Any) : self
Source

Instance methods

[](*keys : String) : Node

Child lookup. Accepts the first key that is present, so schema aliases read as node["shell", "shellPath"] and report the canonical name.

Source
bool?
Source
each_entry
Source
each_item
Source
has_key?(key : String) : Bool
Source
int?
Source
items

Sequence elements, each carrying an indexed path. A non-sequence yields nothing; callers that want to complain about the shape check sequence?.

Source
keys

Keys in document order, so diagnostics and generated output follow what the user actually wrote.

Source
mapping?
Source
missing?

An absent node. Distinct from a node holding YAML null, which counts as present-but-empty for the same purposes.

Source
null?
Source
path
Source
present?
Source
scalar?
Source
sequence?
Source
string?

Scalar as a string, whatever its YAML type. A release written as 44 rather than "44" should not be a different field.

Source
string_list

Sequence of strings, tolerating a bare scalar as a one-element list — commands: git status and commands: [git status] mean the same thing.

Source
string_map

String-to-string mapping, used by entries, locale, and vars.

Source