Sha256: 4cfdb2f42b8b621581f94e19fe87e627d4f1e97ef59dbfb8008ba7287e5a289a
Contents?: true
Size: 1.08 KB
Versions: 1
Compression:
Stored size: 1.08 KB
Contents
# frozen_string_literal: true module Mutant class Subject class Method # Instance method subjects class Instance < self NAME_INDEX = 0 SYMBOL = '#' # Prepare subject for mutation insertion # # @return [self] def prepare scope.__send__(:undef_method, name) self end # Mutator for memoizable memoized instance methods class Memoized < self include AST::Sexp # Prepare subject for mutation insertion # # @return [self] def prepare scope.__send__(:memoized_methods).instance_variable_get(:@memory).delete(name) super() end private # Memoizer node for mutant # # @param [Parser::AST::Node] mutant # # @return [Parser::AST::Node] def wrap_node(mutant) s(:begin, mutant, s(:send, nil, :memoize, s(:args, s(:sym, name)))) end end # Memoized end # Instance end # Method end # Subject end # Mutant
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mutant-0.8.24 | lib/mutant/subject/method/instance.rb |