Class: Mutant::Mutator

Inherits:
Object
  • Object
show all
Includes:
AbstractType, Adamantium::Flat
Defined in:
lib/mutant/mutator.rb,
lib/mutant/mutator/util.rb,
lib/mutant/mutator/node.rb,
lib/mutant/mutator/node/if.rb,
lib/mutant/mutator/registry.rb,
lib/mutant/mutator/node/send.rb,
lib/mutant/mutator/node/case.rb,
lib/mutant/mutator/node/next.rb,
lib/mutant/mutator/node/dsym.rb,
lib/mutant/mutator/node/noop.rb,
lib/mutant/mutator/node/dstr.rb,
lib/mutant/mutator/node/mlhs.rb,
lib/mutant/mutator/node/when.rb,
lib/mutant/mutator/node/break.rb,
lib/mutant/mutator/node/block.rb,
lib/mutant/mutator/node/masgn.rb,
lib/mutant/mutator/node/const.rb,
lib/mutant/mutator/node/begin.rb,
lib/mutant/mutator/node/splat.rb,
lib/mutant/mutator/node/yield.rb,
lib/mutant/mutator/node/super.rb,
lib/mutant/mutator/util/array.rb,
lib/mutant/mutator/util/symbol.rb,
lib/mutant/mutator/node/zsuper.rb,
lib/mutant/mutator/node/return.rb,
lib/mutant/mutator/node/rescue.rb,
lib/mutant/mutator/node/binary.rb,
lib/mutant/mutator/node/nthref.rb,
lib/mutant/mutator/node/define.rb,
lib/mutant/mutator/node/restarg.rb,
lib/mutant/mutator/node/or_asgn.rb,
lib/mutant/mutator/node/kwbegin.rb,
lib/mutant/mutator/node/op_asgn.rb,
lib/mutant/mutator/node/resbody.rb,
lib/mutant/mutator/node/literal.rb,
lib/mutant/mutator/node/defined.rb,
lib/mutant/mutator/node/generic.rb,
lib/mutant/mutator/node/blockarg.rb,
lib/mutant/mutator/node/and_asgn.rb,
lib/mutant/mutator/node/argument.rb,
lib/mutant/mutator/node/arguments.rb,
lib/mutant/mutator/node/send/index.rb,
lib/mutant/mutator/node/literal/nil.rb,
lib/mutant/mutator/node/send/binary.rb,
lib/mutant/mutator/node/literal/hash.rb,
lib/mutant/mutator/node/literal/range.rb,
lib/mutant/mutator/node/literal/float.rb,
lib/mutant/mutator/node/literal/array.rb,
lib/mutant/mutator/node/literal/regex.rb,
lib/mutant/mutator/node/literal/string.rb,
lib/mutant/mutator/node/literal/fixnum.rb,
lib/mutant/mutator/node/literal/symbol.rb,
lib/mutant/mutator/node/literal/boolean.rb,
lib/mutant/mutator/node/conditional_loop.rb,
lib/mutant/mutator/node/named_value/access.rb,
lib/mutant/mutator/node/match_current_line.rb,
lib/mutant/mutator/node/send/attribute_assignment.rb,
lib/mutant/mutator/node/named_value/constant_assignment.rb,
lib/mutant/mutator/node/named_value/variable_assignment.rb

Overview

Generator for mutations

Direct Known Subclasses

Node, Util

Defined Under Namespace

Classes: Node, Registry, Util

Constant Summary collapse

REGISTRY =

Registry

Registry.new

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Attribute Details

#inputObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Return input

Returns:

  • (Object)

43
44
45
# File 'lib/mutant/mutator.rb', line 43

def input
  @input
end

#parentObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Return input

Returns:

  • (Object)

51
52
53
# File 'lib/mutant/mutator.rb', line 51

def parent
  @parent
end

Class Method Details

.each(input, parent = nil, &block) ⇒ self

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Run mutator on input

Parameters:

  • input (Object)

    the input to mutate

  • parent (Mutator) (defaults to: nil)

Returns:

  • (self)

17
18
19
20
21
22
# File 'lib/mutant/mutator.rb', line 17

def self.each(input, parent = nil, &block)
  return to_enum(__method__, input, parent) unless block_given?
  REGISTRY.lookup(input).new(input, parent, block)

  self
end