struct YAML::Any
Overview
YAML::Any is a convenient wrapper around all possible YAML core types
(YAML::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.
Included Modules
Defined in:
yaml/any.crConstructors
- .new(ctx : YAML::ParseContext, node : YAML::Nodes::Node)
-
.new(raw : YAML::Type)
Creates a
YAML::Anythat wraps the givenYAML::Type.
Instance Method Summary
-
#==(other)
Returns
trueif the raw object is equal to other. -
#==(other : YAML::Any)
Returns
trueif bothselfand other's raw object are equal. -
#[](index_or_key) : YAML::Any
Assumes the underlying value is an
ArrayorHashand returns the element at the given index_or_key. -
#[]?(index_or_key) : YAML::Any?
Assumes the underlying value is an
ArrayorHashand returns the element at the given index_or_key, ornilif out of bounds or the key is missing. -
#as_a : Array(Type)
Checks that the underlying value is
Array, and returns its value. -
#as_a? : Array(Type)?
Checks that the underlying value is
Array, and returns its value. -
#as_bytes : Bytes
Checks that the underlying value is
Bytes, and returns its value. -
#as_bytes? : Bytes?
Checks that the underlying value is
Bytes, and returns its value. -
#as_f : Float64
Checks that the underlying value is
Float64, and returns its value. -
#as_f? : Float64?
Checks that the underlying value is
Float64, and returns its value. -
#as_h : Hash(Type, Type)
Checks that the underlying value is
Hash, and returns its value. -
#as_h? : Hash(Type, Type)?
Checks that the underlying value is
Hash, and returns its value. -
#as_i : Int32
Checks that the underlying value is
Int64, and returns its value asInt32. -
#as_i64 : Int64
Checks that the underlying value is
Int64, and returns its value. -
#as_i64? : Int64?
Checks that the underlying value is
Int64, and returns its value. -
#as_i? : Int32?
Checks that the underlying value is
Int64, and returns its value asInt32. -
#as_nil : Nil
Checks that the underlying value is
Nil, and returnsnil. -
#as_s : String
Checks that the underlying value is
String, and returns its value. -
#as_s? : String?
Checks that the underlying value is
String, and returns its value. -
#as_time : Time
Checks that the underlying value is
Time, and returns its value. -
#as_time? : Time?
Checks that the underlying value is
Time, and returns its value. -
#each(&block)
Assumes the underlying value is an
ArrayorHashand yields each of the elements or key/values, always asYAML::Any. -
#hash(hasher)
See
Object#hash(hasher) -
#raw : YAML::Type
Returns the raw underlying value, a
YAML::Type. -
#size : Int
Assumes the underlying value is an
ArrayorHashand returns its size.
Instance methods inherited from module Enumerable(self)
all?(&block)all? all?, any?(&block)
any? any?, chunks(&block : T -> U) forall U chunks, compact_map(&block) compact_map, count(&block)
count(item) count, cycle(n, &block)
cycle(&block) cycle, each(&block : T -> _) each, each_cons(count : Int, reuse = false, &block) each_cons, each_slice(count : Int, reuse = false, &block) each_slice, each_with_index(offset = 0, &block) each_with_index, each_with_object(obj, &block) each_with_object, find(if_none = nil, &block) find, first(count : Int)
first first, first? first?, flat_map(&block : T -> Array(U) | Iterator(U) | U) forall U flat_map, grep(pattern) grep, group_by(&block : T -> U) forall U group_by, in_groups_of(size : Int, filled_up_with : U = nil) forall U
in_groups_of(size : Int, filled_up_with : U = nil, reuse = false, &block) forall U in_groups_of, includes?(obj) includes?, index(&block)
index(obj) index, index_by(&block : T -> U) forall U index_by, join(separator, io)
join(separator = "")
join(separator, io, &block)
join(separator = "", &block) join, map(&block : T -> U) forall U map, map_with_index(&block : T, Int32 -> U) forall U map_with_index, max max, max? max?, max_by(&block : T -> U) forall U max_by, max_by?(&block : T -> U) forall U max_by?, max_of(&block : T -> U) forall U max_of, max_of?(&block : T -> U) forall U max_of?, min min, min? min?, min_by(&block : T -> U) forall U min_by, min_by?(&block : T -> U) forall U min_by?, min_of(&block : T -> U) forall U min_of, min_of?(&block : T -> U) forall U min_of?, minmax minmax, minmax? minmax?, minmax_by(&block : T -> U) forall U minmax_by, minmax_by?(&block : T -> U) forall U minmax_by?, minmax_of(&block : T -> U) forall U minmax_of, minmax_of?(&block : T -> U) forall U minmax_of?, none?(&block)
none? none?, one?(&block) one?, partition(&block) partition, product(&block)
product(initial : Number, &block)
product
product(initial : Number) product, reduce(&block)
reduce(memo, &block) reduce, reject(&block : T -> ) reject, select(&block : T -> ) select, size size, skip(count : Int) skip, skip_while(&block) skip_while, sum(initial)
sum
sum(initial, &block)
sum(&block) sum, take_while(&block) take_while, to_a to_a, to_h to_h, to_set to_set
Instance methods inherited from struct Struct
==(other : self) : Bool
==,
hash(hasher)
hash,
inspect(io : IO) : Nil
inspect,
pretty_print(pp) : Nil
pretty_print,
to_s(io)
to_s
Instance methods inherited from struct Value
==(other)
==,
dup
dup
Instance methods inherited from class Object
!=(other)
!=,
!~(other)
!~,
==(other)
==,
===(other : JSON::Any)===(other : YAML::Any)
===(other) ===, =~(other) =~, class class, dup dup, hash(hasher)
hash hash, inspect(io : IO)
inspect inspect, itself itself, not_nil! not_nil!, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, tap(&block) tap, to_json(io : IO)
to_json to_json, to_pretty_json(indent : String = " ")
to_pretty_json(io : IO, indent : String = " ") to_pretty_json, to_s
to_s(io : IO) to_s, to_yaml(io : IO)
to_yaml to_yaml, try(&block) try, unsafe_as(type : T.class) forall T unsafe_as
Constructor methods inherited from class Object
from_json(string_or_io, root : String) : selffrom_json(string_or_io) : self from_json, from_yaml(string_or_io : String | IO) : self from_yaml
Constructor Detail
Instance Method Detail
Returns true if both self and other's raw object are equal.
Assumes the underlying value is an Array or Hash
and returns the element at the given index_or_key.
Raises if the underlying value is not an Array nor a Hash.
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.
Raises if the underlying value is not an Array nor a Hash.
Checks that the underlying value is Array, and returns its value.
Raises otherwise.
Checks that the underlying value is Array, and returns its value.
Returns nil otherwise.
Checks that the underlying value is Bytes, and returns its value.
Raises otherwise.
Checks that the underlying value is Bytes, and returns its value.
Returns nil otherwise.
Checks that the underlying value is Float64, and returns its value.
Raises otherwise.
Checks that the underlying value is Float64, and returns its value.
Returns nil otherwise.
Checks that the underlying value is Hash, and returns its value.
Raises otherwise.
Checks that the underlying value is Hash, and returns its value.
Returns nil otherwise.
Checks that the underlying value is Int64, and returns its value as Int32.
Raises otherwise.
Checks that the underlying value is Int64, and returns its value.
Raises otherwise.
Checks that the underlying value is Int64, and returns its value.
Returns nil otherwise.
Checks that the underlying value is Int64, and returns its value as Int32.
Returns nil otherwise.
Checks that the underlying value is Nil, and returns nil.
Raises otherwise.
Checks that the underlying value is String, and returns its value.
Raises otherwise.
Checks that the underlying value is String, and returns its value.
Returns nil otherwise.
Checks that the underlying value is Time, and returns its value.
Raises otherwise.
Checks that the underlying value is Time, and returns its value.
Returns nil otherwise.
Assumes the underlying value is an Array or Hash and yields each
of the elements or key/values, always as YAML::Any.
Raises if the underlying value is not an Array or Hash.
Assumes the underlying value is an Array or Hash and returns its size.
Raises if the underlying value is not an Array or Hash.