Class: Mutineer::Mutators::BooleanLiteral

Inherits:
Base
  • Object
show all
Defined in:
lib/mutineer/mutators/boolean_literal.rb

Overview

Boolean literal mutator.

Mutates true/false and nil literals in the boolean_literal family.

Instance Method Summary collapse

Methods inherited from Base

#heredoc?, #mutations_for

Instance Method Details

#emit(node, replacement) ⇒ void (private)

This method returns an undefined value.

Emits a boolean-literal mutation.

Parameters:

  • node (Prism::Node) —

    literal node.

  • replacement (String) —

    replacement token.



45
46
47
48
49
50
51
52
53
# File 'lib/mutineer/mutators/boolean_literal.rb', line 45

def emit(node, replacement)
  loc = node.location
  @mutations << Mutation.new(
    start_offset: loc.start_offset,
    end_offset: loc.end_offset,
    replacement: replacement,
    operator: :boolean_literal
  )
end

#visit_false_node(node) ⇒ void

This method returns an undefined value.

Visits false literals.

Parameters:

  • node (Prism::FalseNode) —

    node to inspect.



24
25
26
27
# File 'lib/mutineer/mutators/boolean_literal.rb', line 24

def visit_false_node(node)
  emit(node, "true")
  super
end

#visit_nil_node(node) ⇒ void

This method returns an undefined value.

Visits nil literals.

Parameters:

  • node (Prism::NilNode) —

    node to inspect.



33
34
35
36
# File 'lib/mutineer/mutators/boolean_literal.rb', line 33

def visit_nil_node(node)
  emit(node, "true")
  super
end

#visit_true_node(node) ⇒ void

This method returns an undefined value.

Visits true literals.

Parameters:

  • node (Prism::TrueNode) —

    node to inspect.



15
16
17
18
# File 'lib/mutineer/mutators/boolean_literal.rb', line 15

def visit_true_node(node)
  emit(node, "false")
  super
end