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.
188 189 190 |
# File 'lib/dommy/bridge.rb', line 188 def initialize(window) @window = window end |
Instance Method Details
#__js_call__(method, args) ⇒ Object
192 193 194 195 196 197 198 199 |
# File 'lib/dommy/bridge.rb', line 192 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.
203 204 205 206 207 208 209 210 211 212 213 214 215 |
# File 'lib/dommy/bridge.rb', line 203 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 |