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.
208 209 210 211 212 213 214 |
# File 'lib/dommy/streams.rb', line 208 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
239 240 241 242 243 |
# File 'lib/dommy/streams.rb', line 239 def __internal_abort__(reason) @state = :errored CallableInvoker.invoke(@sink["abort"], reason) PromiseValue.resolve(@window, nil) end |
#__internal_close__ ⇒ Object
233 234 235 236 237 |
# File 'lib/dommy/streams.rb', line 233 def __internal_close__ @state = :closed CallableInvoker.invoke(@sink["close"]) PromiseValue.resolve(@window, nil) end |
#__internal_write__(chunk) ⇒ Object
228 229 230 231 |
# File 'lib/dommy/streams.rb', line 228 def __internal_write__(chunk) CallableInvoker.invoke(@sink["write"], chunk) PromiseValue.resolve(@window, nil) end |
#__js_call__(method, args) ⇒ Object
256 257 258 259 260 261 262 263 264 265 |
# File 'lib/dommy/streams.rb', line 256 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
245 246 247 248 249 250 251 252 |
# File 'lib/dommy/streams.rb', line 245 def __js_get__(key) case key when "locked" locked else Bridge::ABSENT end end |
#get_writer ⇒ Object Also known as: getWriter
216 217 218 219 220 |
# File 'lib/dommy/streams.rb', line 216 def get_writer raise Error, "stream locked" if @writer @writer = WritableStreamDefaultWriter.new(self) end |
#locked ⇒ Object
224 225 226 |
# File 'lib/dommy/streams.rb', line 224 def locked !@writer.nil? end |