lib/rails_best_practices/reviews/use_parentheses_in_method_def_review.rb
# frozen_string_literal: true module RailsBestPractices module Reviews # Check if method definition has parentheses around parameters. # # Review process: # check def node in all files, # if params node with values, but not wrapped by paren node, # then it should use parentheses around parameters. class UseParenthesesInMethodDefReview < Review interesting_nodes :def interesting_files ALL_FILES # check def node to see if parameters are wrapped by parentheses. add_callback :start_def do |node| if no_parentheses_around_parameters?(node) && has_parameters?(node) add_error('use parentheses around parameters in method definitions') end end protected def no_parentheses_around_parameters?(def_node) def_node[2][0] != :parent end def has_parameters?(def_node) def_node[2][0] == :params && !def_node[2][1..-1].compact.empty? end end end end