← index

YAMLabstract

inherits Object

Parse and generate YAML documents.

The same value mapping as JSON (mapping → Map, sequence → List, plus the scalars), and YAML has a native null, so nil round-trips. Numbers beyond the 64-bit range and any BigDecimal serialize as strings.

YAML.parse:'a: 1'          "* -> #{'a': 1}
YAML.generate:#{'a': 1}    "* -> 'a: 1\n'

Class methods

generate:

Generate the YAML document for a value (any top-level value is allowed, unlike TOML). Serializable types match JSON.generate:, with nil allowed — YAML has a native null.

YAML.generate:#{'name': 'quoin' 'tags': #('vm' 'lang')}
"* -> 'name: quoin\ntags:\n- vm\n- lang\n'

native

parse:String

Parse a YAML document into Quoin values — mapping → Map, sequence → List, plus String / Integer / Double / Boolean / nil. Malformed input throws a ParseError.

(YAML.parse:'servers:\n  - web\n  - db').s     "* -> #{'servers': #('web' 'db')}

native