Class: Mutineer::Mutators::ConditionNegation
- Defined in:
- lib/mutineer/mutators/condition_negation.rb
Overview
Condition-negation mutator.
Wraps if/unless predicates in !( ... ) textually.
Instance Method Summary collapse
-
#visit_if_node(node) ⇒ void
Visits if nodes.
-
#visit_unless_node(node) ⇒ void
Visits unless nodes.
-
#wrap(predicate) ⇒ void
private
Wraps a predicate in negation.
Methods inherited from Base
Instance Method Details
#visit_if_node(node) ⇒ void
This method returns an undefined value.
Visits if nodes.
15 16 17 18 |
# File 'lib/mutineer/mutators/condition_negation.rb', line 15 def visit_if_node(node) wrap(node.predicate) super end |
#visit_unless_node(node) ⇒ void
This method returns an undefined value.
Visits unless nodes.
24 25 26 27 |
# File 'lib/mutineer/mutators/condition_negation.rb', line 24 def visit_unless_node(node) wrap(node.predicate) super end |
#wrap(predicate) ⇒ void (private)
This method returns an undefined value.
Wraps a predicate in negation.
35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/mutineer/mutators/condition_negation.rb', line 35 def wrap(predicate) return unless predicate loc = predicate.location original = @source.byteslice(loc.start_offset...loc.end_offset) @mutations << Mutation.new( start_offset: loc.start_offset, end_offset: loc.end_offset, replacement: "!( #{original} )", operator: :condition_negation ) end |