Spec-Zone.ru › Homebrew

Модуль: Utils::Backtrace Закрытый

Расширен модулем:
Output::Mixin
Определён в:
utils/backtrace.rb

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

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

  • .clean(error) ⇒ Array<String>? закрытый

    Очищает пути к гемам sorbet-runtime в трассировке стека, если...

  • .print_backtrace_message ⇒ void закрытый
  • .sorbet_runtime_path ⇒ String закрытый
  • .tap_error_url(error) ⇒ String? закрытый

Методы, включённые из Output::Mixin

issue_reporting_message, odebug, odeprecated, odie, odisabled, ofail, oh1, oh1_title, ohai, ohai_title, onoe, opoo, opoo_outside_github_actions, opoo_without_github_actions_annotation, pretty_deprecated, pretty_disabled, pretty_duration, pretty_install_status, pretty_installed, pretty_uninstalled, pretty_upgradable, pretty_warning

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

.clean(error) ⇒ Array<String>?

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

Очищает пути к гемам sorbet-runtime в трассировке стека, если...

  1. установлено verbose
  2. первая строка трассировки стека начинается с sorbet-runtime
  • Это означает, что ошибка связана с Sorbet.

Параметры:

  • error (Exception)

Возвращает:

  • (Array<String>, nil)


17
18
19
20
21
22
23
24
25
26
27
# File 'utils/backtrace.rb', line 17

def self.clean(error)
  backtrace = error.backtrace

  return backtrace if Context.current.verbose?
  return backtrace if backtrace.blank?
  return backtrace if backtrace.fetch(0).start_with?(sorbet_runtime_path)

  old_backtrace_length = backtrace.length
  backtrace.reject { |line| line.start_with?(sorbet_runtime_path) }
           .tap { |new_backtrace| print_backtrace_message if old_backtrace_length > new_backtrace.length }
end

.print_backtrace_message ⇒ void

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

Этот метод возвращает неопределённое значение.



35
36
37
38
39
40
41
42
43
# File 'utils/backtrace.rb', line 35

def self.print_backtrace_message
  return if @print_backtrace_message

  # This is just unactionable noise in GitHub Actions.
  opoo_outside_github_actions "Removed Sorbet lines from backtrace!"
  puts "Rerun with `--verbose` to see the original backtrace" unless Homebrew::EnvConfig.no_env_hints?

  @print_backtrace_message = true
end

.sorbet_runtime_path ⇒ String

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

Возвращает:

  • (String)


30
31
32
# File 'utils/backtrace.rb', line 30

def self.sorbet_runtime_path
  @sorbet_runtime_path ||= T.let("#{Gem.paths.home}/gems/sorbet-runtime", T.nilable(String))
end

.tap_error_url(error) ⇒ String?

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

Параметры:

  • error (Exception)

Возвращает:

  • (String, nil)


46
47
48
49
50
51
52
53
54
55
56
57
# File 'utils/backtrace.rb', line 46

def self.tap_error_url(error)
  backtrace = error.backtrace
  return if backtrace.blank?

  backtrace.each do |line|
    if (tap = line.match(%r{/Library/Taps/([^/]+/[^/]+)/}))
      return "https://github.com/#{tap[1]}/issues/new"
    end
  end

  nil
end

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

Spec-Zone.ru

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