class Crispr::Mutator
It delegates to multiple mutation strategies (Boolean, Numeric, etc.)
Mutator performs simple AST mutations on Ruby source code.
def find_mutations(node)
def find_mutations(node) return [] unless node.is_a?(Parser::AST::Node) local_mutations = MUTATORS.flat_map { |mutator| mutator.mutations_for(node) } child_mutations = node.children.flat_map { |child| find_mutations(child) } local_mutations + child_mutations end
def initialize(source_code)
def initialize(source_code) @source_code = source_code end
def mutations
def mutations ast = Parser::CurrentRuby.parse(@source_code) return [] unless ast find_mutations(ast) end