From 39df4028a2816b96de3127d68d9c42687da4178e Mon Sep 17 00:00:00 2001 From: Timm Date: Sat, 10 Aug 2013 12:54:44 +0200 Subject: Refactored scrub to keep_node? instead of scrub_node calling it. Also added ability to stop traversing by returning STOP from scrub_node. --- .../lib/action_view/helpers/sanitize_helper/scrubbers.rb | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'actionview/lib/action_view/helpers') diff --git a/actionview/lib/action_view/helpers/sanitize_helper/scrubbers.rb b/actionview/lib/action_view/helpers/sanitize_helper/scrubbers.rb index 1f2df3b108..07611e6927 100644 --- a/actionview/lib/action_view/helpers/sanitize_helper/scrubbers.rb +++ b/actionview/lib/action_view/helpers/sanitize_helper/scrubbers.rb @@ -33,7 +33,9 @@ class PermitScrubber < Loofah::Scrubber def scrub(node) return CONTINUE if skip_node?(node) - return STOP if scrub_node(node) + unless keep_node?(node) + return STOP if scrub_node(node) == STOP + end scrub_attributes(node) end @@ -61,11 +63,8 @@ class PermitScrubber < Loofah::Scrubber end def scrub_node(node) - unless keep_node?(node) - node.before(node.children) # strip - node.remove - true - end + node.before(node.children) # strip + node.remove end def scrub_attributes(node) -- cgit v1.2.3