Class: Evilution::Mutator::Base
- Inherits:
-
Prism::Visitor
- Object
- Prism::Visitor
- Evilution::Mutator::Base
- Defined in:
- lib/evilution/mutator/base.rb
Direct Known Subclasses
Operator::ArgumentNilSubstitution, Operator::ArgumentRemoval, Operator::ArithmeticReplacement, Operator::ArrayLiteral, Operator::BlockRemoval, Operator::BooleanLiteralReplacement, Operator::BooleanOperatorReplacement, Operator::CollectionReplacement, Operator::ComparisonReplacement, Operator::ConditionalBranch, Operator::ConditionalFlip, Operator::ConditionalNegation, Operator::FloatLiteral, Operator::HashLiteral, Operator::IntegerLiteral, Operator::MethodBodyReplacement, Operator::MethodCallRemoval, Operator::NegationInsertion, Operator::NilReplacement, Operator::RangeReplacement, Operator::ReceiverReplacement, Operator::RegexpMutation, Operator::ReturnValueRemoval, Operator::SendMutation, Operator::StatementDeletion, Operator::StringLiteral, Operator::SymbolLiteral
Instance Attribute Summary collapse
-
#mutations ⇒ Object
readonly
Returns the value of attribute mutations.
Class Method Summary collapse
Instance Method Summary collapse
- #call(subject) ⇒ Object
-
#initialize ⇒ Base
constructor
A new instance of Base.
Constructor Details
#initialize ⇒ Base
Returns a new instance of Base.
10 11 12 13 14 |
# File 'lib/evilution/mutator/base.rb', line 10 def initialize @mutations = [] @subject = nil @file_source = nil end |
Instance Attribute Details
#mutations ⇒ Object (readonly)
Returns the value of attribute mutations.
8 9 10 |
# File 'lib/evilution/mutator/base.rb', line 8 def mutations @mutations end |
Class Method Details
.operator_name ⇒ Object
45 46 47 48 49 50 51 |
# File 'lib/evilution/mutator/base.rb', line 45 def self.operator_name class_name = name || "anonymous" class_name.split("::").last .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2') .gsub(/([a-z\d])([A-Z])/, '\1_\2') .downcase end |
Instance Method Details
#call(subject) ⇒ Object
16 17 18 19 20 21 22 |
# File 'lib/evilution/mutator/base.rb', line 16 def call(subject) @subject = subject @file_source = File.read(subject.file_path) @mutations = [] visit(subject.node) @mutations end |