Sha256: eade3753bcb6e4243b1d35a95fe99139568c0747263cfaefe915ad48faf3b4ef
Contents?: true
Size: 1.88 KB
Versions: 3
Compression:
Stored size: 1.88 KB
Contents
module Mutant class Mutator class Node class Literal # Mutator for hash literals class Hash < self handle(Rubinius::AST::HashLiteral) private # Emit mutations # # @return [undefined] # # @api private # def dispatch emit_nil emit_values(values) emit_element_presence emit_body end # Emit body mutations # # @return [undefined] # # @api private # def emit_body array.each_with_index do |element, index| dup = dup_array Mutator.each(element).each do |mutation| dup[index]=mutation emit_self(dup) end end end # Return array of values in literal # # @return [Array] # # @api private # def array node.array end # Return duplicate of array values in literal # # @return [Array] # # @api private # def dup_array array.dup end # Return values to mutate against # # @return [Array] # # @api private # def values [[], dup_array << new_nil << new_nil ] end # Emit element presence mutations # # @return [undefined] # # @api private # def emit_element_presence 0.step(array.length-1, 2) do |index| contents = dup_array contents.delete_at(index) contents.delete_at(index) emit_self(contents) end end end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
mutant-0.2.2 | lib/mutant/mutator/node/literal/hash.rb |
mutant-0.2.1 | lib/mutant/mutator/node/literal/hash.rb |
mutant-0.2.0 | lib/mutant/mutator/node/literal/hash.rb |