Module: SurrealDB::CBOR::Decoder
- Defined in:
- lib/surrealdb/cbor/decoder.rb
Class Method Summary collapse
-
.decode(data) ⇒ Object
Decodes CBOR bytes to Ruby objects, converting SurrealDB custom tags to the appropriate Ruby types.
-
.resolve(obj) ⇒ Object
Recursively resolves CBOR::Tagged values to SurrealDB types.
Class Method Details
.decode(data) ⇒ Object
Decodes CBOR bytes to Ruby objects, converting SurrealDB custom tags to the appropriate Ruby types.
16 17 18 19 |
# File 'lib/surrealdb/cbor/decoder.rb', line 16 def decode(data) raw = ::CBOR.decode(data) resolve(raw) end |
.resolve(obj) ⇒ Object
Recursively resolves CBOR::Tagged values to SurrealDB types.
24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/surrealdb/cbor/decoder.rb', line 24 def resolve(obj) case obj when ::CBOR::Tagged resolve_tag(obj.tag, obj.value) when Hash obj.transform_values { |v| resolve(v) } when Array obj.map { |v| resolve(v) } else obj end end |