26 lines
		
	
	
		
			555 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			555 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # typed: true
 | |
| # frozen_string_literal: true
 | |
| 
 | |
| module RuboCop
 | |
|   module Cop
 | |
|     module Homebrew
 | |
|       # This cop ensures that platform specific code ends up in `extend/os`.
 | |
|       #
 | |
|       # @api private
 | |
|       class MoveToExtendOS < Base
 | |
|         MSG = "Move `OS.linux?` and `OS.mac?` calls to `extend/os`."
 | |
| 
 | |
|         def_node_matcher :os_check?, <<~PATTERN
 | |
|           (send (const nil? :OS) {:mac? | :linux?})
 | |
|         PATTERN
 | |
| 
 | |
|         def on_send(node)
 | |
|           return unless os_check?(node)
 | |
| 
 | |
|           add_offense(node)
 | |
|         end
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 | 
