class Turbo::Debouncer
def debounce(&block)
def debounce(&block) scheduled_task&.cancel unless scheduled_task&.complete? @scheduled_task = Concurrent::ScheduledTask.execute(delay, &block) end
def initialize(delay: DEFAULT_DELAY)
def initialize(delay: DEFAULT_DELAY) @delay = delay @scheduled_task = nil end
def wait
def wait scheduled_task&.wait(wait_timeout) end
def wait_timeout
def wait_timeout delay + 1 end