Sha256: e6dfd741b9bf38b38b78a3ebc26325d3e9ace54291204a56113d572e2b40a951

Contents?: true

Size: 608 Bytes

Versions: 4

Compression:

Stored size: 608 Bytes

Contents

module DerailSpecs
  def self.hooks
    InitializerHooks.instance
  end

  class InitializerHooks
    def self.instance
      @instance ||= new
    end

    def before_server_start(&blk)
      register(:before_server_start, blk)
    end

    def before_server_stop(&blk)
      register(:before_server_stop, blk)
    end

    def reset!
      @hooks = {}
    end

    def run(name)
      return unless @hooks[name]

      @hooks[name].each(&:call)
    end

    private

    def register(name, blk)
      @hooks[name] ||= []
      @hooks[name] << blk
    end

    def initialize
      reset!
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
derail_specs-0.7.0 lib/derail_specs/initializer_hooks.rb
derail_specs-0.6.1 lib/derail_specs/initializer_hooks.rb
derail_specs-0.6.0 lib/derail_specs/initializer_hooks.rb
derail_specs-0.5.1 lib/derail_specs/initializer_hooks.rb