From ff856ed391331f8d6106614f989c2feba97ed202 Mon Sep 17 00:00:00 2001 From: Sylvain Joyeux Date: Sun, 19 Apr 2026 22:18:01 -0300 Subject: [PATCH] fix: do not yield non-plugin children of a sensor in Sensor#each_plugin --- lib/sdf/sensor.rb | 2 +- test/test_sensor.rb | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) 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)