struct TOML::Any
Overview
TOML::Any
is a convenient wrapper around all possible TOML types (TOML::Any::Type
)
and can be used for traversing dynamic or unknown TOML structures.
require "toml"
obj = TOML.parse(%w[foo = "bar"])
obj["foo"].as_s # => "bar"
Note that methods used to traverse a TOML structure, #[]
and #[]?
,
always return a TOML::Any
to allow further traversal. To convert them to String
,
Int32
, etc., use the as_
methods, such as #as_s
, #as_i
, 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:
toml/any.crConstructors
-
.new(raw : Type)
Creates a
TOML::Any
that wraps the given value. -
.new(pull : TOML::PullParser)
Reads a
TOML::Any
value from the given pull parser.
Instance Method Summary
-
#==(other : TOML::Any)
Returns
true
if bothself
and other's raw object are equal. -
#==(other)
Returns
true
if the raw object is equal to other. -
#[](index : Int) : TOML::Any
Assumes the underlying value is an
Array
and returns the element at the given index. -
#[](key : String) : TOML::Any
Assumes the underlying value is a
Hash
and returns the element with the given key. -
#[]?(index : Int) : TOML::Any | Nil
Assumes the underlying value is an
Array
and returns the element at the given index, ornil
if out of bounds. -
#[]?(key : String) : TOML::Any | Nil
Assumes the underlying value is a
Hash
and returns the element with the given key, ornil
if the key is not present. -
#as_a : Array(Any)
Checks that the underlying value is
Array
, and returns its value. -
#as_a? : Array(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_f : Float64
Checks that the underlying value is
Float
, and returns its value as anFloat64
. -
#as_f32 : Float32
Checks that the underlying value is
Float
, and returns its value as anFloat32
. -
#as_f32? : Float32 | Nil
Checks that the underlying value is
Float
, and returns its value as anFloat32
. -
#as_f? : Float64 | Nil
Checks that the underlying value is
Float
, and returns its value as anFloat64
. -
#as_h : Hash(String, Any)
Checks that the underlying value is
Hash
, and returns its value. -
#as_h? : Hash(String, Any) | Nil
Checks that the underlying value is
Hash
, and returns its value. -
#as_i : Int32
Checks that the underlying value is
Int
, and returns its value as anInt32
. -
#as_i64 : Int64
Checks that the underlying value is
Int
, and returns its value as anInt64
. -
#as_i64? : Int64 | Nil
Checks that the underlying value is
Int
, and returns its value as anInt64
. -
#as_i? : Int32 | Nil
Checks that the underlying value is
Int
, and returns its value as anInt32
. -
#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 | Nil
Checks that the underlying value is
String
, and returns its value. - #clone
-
#dig(index_or_key : String | Int, *subkeys) : TOML::Any
Traverses the depth of a structure and returns the value, otherwise raises.
-
#dig?(index_or_key : String | Int, *subkeys) : TOML::Any | Nil
Traverses the depth of a structure and returns the value.
- #dup
-
#hash(hasher)
See
Object#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.
- #size : Int
-
#to_s(io : IO) : Nil
Same as
#inspect(io)
. - #to_yaml(yaml : YAML::Nodes::Builder) : Nil
Instance methods inherited from struct Value
==(other : TOML::Any)
==
Instance methods inherited from class Object
===(other : TOML::Any)
===
Constructor Detail
Instance Method Detail
Returns true
if both self
and other's raw object are equal.
Assumes the underlying value is an Array
and returns the element
at the given index.
Raises if the underlying value is not an Array
.
Assumes the underlying value is a Hash
and returns the element
with the given key.
Raises if the underlying value is not a Hash
.
Assumes the underlying value is an Array
and returns the element
at the given index, or nil
if out of bounds.
Raises if the underlying value is not an Array
.
Assumes the underlying value is a Hash
and returns the element
with the given key, or nil
if the key is not present.
Raises if the underlying value is not 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 Float
, and returns its value as an Float64
.
Raises otherwise.
Checks that the underlying value is Float
, and returns its value as an Float32
.
Raises otherwise.
Checks that the underlying value is Float
, and returns its value as an Float32
.
Returns nil
otherwise.
Checks that the underlying value is Float
, and returns its value as an Float64
.
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 Int
, and returns its value as an Int32
.
Raises otherwise.
Checks that the underlying value is Int
, and returns its value as an Int64
.
Raises otherwise.
Checks that the underlying value is Int
, and returns its value as an Int64
.
Returns nil
otherwise.
Checks that the underlying value is Int
, and returns its value as an Int32
.
Returns nil
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.
Traverses the depth of a structure and returns the value, otherwise raises.
Traverses the depth of a structure and returns the value.
Returns nil
if not found.
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)"