Sha256: 5e67e4711ba66d389f257d96bf15ca7c2b261632f88dc8e9b15b4cc22c5dfc0c
Contents?: true
Size: 623 Bytes
Versions: 4
Compression:
Stored size: 623 Bytes
Contents
# frozen_string_literal: true module Housecanary module Utils #:nodoc: def deep_symbolize_keys(hash) deep_transform_keys(hash) { |key| key.to_sym rescue key } end module_function :deep_symbolize_keys private def deep_transform_keys(object, &block) case object when Hash object.each_with_object({}) do |(key, value), result| result[yield(key)] = deep_transform_keys(value, &block) end when Array object.map { |e| deep_transform_keys(e, &block) } else object end end module_function :deep_transform_keys end end
Version data entries
4 entries across 4 versions & 1 rubygems