Class: Mutineer::Mutators::LiteralMutation
- Defined in:
- lib/mutineer/mutators/literal_mutation.rb
Overview
Literal mutation mutator.
Mutates integers and strings with the Tier-2 literal rules.
Instance Method Summary collapse
-
#visit_integer_node(node) ⇒ void
Visits integer literals.
-
#visit_string_node(node) ⇒ void
Visits string literals.
Methods inherited from Base
Instance Method Details
#visit_integer_node(node) ⇒ void
This method returns an undefined value.
Visits integer literals.
15 16 17 18 19 20 21 |
# File 'lib/mutineer/mutators/literal_mutation.rb', line 15 def visit_integer_node(node) n = node.value emit(node.location, "0") unless n.zero? emit(node.location, "1") unless n == 1 emit(node.location, (n + 1).to_s) super end |
#visit_string_node(node) ⇒ void
This method returns an undefined value.
Visits string literals.
27 28 29 30 31 32 |
# File 'lib/mutineer/mutators/literal_mutation.rb', line 27 def visit_string_node(node) loc = node.location token = @source.byteslice(loc.start_offset...loc.end_offset) emit(loc, '""') unless token == '""' || token == "''" || node.unescaped.empty? super end |