Sha256: 1ca5bdfce3ee4c6bddc6e714bc1f123060a0f4a8c10f6fb4c616def19492f52f

Contents?: true

Size: 719 Bytes

Versions: 7

Compression:

Stored size: 719 Bytes

Contents

module HashRefinements
  refine Hash do
    # File activesupport/lib/active_support/core_ext/hash/keys.rb, line 82
    def deep_transform_keys(&block)
      _deep_transform_keys_in_object(self, &block)
    end

    def slice(*keys)
      keys.each_with_object(Hash.new) { |k, hash| hash[k] = self[k] if has_key?(k) }
    end

    private

    def _deep_transform_keys_in_object(object, &block)
      case object
      when Hash
        object.each_with_object({}) do |(key, value), result|
          result[yield(key)] = _deep_transform_keys_in_object(value, &block)
        end
      when Array
        object.map { |e| _deep_transform_keys_in_object(e, &block) }
      else
        object
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
dolly-3.1.5 lib/refinements/hash_refinements.rb
dolly-3.1.4 lib/refinements/hash_refinements.rb
dolly-3.1.3 lib/refinements/hash_refinements.rb
dolly-3.1.2 lib/refinements/hash_refinements.rb
dolly-3.1.1 lib/refinements/hash_refinements.rb
dolly-3.1.0 lib/refinements/hash_refinements.rb
dolly-3.0.1 lib/refinements/hash_refinements.rb