Module: OrderedTree::InstanceMethods::Destroy

Included in:
OrderedTree::InstanceMethods
Defined in:
lib/ordered_tree/instance_methods/destroy.rb

Instance Method Summary collapse

Instance Method Details

#destroy_and_orphan_childrenObject

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



7
8
9
10
11
12
# 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_childrenObject

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



15
16
17
18
19
20
# 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_childrenObject



22
23
24
25
26
27
28
29
# 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