Class: Object

Inherits:
BasicObject
Defined in:
lib/full_clone/object.rb

Instance Method Summary collapse

Instance Method Details

#full_clone(progress = {}) ⇒ Object

The full_clone method for most objects.



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/full_clone/object.rb', line 9

def full_clone(progress={})
  progress[object_id] = result = clone
  exclude = full_clone_exclude

  instance_variables.each do |name|

    unless exclude.include?(name)
      value = result.instance_variable_get(name)
      value = progress[value.object_id] || value.full_clone(progress)
      result.instance_variable_set(name, value)
    end

  end

  result
end

#full_clone_excludeObject

By default, no instance variables are excluded.



4
5
6
# File 'lib/full_clone/object.rb', line 4

def full_clone_exclude
  []
end