Remove ownership when using NodeSet#delete.

This commit is contained in:
Yorick Peterse 2014-07-01 10:15:39 +02:00
parent 4b408eae4f
commit e69fbc3ea7
2 changed files with 14 additions and 3 deletions

View File

@ -188,7 +188,11 @@ module Oga
# Removes a node from the current set only.
#
def delete(node)
@nodes.delete(node)
removed = @nodes.delete(node)
remove_ownership(removed) if removed
return removed
end
##

View File

@ -223,8 +223,9 @@ describe Oga::XML::NodeSet do
context '#delete' do
before do
@n1 = Oga::XML::Element.new(:name => 'a')
@set = described_class.new([@n1])
owner = Oga::XML::Element.new
@n1 = Oga::XML::Element.new
@set = described_class.new([@n1], owner)
end
example 'return the node when deleting it' do
@ -236,6 +237,12 @@ describe Oga::XML::NodeSet do
@set.empty?.should == true
end
example 'remove ownership of the removed node' do
@set.delete(@n1)
@n1.node_set.nil?.should == true
end
end
context '#attribute' do