Module: Mutant
- Defined in:
- lib/mutant.rb,
lib/mutant.rb,
lib/mutant/ast.rb,
lib/mutant/cli.rb,
lib/mutant/env.rb,
lib/mutant/diff.rb,
lib/mutant/meta.rb,
lib/mutant/test.rb,
lib/mutant/cache.rb,
lib/mutant/color.rb,
lib/mutant/config.rb,
lib/mutant/loader.rb,
lib/mutant/result.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/ast/meta.rb,
lib/mutant/ast/sexp.rb,
lib/mutant/mutation.rb,
lib/mutant/reporter.rb,
lib/mutant/ast/nodes.rb,
lib/mutant/ast/types.rb,
lib/mutant/delegator.rb,
lib/mutant/isolation.rb,
lib/mutant/zombifier.rb,
lib/mutant/expression.rb,
lib/mutant/integration.rb,
lib/mutant/matcher/null.rb,
lib/mutant/meta/example.rb,
lib/mutant/mutator/node.rb,
lib/mutant/mutator/util.rb,
lib/mutant/reporter/cli.rb,
lib/mutant/context/scope.rb,
lib/mutant/matcher/chain.rb,
lib/mutant/matcher/scope.rb,
lib/mutant/reporter/null.rb,
lib/mutant/matcher/config.rb,
lib/mutant/matcher/filter.rb,
lib/mutant/matcher/method.rb,
lib/mutant/reporter/trace.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/matcher/compiler.rb,
lib/mutant/meta/example/dsl.rb,
lib/mutant/mutator/registry.rb,
lib/mutant/require_highjack.rb,
lib/mutant/expression/method.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/next.rb,
lib/mutant/mutator/node/noop.rb,
lib/mutant/mutator/node/send.rb,
lib/mutant/mutator/node/when.rb,
lib/mutant/ast/named_children.rb,
lib/mutant/expression/methods.rb,
lib/mutant/mutator/node/begin.rb,
lib/mutant/mutator/node/block.rb,
lib/mutant/mutator/node/break.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/ast/node_predicates.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/reporter/cli/report.rb,
lib/mutant/warning_expectation.rb,
lib/mutant/expression/namespace.rb,
lib/mutant/mutator/node/defined.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/or_asgn.rb,
lib/mutant/mutator/node/resbody.rb,
lib/mutant/mutator/node/restarg.rb,
lib/mutant/reporter/cli/printer.rb,
lib/mutant/matcher/method/finder.rb,
lib/mutant/mutator/node/and_asgn.rb,
lib/mutant/mutator/node/argument.rb,
lib/mutant/mutator/node/blockarg.rb,
lib/mutant/reporter/cli/progress.rb,
lib/mutant/reporter/cli/registry.rb,
lib/mutant/mutator/node/arguments.rb,
lib/mutant/matcher/method/instance.rb,
lib/mutant/mutator/node/send/index.rb,
lib/mutant/reporter/cli/report/env.rb,
lib/mutant/subject/method/instance.rb,
lib/mutant/matcher/method/singleton.rb,
lib/mutant/mutator/node/literal/nil.rb,
lib/mutant/mutator/node/send/binary.rb,
lib/mutant/reporter/cli/report/test.rb,
lib/mutant/subject/method/singleton.rb,
lib/mutant/mutator/node/literal/hash.rb,
lib/mutant/reporter/cli/progress/env.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/reporter/cli/progress/noop.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/report/subject.rb,
lib/mutant/mutator/node/literal/boolean.rb,
lib/mutant/reporter/cli/progress/config.rb,
lib/mutant/reporter/cli/progress/result.rb,
lib/mutant/reporter/cli/report/mutation.rb,
lib/mutant/mutator/node/conditional_loop.rb,
lib/mutant/reporter/cli/progress/subject.rb,
lib/mutant/mutator/node/match_current_line.rb,
lib/mutant/mutator/node/named_value/access.rb,
lib/mutant/reporter/cli/progress/result/subject.rb,
lib/mutant/reporter/cli/progress/result/mutation.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: AST, Delegator, Isolation, Meta, Result Classes: CLI, Cache, Color, Config, Context, Diff, Env, Expression, Integration, Loader, Matcher, Mutation, Mutator, Reporter, RequireHighjack, Runner, Subject, Test, 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
- SCOPE_OPERATOR =
'::'.freeze
- VERSION =
The current mutant version
'0.5.25'.freeze
Class Method Summary collapse
-
.constant_lookup(location) ⇒ Object
private
Lookup constant for location.
-
.singleton_subclass_instance(name, superclass, &block) ⇒ self
private
Define instance of subclassed superclass as constant.
-
.zombify ⇒ self
private
Perform self zombification.
Class Method Details
.constant_lookup(location) ⇒ Object
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.
Lookup constant for location
38 39 40 41 42 |
# File 'lib/mutant.rb', line 38 def self.constant_lookup(location) location.split(SCOPE_OPERATOR).reduce(Object) do |parent, name| parent.const_get(name, nil) end end |
.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
64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/mutant.rb', line 64 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 |