module OrderedTree::InstanceMethods::Destroy

Public Instance Methods

destroy_and_orphan_children() click to toggle source

sends immediate children to the ‘roots’ list, then destroy’s self

# File lib/ordered_tree/instance_methods/destroy.rb, line 7
def destroy_and_orphan_children
  self.class.transaction do
    orphan_children
    self.destroy
  end
end
destroy_and_parent_adopts_children() click to toggle source

hands immediate children of to it’s parent, then destroy’s self

# File lib/ordered_tree/instance_methods/destroy.rb, line 15
def destroy_and_parent_adopts_children
  self.class.transaction do
    parent_adopts_children
    self.destroy
  end
end
reorder_children() click to toggle source
# File lib/ordered_tree/instance_methods/destroy.rb, line 22
def reorder_children
  self.class.transaction do
    children(true).each do |child|
      new_position = children.index(child) + 1
      child.update_attribute(order_column, new_position) if (child.position_in_list != new_position)
    end
  end
end