Class: Dommy::WritableStream
- Inherits:
-
Object
- Object
- Dommy::WritableStream
- Includes:
- Bridge::Methods
- Defined in:
- lib/dommy/streams.rb
Overview
‘WritableStream` — accepts chunks via a writer; persistence is up to the `underlyingSink`’s ‘write` callback.
Defined Under Namespace
Classes: Error
Instance Method Summary collapse
- #__internal_abort__(reason) ⇒ Object
- #__internal_close__ ⇒ Object
- #__internal_write__(chunk) ⇒ Object
- #__js_call__(method, args) ⇒ Object
- #__js_get__(key) ⇒ Object
- #get_writer ⇒ Object (also: #getWriter)
-
#initialize(window, underlying_sink = nil) ⇒ WritableStream
constructor
A new instance of WritableStream.
- #locked ⇒ Object
Methods included from Bridge::Methods
Constructor Details
#initialize(window, underlying_sink = nil) ⇒ WritableStream
Returns a new instance of WritableStream.
206 207 208 209 210 211 212 |
# File 'lib/dommy/streams.rb', line 206 def initialize(window, = nil) @window = window @writer = nil @state = :writable @sink = .is_a?(Hash) ? .transform_keys(&:to_s) : {} CallableInvoker.invoke(@sink["start"]) end |
Instance Method Details
#__internal_abort__(reason) ⇒ Object
237 238 239 240 241 |
# File 'lib/dommy/streams.rb', line 237 def __internal_abort__(reason) @state = :errored CallableInvoker.invoke(@sink["abort"], reason) PromiseValue.resolve(@window, nil) end |
#__internal_close__ ⇒ Object
231 232 233 234 235 |
# File 'lib/dommy/streams.rb', line 231 def __internal_close__ @state = :closed CallableInvoker.invoke(@sink["close"]) PromiseValue.resolve(@window, nil) end |
#__internal_write__(chunk) ⇒ Object
226 227 228 229 |
# File 'lib/dommy/streams.rb', line 226 def __internal_write__(chunk) CallableInvoker.invoke(@sink["write"], chunk) PromiseValue.resolve(@window, nil) end |
#__js_call__(method, args) ⇒ Object
252 253 254 255 256 257 258 259 260 261 |
# File 'lib/dommy/streams.rb', line 252 def __js_call__(method, args) case method when "getWriter" get_writer when "close" __internal_close__ when "abort" __internal_abort__(args[0]) end end |
#__js_get__(key) ⇒ Object
243 244 245 246 247 248 |
# File 'lib/dommy/streams.rb', line 243 def __js_get__(key) case key when "locked" locked end end |
#get_writer ⇒ Object Also known as: getWriter
214 215 216 217 218 |
# File 'lib/dommy/streams.rb', line 214 def get_writer raise Error, "stream locked" if @writer @writer = WritableStreamDefaultWriter.new(self) end |
#locked ⇒ Object
222 223 224 |
# File 'lib/dommy/streams.rb', line 222 def locked !@writer.nil? end |