Sha256: 77786244935543653612aaac2527e21d3b65f95788e62ee28e0aa381b4a88fac

Contents?: true

Size: 839 Bytes

Versions: 41

Compression:

Stored size: 839 Bytes

Contents

module OrigenTesters::ATP
  module Processors
    # Removes any conditions nodes that are nested within other condition
    # nodes that specify the same condition
    class RedundantConditionRemover < Processor
      def run(node)
        @conditions = []
        process(node)
      end

      def on_condition_node(node)
        sig = [node.type, node.to_a[0]]
        if @conditions.include?(sig)
          flag, *nodes = *node
          node.updated(:inline, process_all(nodes))
        else
          @conditions << sig
          node = node.updated(nil, process_all(node.children))
          @conditions.pop
          node
        end
      end
      OrigenTesters::ATP::Flow::CONDITION_NODE_TYPES.each do |type|
        alias_method "on_#{type}", :on_condition_node unless method_defined?("on_#{type}")
      end
    end
  end
end

Version data entries

41 entries across 41 versions & 1 rubygems

Version Path
origen_testers-0.52.9 lib/origen_testers/atp/processors/redundant_condition_remover.rb
origen_testers-0.52.8 lib/origen_testers/atp/processors/redundant_condition_remover.rb
origen_testers-0.52.7 lib/origen_testers/atp/processors/redundant_condition_remover.rb
origen_testers-0.52.6 lib/origen_testers/atp/processors/redundant_condition_remover.rb
origen_testers-0.52.5 lib/origen_testers/atp/processors/redundant_condition_remover.rb
origen_testers-0.52.4 lib/origen_testers/atp/processors/redundant_condition_remover.rb
origen_testers-0.52.3 lib/origen_testers/atp/processors/redundant_condition_remover.rb
origen_testers-0.52.1 lib/origen_testers/atp/processors/redundant_condition_remover.rb
origen_testers-0.52.0 lib/origen_testers/atp/processors/redundant_condition_remover.rb
origen_testers-0.51.5 lib/origen_testers/atp/processors/redundant_condition_remover.rb
origen_testers-0.51.4 lib/origen_testers/atp/processors/redundant_condition_remover.rb
origen_testers-0.51.3 lib/origen_testers/atp/processors/redundant_condition_remover.rb
origen_testers-0.51.2 lib/origen_testers/atp/processors/redundant_condition_remover.rb
origen_testers-0.51.1 lib/origen_testers/atp/processors/redundant_condition_remover.rb
origen_testers-0.51.0 lib/origen_testers/atp/processors/redundant_condition_remover.rb
origen_testers-0.50.0 lib/origen_testers/atp/processors/redundant_condition_remover.rb
origen_testers-0.49.4 lib/origen_testers/atp/processors/redundant_condition_remover.rb
origen_testers-0.49.3 lib/origen_testers/atp/processors/redundant_condition_remover.rb
origen_testers-0.49.2 lib/origen_testers/atp/processors/redundant_condition_remover.rb
origen_testers-0.49.1 lib/origen_testers/atp/processors/redundant_condition_remover.rb