style: refactor prefix path check
This commit is contained in:
		
							parent
							
								
									bc4a108045
								
							
						
					
					
						commit
						074f79840c
					
				@ -106,20 +106,18 @@ module RuboCop
 | 
			
		||||
            problem "Use `depends_on :java` to set JAVA_HOME"
 | 
			
		||||
          end
 | 
			
		||||
 | 
			
		||||
          find_strings(body_node).each do |n|
 | 
			
		||||
            # Skip strings that don't start with one of the keywords
 | 
			
		||||
            next unless regex_match_group(n, %r{^(bin|include|libexec|lib|sbin|share|Frameworks)/?})
 | 
			
		||||
          prefix_path(body_node) do |prefix_node, path|
 | 
			
		||||
            next unless match = path.match(%r{^(bin|include|libexec|lib|sbin|share|Frameworks)(?:/| |$)})
 | 
			
		||||
 | 
			
		||||
            parent = n.parent
 | 
			
		||||
            # Only look at keywords that have `prefix` before them
 | 
			
		||||
            # TODO: this should be refactored to a direct method match
 | 
			
		||||
            prefix_keyword_regex = %r{(prefix\s*\+\s*["'](bin|include|libexec|lib|sbin|share|Frameworks))["'/]}
 | 
			
		||||
            if match = parent.source.match(prefix_keyword_regex)
 | 
			
		||||
              offending_node(parent)
 | 
			
		||||
              problem "Use `#{match[2].downcase}` instead of `#{match[1]}\"`"
 | 
			
		||||
            end
 | 
			
		||||
            offending_node(prefix_node)
 | 
			
		||||
            problem "Use `#{match[1].downcase}` instead of `prefix + \"#{match[1]}\"`"
 | 
			
		||||
          end
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
        # Find: prefix + "foo"
 | 
			
		||||
        def_node_search :prefix_path, <<~EOS
 | 
			
		||||
          $(send (send nil? :prefix) :+ (str $_))
 | 
			
		||||
        EOS
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user