Module: Roebe::Sigint
- Defined in:
- lib/roebe/toplevel_methods/register_sigint.rb
Class Method Summary collapse
-
.register(invoke_this_method = :exit) ⇒ Object
# === Roebe::Sigint.register.
Class Method Details
.register(invoke_this_method = :exit) ⇒ Object
#
Roebe::Sigint.register
The default method to be invoked is exit(), represented by the symbol :exit.
You can override this by leveraging another method, such as a custom method.
#
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/roebe/toplevel_methods/register_sigint.rb', line 22 def self.register( invoke_this_method = :exit ) # ======================================================================= # # === Handle blocks next # ======================================================================= # if block_given? yielded = yield # ===================================================================== # # === :use_this_as_exit_code # # We can specify a specific exit code here. # ===================================================================== # if yielded.has_key? :use_this_as_exit_code use_this_as_exit_code = yielded.delete(:use_this_as_exit_code) if yielded.has_key? :invoke_this_method invoke_this_method = yielded[:invoke_this_method] end Signal.trap('SIGINT') { send(invoke_this_method, use_this_as_exit_code) } end else Signal.trap('SIGINT') { send(invoke_this_method) } end end |