Method: Attributor::Hash#dump

Defined in:
lib/attributor/types/hash.rb

#dump(**opts) ⇒ Object



702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
# File 'lib/attributor/types/hash.rb', line 702

def dump(**opts)
  return CIRCULAR_REFERENCE_MARKER if @dumping
  @dumping = true

  contents.each_with_object({}) do |(k, v), hash|
    k = key_attribute.dump(k, **opts)

    v = if (attribute_for_value = self.class.keys[k])
          attribute_for_value.dump(v, **opts)
        else
          value_attribute.dump(v, **opts)
        end

    hash[k] = v
  end
ensure
  @dumping = false
end