Class: Dommy::Bridge::PromiseConstructor
- Inherits:
-
Object
- Object
- Dommy::Bridge::PromiseConstructor
- Defined in:
- lib/dommy/bridge.rb
Overview
‘JS.global` view. Implements the `resolve` / `reject` class methods plus `new Promise(executor)` via `js_new`.
Instance Method Summary collapse
- #__js_call__(method, args) ⇒ Object
-
#__js_new__(args) ⇒ Object
‘new Promise(executor)` — runs executor synchronously with (resolve, reject) callbacks.
-
#initialize(window) ⇒ PromiseConstructor
constructor
A new instance of PromiseConstructor.
Constructor Details
#initialize(window) ⇒ PromiseConstructor
Returns a new instance of PromiseConstructor.
91 92 93 |
# File 'lib/dommy/bridge.rb', line 91 def initialize(window) @window = window end |
Instance Method Details
#__js_call__(method, args) ⇒ Object
95 96 97 98 99 100 101 102 |
# File 'lib/dommy/bridge.rb', line 95 def __js_call__(method, args) case method when "resolve" PromiseValue.resolve(@window, args[0]) when "reject" PromiseValue.reject(@window, args[0]) end end |
#__js_new__(args) ⇒ Object
‘new Promise(executor)` — runs executor synchronously with (resolve, reject) callbacks.
106 107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'lib/dommy/bridge.rb', line 106 def __js_new__(args) executor = args[0] promise = PromiseValue.new(@window) resolve = PromiseSettler.new(promise, fulfilled: true) reject = PromiseSettler.new(promise, fulfilled: false) if executor.respond_to?(:__js_call__) executor.__js_call__("call", [resolve, reject]) elsif executor.respond_to?(:call) executor.call(resolve, reject) end promise end |