Sha256: 2e4c9ead8c7715f84bd9b4ec097c06dfdd749387d7c1abc848292f8a9f73c305

Contents?: true

Size: 537 Bytes

Versions: 50

Compression:

Stored size: 537 Bytes

Contents

module OM::TreeNode
  
  attr_accessor :ancestors
  
  #  insert the mapper into the given parent
  def set_parent(parent_mapper)
    parent_mapper.children[@name] = self
    @ancestors << parent_mapper
  end
  
  #  insert the given mapper into the current mappers children
  def add_child(child_mapper)
    child_mapper.ancestors << self
    @children[child_mapper.name.to_sym] = child_mapper    
  end
  
  def retrieve_child(child_name)
    child = @children.fetch(child_name, nil)
  end
  
  def parent
    ancestors.last
  end
end

Version data entries

50 entries across 50 versions & 1 rubygems

Version Path
om-3.2.0 lib/om/tree_node.rb
om-3.1.1 lib/om/tree_node.rb
om-3.1.0 lib/om/tree_node.rb
om-3.0.7 lib/om/tree_node.rb
om-3.0.6 lib/om/tree_node.rb
om-3.0.5 lib/om/tree_node.rb
om-3.0.4 lib/om/tree_node.rb
om-3.0.3 lib/om/tree_node.rb
om-3.0.2 lib/om/tree_node.rb
om-3.0.1 lib/om/tree_node.rb
om-3.0.0 lib/om/tree_node.rb
om-2.2.1 lib/om/tree_node.rb
om-3.0.0.beta2 lib/om/tree_node.rb
om-3.0.0.beta1 lib/om/tree_node.rb
om-2.1.2 lib/om/tree_node.rb
om-2.1.1 lib/om/tree_node.rb
om-2.1.0 lib/om/tree_node.rb
om-2.0.0 lib/om/tree_node.rb
om-1.9.0.rc1 lib/om/tree_node.rb
om-1.9.0.pre1 lib/om/tree_node.rb