Class: Struct

Inherits:
Object show all
Defined in:
lib/full_clone/struct.rb

Instance Method Summary collapse

Instance Method Details

#full_clone(progress = {}) ⇒ Object

The full_clone method for structs.



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/full_clone/struct.rb', line 4

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

  members.each do |name|

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

  end

  result
end