Класс: MacOSVersion Частный
- Наследует:
- Version показать все
- Определён в:
- macos_version.rb
Обзор
Этот класс является частью закрытого API. Этот класс можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого класса, так как он может быть удалён или изменён без предупреждения.
Версия macOS.
Определено в пространстве имён
Классы: Error
Краткое описание констант свернуть
- SYMBOLS =
Эта константа является частью закрытого API. Эту константу можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этой константы, так как она может быть удалена или изменена без предупреждения.
Примечание:При удалении символов отсюда убедитесь, что они добавлены в
DEPRECATED_MACOS_VERSIONSвMacOSRequirement.Примечание:Изменения этого списка должны соответствовать
macos_version_nameвcmd/update.sh. T.let({ golden_gate: "27", tahoe: "26", sequoia: "15", sonoma: "14", ventura: "13", monterey: "12", # odisabled: remove support for Big Sur and macOS x86_64 September (or later) 2027 big_sur: "11", # odisabled: remove support for Catalina September (or later) 2026 catalina: "10.15", }.freeze, T::Hash[Symbol, String])
- NULL =
Эта константа является частью закрытого API. Эту константу можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этой константы, так как она может быть удалена или изменена без предупреждения.
Примечание:Конструктор необходимо вызвать с произвольной версией, похожей на версию macOS, после чего ей присваивается значение
nil.Представляет отсутствие версии.
T.let(MacOSVersion.new("10.0").tap do |v| T.let(v, MacOSVersion).instance_variable_set(:@version, nil) end.freeze, MacOSVersion)
Константы, унаследованные от Version
Краткое описание методов класса свернуть
- .from_symbol(version) ⇒ T.attached_class частный
- .kernel_major_version(macos_version) ⇒ Version частный
Краткое описание методов экземпляра свернуть
- #initialize(version) ⇒ void конструктор частный
- #outdated_release? ⇒ Boolean частный
- #prerelease? ⇒ Boolean частный
- #pretty_name ⇒ String частный
- #requires_nehalem_cpu? ⇒ Boolean (также: #requires_sse4?, #requires_sse41?, #requires_sse42?, #requires_popcnt?) частный
- #strip_patch ⇒ T.self_type частный
- #to_sym ⇒ Symbol частный
- #unsupported_release? ⇒ Boolean частный
Методы, унаследованные от Version
#commit, #compare, detect, #detected_from_url?, formula_optionally_versioned_regex, #freeze, #head?, #major, #major_minor, #major_minor_patch, #minor, #null?, parse, #patch, #respond_to?, #to_f, #to_i, #to_json, #to_str, #update_commit
Подробное описание конструкторов
#initialize(version) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
58 59 60 61 62 63 64 65 66 | # File 'macos_version.rb', line 58 def initialize(version) raise MacOSVersion::Error, version unless /\A\d{2,}(?:\.\d+){0,2}\z/.match?(version) super(T.must(version)) @comparison_cache = T.let({}, T::Hash[T.untyped, T.nilable(Integer)]) @pretty_name = T.let(nil, T.nilable(String)) @sym = T.let(nil, T.nilable(Symbol)) end |
Подробное описание методов класса
.from_symbol(version) ⇒ T.attached_class
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
52 53 54 55 | # File 'macos_version.rb', line 52 def self.from_symbol(version) str = SYMBOLS.fetch(version) { raise MacOSVersion::Error, version } new(str) end |
.kernel_major_version(macos_version) ⇒ Version
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
37 38 39 40 41 42 43 44 45 46 47 48 49 | # File 'macos_version.rb', line 37 def self.kernel_major_version(macos_version) version_major = macos_version.major.to_i if version_major >= 27 Version.new(version_major.to_s) elsif version_major == 26 Version.new((version_major - 1).to_s) elsif version_major > 10 Version.new((version_major + 9).to_s) else version_minor = macos_version.minor.to_i Version.new((version_minor + 4).to_s) end end |
Подробное описание методов экземпляра
#outdated_release? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
129 130 131 | # File 'macos_version.rb', line 129 def outdated_release? self < HOMEBREW_MACOS_OLDEST_SUPPORTED end |
#prerelease? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
134 135 136 | # File 'macos_version.rb', line 134 def prerelease? self >= HOMEBREW_MACOS_NEWEST_UNSUPPORTED end |
#pretty_name ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
113 114 115 116 117 118 119 120 121 | # File 'macos_version.rb', line 113 def pretty_name return @pretty_name if @pretty_name pretty_name = to_sym.to_s.split("_").map(&:capitalize).join("").freeze @pretty_name = pretty_name unless frozen? pretty_name end |
#requires_nehalem_cpu? ⇒ Boolean Также известен как: requires_sse4?, requires_sse41?, requires_sse42?, requires_popcnt?
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
144 145 146 147 148 149 150 151 152 | # File 'macos_version.rb', line 144 def requires_nehalem_cpu? return false if null? require "hardware" return Hardware.oldest_cpu(self) == :nehalem if Hardware::CPU.intel? raise ArgumentError, "Unexpected architecture: #{Hardware::CPU.arch}. This only works with Intel architecture." end |
#strip_patch ⇒ T.self_type
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
90 91 92 93 94 95 96 97 98 99 | # File 'macos_version.rb', line 90 def strip_patch return self if null? # Big Sur is 11.x but Catalina is 10.15.x. if T.must(major) >= 11 self.class.new(major.to_s) else major_minor end end |
#to_sym ⇒ Symbol
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
102 103 104 105 106 107 108 109 110 | # File 'macos_version.rb', line 102 def to_sym return @sym if @sym sym = SYMBOLS.invert.fetch(strip_patch.to_s, :dunno) @sym = sym unless frozen? sym end |
#unsupported_release? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
139 140 141 | # File 'macos_version.rb', line 139 def unsupported_release? outdated_release? || prerelease? end |
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/MacOSVersion.html