Sha256: fc0bccc947c171f5dd25b2bd5dbae74ec97fa6e87a209db49d6ec2ccb18e9043
Contents?: true
Size: 1.56 KB
Versions: 1
Compression:
Stored size: 1.56 KB
Contents
# encoding: utf-8 module RailsBestPractices module Reviews # Review a view file to make sure using simplified syntax for render. # # See the best practice details here https://rails-bestpractices.com/posts/2010/12/04/simplify-render-in-views/ # # Implementation: # # Review process: # check all render method commands in view files, # if there is a key 'partial' in the argument, then they should be replaced by simplified syntax. class SimplifyRenderInViewsReview < Review interesting_nodes :command interesting_files VIEW_FILES url 'https://rails-bestpractices.com/posts/2010/12/04/simplify-render-in-views/' VALID_KEYS = %w(object collection locals) # check command node in view file, # if its message is render and the arguments contain a key partial, # then it should be replaced by simplified syntax. add_callback :start_command do |node| if 'render' == node.message.to_s hash_node = node.arguments.all.first if hash_node && :bare_assoc_hash == hash_node.sexp_type && include_partial?(hash_node) && valid_hash?(hash_node) add_error 'simplify render in views' end end end protected def include_partial?(hash_node) hash_node.hash_keys.include?('partial') && !hash_node.hash_value('partial').to_s.include?('/') end def valid_hash?(hash_node) keys = hash_node.hash_keys keys.delete('partial') (keys - VALID_KEYS).empty? end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rails_best_practices-1.19.1 | lib/rails_best_practices/reviews/simplify_render_in_views_review.rb |