Spec-Zone.ru › Homebrew

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

Включает:
Kernel
Определён в:
ignorable.rb,
ignorable.rbi

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

Определено в пространстве имён

Модули: ExceptionMixin

Сводка констант

Константы, включённые из Kernel

Kernel::IGNORE_INTERRUPTS_MUTEX

Сводка методов класса свернуть

  • .hook_raise(&blk) ⇒ void закрытый
  • .raise ⇒ Object закрытый

    Это обходное решение позволяет присвоить raise псевдоним.

  • .unhook_raise ⇒ void закрытый

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

#ensure_executable!, #exec_browser, #exec_editor, #ignore_interrupts, #interactive_shell, #quiet_system, #redirect_stdout, #safe_system, #which, #which_editor, #with_env, #with_homebrew_path

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

.hook_raise(&blk) ⇒ void

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

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

Параметры:

  • blk (T.proc.void, nil)


24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'ignorable.rb', line 24

def self.hook_raise(&blk)
  Object.class_eval do
    alias_method :original_raise, :raise

    # `define_method` keeps Sorbet happy inside this `class_eval` block.
    define_method(:raise) do |*args|
      callcc do |continuation|
        super(*args)
      # Handle all possible exceptions.
      rescue Exception => e # rubocop:disable Lint/RescueException
        unless e.is_a?(ScriptError)
          e.extend(ExceptionMixin)
          T.cast(e, ExceptionMixin).continuation = continuation
        end
        super(e)
      end
    end

    alias_method :fail, :raise
  end

  return unless block_given?

  yield
  unhook_raise
end

.raise ⇒ Object

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

Это обходное решение позволяет присвоить raise псевдоним

См. также:

  • https://github.com/sorbet/sorbet/issues/2378#issuecomment-569474238


8
# File 'ignorable.rbi', line 8

def self.raise(*); end

.unhook_raise ⇒ void

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

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



52
53
54
55
56
57
58
# File 'ignorable.rb', line 52

def self.unhook_raise
  Object.class_eval do
    alias_method :raise, :original_raise
    alias_method :fail, :original_raise
    undef_method :original_raise
  end
end

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

Spec-Zone.ru

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