Method: ActiveRecordSurvey::NodeMap#recursive_clone

Defined in:
lib/active_record_survey/node_map.rb

#recursive_cloneObject

Recursively creates a copy of this entire node_map



11
12
13
14
15
16
17
18
# File 'lib/active_record_survey/node_map.rb', line 11

def recursive_clone
  node_map = self.survey.node_maps.build(:survey => self.survey, :node => self.node)
  self.survey.node_maps.select { |i| i.parent == self && !i.marked_for_destruction? }.each { |child_node|
    child_node.survey = self.survey # required due to voodoo - we want to use the same survey with the same object_id
    node_map.children << child_node.recursive_clone
  }
  node_map
end