class NotNow

Attributes

callbacks[R]

Public Class Methods

call(blk) click to toggle source
# File lib/not_now.rb, line 2
def self.call(blk)
  self.new.(blk)
end
new() click to toggle source
# File lib/not_now.rb, line 6
def initialize
  @callbacks = []
end

Public Instance Methods

call(blk) click to toggle source
# File lib/not_now.rb, line 10
def call(blk)
  blk.call(later)
  now
end

Private Instance Methods

later() click to toggle source
# File lib/not_now.rb, line 18
def later
  @later ||= -> (callback) { callbacks.push(callback) }
end
now() click to toggle source
# File lib/not_now.rb, line 22
def now
  until callbacks.empty?
    callbacks.shift.()
  end
end