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