Class: Simplabs::Excellent::Checks::AssignmentInConditionalCheck

Inherits:
Base
  • Object
show all
Defined in:
lib/simplabs/excellent/checks/assignment_in_conditional_check.rb

Overview

This check reports conditionals that test an assignment as in

something(var) if var = method()

Assignments in conditions are often typos.

Applies to

  • if

  • else

  • while

  • until

Instance Attribute Summary

Attributes inherited from Base

#interesting_files, #interesting_nodes, #warnings

Instance Method Summary collapse

Methods inherited from Base

#add_warning, #evaluate_node, #warnings_for

Constructor Details

#initialize(options = {}) ⇒ AssignmentInConditionalCheck

:nodoc:



23
24
25
26
27
# File 'lib/simplabs/excellent/checks/assignment_in_conditional_check.rb', line 23

def initialize(options = {}) #:nodoc:
  super()
  @interesting_nodes = [:if, :while, :until]
  @interesting_files = [/\.rb$/, /\.erb$/]
end

Instance Method Details

#evaluate(context) ⇒ Object

:nodoc:



29
30
31
# File 'lib/simplabs/excellent/checks/assignment_in_conditional_check.rb', line 29

def evaluate(context) #:nodoc:
  add_warning(context, 'Assignment in condition.') if context.tests_assignment?
end