Class: Evilution::Equivalent::Heuristic::CommentMarking

Inherits:
Object
  • Object
show all
Defined in:
lib/evilution/equivalent/heuristic/comment_marking.rb

Constant Summary collapse

MARKER =
/#\s*evilution:equivalent\b/

Instance Method Summary collapse

Instance Method Details

#match?(mutation) ⇒ Boolean

Returns:

  • (Boolean)


8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/evilution/equivalent/heuristic/comment_marking.rb', line 8

def match?(mutation)
  source = mutation.original_source
  return false unless source

  lines = source.lines
  line_index = mutation.line - 1
  return false if line_index.negative? || line_index >= lines.length

  return true if lines[line_index].match?(MARKER)
  return true if line_index.positive? && lines[line_index - 1].match?(MARKER)

  false
end