Sha256: 8e526137979d4662009eab2c0eacfdd95970c719bb969fa9a67a052678fc89be
Contents?: true
Size: 1.28 KB
Versions: 1
Compression:
Stored size: 1.28 KB
Contents
# encoding: utf-8 module Mutant class Mutator class Node module NamedValue # Mutation emitter to handle variable assignment nodes class VariableAssignment < Node children :name, :value map = { gvasgn: '$', cvasgn: '@@', ivasgn: '@', lvasgn: '' } MAP = IceNine.deep_freeze( Hash[map.map { |type, prefix| [type, [prefix, /^#{Regexp.escape(prefix)}/]] }] ) handle(*MAP.keys) private # Perform dispatch # # @return [undefined] # # @api private # def dispatch emit_singletons mutate_name emit_value_mutations if value # mlhs! end # Emit name mutations # # @return [undefined] # # @api private # def mutate_name prefix, regexp = MAP.fetch(node.type) stripped = name.to_s.sub(regexp, EMPTY_STRING) Mutator::Util::Symbol.each(stripped, self) do |name| emit_name(:"#{prefix}#{name}") end end end # VariableAssignment end # NamedValue end # Node end # Mutator end # Mutant
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mutant-0.5.19 | lib/mutant/mutator/node/named_value/variable_assignment.rb |