Simplify boolean literal mutators
This commit is contained in:
parent
ade67b304f
commit
8e2f244838
1 changed files with 8 additions and 17 deletions
|
@ -5,8 +5,15 @@ module Mutant
|
||||||
# Abstract mutator for boolean literals
|
# Abstract mutator for boolean literals
|
||||||
class Boolean < self
|
class Boolean < self
|
||||||
|
|
||||||
|
handle :true, :false
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
MAP = {
|
||||||
|
:true => :false,
|
||||||
|
:false => :true
|
||||||
|
}.freeze
|
||||||
|
|
||||||
# Emit mutants
|
# Emit mutants
|
||||||
#
|
#
|
||||||
# @return [undefined]
|
# @return [undefined]
|
||||||
|
@ -15,26 +22,10 @@ module Mutant
|
||||||
#
|
#
|
||||||
def dispatch
|
def dispatch
|
||||||
emit_nil
|
emit_nil
|
||||||
emit(s(self.class::INVERSE_TYPE))
|
emit(s(MAP.fetch(node.type)))
|
||||||
end
|
|
||||||
|
|
||||||
# Mutator for true literals
|
|
||||||
class TrueLiteral < self
|
|
||||||
INVERSE_TYPE = :false
|
|
||||||
|
|
||||||
handle(:true)
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
# Mutator for false literals
|
|
||||||
class FalseLiteral < self
|
|
||||||
INVERSE_TYPE = :true
|
|
||||||
|
|
||||||
handle(:false)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end # Boolean
|
end # Boolean
|
||||||
|
|
||||||
end # Literal
|
end # Literal
|
||||||
end # Node
|
end # Node
|
||||||
end # Mutatork
|
end # Mutatork
|
||||||
|
|
Loading…
Reference in a new issue