Spec-Zone.ru › Homebrew

Класс: MacOSVersion Частный

Наследует:
Version
  • Object
  • Version
  • MacOSVersion
показать все
Определён в:
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

Version::NULL_TOKEN

Краткое описание методов класса свернуть

  • .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. Сторонним разработчикам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.

Параметры:

  • version (String, nil)

Вызывает исключение:

  • (MacOSVersion::Error)


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. Сторонним разработчикам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.

Параметры:

  • version (Symbol)

Возвращает:

  • (T.attached_class)


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. Сторонним разработчикам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.

Параметры:

  • macos_version (MacOSVersion)

Возвращает:

  • (Version)


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. Сторонним разработчикам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Boolean)


129
130
131
# File 'macos_version.rb', line 129

def outdated_release?
  self < HOMEBREW_MACOS_OLDEST_SUPPORTED
end

#prerelease? ⇒ Boolean

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Boolean)


134
135
136
# File 'macos_version.rb', line 134

def prerelease?
  self >= HOMEBREW_MACOS_NEWEST_UNSUPPORTED
end

#pretty_name ⇒ String

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.

Возвращает:

  • (String)


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. Сторонним разработчикам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Boolean)

Вызывает исключение:

  • (ArgumentError)


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. Сторонним разработчикам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.

Возвращает:

  • (T.self_type)


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. Сторонним разработчикам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Symbol)


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. Сторонним разработчикам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Boolean)


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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API