Spec-Zone.ru › Homebrew

Модуль: DeprecateDisable

Определён в:
deprecate_disable.rb

Обзор

Этот модуль является частью внутреннего API. Этот модуль можно использовать только внутри репозиториев, принадлежащих Homebrew, за исключением casks и formulae. По возможности сторонним разработчикам следует избегать использования этого модуля, поскольку он может быть удалён или изменён без предупреждения.

Вспомогательный модуль для обработки disable! и deprecate!.

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

FORMULA_DEPRECATE_DISABLE_REASONS =

Эта константа является частью внутреннего API. Эту константу можно использовать только внутри репозиториев, принадлежащих Homebrew, за исключением casks и formulae. По возможности сторонним разработчикам следует избегать использования этой константы, поскольку она может быть удалена или изменена без предупреждения.

T.let({
  does_not_build:      "does not build",
  no_license:          "has no license",
  repo_archived:       "has an archived upstream repository",
  repo_removed:        "has a removed upstream repository",
  unmaintained:        "is not maintained upstream",
  unsupported:         "is not supported upstream",
  deprecated_upstream: "is deprecated upstream",
  versioned_formula:   "is a versioned formula",
  checksum_mismatch:   "was built with an initially released source file that had " \
                       "a different checksum than the current one. " \
                       "Upstream's repository might have been compromised. " \
                       "We can re-package this once upstream has confirmed that they retagged their release",
}.freeze, T::Hash[Symbol, String])
CASK_DEPRECATE_DISABLE_REASONS =

Эта константа является частью внутреннего API. Эту константу можно использовать только внутри репозиториев, принадлежащих Homebrew, за исключением casks и formulae. По возможности сторонним разработчикам следует избегать использования этой константы, поскольку она может быть удалена или изменена без предупреждения.

T.let({
  discontinued:             "is discontinued upstream",
  moved_to_mas:             "is now exclusively distributed on the Mac App Store",
  no_longer_available:      "is no longer available upstream",
  no_longer_meets_criteria: "no longer meets the criteria for acceptable casks",
  unmaintained:             "is not maintained upstream",
  fails_gatekeeper_check:   "does not pass the macOS Gatekeeper check",
  unreachable:              "is no longer reliably reachable upstream",
}.freeze, T::Hash[Symbol, String])
REMOVE_DISABLED_TIME_WINDOW =

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

Один год при использовании << или >> с Date.today.

12
REMOVE_DISABLED_BEFORE =

Эта константа является частью внутреннего API. Эту константу можно использовать только внутри репозиториев, принадлежащих Homebrew, за исключением casks и formulae. По возможности сторонним разработчикам следует избегать использования этой константы, поскольку она может быть удалена или изменена без предупреждения.

T.let((Date.today << REMOVE_DISABLED_TIME_WINDOW).freeze, Date)

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

  • .message(formula_or_cask) ⇒ String? закрытый
  • .replacement_with_type(formula, cask) ⇒ String? закрытый
  • .to_reason_string_or_symbol(string, type:) ⇒ String, ... закрытый
  • .type(formula_or_cask) ⇒ Symbol? закрытый

Подробное описание методов класса

.message(formula_or_cask) ⇒ String?

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

Параметры:

  • formula_or_cask (Formula, Cask::Cask)

Возвращает:

  • (String, nil)


62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# File 'deprecate_disable.rb', line 62

def message(formula_or_cask)
  return if type(formula_or_cask).blank?

  reason = if formula_or_cask.deprecated?
    formula_or_cask.deprecation_reason
  elsif formula_or_cask.disabled?
    formula_or_cask.disable_reason
  end

  reason = if formula_or_cask.is_a?(Formula) && FORMULA_DEPRECATE_DISABLE_REASONS.key?(reason)
    FORMULA_DEPRECATE_DISABLE_REASONS[reason]
  elsif formula_or_cask.is_a?(Cask::Cask) && CASK_DEPRECATE_DISABLE_REASONS.key?(reason)
    CASK_DEPRECATE_DISABLE_REASONS[reason]
  else
    reason
  end

  message = if reason.present?
    "#{type(formula_or_cask)} because it #{reason}!"
  else
    "#{type(formula_or_cask)}!"
  end

  disable_date = formula_or_cask.disable_date
  if !disable_date && formula_or_cask.deprecation_date
    disable_date = formula_or_cask.deprecation_date >> REMOVE_DISABLED_TIME_WINDOW
  end
  if disable_date
    message += if disable_date < Date.today
      " It was disabled on #{disable_date}."
    else
      " It will be disabled on #{disable_date}."
    end
  end

  replacement = if formula_or_cask.disabled?
    replacement_with_type(
      formula_or_cask.disable_replacement_formula,
      formula_or_cask.disable_replacement_cask,
    )
  elsif formula_or_cask.deprecated?
    replacement_with_type(
      formula_or_cask.deprecation_replacement_formula,
      formula_or_cask.deprecation_replacement_cask,
    )
  end

  if replacement.present?
    message << "\n"
    message << <<~EOS
      Replacement:
        brew install #{replacement}    EOS
  end

  message
end

.replacement_with_type(formula, cask) ⇒ String?

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

Параметры:

  • formula (String, nil)
  • cask (String, nil)

Возвращает:

  • (String, nil)


51
52
53
54
55
56
57
58
59
# File 'deprecate_disable.rb', line 51

def replacement_with_type(formula, cask)
  if formula && formula == cask
    formula
  elsif formula
    "--formula #{formula}"
  elsif cask
    "--cask #{cask}"
  end
end

.to_reason_string_or_symbol(string, type:) ⇒ String, ...

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

Параметры:

  • string (String, nil)
  • type (Symbol)

Возвращает:

  • (String, Symbol, nil)


121
122
123
124
125
126
127
128
129
130
# File 'deprecate_disable.rb', line 121

def to_reason_string_or_symbol(string, type:)
  return if string.nil?

  if (type == :formula && FORMULA_DEPRECATE_DISABLE_REASONS.key?(string.to_sym)) ||
     (type == :cask && CASK_DEPRECATE_DISABLE_REASONS.key?(string.to_sym))
    return string.to_sym
  end

  string
end

.type(formula_or_cask) ⇒ Symbol?

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

Параметры:

  • formula_or_cask (Formula, Cask::Cask)

Возвращает:

  • (Symbol, nil)


39
40
41
42
43
# File 'deprecate_disable.rb', line 39

def type(formula_or_cask)
  return :deprecated if formula_or_cask.deprecated?

  :disabled if formula_or_cask.disabled?
end

© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/DeprecateDisable.html

Spec-Zone.ru

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