Class: Mutant::Subject Private
- Inherits:
-
Object
- Object
- Mutant::Subject
- Includes:
- Enumerable, Unparser::AbstractType, Unparser::Adamantium
- Defined in:
- lib/mutant/subject.rb,
lib/mutant/subject/config.rb,
lib/mutant/subject/method.rb,
lib/mutant/subject/method/instance.rb,
lib/mutant/subject/method/metaclass.rb,
lib/mutant/subject/method/singleton.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Subject of a mutation
Direct Known Subclasses
Defined Under Namespace
Instance Method Summary collapse
-
#expression ⇒ Expression
private
Match expression.
-
#identification ⇒ String
private
Identification string.
- #inline_disabled? ⇒ Boolean private
-
#match_expressions ⇒ Enumerable<Expression>
private
Match expressions.
-
#mutations ⇒ Enumerable<Mutation>, undefined
private
Mutations for this subject.
-
#post_insert ⇒ self
private
Perform post insert cleanup.
-
#prepare ⇒ self
private
Prepare subject for insertion of mutation.
-
#source ⇒ String
private
Source representation of AST.
-
#source_line ⇒ Integer
private
First source line.
-
#source_lines ⇒ Range<Integer>
private
Source line range.
-
#source_path ⇒ Pathname
private
Source path.
Instance Method Details
#expression ⇒ Expression
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Match expression
82 |
# File 'lib/mutant/subject.rb', line 82 abstract_method :expression |
#identification ⇒ String
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Identification string
66 67 68 |
# File 'lib/mutant/subject.rb', line 66 def identification "#{expression.syntax}:#{source_path}:#{source_line}" end |
#inline_disabled? ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
22 23 24 |
# File 'lib/mutant/subject.rb', line 22 def inline_disabled? config.inline_disable end |
#match_expressions ⇒ Enumerable<Expression>
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Match expressions
87 |
# File 'lib/mutant/subject.rb', line 87 abstract_method :match_expressions |
#mutations ⇒ Enumerable<Mutation>, undefined
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Mutations for this subject
13 14 15 16 17 18 19 |
# File 'lib/mutant/subject.rb', line 13 def mutations [neutral_mutation].concat( Mutator.mutate(node).map do |mutant| Mutation::Evil.new(self, wrap_node(mutant)) end ) end |
#post_insert ⇒ self
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Perform post insert cleanup
43 44 45 |
# File 'lib/mutant/subject.rb', line 43 def post_insert self end |
#prepare ⇒ self
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Prepare subject for insertion of mutation
36 37 38 |
# File 'lib/mutant/subject.rb', line 36 def prepare self end |
#source ⇒ String
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Source representation of AST
74 75 76 |
# File 'lib/mutant/subject.rb', line 74 def source Unparser.unparse(wrap_node(node)) end |
#source_line ⇒ Integer
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
First source line
59 60 61 |
# File 'lib/mutant/subject.rb', line 59 def source_line source_lines.begin end |
#source_lines ⇒ Range<Integer>
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Source line range
50 51 52 53 |
# File 'lib/mutant/subject.rb', line 50 def source_lines expression = node.location.expression expression.line..expression.source_buffer.decompose_position(expression.end_pos).first end |
#source_path ⇒ Pathname
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Source path
29 30 31 |
# File 'lib/mutant/subject.rb', line 29 def source_path context.source_path end |