Sha256: 8fb8c394aca8f0517c3b2b3476bfca0fbdce61e6ac84c43c35cb7721ba319c0d
Contents?: true
Size: 913 Bytes
Versions: 1
Compression:
Stored size: 913 Bytes
Contents
module QED class Advice # This class encapsulates advice on symbolic targets, # such as Before, After and Upon. # class Events # attr :signals # def initialize @signals = [{}] end # def add(type, &procedure) @signals.last[type.to_sym] = procedure end # def call(scope, type, *args) @signals.each do |set| proc = set[type.to_sym] #proc.call(*args) if proc scope.instance_exec(*args, &proc) if proc end end # Clear last set of advice. def reset @signals.pop end # def setup @signals.push {} end # Clear advice. def clear(type=nil) if type @signals.each{ |set| set.delete(type.to_sym) } else @signals = [{}] end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
qed-2.2.0 | lib/qed/advice/events.rb |