struct YAML::Any
- YAML::Any
- Struct
- Value
- Object
Overview
YAML::Any
is a convenient wrapper around all possible YAML core types
(YAML::Any::Type
) and can be used for traversing dynamic or
unknown YAML structures.
require "yaml"
data = YAML.parse <<-END
---
foo:
bar:
baz:
- qux
- fox
END
data["foo"]["bar"]["baz"][0].as_s # => "qux"
data["foo"]["bar"]["baz"].as_a # => ["qux", "fox"]
Note that methods used to traverse a YAML structure, #[]
, #[]?
and #each
,
always return a YAML::Any
to allow further traversal. To convert them to String
,
Array
, etc., use the as_
methods, such as #as_s
, #as_a
, which perform
a type check against the raw underlying value. This means that invoking #as_s
when the underlying value is not a String
will raise: the value won't automatically
be converted (parsed) to a String
. There are also nil-able variants (#as_i?
, #as_s?
, ...),
which return nil
when the underlying value type won't match.
Defined in:
helpers/overloads.crInstance Method Summary
-
#dig(index_or_key, subkeys : Array)
dig method overload to support using arrays for subkeys