class Doofenshmirtz::SelfDestruct
Constants
- Mechanism
Public Class Methods
on(time, reason = nil)
click to toggle source
# File lib/doofenshmirtz/self_destruct.rb, line 8 def self.on(time, reason = nil) add(time.to_time, caller_locations.first, reason) mechanisms.each { |m| destruct(m) if Time.now > m.time } end
report(reporter = DefaultReporter)
click to toggle source
# File lib/doofenshmirtz/self_destruct.rb, line 30 def self.report(reporter = DefaultReporter) reporter.new(mechanisms).report end
Private Class Methods
add(time, location, reason)
click to toggle source
# File lib/doofenshmirtz/self_destruct.rb, line 14 def self.add(time, location, reason) @mechanisms.add(Mechanism.new(time, location.to_s, reason)) end
destruct(mechanism)
click to toggle source
# File lib/doofenshmirtz/self_destruct.rb, line 22 def self.destruct(mechanism) return unless enforce? message = "Self destructed on #{mechanism.time}" message += " because: #{mechanism.reason}" unless mechanism.reason.blank? fail(SelfDestructError, message) end
enforce?()
click to toggle source
# File lib/doofenshmirtz/self_destruct.rb, line 34 def self.enforce? Rails.env.test? && ENV["DISABLE_DOOFENSHMIRTZ"] != "true" end
mechanisms()
click to toggle source
# File lib/doofenshmirtz/self_destruct.rb, line 18 def self.mechanisms @mechanisms end