Method: Aker::Group#marshal_load

Defined in:
lib/aker/group.rb

#marshal_load(dumped_tree_array) ⇒ Object

Copy-pasted from parent in order to use appropriate class when deserializing children.



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/aker/group.rb', line 47

def marshal_load(dumped_tree_array)
  nodes = { }

  for node_hash in dumped_tree_array do
    name        = node_hash[:name]
    parent_name = node_hash[:parent]
    content     = Marshal.load(node_hash[:content])

    if parent_name then
      nodes[name] = current_node = self.class.new(name, content)
      nodes[parent_name].add current_node
    else
      # This is the root node, hence initialize self.
      initialize(name, content)

      nodes[name] = self    # Add self to the list of nodes
    end
  end
end