module Flare::Util::Interruption
Constants
- InterruptionTargets
Public Class Methods
included(klass)
click to toggle source
# File lib/flare/util/interruption.rb, line 10 def self.included(klass) klass.class_eval { alias_method :initialize_before_interruption, :initialize def initialize(*args) super initialize_before_interruption(*args) initialize_interruption end } end
interrupt_all()
click to toggle source
# File lib/flare/util/interruption.rb, line 21 def self.interrupt_all InterruptionTargets.each do |x| x.interrupt_ end end
new(*args)
click to toggle source
Calls superclass method
# File lib/flare/util/interruption.rb, line 13 def initialize(*args) super initialize_before_interruption(*args) initialize_interruption end
Public Instance Methods
initialize_interruption()
click to toggle source
# File lib/flare/util/interruption.rb, line 27 def initialize_interruption InterruptionTargets.push self @__interruptible__ = false @__interrupted__ = false end
interrupt()
click to toggle source
# File lib/flare/util/interruption.rb, line 55 def interrupt if interruptible? info "INTERRUPTED" exit 1 end end
interrupt_()
click to toggle source
# File lib/flare/util/interruption.rb, line 50 def interrupt_ @__interrupted__ = true interrupt end
interrupted?()
click to toggle source
# File lib/flare/util/interruption.rb, line 44 def interrupted? @__interrupted__ ensure @__interrupted__ = false end
interruptible(&block)
click to toggle source
# File lib/flare/util/interruption.rb, line 33 def interruptible(&block) @__interruptible__ = true block.call ensure @__interruptible__ = false end
interruptible?()
click to toggle source
# File lib/flare/util/interruption.rb, line 40 def interruptible? @__interruptible__ end