Class: Roodi::Checks::AssignmentInConditionalCheck

Inherits:
Check
  • Object
show all
Defined in:
lib/roodi/checks/assignment_in_conditional_check.rb

Overview

Checks a conditional to see if it contains an assignment.

A conditional containing an assignment is likely to be a mistyped equality check. You should either fix the typo or factor out the assignment so that the code is clearer.

Constant Summary

Constants inherited from Check

Check::NODE_TYPES

Instance Method Summary collapse

Methods inherited from Check

#add_error, #end_file, #errors, #evaluate_end, #evaluate_node, #evaluate_node_end, #evaluate_node_start, #position, #start_file

Constructor Details

#initialize(options = {}) ⇒ AssignmentInConditionalCheck

Returns a new instance of AssignmentInConditionalCheck.



10
11
12
# File 'lib/roodi/checks/assignment_in_conditional_check.rb', line 10

def initialize(options = {})
  super()
end

Instance Method Details

#evaluate_start(node) ⇒ Object



18
19
20
# File 'lib/roodi/checks/assignment_in_conditional_check.rb', line 18

def evaluate_start(node)
  add_error("Found = in conditional.  It should probably be an ==") if has_assignment?(node[1])
end

#interesting_nodesObject



14
15
16
# File 'lib/roodi/checks/assignment_in_conditional_check.rb', line 14

def interesting_nodes
  [:if, :while]
end