Merge pull request #13491 from Rylan12/include-on-system
`OnSystem`: provide `::MacOSAndLinux` and `::MacOSOnly`
This commit is contained in:
commit
aade3bcc6c
@ -92,7 +92,7 @@ module Cask
|
||||
]).freeze
|
||||
|
||||
extend Predicable
|
||||
include OnSystem
|
||||
include OnSystem::MacOSOnly
|
||||
|
||||
attr_reader :cask, :token
|
||||
|
||||
|
@ -56,7 +56,7 @@ module OnSystem
|
||||
end
|
||||
|
||||
sig { params(base: Class).void }
|
||||
def self.included(base)
|
||||
def setup_arch_methods(base)
|
||||
ARCH_OPTIONS.each do |arch|
|
||||
base.define_method("on_#{arch}") do |&block|
|
||||
@on_system_blocks_exist = true
|
||||
@ -70,7 +70,10 @@ module OnSystem
|
||||
result
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
sig { params(base: Class).void }
|
||||
def 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
|
||||
@ -84,7 +87,10 @@ module OnSystem
|
||||
result
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
sig { params(base: Class).void }
|
||||
def 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
|
||||
@ -100,4 +106,30 @@ module OnSystem
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
sig { params(_base: Class).void }
|
||||
def self.included(_base)
|
||||
raise "Do not include `OnSystem` directly. Instead, include `OnSystem::MacOSAndLinux` or `OnSystem::MacOSOnly`"
|
||||
end
|
||||
|
||||
module MacOSAndLinux
|
||||
extend T::Sig
|
||||
|
||||
sig { params(base: Class).void }
|
||||
def self.included(base)
|
||||
OnSystem.setup_arch_methods(base)
|
||||
OnSystem.setup_base_os_methods(base)
|
||||
OnSystem.setup_macos_methods(base)
|
||||
end
|
||||
end
|
||||
|
||||
module MacOSOnly
|
||||
extend T::Sig
|
||||
|
||||
sig { params(base: Class).void }
|
||||
def self.included(base)
|
||||
OnSystem.setup_arch_methods(base)
|
||||
OnSystem.setup_macos_methods(base)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -64,7 +64,7 @@ class Formula
|
||||
include Utils::Shebang
|
||||
include Utils::Shell
|
||||
include Context
|
||||
include OnSystem
|
||||
include OnSystem::MacOSAndLinux
|
||||
extend Forwardable
|
||||
extend Cachable
|
||||
extend Predicable
|
||||
@ -2470,7 +2470,7 @@ class Formula
|
||||
# The methods below define the formula DSL.
|
||||
class << self
|
||||
include BuildEnvironment::DSL
|
||||
include OnSystem
|
||||
include OnSystem::MacOSAndLinux
|
||||
|
||||
def method_added(method)
|
||||
super
|
||||
|
@ -17,7 +17,7 @@ class Resource
|
||||
|
||||
include Context
|
||||
include FileUtils
|
||||
include OnSystem
|
||||
include OnSystem::MacOSAndLinux
|
||||
|
||||
attr_reader :mirrors, :specs, :using, :source_modified_time, :patches, :owner
|
||||
attr_writer :version
|
||||
|
@ -18,7 +18,7 @@ class SoftwareSpec
|
||||
extend T::Sig
|
||||
|
||||
extend Forwardable
|
||||
include OnSystem
|
||||
include OnSystem::MacOSAndLinux
|
||||
|
||||
PREDEFINED_OPTIONS = {
|
||||
universal: Option.new("universal", "Build a universal binary"),
|
||||
@ -583,7 +583,7 @@ class BottleSpecification
|
||||
end
|
||||
|
||||
class PourBottleCheck
|
||||
include OnSystem
|
||||
include OnSystem::MacOSAndLinux
|
||||
|
||||
def initialize(formula)
|
||||
@formula = formula
|
||||
|
Loading…
x
Reference in New Issue
Block a user