Sha256: 5112c246cbddd7595dbfa85897d1cbbe3f69a7cb3a3e6a02ca6ad7624c1e7371

Contents?: true

Size: 988 Bytes

Versions: 4

Compression:

Stored size: 988 Bytes

Contents

# encoding: utf-8
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)
          :parent != def_node[2][0]
        end

        def has_parameters?(def_node)
          :params == def_node[2][0] && !def_node[2][1..-1].compact.empty?
        end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rails_best_practices-1.19.0 lib/rails_best_practices/reviews/use_parentheses_in_method_def_review.rb
rails_best_practices-1.18.1 lib/rails_best_practices/reviews/use_parentheses_in_method_def_review.rb
rails_best_practices-1.18.0 lib/rails_best_practices/reviews/use_parentheses_in_method_def_review.rb
rails_best_practices-1.17.0 lib/rails_best_practices/reviews/use_parentheses_in_method_def_review.rb