Sha256: ce1d55cdcf5a09ee5be7162d418b2750c8d6be71e6e111731e5edcbcb4aff114

Contents?: true

Size: 787 Bytes

Versions: 7

Compression:

Stored size: 787 Bytes

Contents

# typed: strict

# We don't want a dependency on ActiveSupport.
# This is a simplified version of ActiveSupport's Key Hash extension
# https://github.com/rails/rails/blob/main/activesupport/lib/active_support/core_ext/hash/keys.rb
class HashTransformer
  class << self
    extend T::Sig

    sig { params(hash: T::Hash[T.untyped, T.untyped]).returns(T::Hash[Symbol, T.untyped]) }
    def symbolize_keys(hash)
      hash.each_with_object({}) do |(key, value), result|
        result[key.to_sym] = value
      end
    end

    sig { params(hash: T::Hash[T.untyped, T.untyped]).returns(T::Hash[T.untyped, T.untyped]) }
    def serialize_values(hash)
      hash.each_with_object({}) do |(key, value), result|
        result[key] = SerializeValue.serialize(value)
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
sorbet-schema-0.9.2 lib/sorbet-schema/hash_transformer.rb
sorbet-schema-0.9.1 lib/sorbet-schema/hash_transformer.rb
sorbet-schema-0.9.0 lib/sorbet-schema/hash_transformer.rb
sorbet-schema-0.8.0 lib/sorbet-schema/hash_transformer.rb
sorbet-schema-0.7.2 lib/sorbet-schema/hash_transformer.rb
sorbet-schema-0.7.1 lib/sorbet-schema/hash_transformer.rb
sorbet-schema-0.7.0 lib/sorbet-schema/hash_transformer.rb