2012-12-06 21:30:28 +01:00
|
|
|
module Mutant
|
|
|
|
class Mutator
|
|
|
|
class Node
|
2013-06-04 23:43:36 +02:00
|
|
|
# Namespace for define mutations
|
2012-12-06 21:30:28 +01:00
|
|
|
class Define < self
|
|
|
|
|
2012-12-10 17:26:56 +01:00
|
|
|
private
|
|
|
|
|
|
|
|
# Emit mutations
|
|
|
|
#
|
|
|
|
# @return [undefined]
|
|
|
|
#
|
|
|
|
# @api private
|
|
|
|
#
|
|
|
|
def dispatch
|
2013-06-04 23:43:36 +02:00
|
|
|
util = self.class
|
|
|
|
mutate_child(util::ARGUMENTS_INDEX)
|
|
|
|
mutate_child(util::BODY_INDEX)
|
2012-12-10 17:26:56 +01:00
|
|
|
end
|
|
|
|
|
2013-06-04 23:43:36 +02:00
|
|
|
# Mutator for instance level defines
|
|
|
|
class Instance < self
|
|
|
|
|
|
|
|
handle(:def)
|
|
|
|
|
|
|
|
ARGUMENTS_INDEX = 1
|
|
|
|
BODY_INDEX = 2
|
|
|
|
|
|
|
|
end # Instance
|
|
|
|
|
|
|
|
# Mutator for singleton level defines
|
|
|
|
class Singleton < self
|
|
|
|
|
|
|
|
handle(:defs)
|
|
|
|
|
|
|
|
ARGUMENTS_INDEX = 2
|
|
|
|
BODY_INDEX = 3
|
|
|
|
|
|
|
|
end # Singelton
|
2013-06-04 10:25:13 +02:00
|
|
|
end # Define
|
|
|
|
end # Node
|
|
|
|
end # Mutator
|
|
|
|
end # Mutant
|