module Bluesky::DOMHelper

Private Class Methods

included(base) click to toggle source
# File lib/bluesky/helpers.rb, line 32
def self.included(base)
  base.extend(self)
end

Protected Instance Methods

defer(&block) click to toggle source

Delays execution to the main event loop

Parameters:

block

A block to execute on the main event loop

Returns:

A promise that resolves after block has completed

# File lib/bluesky/helpers.rb, line 16
def defer(&block)
  timeout(0, &block)
end
delay(hours: 0, minutes: 0, seconds: 0, milliseconds: 0, &block) click to toggle source
# File lib/bluesky/helpers.rb, line 20
def delay(hours: 0, minutes: 0, seconds: 0, milliseconds: 0, &block)
  timeout(((hours * 60 + minutes) * 60 + seconds) * 1000 + milliseconds, &block)
end

Private Instance Methods

timeout(milliseconds, &block) click to toggle source
# File lib/bluesky/helpers.rb, line 26
def timeout(milliseconds, &block)
  promise = Promise.new
  $$[:setTimeout].call(-> { promise.resolve }, milliseconds)
  block ? promise.then(&block) : promise
end