struct YAML::Any
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 <<-YAML
---
foo:
bar:
baz:
- qux
- fox
YAML
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:
yaml/any.cr Constructors
Instance Method Summary
- #==(other : YAML::Any)
Returns true if both self and other's raw object are equal.
- #==(other)
Returns true if the raw object is equal to other.
- #[](index_or_key) : YAML::Any
Assumes the underlying value is an Array or Hash and returns the element at the given index_or_key.
- #[]?(index_or_key) : YAML::Any | Nil
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(YAML::Any)
Checks that the underlying value is Array, and returns its value.
- #as_a? : Array(YAML::Any) | Nil
Checks that the underlying value is Array, and returns its value.
- #as_bool : Bool
Checks that the underlying value is Bool, and returns its value.
- #as_bool? : Bool | Nil
Checks that the underlying value is Bool, and returns its value.
- #as_bytes : Bytes
Checks that the underlying value is Bytes, and returns its value.
- #as_bytes? : Bytes | Nil
Checks that the underlying value is Bytes, and returns its value.
- #as_f : Float64
Checks that the underlying value is Float (or Int), and returns its value.
- #as_f32 : Float32
Checks that the underlying value is Float (or Int), and returns its value as an Float32.
- #as_f32? : Float32 | Nil
Checks that the underlying value is Float (or Int), and returns its value as an Float32.
- #as_f? : Float64 | Nil
Checks that the underlying value is Float (or Int), and returns its value.
- #as_h : Hash(YAML::Any, YAML::Any)
Checks that the underlying value is Hash, and returns its value.
- #as_h? : Hash(YAML::Any, YAML::Any) | Nil
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 as Int32.
- #as_i64 : Int64
Checks that the underlying value is Int64, and returns its value.
- #as_i64? : Int64 | Nil
Checks that the underlying value is Int64, and returns its value.
- #as_i? : Int32 | Nil
Checks that the underlying value is Int64, and returns its value as Int32.
- #as_nil : Nil
Checks that the underlying value is Nil, and returns nil.
- #as_s : String
Checks that the underlying value is String, and returns its value.
- #as_s? : String | Nil
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 | Nil
Checks that the underlying value is Time, and returns its value.
- #clone
Returns a new YAML::Any instance with the #raw value #cloneed.
- #dig(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 | Nil
Traverses the depth of a structure and returns the value.
- #dup
Returns a new YAML::Any instance with the #raw value #duped.
- #hash(hasher)
- #inspect(io : IO) : Nil
Appends this struct's name and instance variables names and values to the given IO.
- #raw : Type
Returns the raw underlying value, a Type.
- #size : Int
Assumes the underlying value is an Array or Hash and returns its size.
- #to_json(builder : JSON::Builder) : Nil
- #to_json_object_key : String
- #to_s(io : IO) : Nil
Instance methods inherited from struct Struct
==(other : YAML::Any)
==(other) : Bool ==,
hash(hasher) hash,
inspect(io : IO) : Nil inspect,
pretty_print(pp) : Nil pretty_print,
to_s(io : IO) : Nil to_s Class methods inherited from struct Struct
pre_initialize(address : Pointer) : Nil pre_initialize Instance methods inherited from struct Value
==(other : Log::Metadata::Value)
==(other : JSON::Any)
==(other : YAML::Any)
==(other) ==,
dup dup Instance methods inherited from class Object
! : Bool !,
!=(other) !=,
!~(other) !~,
==(other) ==,
===(other : JSON::Any)
===(other : YAML::Any)
===(other) ===,
=~(other) =~,
as(type : Class) as,
as?(type : Class) as?,
class class,
dup dup,
hash(hasher)
hash hash,
in?(collection : Object) : Bool
in?(*values : Object) : Bool in?,
inspect(io : IO) : Nil
inspect : String inspect,
is_a?(type : Class) : Bool is_a?,
itself itself,
nil? : Bool nil?,
not_nil!(message)
not_nil! not_nil!,
pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect,
pretty_print(pp : PrettyPrint) : Nil pretty_print,
responds_to?(name : Symbol) : Bool responds_to?,
tap(&) tap,
to_json(io : IO) : Nil
to_json : String to_json,
to_pretty_json(indent : String = " ") : String
to_pretty_json(io : IO, indent : String = " ") : Nil to_pretty_json,
to_s(io : IO) : Nil
to_s : String to_s,
to_yaml(io : IO) : Nil
to_yaml : String to_yaml,
try(&) try,
unsafe_as(type : T.class) forall T unsafe_as Class methods inherited from class Object
from_json(string_or_io : String | IO, root : String)
from_json(string_or_io : String | IO) from_json,
from_yaml(string_or_io : String | IO) from_yaml Macros inherited from class Object
class_getter(*names, &block) class_getter,
class_getter!(*names) class_getter!,
class_getter?(*names, &block) class_getter?,
class_property(*names, &block) class_property,
class_property!(*names) class_property!,
class_property?(*names, &block) class_property?,
class_setter(*names) class_setter,
def_clone def_clone,
def_equals(*fields) def_equals,
def_equals_and_hash(*fields) def_equals_and_hash,
def_hash(*fields) def_hash,
delegate(*methods, to object) delegate,
forward_missing_to(delegate) forward_missing_to,
getter(*names, &block) getter,
getter!(*names) getter!,
getter?(*names, &block) getter?,
property(*names, &block) property,
property!(*names) property!,
property?(*names, &block) property?,
setter(*names) setter Constructor Detail
def self.new(raw : Int)Source
Instance Method Detail
Returns true if both self and other's raw object are equal.
def ==(other)Source
Returns true if the raw object is equal to other.
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 Bool, and returns its value. Raises otherwise.
Checks that the underlying value is Bool, 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 Float (or Int), and returns its value. Raises otherwise.
Checks that the underlying value is Float (or Int), and returns its value as an Float32. Raises otherwise.
Checks that the underlying value is Float (or Int), and returns its value as an Float32. Returns nil otherwise.
Checks that the underlying value is Float (or Int), 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.
Returns a new YAML::Any instance with the #raw value #cloneed.
def dig(index_or_key, *subkeys) : YAML::AnySource
Traverses the depth of a structure and returns the value, otherwise raises.
def dig?(index_or_key, *subkeys) : YAML::Any | NilSource
Traverses the depth of a structure and returns the value. Returns nil if not found.
Returns a new YAML::Any instance with the #raw value #duped.
Description copied from struct
Struct Appends this struct's name and instance variables names and values to the given IO.
struct Point
def initialize(@x : Int32, @y : Int32)
end
end
p1 = Point.new 1, 2
p1.to_s # "Point(@x=1, @y=2)"
p1.inspect # "Point(@x=1, @y=2)"
Returns the raw underlying value, a Type.
Assumes the underlying value is an Array or Hash and returns its size.
Raises if the underlying value is not an Array or Hash.
def to_json_object_key : StringSource