Sha256: 9580831564352653bab87638e372dda39652ee5d76aeac644cfe17138b2c07eb

Contents?: true

Size: 690 Bytes

Versions: 27

Compression:

Stored size: 690 Bytes

Contents

# frozen_string_literal: true

module Mutant
  # Generator for mutations
  class Mutator
    include(
      Adamantium,
      AbstractType,
      Anima.new(:input, :parent),
      Procto
    )

    # Return output
    #
    # @return [Set<Parser::AST::Node>]
    attr_reader :output

    alias_method :call, :output

  private

    def initialize(_attributes)
      super

      @output = Set.new

      dispatch
    end

    def new?(object)
      !object.eql?(input)
    end

    abstract_method :dispatch
    private :dispatch

    def emit(object)
      return unless new?(object)

      output << object
    end

    def dup_input
      input.dup
    end

  end # Mutator
end # Mutant

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
mutant-0.11.18 lib/mutant/mutator.rb
mutant-0.11.17 lib/mutant/mutator.rb
mutant-0.11.16 lib/mutant/mutator.rb
mutant-0.11.15 lib/mutant/mutator.rb
mutant-0.11.14 lib/mutant/mutator.rb
mutant-0.11.13 lib/mutant/mutator.rb
mutant-0.11.12 lib/mutant/mutator.rb