module Pakyow::Support::DeepDup

Refines Object, Array, and Hash with support for deep_dup.

@example

using DeepDup
state = { "foo" => ["bar"] }
duped = state.deep_dup

state.keys[0] === duped.keys[0]
=> false

state.values[0][0] === duped.values[0][0]
=> false

Constants

UNDUPABLE

Objects that can't be copied.

Public Instance Methods

deep_dup() click to toggle source

Returns a copy of the object.

# File lib/pakyow/support/deep_dup.rb, line 28
def deep_dup
  if UNDUPABLE.include?(self.class)
    self
  else
    dup
  end
end