Method: Sensu::Utilities#deep_dup

Defined in:
lib/sensu/utilities.rb

#deep_dup(obj) ⇒ obj

Creates a deep dup of basic ruby objects with support for walking hashes and arrays.

Parameters:

  • obj (Object)

Returns:

  • (obj)

    a dup of the original object.



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/sensu/utilities.rb', line 60

def deep_dup(obj)
  if obj.class == Hash
    new_obj = obj.dup
    new_obj.each do |key, value|
      new_obj[deep_dup(key)] = deep_dup(value)
    end
    new_obj
  elsif obj.class == Array
    arr = []
    obj.each do |item|
      arr << deep_dup(item)
    end
    arr
  elsif obj.class == String
    obj.dup
  else
    obj
  end
end