Class: Kaal::SignalHandlerChain
- Inherits:
-
Object
- Object
- Kaal::SignalHandlerChain
- Defined in:
- lib/kaal/runtime/signal_handler_chain.rb
Overview
Invokes a previously registered signal handler when it is safe to do so.
Constant Summary collapse
- RESERVED_COMMAND_HANDLERS =
%w[DEFAULT IGNORE].freeze
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(signal:, previous_handler:, logger:) ⇒ SignalHandlerChain
constructor
A new instance of SignalHandlerChain.
Constructor Details
#initialize(signal:, previous_handler:, logger:) ⇒ SignalHandlerChain
Returns a new instance of SignalHandlerChain.
12 13 14 15 16 |
# File 'lib/kaal/runtime/signal_handler_chain.rb', line 12 def initialize(signal:, previous_handler:, logger:) @signal = signal @previous_handler = previous_handler @logger = logger end |
Instance Method Details
#call ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/kaal/runtime/signal_handler_chain.rb', line 18 def call(...) return unless @previous_handler case @previous_handler when Proc, Method invoke_callable(...) when String return if RESERVED_COMMAND_HANDLERS.include?(@previous_handler) @logger&.debug("Previous #{@signal} handler was a command: #{@previous_handler}") end end |