35 lines
699 B
Ruby
35 lines
699 B
Ruby
module Mutant
|
|
class Subject
|
|
class Method
|
|
# Singleton method subjects
|
|
class Singleton < self
|
|
|
|
NAME_INDEX = 1
|
|
SYMBOL = '.'.freeze
|
|
|
|
# Test if method is public
|
|
#
|
|
# @return [Boolean]
|
|
#
|
|
# @api private
|
|
#
|
|
def public?
|
|
scope.singleton_class.public_method_defined?(name)
|
|
end
|
|
memoize :public?
|
|
|
|
# Prepare subject for mutation insertion
|
|
#
|
|
# @return [self]
|
|
#
|
|
# @api private
|
|
#
|
|
def prepare
|
|
scope.singleton_class.send(:undef_method, name)
|
|
self
|
|
end
|
|
|
|
end # Singleton
|
|
end # Method
|
|
end # Subject
|
|
end # Mutant
|