diff --git a/lib/sdf/sensor.rb b/lib/sdf/sensor.rb index 139e808..6308baa 100644 --- a/lib/sdf/sensor.rb +++ b/lib/sdf/sensor.rb @@ -23,7 +23,7 @@ def each_direct_plugin(&block) end def each_plugin - xml.elements.each do |plugin_xml| + xml.elements.to_a("plugin").each do |plugin_xml| yield(Plugin.new(plugin_xml, self)) end end diff --git a/test/test_sensor.rb b/test/test_sensor.rb index d22ff02..91ab2bb 100644 --- a/test/test_sensor.rb +++ b/test/test_sensor.rb @@ -34,6 +34,10 @@ module SDF root = SDF::Sensor.new(REXML::Document.new("").root) assert root.enum_for(:each_plugin).to_a.empty? end + it "does not yield non-plugin children" do + root = SDF::Sensor.new(REXML::Document.new("").root) + assert root.enum_for(:each_plugin).to_a.empty? + end it "yields the plugins otherwise" do root = SDF::Sensor.new(REXML::Document.new("").root)