lib/customize/inherited.rb in customize-0.0.7 vs lib/customize/inherited.rb in customize-0.0.8
- old
+ new
@@ -26,11 +26,11 @@
end
base.joins(:inherit_node).where(condition_string, node.left, node.right)
}
base.after_create { |object|
- object.create_inherit_node :left=>0, :right=>1
+ object.create_inherit_node
}
base.delegate :leaf?, :to=>:inherit_node
base.before_destroy { |object|
@@ -79,15 +79,11 @@
raise 'should be same class' if self.class != parent.class
raise 'should not be self' if self.id == parent.id
raise 'should not inherit descents' if self.descent_ids.include? parent.id
raise 'should not inherit parent' if self.parent.try(:id) == parent.id
self.class.transaction do
- inherit_node.parent_id = parent.inherit_node.id
- right = parent.inherit_node.right
- InheritNode.where("right >= ?", inherit_node.left).update_all("right = right+2")
- inherit_node.left = right
- inherit_node.right = right + 1
- inherit_node.save
+ inherit_node.destroy
+ create_inherit_node(:parent_id=>parent.inherit_node.id)
end
end
def ascents options={:include=>false}
return [] if new_record?