free_mutant/lib/mutant/subject/method.rb

61 lines
1.1 KiB
Ruby
Raw Normal View History

2013-01-13 22:25:49 +01:00
module Mutant
class Subject
# Abstract base class for method subjects
class Method < self
# Test if method is public
#
2014-06-15 19:27:57 +00:00
# @return [Boolean]
2013-01-13 22:25:49 +01:00
#
# @api private
#
abstract_method :public?
# Return method name
#
# @return [Symbol]
#
# @api private
#
def name
node.children[self.class::NAME_INDEX]
end
2013-06-14 20:23:46 +02:00
# Return match expression
#
# @return [String]
#
# @api private
#
def expression
Expression.parse("#{context.identification}#{self.class::SYMBOL}#{name}")
end
memoize :expression
# Return match expressions
#
# @return [Array<Expression>]
#
# @api private
#
def match_expressions
[expression].concat(context.match_expressions)
end
memoize :match_expressions
private
# Return scope
#
# @return [Class, Module]
#
# @api private
#
def scope
context.scope
end
2013-06-14 20:23:46 +02:00
end # Method
end # Subject
end # Mutant