mirror of
https://github.com/LukeHagar/plexruby.git
synced 2025-12-09 20:57:43 +00:00
ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.513.4
This commit is contained in:
65
lib/crystalline/utils.rb
Normal file
65
lib/crystalline/utils.rb
Normal file
@@ -0,0 +1,65 @@
|
||||
# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'sorbet-runtime'
|
||||
|
||||
module Crystalline
|
||||
extend T::Sig
|
||||
|
||||
class FieldAugmented
|
||||
include MetadataFields
|
||||
end
|
||||
|
||||
sig { params(complex: Object).returns(Object) }
|
||||
def self.marshal_dict_complex(complex)
|
||||
if complex.is_a? Array
|
||||
complex.map { |v| Crystalline.marshal_dict_complex(v) }
|
||||
elsif complex.is_a? Hash
|
||||
complex.transform_values { |v| Crystalline.marshal_dict_complex(v) }
|
||||
elsif complex.is_a? Crystalline::FieldAugmented
|
||||
complex.to_dict
|
||||
else
|
||||
complex
|
||||
end
|
||||
end
|
||||
|
||||
def self.marshal_json_complex(complex)
|
||||
JSON.dump(marshal_dict_complex(complex))
|
||||
end
|
||||
|
||||
sig { params(data: Object, type: Object).returns(Object) }
|
||||
def self.unmarshal_complex(data, type)
|
||||
unmarshal_json(data, type)
|
||||
end
|
||||
|
||||
sig { params(data: Object, type: Object).returns(Object) }
|
||||
def self.unmarshal_json(data, type)
|
||||
if T.simplifiable? type
|
||||
type = T.simplify_type type
|
||||
end
|
||||
if type.instance_of?(Class) && type < ::Crystalline::FieldAugmented
|
||||
type.from_dict(data)
|
||||
elsif T.arr? type
|
||||
data.map { |v| Crystalline.unmarshal_complex(v, T.arr_of(type)) }
|
||||
elsif T.hash? type
|
||||
data.transform_values { |v| Crystalline.unmarshal_complex(v, T.hash_of(type)) }
|
||||
else
|
||||
data
|
||||
end
|
||||
end
|
||||
|
||||
sig { params(val: Object, primitives: T::Boolean).returns(Object) }
|
||||
def self.val_to_string(val, primitives: true)
|
||||
if val.is_a? T::Enum
|
||||
val.serialize
|
||||
elsif val.is_a? DateTime
|
||||
val.strftime('%Y-%m-%dT%H:%M:%S.%NZ')
|
||||
elsif primitives
|
||||
val.to_s
|
||||
else
|
||||
val
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user