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
|
]).freeze
|
||||||
|
|
||||||
extend Predicable
|
extend Predicable
|
||||||
include OnSystem
|
include OnSystem::MacOSOnly
|
||||||
|
|
||||||
attr_reader :cask, :token
|
attr_reader :cask, :token
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ module OnSystem
|
|||||||
end
|
end
|
||||||
|
|
||||||
sig { params(base: Class).void }
|
sig { params(base: Class).void }
|
||||||
def self.included(base)
|
def setup_arch_methods(base)
|
||||||
ARCH_OPTIONS.each do |arch|
|
ARCH_OPTIONS.each do |arch|
|
||||||
base.define_method("on_#{arch}") do |&block|
|
base.define_method("on_#{arch}") do |&block|
|
||||||
@on_system_blocks_exist = true
|
@on_system_blocks_exist = true
|
||||||
@ -70,7 +70,10 @@ module OnSystem
|
|||||||
result
|
result
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
sig { params(base: Class).void }
|
||||||
|
def setup_base_os_methods(base)
|
||||||
BASE_OS_OPTIONS.each do |base_os|
|
BASE_OS_OPTIONS.each do |base_os|
|
||||||
base.define_method("on_#{base_os}") do |&block|
|
base.define_method("on_#{base_os}") do |&block|
|
||||||
@on_system_blocks_exist = true
|
@on_system_blocks_exist = true
|
||||||
@ -84,7 +87,10 @@ module OnSystem
|
|||||||
result
|
result
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
sig { params(base: Class).void }
|
||||||
|
def setup_macos_methods(base)
|
||||||
MacOSVersions::SYMBOLS.each_key do |os_name|
|
MacOSVersions::SYMBOLS.each_key do |os_name|
|
||||||
base.define_method("on_#{os_name}") do |or_condition = nil, &block|
|
base.define_method("on_#{os_name}") do |or_condition = nil, &block|
|
||||||
@on_system_blocks_exist = true
|
@on_system_blocks_exist = true
|
||||||
@ -100,4 +106,30 @@ module OnSystem
|
|||||||
end
|
end
|
||||||
end
|
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
|
end
|
||||||
|
@ -64,7 +64,7 @@ class Formula
|
|||||||
include Utils::Shebang
|
include Utils::Shebang
|
||||||
include Utils::Shell
|
include Utils::Shell
|
||||||
include Context
|
include Context
|
||||||
include OnSystem
|
include OnSystem::MacOSAndLinux
|
||||||
extend Forwardable
|
extend Forwardable
|
||||||
extend Cachable
|
extend Cachable
|
||||||
extend Predicable
|
extend Predicable
|
||||||
@ -2470,7 +2470,7 @@ class Formula
|
|||||||
# The methods below define the formula DSL.
|
# The methods below define the formula DSL.
|
||||||
class << self
|
class << self
|
||||||
include BuildEnvironment::DSL
|
include BuildEnvironment::DSL
|
||||||
include OnSystem
|
include OnSystem::MacOSAndLinux
|
||||||
|
|
||||||
def method_added(method)
|
def method_added(method)
|
||||||
super
|
super
|
||||||
|
@ -17,7 +17,7 @@ class Resource
|
|||||||
|
|
||||||
include Context
|
include Context
|
||||||
include FileUtils
|
include FileUtils
|
||||||
include OnSystem
|
include OnSystem::MacOSAndLinux
|
||||||
|
|
||||||
attr_reader :mirrors, :specs, :using, :source_modified_time, :patches, :owner
|
attr_reader :mirrors, :specs, :using, :source_modified_time, :patches, :owner
|
||||||
attr_writer :version
|
attr_writer :version
|
||||||
|
@ -18,7 +18,7 @@ class SoftwareSpec
|
|||||||
extend T::Sig
|
extend T::Sig
|
||||||
|
|
||||||
extend Forwardable
|
extend Forwardable
|
||||||
include OnSystem
|
include OnSystem::MacOSAndLinux
|
||||||
|
|
||||||
PREDEFINED_OPTIONS = {
|
PREDEFINED_OPTIONS = {
|
||||||
universal: Option.new("universal", "Build a universal binary"),
|
universal: Option.new("universal", "Build a universal binary"),
|
||||||
@ -583,7 +583,7 @@ class BottleSpecification
|
|||||||
end
|
end
|
||||||
|
|
||||||
class PourBottleCheck
|
class PourBottleCheck
|
||||||
include OnSystem
|
include OnSystem::MacOSAndLinux
|
||||||
|
|
||||||
def initialize(formula)
|
def initialize(formula)
|
||||||
@formula = formula
|
@formula = formula
|
||||||
|
Loading…
x
Reference in New Issue
Block a user