Module: Mutant Private

Defined in:
lib/mutant.rb,
lib/mutant/ast.rb,
lib/mutant/cli.rb,
lib/mutant/env.rb,
lib/mutant/meta.rb,
lib/mutant/test.rb,
lib/mutant/util.rb,
lib/mutant/hooks.rb,
lib/mutant/range.rb,
lib/mutant/scope.rb,
lib/mutant/timer.rb,
lib/mutant/usage.rb,
lib/mutant/world.rb,
lib/mutant/config.rb,
lib/mutant/loader.rb,
lib/mutant/parser.rb,
lib/mutant/procto.rb,
lib/mutant/result.rb,
lib/mutant/context.rb,
lib/mutant/matcher.rb,
lib/mutant/mutator.rb,
lib/mutant/segment.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/parallel.rb,
lib/mutant/registry.rb,
lib/mutant/reporter.rb,
lib/mutant/selector.rb,
lib/mutant/variable.rb,
lib/mutant/ast/nodes.rb,
lib/mutant/ast/types.rb,
lib/mutant/bootstrap.rb,
lib/mutant/isolation.rb,
lib/mutant/transform.rb,
lib/mutant/zombifier.rb,
lib/mutant/expression.rb,
lib/mutant/repository.rb,
lib/mutant/ast/pattern.rb,
lib/mutant/cli/command.rb,
lib/mutant/integration.rb,
lib/mutant/result/test.rb,
lib/mutant/test/runner.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/ast/meta/send.rb,
lib/mutant/ast/structure.rb,
lib/mutant/matcher/chain.rb,
lib/mutant/matcher/scope.rb,
lib/mutant/parallel/pipe.rb,
lib/mutant/reporter/null.rb,
lib/mutant/selector/null.rb,
lib/mutant/ast/meta/const.rb,
lib/mutant/isolation/fork.rb,
lib/mutant/isolation/none.rb,
lib/mutant/matcher/config.rb,
lib/mutant/matcher/filter.rb,
lib/mutant/matcher/method.rb,
lib/mutant/matcher/static.rb,
lib/mutant/mutator/regexp.rb,
lib/mutant/result/session.rb,
lib/mutant/subject/config.rb,
lib/mutant/subject/method.rb,
lib/mutant/transform/json.rb,
lib/mutant/ast/meta/optarg.rb,
lib/mutant/ast/meta/symbol.rb,
lib/mutant/matcher/methods.rb,
lib/mutant/mutation/config.rb,
lib/mutant/mutation/runner.rb,
lib/mutant/mutator/node/if.rb,
lib/mutant/parallel/driver.rb,
lib/mutant/parallel/source.rb,
lib/mutant/parallel/worker.rb,
lib/mutant/repository/diff.rb,
lib/mutant/ast/meta/resbody.rb,
lib/mutant/cli/command/root.rb,
lib/mutant/cli/command/util.rb,
lib/mutant/integration/null.rb,
lib/mutant/meta/example/dsl.rb,
lib/mutant/require_highjack.rb,
lib/mutant/result/exception.rb,
lib/mutant/segment/recorder.rb,
lib/mutant/test/runner/sink.rb,
lib/mutant/ast/pattern/lexer.rb,
lib/mutant/ast/pattern/token.rb,
lib/mutant/expression/method.rb,
lib/mutant/expression/parser.rb,
lib/mutant/expression/source.rb,
lib/mutant/matcher/namespace.rb,
lib/mutant/mutator/node/case.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/reporter/sequence.rb,
lib/mutant/ast/named_children.rb,
lib/mutant/ast/pattern/parser.rb,
lib/mutant/ast/pattern/source.rb,
lib/mutant/expression/methods.rb,
lib/mutant/mutation/operators.rb,
lib/mutant/mutator/node/begin.rb,
lib/mutant/mutator/node/block.rb,
lib/mutant/mutator/node/break.rb,
lib/mutant/mutator/node/class.rb,
lib/mutant/mutator/node/const.rb,
lib/mutant/mutator/node/guard.rb,
lib/mutant/mutator/node/index.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/result/json_writer.rb,
lib/mutant/ast/node_predicates.rb,
lib/mutant/cli/command/session.rb,
lib/mutant/isolation/exception.rb,
lib/mutant/matcher/descendants.rb,
lib/mutant/mutator/node/binary.rb,
lib/mutant/mutator/node/define.rb,
lib/mutant/mutator/node/ensure.rb,
lib/mutant/mutator/node/kwargs.rb,
lib/mutant/mutator/node/module.rb,
lib/mutant/mutator/node/nthref.rb,
lib/mutant/mutator/node/regopt.rb,
lib/mutant/mutator/node/rescue.rb,
lib/mutant/mutator/node/return.rb,
lib/mutant/mutator/node/sclass.rb,
lib/mutant/mutator/node/zsuper.rb,
lib/mutant/mutator/util/symbol.rb,
lib/mutant/parallel/connection.rb,
lib/mutant/reporter/cli/format.rb,
lib/mutant/selector/expression.rb,
lib/mutant/expression/namespace.rb,
lib/mutant/mutation/runner/sink.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/reporter/cli/printer.rb,
lib/mutant/mutator/node/and_asgn.rb,
lib/mutant/mutator/node/argument.rb,
lib/mutant/mutator/node/numblock.rb,
lib/mutant/result/process_status.rb,
lib/mutant/expression/descendants.rb,
lib/mutant/mutator/node/arguments.rb,
lib/mutant/mutator/node/match_alt.rb,
lib/mutant/repository/diff/ranges.rb,
lib/mutant/cli/command/environment.rb,
lib/mutant/matcher/method/instance.rb,
lib/mutant/mutator/node/block_pass.rb,
lib/mutant/mutator/node/case_match.rb,
lib/mutant/mutator/node/in_pattern.rb,
lib/mutant/subject/method/instance.rb,
lib/mutant/config/coverage_criteria.rb,
lib/mutant/matcher/method/metaclass.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/printer/env.rb,
lib/mutant/subject/method/metaclass.rb,
lib/mutant/subject/method/singleton.rb,
lib/mutant/meta/example/verification.rb,
lib/mutant/mutator/node/literal/hash.rb,
lib/mutant/mutator/node/procarg_zero.rb,
lib/mutant/reporter/cli/printer/test.rb,
lib/mutant/reporter/cli/progress_bar.rb,
lib/mutant/mutator/node/const_pattern.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/cli/command/environment/irb.rb,
lib/mutant/cli/command/environment/run.rb,
lib/mutant/mutator/node/literal/string.rb,
lib/mutant/mutator/node/literal/symbol.rb,
lib/mutant/reporter/cli/printer/config.rb,
lib/mutant/cli/command/environment/show.rb,
lib/mutant/cli/command/environment/test.rb,
lib/mutant/mutator/node/dynamic_literal.rb,
lib/mutant/mutator/node/literal/boolean.rb,
lib/mutant/mutator/node/literal/complex.rb,
lib/mutant/mutator/node/literal/integer.rb,
lib/mutant/mutator/node/match_pattern_p.rb,
lib/mutant/ast/find_metaclass_containing.rb,
lib/mutant/mutator/node/conditional_loop.rb,
lib/mutant/mutator/node/literal/rational.rb,
lib/mutant/mutator/node/send/conditional.rb,
lib/mutant/reporter/cli/printer/mutation.rb,
lib/mutant/cli/command/environment/subject.rb,
lib/mutant/mutator/node/match_current_line.rb,
lib/mutant/mutator/node/named_value/access.rb,
lib/mutant/reporter/cli/printer/env_result.rb,
lib/mutant/reporter/cli/printer/env_progress.rb,
lib/mutant/reporter/cli/printer/alive_results.rb,
lib/mutant/reporter/cli/printer/subject_result.rb,
lib/mutant/reporter/cli/printer/isolation_result.rb,
lib/mutant/mutator/node/send/attribute_assignment.rb,
lib/mutant/reporter/cli/printer/status_progressive.rb,
lib/mutant/mutator/node/named_value/constant_assignment.rb,
lib/mutant/mutator/node/named_value/variable_assignment.rb

Overview

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

Library namespace

rubocop:disable Metrics/ModuleLength

Defined Under Namespace

Modules: Bootstrap, CLI, Meta, Parallel, Procto, Range, Repository, RequireHighjack, Result, Util Classes: AST, Config, Context, Env, Expression, Hooks, Integration, Isolation, Loader, Matcher, Mutation, Mutator, Parser, Registry, Reporter, Scope, Segment, Selector, Subject, Test, Timer, Transform, Usage, Variable, World, Zombifier

Constant Summary collapse

AbstractType =

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

Unparser::AbstractType
Adamantium =

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

Unparser::Adamantium
Anima =

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

Unparser::Anima
Either =

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

Unparser::Either
Equalizer =

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

Unparser::Equalizer
EMPTY_STRING =

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

''
EMPTY_ARRAY =

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

[].freeze
EMPTY_HASH =

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

{}.freeze
SCOPE_OPERATOR =

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

'::'
ENV_VARIABLE_KEY_VALUE_REGEXP =

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

/\A(?<key>#{env_key}+)=(?<value>.*)\z/
ENV_VARIABLE_KEY_REGEXP =

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

/\A#{env_key}\z/
WORLD =

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

World.new(
  condition_variable:    ConditionVariable,
  environment_variables: ENV,
  gem:                   Gem,
  gem_method:            method(:gem),
  io:                    IO,
  json:                  JSON,
  kernel:                Kernel,
  load_path:             $LOAD_PATH,
  marshal:               Marshal,
  mutex:                 Mutex,
  object_space:          ObjectSpace,
  open3:                 Open3,
  pathname:              Pathname,
  process:               Process,
  random:                Random,
  recorder:,
  stderr:                $stderr,
  stdout:                $stdout,
  tempfile:              Tempfile,
  thread:                Thread,
  time:                  Time,
  timer:
)
SESSION_ID =

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

UUIDv7 identifying this mutant process invocation. Used as the JSON result filename and session identifier.

SecureRandom.uuid_v7
VERSION =

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

Current mutant version

Pathname
.new(__dir__)
.parent
.parent
.join('VERSION')
.read
.chomp
.freeze

Class Method Summary collapse

Class Method Details

.traverse(action, values) ⇒ 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.

Traverse values against action

Specialized to Either. Its always traverse.



387
388
389
390
391
392
393
394
395
# File 'lib/mutant.rb', line 387

def self.traverse(action, values)
  Either::Right.new(
    values.map do |value|
      action.call(value).from_right do |error|
        return Either::Left.new(error)
      end
    end
  )
end