Module: Hanami::Utils::Hash
- Extended by:
- Dry::Transformer::Registry
- Defined in:
- gems/gems/hanami-utils-2.2.0.beta1/lib/hanami/utils/hash.rb
Overview
Hash transformations
Class Method Summary collapse
-
.deep_dup(input) ⇒ ::Hash
Deep duplicates hash values.
-
.deep_serialize(input) ⇒ ::Hash
Deep serializes given object into a
Hash
. -
.deep_stringify(input) ⇒ ::Hash
Deeply stringifies the given hash.
-
.deep_symbolize(input) ⇒ ::Hash
Performs deep symbolize on the given hash.
-
.stringify(input) ⇒ ::Hash
Stringifies the given hash.
-
.symbolize(input) ⇒ ::Hash
Symbolize the given hash.
Class Method Details
.deep_dup(input) ⇒ ::Hash
Deep duplicates hash values
The output of this function is a deep duplicate of the input. Any further modification on the input, won’t be reflected on the output and viceversa.
Source: | on GitHub
def self.deep_dup(input) input.transform_values do |v| case v when ::Hash deep_dup(v) else v.dup end end end |
.deep_serialize(input) ⇒ ::Hash
Deep serializes given object into a Hash
Please note that the returning Hash
will use symbols as keys.
Source: | on GitHub
def self.deep_serialize(input) input.to_hash.each_with_object({}) do |(key, value), output| output[key.to_sym] = case value when ->(h) { h.respond_to?(:to_hash) } deep_serialize(value) when Array value.map do |item| item.respond_to?(:to_hash) ? deep_serialize(item) : item end else value end end end |
.deep_stringify(input) ⇒ ::Hash
Deeply stringifies the given hash
Source: | on GitHub
def self.deep_stringify(input) self[:deep_stringify_keys].call(input) end |
.deep_symbolize(input) ⇒ ::Hash
Performs deep symbolize on the given hash
Source: | on GitHub
def self.deep_symbolize(input) self[:deep_symbolize_keys].call(input) end |
.stringify(input) ⇒ ::Hash
Stringifies the given hash
Source: | on GitHub
def self.stringify(input) self[:stringify_keys].call(input) end |
.symbolize(input) ⇒ ::Hash
Symbolize the given hash
Source: | on GitHub
def self.symbolize(input) self[:symbolize_keys].call(input) end |