Method: PDK::Util.deep_duplicate

Defined in:
lib/pdk/util.rb

.deep_duplicate(object) ⇒ Object

Does a deep copy instead of a shallow copy of an object.

Parameters:

  • object (Object)

    The object to duplicate

Returns:

  • (Object)

    duplicate of the original object the current working dir does not appear to be within a module.



265
266
267
268
269
270
271
272
273
274
275
# File 'lib/pdk/util.rb', line 265

def deep_duplicate(object)
  if object.is_a?(Array)
    object.map { |item| deep_duplicate(item) }
  elsif object.is_a?(Hash)
    hash = object.dup
    hash.each_pair { |key, value| hash[key] = deep_duplicate(value) }
    hash
  else
    object
  end
end