struct UUID
Overview
Adds JSON support to UUID
for use in a JSON mapping.
NOTE require "uuid/json"
is required to opt-in to this feature.
require "json"
require "uuid"
require "uuid/json"
class Example
JSON.mapping id: UUID
end
example = Example.from_json(%({"id": "ba714f86-cac6-42c7-8956-bcf5105e1b81"}))
uuid = UUID.new("87b3042b-9b9a-41b7-8b15-a93d3f17025e")
uuid.to_json # => "87b3042b-9b9a-41b7-8b15-a93d3f17025e"
Defined in:
uuid.cruuid/json.cr
Constructors
-
.new(bytes : StaticArray(UInt8, 16), variant : UUID::Variant? = nil, version : UUID::Version? = nil)
Generates UUID from bytes, applying version and variant to the UUID if present.
-
.new(slice : Slice(UInt8), variant = nil, version = nil)
Creates UUID from 16-bytes slice.
-
.new(uuid : UUID, variant = nil, version = nil)
Creates another
UUID
which is a copy of uuid, but allows overriding variant or version. -
.new(value : String, variant = nil, version = nil)
Creates new UUID by decoding
value
string from hyphenated (ie. - .new(pull : JSON::PullParser)
Class Method Summary
- .empty
-
.random(random = Random::Secure, variant = Variant::RFC4122, version = Version::V4)
Generates RFC 4122 v4 UUID.
Instance Method Summary
-
#==(other : UUID)
Returns
true
ifother
UUID represents the same UUID,false
otherwise. - #hexstring
-
#inspect(io : IO)
Convert to
String
in literal format. - #to_json(json : JSON::Builder)
- #to_s(io : IO)
-
#to_slice
Returns 16-byte slice.
-
#to_unsafe
Returns unsafe pointer to 16-bytes.
- #urn
-
#v1!
Returns
true
if UUID is a V1, raisesError
otherwise. -
#v1?
Returns
true
if UUID is a V1,false
otherwise. -
#v2!
Returns
true
if UUID is a V2, raisesError
otherwise. -
#v2?
Returns
true
if UUID is a V2,false
otherwise. -
#v3!
Returns
true
if UUID is a V3, raisesError
otherwise. -
#v3?
Returns
true
if UUID is a V3,false
otherwise. -
#v4!
Returns
true
if UUID is a V4, raisesError
otherwise. -
#v4?
Returns
true
if UUID is a V4,false
otherwise. -
#v5!
Returns
true
if UUID is a V5, raisesError
otherwise. -
#v5?
Returns
true
if UUID is a V5,false
otherwise. -
#variant
Returns UUID variant.
-
#version
Returns version based on RFC4122 format.
Instance methods inherited from struct Struct
==(other) : 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 : JSON::Any)==(other : YAML::Any)
==(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
Generates UUID from bytes, applying version and variant to the UUID if present.
Creates UUID from 16-bytes slice. Raises if slice isn't 16 bytes long. See
#initialize
for variant and version.
Creates another UUID
which is a copy of uuid, but allows overriding
variant or version.
Creates new UUID by decoding value
string from hyphenated (ie. ba714f86-cac6-42c7-8956-bcf5105e1b81
),
hexstring (ie. 89370a4ab66440c8add39e06f2bb6af6
) or URN (ie. urn:uuid:3f9eaf9e-cdb0-45cc-8ecb-0e5b2bfb0c20
)
format.
Class Method Detail
Generates RFC 4122 v4 UUID.
It is strongly recommended to use a cryptographically random source for
random, such as Random::Secure
.
Instance Method Detail
Returns true
if other
UUID represents the same UUID, false
otherwise.