From fdcd712ffe2521a168553a614e6934f3dc2ebf79 Mon Sep 17 00:00:00 2001 From: Yorick Peterse Date: Mon, 16 Feb 2015 21:56:17 +0100 Subject: [PATCH] Don't use Array#uniq in NodeSet#initialize. Removing this makes the process of parsing larger XML documents a bit faster. The downside is that NodeSet#initialize will no longer filter out duplicate nodes, though this is not something Oga itself relies upon. Methods such as NodeSet#push still do ignore elements already present. --- lib/oga/xml/node_set.rb | 2 +- spec/oga/xml/node_set_spec.rb | 7 ------- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/lib/oga/xml/node_set.rb b/lib/oga/xml/node_set.rb index a3bf283..3d10247 100644 --- a/lib/oga/xml/node_set.rb +++ b/lib/oga/xml/node_set.rb @@ -44,7 +44,7 @@ module Oga # @param [Oga::XML::NodeSet] owner The owner of the set. # def initialize(nodes = [], owner = nil) - @nodes = nodes.uniq + @nodes = nodes @owner = owner @nodes.each { |node| take_ownership(node) } if owner diff --git a/spec/oga/xml/node_set_spec.rb b/spec/oga/xml/node_set_spec.rb index 3857888..d82a283 100644 --- a/spec/oga/xml/node_set_spec.rb +++ b/spec/oga/xml/node_set_spec.rb @@ -25,13 +25,6 @@ describe Oga::XML::NodeSet do node.node_set.should == set end - - it 'only store unique nodes' do - n1 = Oga::XML::Element.new(:name => 'a') - set = described_class.new([n1, n1]) - - set.length.should == 1 - end end describe '#each' do