Class: Kaal::SignalHandlerInstaller
- Inherits:
-
Object
- Object
- Kaal::SignalHandlerInstaller
- Defined in:
- lib/kaal/runtime/signal_handler_installer.rb
Overview
Installs signal handlers while preserving the previous handlers for chaining.
Constant Summary collapse
- SIGNALS =
%w[TERM INT].freeze
- IGNORE_HANDLER =
'IGNORE'
Instance Method Summary collapse
-
#initialize(signal_module: Signal) ⇒ SignalHandlerInstaller
constructor
A new instance of SignalHandlerInstaller.
- #install(signals: SIGNALS) ⇒ Object
Constructor Details
#initialize(signal_module: Signal) ⇒ SignalHandlerInstaller
Returns a new instance of SignalHandlerInstaller.
13 14 15 |
# File 'lib/kaal/runtime/signal_handler_installer.rb', line 13 def initialize(signal_module: Signal) @signal_module = signal_module end |
Instance Method Details
#install(signals: SIGNALS) ⇒ Object
17 18 19 20 21 22 23 |
# File 'lib/kaal/runtime/signal_handler_installer.rb', line 17 def install(signals: SIGNALS) signals.each_with_object({}) do |signal, previous_handlers| previous_handler = capture_previous_handler(signal) @signal_module.trap(signal) { yield(signal, previous_handler) } previous_handlers[signal] = previous_handler end end |