self.traverse!

in lib/crawler/content_engine/transformer.rb [30:52]


      def self.traverse!(node, mode:) 
        
        
        node.remove_attribute(EXCLUDE_ATTR) if node.has_attribute?(EXCLUDE_ATTR)

        node.children.each do |child_node|
          if child_node.text? && mode == :exclude
            child_node.unlink
          elsif child_node.element?
            new_mode =
              if child_node.has_attribute?(INCLUDE_ATTR)
                :include
              elsif child_node.has_attribute?(EXCLUDE_ATTR)
                :exclude
              else
                mode 
              end

            traverse!(child_node, mode: new_mode)
          end
        end
      end