lib/active_record_survey/node_map.rb
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
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
Recursively creates a copy of this entire node_map