Module: Mutant
- Defined in:
- lib/mutant.rb,
lib/mutant/cli.rb,
lib/mutant/cache.rb,
lib/mutant/color.rb,
lib/mutant/config.rb,
lib/mutant/differ.rb,
lib/mutant/killer.rb,
lib/mutant/loader.rb,
lib/mutant/random.rb,
lib/mutant/runner.rb,
lib/mutant/walker.rb,
lib/mutant/context.rb,
lib/mutant/matcher.rb,
lib/mutant/mutator.rb,
lib/mutant/subject.rb,
lib/mutant/version.rb,
lib/mutant/mutation.rb,
lib/mutant/reporter.rb,
lib/mutant/strategy.rb,
lib/mutant/constants.rb,
lib/mutant/zombifier.rb,
lib/mutant/matcher/null.rb,
lib/mutant/mutator/node.rb,
lib/mutant/mutator/util.rb,
lib/mutant/node_helpers.rb,
lib/mutant/reporter/cli.rb,
lib/mutant/context/scope.rb,
lib/mutant/killer/forked.rb,
lib/mutant/killer/static.rb,
lib/mutant/matcher/chain.rb,
lib/mutant/matcher/scope.rb,
lib/mutant/mutation/evil.rb,
lib/mutant/reporter/null.rb,
lib/mutant/runner/config.rb,
lib/mutant/cli/classifier.rb,
lib/mutant/killer/forking.rb,
lib/mutant/matcher/filter.rb,
lib/mutant/matcher/method.rb,
lib/mutant/runner/subject.rb,
lib/mutant/subject/method.rb,
lib/mutant/warning_filter.rb,
lib/mutant/zombifier/file.rb,
lib/mutant/matcher/methods.rb,
lib/mutant/mutator/node/if.rb,
lib/mutant/runner/mutation.rb,
lib/mutant/mutation/neutral.rb,
lib/mutant/mutator/registry.rb,
lib/mutant/require_highjack.rb,
lib/mutant/matcher/namespace.rb,
lib/mutant/mutator/node/case.rb,
lib/mutant/mutator/node/dstr.rb,
lib/mutant/mutator/node/dsym.rb,
lib/mutant/mutator/node/mlhs.rb,
lib/mutant/mutator/node/noop.rb,
lib/mutant/mutator/node/send.rb,
lib/mutant/mutator/node/when.rb,
lib/mutant/mutator/node/begin.rb,
lib/mutant/mutator/node/block.rb,
lib/mutant/mutator/node/const.rb,
lib/mutant/mutator/node/masgn.rb,
lib/mutant/mutator/node/splat.rb,
lib/mutant/mutator/node/super.rb,
lib/mutant/mutator/node/yield.rb,
lib/mutant/mutator/util/array.rb,
lib/mutant/mutator/node/binary.rb,
lib/mutant/mutator/node/define.rb,
lib/mutant/mutator/node/nthref.rb,
lib/mutant/mutator/node/rescue.rb,
lib/mutant/mutator/node/return.rb,
lib/mutant/mutator/node/zsuper.rb,
lib/mutant/mutator/util/symbol.rb,
lib/mutant/warning_expectation.rb,
lib/mutant/mutator/node/generic.rb,
lib/mutant/mutator/node/kwbegin.rb,
lib/mutant/mutator/node/literal.rb,
lib/mutant/mutator/node/op_asgn.rb,
lib/mutant/mutator/node/resbody.rb,
lib/mutant/mutator/node/restarg.rb,
lib/mutant/reporter/cli/printer.rb,
lib/mutant/cli/classifier/method.rb,
lib/mutant/matcher/method/finder.rb,
lib/mutant/mutator/node/argument.rb,
lib/mutant/mutator/node/blockarg.rb,
lib/mutant/mutator/node/arguments.rb,
lib/mutant/matcher/method/instance.rb,
lib/mutant/mutator/node/send/index.rb,
lib/mutant/subject/method/instance.rb,
lib/mutant/cli/classifier/namespace.rb,
lib/mutant/matcher/method/singleton.rb,
lib/mutant/mutator/node/literal/nil.rb,
lib/mutant/mutator/node/send/binary.rb,
lib/mutant/subject/method/singleton.rb,
lib/mutant/mutator/node/literal/hash.rb,
lib/mutant/mutator/node/loop_control.rb,
lib/mutant/mutator/node/literal/array.rb,
lib/mutant/mutator/node/literal/float.rb,
lib/mutant/mutator/node/literal/range.rb,
lib/mutant/mutator/node/literal/regex.rb,
lib/mutant/mutator/node/literal/fixnum.rb,
lib/mutant/mutator/node/literal/string.rb,
lib/mutant/mutator/node/literal/symbol.rb,
lib/mutant/reporter/cli/printer/config.rb,
lib/mutant/reporter/cli/printer/killer.rb,
lib/mutant/mutator/node/literal/boolean.rb,
lib/mutant/mutator/node/literal/dynamic.rb,
lib/mutant/reporter/cli/printer/subject.rb,
lib/mutant/mutator/node/conditional_loop.rb,
lib/mutant/reporter/cli/printer/mutation.rb,
lib/mutant/mutator/node/match_current_line.rb,
lib/mutant/mutator/node/named_value/access.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
Library namespace
Defined Under Namespace
Modules: NodeHelpers, Random Classes: CLI, Cache, Color, Config, Context, Differ, Killer, Loader, Matcher, Mutation, Mutator, Reporter, RequireHighjack, Runner, Strategy, Subject, Walker, WarningExpectation, WarningFilter, Zombifier
Constant Summary collapse
- EMPTY_STRING =
The frozen empty string used within mutant
''.freeze
- EMPTY_ARRAY =
The frozen empty array used within mutant
[].freeze
- VERSION =
The current mutant version
'0.5.11'.freeze
- NOT_ASSIGNABLE =
Set of nodes that cannot be on the LHS of an assignment
symbolset %w( int float str dstr class module self )
- OP_ASSIGN =
Set of op-assign types
symbolset %w(or_asgn and_asgn op_asgn)
- NOT_STANDALONE =
Set of node types that are not valid when emitted standalone
symbolset %w( splat restarg block_pass)
- INDEX_OPERATORS =
symbolset %w([] []=)
- UNARY_METHOD_OPERATORS =
symbolset %w(~@ +@ -@ !)
- METHOD_OPERATORS =
Operators ruby implementeds as methods
symbolset %w( <=> === []= [] <= >= == !~ != =~ << >> ** * % / | ^ & < > + - ~@ +@ -@ ! )
- BINARY_METHOD_OPERATORS =
( METHOD_OPERATORS - (INDEX_OPERATORS + UNARY_METHOD_OPERATORS) ).to_set.freeze
- OPERATOR_METHODS =
( METHOD_OPERATORS + INDEX_OPERATORS + UNARY_METHOD_OPERATORS ).to_set.freeze
- NODE_BLACKLIST =
Nodes that are NOT handled by mutant.
not - 1.8 only, mutant does not support 1.8
symbolset %w(not)
- NODE_EXTRA =
Nodes that are NOT generated by parser but used by mutant / unparser.
symbolset %w(empty)
- NODE_TYPES =
((Parser::Meta::NODE_TYPES + NODE_EXTRA) - NODE_BLACKLIST).to_set.freeze
Class Method Summary collapse
-
.singleton_subclass_instance(name, superclass, &block) ⇒ self
private
Define instance of subclassed superclass as constant.
-
.zombify ⇒ self
private
Perform self zombification.
Class Method Details
.singleton_subclass_instance(name, superclass, &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.
Define instance of subclassed superclass as constant
63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/mutant.rb', line 63 def self.singleton_subclass_instance(name, superclass, &block) klass = Class.new(superclass) do def inspect self.class.name end define_singleton_method(:name) do "#{superclass.name}::#{name}".freeze end end klass.class_eval(&block) superclass.const_set(name, klass.new) self end |
.zombify ⇒ 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.
Perform self zombification
36 37 38 39 |
# File 'lib/mutant.rb', line 36 def self.zombify Zombifier.run('mutant', :Zombie) self end |