Sha256: c096f3e7d61876f0471ce56c08489facfd839f3524599aee552bad9b1fbcecf8
Contents?: true
Size: 1.68 KB
Versions: 3
Compression:
Stored size: 1.68 KB
Contents
module Mutant # Represent a mutated node with its subject class Mutation include AbstractType, Adamantium::Flat, Concord::Public.new(:subject, :node) # Return mutated root node # # @return [Parser::AST::Node] # # @api private # def root subject.root(node) end memoize :root # Test if killer is successful # # @param [Killer] killer # # @return [true] # if killer is successful # # @return [false] # otherwise # # @api private # abstract_method :success? # Insert mutated node # # FIXME: Cache subject visibility in a better way! Ideally dont mutate it. # # @return [self] # # @api private # def insert subject.public? Loader::Eval.run(root, subject) self end # Return identification # # @return [String] # # @api private # def identification "#{subject.identification}:#{code}" end memoize :identification # Return mutation code # # @return [String] # # @api private # def code sha1[0..4] end memoize :code # Return sha1 sum of source and subject identification # # @return [String] # # @api private # def sha1 Digest::SHA1.hexdigest(subject.identification + 0.chr + source) end memoize :sha1 # Return source # # @return [String] # # @api private # def source Unparser.unparse(node) end memoize :source # Return original source # # @return [String] # # @api private # def original_source subject.source end end # Mutation end # Mutant
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
mutant-0.3.0.beta4 | lib/mutant/mutation.rb |
mutant-0.3.0.beta3 | lib/mutant/mutation.rb |
mutant-0.3.0.beta2 | lib/mutant/mutation.rb |