struct YAML::Any
inherits Struct
¶
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
.
Class methods¶
Methods¶
#[](index_or_key) : YAML::Any
¶
View source
(index_or_key) : YAML::Any
#[]?(index_or_key) : YAML::Any?
¶
(index_or_key) : YAML::Any?
Assumes the underlying value is an Array
or Hash
and returns the element
at the given index_or_key, or nil
if out of bounds or the key is missing.
#as_a : Array(Any)
¶
: Array(Any)
Checks that the underlying value is Array
, and returns its value.
Raises otherwise.
#as_a? : Array(Any)?
¶
: Array(Any)?
Checks that the underlying value is Array
, and returns its value.
Returns nil
otherwise.
#as_bool : Bool
¶
: Bool
Checks that the underlying value is Bool
, and returns its value.
Raises otherwise.
#as_bool? : Bool?
¶
: Bool?
Checks that the underlying value is Bool
, and returns its value.
Returns nil
otherwise.
#as_bytes : Bytes
¶
: Bytes
Checks that the underlying value is Bytes
, and returns its value.
Raises otherwise.
#as_bytes? : Bytes?
¶
: Bytes?
Checks that the underlying value is Bytes
, and returns its value.
Returns nil
otherwise.
#as_f : Float64
¶
: Float64
Checks that the underlying value is Float64
, and returns its value.
Raises otherwise.
#as_f32 : Float32
¶
View source
: Float32
#as_f32? : Float32?
¶
: Float32?
Checks that the underlying value is Float
, and returns its value as an Float32
.
Returns nil
otherwise.
#as_f? : Float64?
¶
: Float64?
Checks that the underlying value is Float64
, and returns its value.
Returns nil
otherwise.
#as_h : Hash(Any, Any)
¶
: Hash(Any, Any)
Checks that the underlying value is Hash
, and returns its value.
Raises otherwise.
#as_h? : Hash(Any, Any)?
¶
: Hash(Any, Any)?
Checks that the underlying value is Hash
, and returns its value.
Returns nil
otherwise.
#as_i : Int32
¶
View source
: Int32
#as_i64 : Int64
¶
: Int64
Checks that the underlying value is Int64
, and returns its value.
Raises otherwise.
#as_i64? : Int64?
¶
: Int64?
Checks that the underlying value is Int64
, and returns its value.
Returns nil
otherwise.
#as_i? : Int32?
¶
View source
: Int32?
#as_nil : Nil
¶
: Nil
Checks that the underlying value is Nil
, and returns nil
.
Raises otherwise.
#as_s : String
¶
: String
Checks that the underlying value is String
, and returns its value.
Raises otherwise.
#as_s? : String?
¶
: String?
Checks that the underlying value is String
, and returns its value.
Returns nil
otherwise.
#as_time : Time
¶
: Time
Checks that the underlying value is Time
, and returns its value.
Raises otherwise.
#as_time? : Time?
¶
: Time?
Checks that the underlying value is Time
, and returns its value.
Returns nil
otherwise.
#dig(index_or_key, *subkeys) : YAML::Any
¶
(index_or_key, *subkeys) : YAML::Any
Traverses the depth of a structure and returns the value, otherwise raises.
#dig?(index_or_key, *subkeys) : YAML::Any?
¶
(index_or_key, *subkeys) : YAML::Any?
Traverses the depth of a structure and returns the value.
Returns nil
if not found.
#to_json_object_key
¶
Forwards to_json_object_key
to raw
if it responds to that method,
raises JSON::Error
otherwise.