Sha256: b383404128d191d2d5a1b6b9ba327853e7d3a5ba9e1d721ecfe67c6f607c2cba
Contents?: true
Size: 692 Bytes
Versions: 90
Compression:
Stored size: 692 Bytes
Contents
module ItamaeMitsurin class HandlerProxy def initialize @instances = [] end def register_instance(instance) @instances << instance end def event(*args, &block) if block_given? _event_with_block(*args, &block) else _event(*args) end end private def _event(*args) @instances.each do |i| i.event(*args) end end def _event_with_block(event_name, *args, &block) event("#{event_name}_started".to_sym, *args) block.call rescue event("#{event_name}_failed".to_sym, *args) raise else event("#{event_name}_completed".to_sym, *args) end end end
Version data entries
90 entries across 47 versions & 1 rubygems