Sha256: c2807b83963fd6b22f1628e29ea61d3f9c33a596df6c9dfeaf4d5ed8dc5a7029

Contents?: true

Size: 455 Bytes

Versions: 3

Compression:

Stored size: 455 Bytes

Contents

module Deferrable
  def deferred(enabled = true, &block)
    if enabled
      deferred_blocks << block
    else
      block.call()
    end
  end

  def now_and_later(&block)
    deferred(false, &block)
    deferred(true, &block)
  end

  def complete_deferred
    deferred_blocks.each {|block| block.call}
    clear_deferred
  end

  def clear_deferred
    deferred_blocks.clear
  end

private

  def deferred_blocks
    @deferred_blocks ||= []
  end
end

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
ninjudd-deferrable-0.1.0 lib/deferrable.rb
deferrable-0.2.0 lib/deferrable.rb
deferrable-0.1.0 lib/deferrable.rb