Class: Evilution::Mutator::Base

Inherits:
Prism::Visitor
  • Object
show all
Defined in:
lib/evilution/mutator/base.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeBase

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

#mutationsObject (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_nameObject



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