Sha256: 0b35dd6804b1cde4e522a89d2f9a72b7fba03846276c3a9c444e5553cd1b446e

Contents?: true

Size: 464 Bytes

Versions: 3

Compression:

Stored size: 464 Bytes

Contents

# typed: strict

class SerializeValue
  extend T::Sig

  sig { params(value: T.untyped).returns(T.untyped) }
  def self.serialize(value)
    if value.is_a?(Hash)
      HashTransformer.serialize_values(value)
    elsif value.is_a?(Array)
      value.map { |item| serialize(item) }
    elsif value.is_a?(T::Struct)
      value.serialize_to(:hash).payload_or(value)
    elsif value.respond_to?(:serialize)
      value.serialize
    else
      value
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sorbet-schema-0.7.2 lib/sorbet-schema/serialize_value.rb
sorbet-schema-0.7.1 lib/sorbet-schema/serialize_value.rb
sorbet-schema-0.7.0 lib/sorbet-schema/serialize_value.rb