Module: Vizcore::DeepCopy

Defined in:
lib/vizcore/deep_copy.rb

Overview

Small recursive copier for plain payload hashes/arrays passed between DSL, server, and renderer.

Class Method Summary collapse

Class Method Details

.copy(value) ⇒ Object

Parameters:

  • value (Object)

Returns:

  • (Object)


10
11
12
13
14
15
16
17
18
19
# File 'lib/vizcore/deep_copy.rb', line 10

def copy(value)
  case value
  when Hash
    value.each_with_object({}) { |(key, entry), output| output[key] = copy(entry) }
  when Array
    value.map { |entry| copy(entry) }
  else
    value
  end
end