/lib/rails_best_practices/reviews/replace_instance_variable_with_local_variable_review.rb

http://github.com/flyerhzm/rails_best_practices · Ruby · 28 lines · 14 code · 2 blank · 12 comment · 1 complexity · 0aa0d556ed9a8c0057c6295e1da4e6d0 MD5 · raw file

  1. # frozen_string_literal: true
  2. module RailsBestPractices
  3. module Reviews
  4. # Review a partail view file to make sure there is no instance variable.
  5. #
  6. # See the best practice details here https://rails-bestpractices.com/posts/2010/07/24/replace-instance-variable-with-local-variable/
  7. #
  8. # Implementation:
  9. #
  10. # Review process:
  11. # check all instance variable in partial view files,
  12. # if exist, then they should be replaced with local variable
  13. class ReplaceInstanceVariableWithLocalVariableReview < Review
  14. interesting_nodes :var_ref, :vcall
  15. interesting_files PARTIAL_VIEW_FILES
  16. url 'https://rails-bestpractices.com/posts/2010/07/24/replace-instance-variable-with-local-variable/'
  17. # check ivar node in partial view file,
  18. # it is an instance variable, and should be replaced with local variable.
  19. add_callback :start_var_ref, :start_vcall do |node|
  20. if node.to_s.start_with?('@')
  21. add_error 'replace instance variable with local variable'
  22. end
  23. end
  24. end
  25. end
  26. end