Remove misleading upstream.rbi, enable types in on_system
This commit is contained in:
		
							parent
							
								
									98a2923463
								
							
						
					
					
						commit
						92b99b3132
					
				@ -169,10 +169,12 @@ module Cask
 | 
			
		||||
 | 
			
		||||
    DEFAULT_DIRS.each_key do |dir|
 | 
			
		||||
      define_method(dir) do
 | 
			
		||||
        T.bind(self, Config)
 | 
			
		||||
        explicit.fetch(dir, env.fetch(dir, default.fetch(dir)))
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      define_method(:"#{dir}=") do |path|
 | 
			
		||||
        T.bind(self, Config)
 | 
			
		||||
        explicit[dir] = Pathname(path).expand_path
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
@ -339,6 +339,7 @@ module Cask
 | 
			
		||||
 | 
			
		||||
    ORDINARY_ARTIFACT_CLASSES.each do |klass|
 | 
			
		||||
      define_method(klass.dsl_key) do |*args, **kwargs|
 | 
			
		||||
        T.bind(self, DSL)
 | 
			
		||||
        if [*artifacts.map(&:class), klass].include?(Artifact::StageOnly) &&
 | 
			
		||||
           (artifacts.map(&:class) & ACTIVATABLE_ARTIFACT_CLASSES).any?
 | 
			
		||||
          raise CaskInvalidError.new(cask, "'stage_only' must be the only activatable artifact.")
 | 
			
		||||
@ -355,6 +356,7 @@ module Cask
 | 
			
		||||
    ARTIFACT_BLOCK_CLASSES.each do |klass|
 | 
			
		||||
      [klass.dsl_key, klass.uninstall_dsl_key].each do |dsl_key|
 | 
			
		||||
        define_method(dsl_key) do |&block|
 | 
			
		||||
          T.bind(self, DSL)
 | 
			
		||||
          artifacts.add(klass.new(cask, dsl_key => block))
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
@ -32,6 +32,7 @@ module Cask
 | 
			
		||||
        def define_divider_deletion_method(divider)
 | 
			
		||||
          method_name = deletion_method_name(divider)
 | 
			
		||||
          define_method(method_name) do
 | 
			
		||||
            T.bind(self, Version)
 | 
			
		||||
            version { delete(divider) }
 | 
			
		||||
          end
 | 
			
		||||
        end
 | 
			
		||||
@ -49,6 +50,7 @@ module Cask
 | 
			
		||||
        def define_divider_conversion_method(left_divider, right_divider)
 | 
			
		||||
          method_name = conversion_method_name(left_divider, right_divider)
 | 
			
		||||
          define_method(method_name) do
 | 
			
		||||
            T.bind(self, Version)
 | 
			
		||||
            version { gsub(left_divider, right_divider) }
 | 
			
		||||
          end
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
# typed: false
 | 
			
		||||
# typed: true
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
require "simulate_system"
 | 
			
		||||
@ -9,17 +9,15 @@ module OnSystem
 | 
			
		||||
  ARCH_OPTIONS = [:intel, :arm].freeze
 | 
			
		||||
  BASE_OS_OPTIONS = [:macos, :linux].freeze
 | 
			
		||||
 | 
			
		||||
  module_function
 | 
			
		||||
 | 
			
		||||
  sig { params(arch: Symbol).returns(T::Boolean) }
 | 
			
		||||
  def arch_condition_met?(arch)
 | 
			
		||||
  def self.arch_condition_met?(arch)
 | 
			
		||||
    raise ArgumentError, "Invalid arch condition: #{arch.inspect}" if ARCH_OPTIONS.exclude?(arch)
 | 
			
		||||
 | 
			
		||||
    arch == Homebrew::SimulateSystem.current_arch
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  sig { params(os_name: Symbol, or_condition: T.nilable(Symbol)).returns(T::Boolean) }
 | 
			
		||||
  def os_condition_met?(os_name, or_condition = nil)
 | 
			
		||||
  def self.os_condition_met?(os_name, or_condition = nil)
 | 
			
		||||
    return Homebrew::SimulateSystem.send("simulating_or_running_on_#{os_name}?") if BASE_OS_OPTIONS.include?(os_name)
 | 
			
		||||
 | 
			
		||||
    raise ArgumentError, "Invalid OS condition: #{os_name.inspect}" unless MacOSVersions::SYMBOLS.key?(os_name)
 | 
			
		||||
@ -46,17 +44,17 @@ module OnSystem
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  sig { params(method_name: Symbol).returns(Symbol) }
 | 
			
		||||
  def condition_from_method_name(method_name)
 | 
			
		||||
  def self.condition_from_method_name(method_name)
 | 
			
		||||
    method_name.to_s.sub(/^on_/, "").to_sym
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  sig { params(base: Class).void }
 | 
			
		||||
  def setup_arch_methods(base)
 | 
			
		||||
  def self.setup_arch_methods(base)
 | 
			
		||||
    ARCH_OPTIONS.each do |arch|
 | 
			
		||||
      base.define_method("on_#{arch}") do |&block|
 | 
			
		||||
        @on_system_blocks_exist = true
 | 
			
		||||
 | 
			
		||||
        return unless OnSystem.arch_condition_met? OnSystem.condition_from_method_name(__method__)
 | 
			
		||||
        return unless OnSystem.arch_condition_met? OnSystem.condition_from_method_name(T.must(__method__))
 | 
			
		||||
 | 
			
		||||
        @called_in_on_system_block = true
 | 
			
		||||
        result = block.call
 | 
			
		||||
@ -75,12 +73,12 @@ module OnSystem
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  sig { params(base: Class).void }
 | 
			
		||||
  def setup_base_os_methods(base)
 | 
			
		||||
  def self.setup_base_os_methods(base)
 | 
			
		||||
    BASE_OS_OPTIONS.each do |base_os|
 | 
			
		||||
      base.define_method("on_#{base_os}") do |&block|
 | 
			
		||||
        @on_system_blocks_exist = true
 | 
			
		||||
 | 
			
		||||
        return unless OnSystem.os_condition_met? OnSystem.condition_from_method_name(__method__)
 | 
			
		||||
        return unless OnSystem.os_condition_met? OnSystem.condition_from_method_name(T.must(__method__))
 | 
			
		||||
 | 
			
		||||
        @called_in_on_system_block = true
 | 
			
		||||
        result = block.call
 | 
			
		||||
@ -118,12 +116,12 @@ module OnSystem
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  sig { params(base: Class).void }
 | 
			
		||||
  def setup_macos_methods(base)
 | 
			
		||||
  def self.setup_macos_methods(base)
 | 
			
		||||
    MacOSVersions::SYMBOLS.each_key do |os_name|
 | 
			
		||||
      base.define_method("on_#{os_name}") do |or_condition = nil, &block|
 | 
			
		||||
        @on_system_blocks_exist = true
 | 
			
		||||
 | 
			
		||||
        os_condition = OnSystem.condition_from_method_name __method__
 | 
			
		||||
        os_condition = OnSystem.condition_from_method_name T.must(__method__)
 | 
			
		||||
        return unless OnSystem.os_condition_met? os_condition, or_condition
 | 
			
		||||
 | 
			
		||||
        @called_in_on_system_block = true
 | 
			
		||||
 | 
			
		||||
@ -1,23 +0,0 @@
 | 
			
		||||
# typed: strict
 | 
			
		||||
 | 
			
		||||
# This file contains temporary definitions for fixes that have
 | 
			
		||||
# been submitted upstream to https://github.com/sorbet/sorbet.
 | 
			
		||||
 | 
			
		||||
class Module
 | 
			
		||||
  # https://github.com/sorbet/sorbet/pull/3732
 | 
			
		||||
  sig do
 | 
			
		||||
    params(
 | 
			
		||||
        arg0: T.any(Symbol, String),
 | 
			
		||||
        arg1: T.any(Proc, Method, UnboundMethod)
 | 
			
		||||
    )
 | 
			
		||||
    .returns(Symbol)
 | 
			
		||||
  end
 | 
			
		||||
  sig do
 | 
			
		||||
    params(
 | 
			
		||||
        arg0: T.any(Symbol, String),
 | 
			
		||||
        blk: T.proc.bind(T.untyped).returns(T.untyped),
 | 
			
		||||
    )
 | 
			
		||||
    .returns(Symbol)
 | 
			
		||||
  end
 | 
			
		||||
  def define_method(arg0, arg1=T.unsafe(nil), &blk); end
 | 
			
		||||
end
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user