class QueueKit::SignalChecker
Constants
- COMMON_SIGNALS
- JRUBY_SIGNALS
- OPTIONAL_SIGNALS
Attributes
handler[R]
worker[R]
Public Class Methods
new(worker, handler)
click to toggle source
# File lib/queue_kit/signal_checker.rb, line 14 def initialize(worker, handler) @worker = worker @handler = handler end
trap(worker, handler)
click to toggle source
# File lib/queue_kit/signal_checker.rb, line 10 def self.trap(worker, handler) new(worker, handler).trap_signals end
Public Instance Methods
debug(key, sig)
click to toggle source
# File lib/queue_kit/signal_checker.rb, line 44 def debug(key, sig) @worker.debug { ["signals.#{key}", {:signal => sig}] } end
trap_signal(sig)
click to toggle source
# File lib/queue_kit/signal_checker.rb, line 32 def trap_signal(sig) trap_method = "trap_#{sig}" return unless @handler.respond_to?(trap_method) debug :setup, sig old_handler = trap sig do @handler.send(trap_method, @worker) old_handler.call if old_handler.respond_to?(:call) end end
trap_signals(signals = nil)
click to toggle source
# File lib/queue_kit/signal_checker.rb, line 19 def trap_signals(signals = nil) if signals.nil? trap_signals(COMMON_SIGNALS) trap_signals(JRUBY_SIGNALS) unless defined?(JRUBY_VERSION) trap_signals(OPTIONAL_SIGNALS) else signals.each { |sig| trap_signal(sig) } end rescue ArgumentError warn "Signals are not supported: #{signals.inspect}" end