Module: Dandruff::Utils

Defined in:
lib/dandruff/utils.rb

Overview

Utility functions for the Dandruff sanitizer

Class Method Summary collapse

Class Method Details

.deep_dup(obj) ⇒ Object

Performs a deep duplicate of an object

Parameters:

  • obj (Object)

    the object to duplicate

Returns:

  • (Object)

    the deep duplicated object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/dandruff/utils.rb', line 12

def deep_dup(obj)
  case obj
  when Hash
    obj.transform_values { |v| deep_dup(v) }
  when Array
    obj.map { |v| deep_dup(v) }
  else
    begin
      obj.dup
    rescue StandardError
      obj
    end
  end
end