Module: OrderedTree::InstanceMethods::Destroy
- Included in:
- OrderedTree::InstanceMethods
- Defined in:
- lib/ordered_tree/instance_methods/destroy.rb
Instance Method Summary collapse
-
#destroy_and_orphan_children ⇒ Object
sends immediate children to the ‘roots’ list, then destroy’s self.
-
#destroy_and_parent_adopts_children ⇒ Object
hands immediate children of to it’s parent, then destroy’s self.
- #reorder_children ⇒ Object
Instance Method Details
#destroy_and_orphan_children ⇒ Object
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_children ⇒ Object
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_children ⇒ Object
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 |