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