class ItamaeMitsurin::HandlerProxy

Public Class Methods

new() click to toggle source
# File lib/itamae-mitsurin/handler_proxy.rb, line 3
def initialize
  @instances = []
end

Public Instance Methods

event(*args, &block) click to toggle source
# File lib/itamae-mitsurin/handler_proxy.rb, line 11
def event(*args, &block)
  if block_given?
    _event_with_block(*args, &block)
  else
    _event(*args)
  end
end
register_instance(instance) click to toggle source
# File lib/itamae-mitsurin/handler_proxy.rb, line 7
def register_instance(instance)
  @instances << instance
end

Private Instance Methods

_event(*args) click to toggle source
# File lib/itamae-mitsurin/handler_proxy.rb, line 21
def _event(*args)
  @instances.each do |i|
    i.event(*args)
  end
end
_event_with_block(event_name, *args, &block) click to toggle source
# File lib/itamae-mitsurin/handler_proxy.rb, line 27
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