Method: Hanuman::GraphBuilder#clone

Defined in:
lib/hanuman/graph.rb

#cloneObject



73
74
75
76
77
78
# File 'lib/hanuman/graph.rb', line 73

def clone
  cloned_attrs  = Hash[ serialize.select{ |key, val| key != :stages }.map{ |key, val| dup_key = key.dup rescue key ; dup_val = val.dup rescue val ; [ dup_key, dup_val ] } ]
  cloned_links  = links.map{ |link| link.dup }
  cloned_stages = Hash[ stages.map{ |stage| stage.clone } ]
  self.class.receive(cloned_attrs.merge(links: cloned_links).merge(stages: cloned_stages).merge(for_class: for_class))
end