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

Version Path
itamae-mitsurin-1.0.3 lib/itamae-mitsurin/handler_proxy.rb
itamae-mitsurin-1.0.2 lib/itamae-mitsurin/handler_proxy.rb
itamae-mitsurin-1.0.1 lib/itamae-mitsurin/handler_proxy.rb
itamae-mitsurin-1.0.0 lib/itamae-mitsurin/handler_proxy.rb
itamae-mitsurin-0.50 lib/itamae-mitsurin/handler_proxy.rb
itamae-mitsurin-0.50 test/test_itamae-mitsurin/test_handler_proxy.rb
itamae-mitsurin-0.49 lib/itamae-mitsurin/handler_proxy.rb
itamae-mitsurin-0.49 test/test_itamae-mitsurin/test_handler_proxy.rb
itamae-mitsurin-0.48 lib/itamae-mitsurin/handler_proxy.rb
itamae-mitsurin-0.48 test/test_itamae-mitsurin/test_handler_proxy.rb
itamae-mitsurin-0.47 lib/itamae-mitsurin/handler_proxy.rb
itamae-mitsurin-0.47 test/test_itamae-mitsurin/test_handler_proxy.rb
itamae-mitsurin-0.46 lib/itamae-mitsurin/handler_proxy.rb
itamae-mitsurin-0.46 test/test_itamae-mitsurin/test_handler_proxy.rb
itamae-mitsurin-0.45 lib/itamae-mitsurin/handler_proxy.rb
itamae-mitsurin-0.45 test/test_itamae-mitsurin/test_handler_proxy.rb
itamae-mitsurin-0.44 lib/itamae-mitsurin/handler_proxy.rb
itamae-mitsurin-0.44 test/test_itamae-mitsurin/test_handler_proxy.rb
itamae-mitsurin-0.43 lib/itamae-mitsurin/handler_proxy.rb
itamae-mitsurin-0.43 test/test_itamae-mitsurin/test_handler_proxy.rb