# typed: strict
# frozen_string_literal: true

module RuboCop
  module Cop
    module Homebrew
      # This cop ensures that platform specific code ends up in `extend/os`.
      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

        sig { params(node: RuboCop::AST::Node).void }
        def on_send(node)
          return unless os_check?(node)

          add_offense(node)
        end
      end
    end
  end
end
