Remove ownership when using NodeSet#delete.
This commit is contained in:
1 parent
4b408eae4f
commit
e69fbc3ea7
2 files changed
+14
-3
No files matched your search
@@ -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
|
||||
|
||||
##
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in new issue
Block a user