Class: Dommy::Clipboard
Overview
navigator.clipboard — an in-memory clipboard for tests. Real
OS clipboard access is intentionally not implemented; reads and
writes round-trip through Ruby memory only.
Async APIs (readText/writeText/read/write) return
PromiseValue so callers' .await chains keep working.
Instance Method Summary
collapse
included
#__dommy_dump_event_failure__, #__internal_deliver_event__, #__internal_process_event_handler_return__, #add_event_listener, capture_flag, #deliver_at, #dispatch_event, #event_name_from_on, #invoke_listener_isolated, js_truthy?, #on_handler, #remove_event_listener, #set_on_handler
Constructor Details
#initialize(window) ⇒ Clipboard
Returns a new instance of Clipboard.
162
163
164
165
166
|
# File 'lib/dommy/navigator.rb', line 162
def initialize(window)
@window = window
@text = ""
@items = []
end
|
Instance Method Details
#__internal_event_parent__ ⇒ Object
224
225
226
|
# File 'lib/dommy/navigator.rb', line 224
def __internal_event_parent__
nil
end
|
#__js_call__(method, args) ⇒ Object
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
|
# File 'lib/dommy/navigator.rb', line 205
def __js_call__(method, args)
case method
when "readText"
read_text
when "writeText"
write_text(args[0])
when "read"
read
when "write"
write(args[0])
when "addEventListener"
add_event_listener(args[0], args[1], args[2])
when "removeEventListener"
remove_event_listener(args[0], args[1], args[2])
when "dispatchEvent"
dispatch_event(args[0])
end
end
|
#__js_get__(_key) ⇒ Object
195
196
197
|
# File 'lib/dommy/navigator.rb', line 195
def __js_get__(_key)
nil
end
|
#__js_set__(_key, _value) ⇒ Object
199
200
201
|
# File 'lib/dommy/navigator.rb', line 199
def __js_set__(_key, _value)
Bridge::UNHANDLED
end
|
#read ⇒ Object
186
187
188
|
# File 'lib/dommy/navigator.rb', line 186
def read
PromiseValue.resolve(@window, @items.dup)
end
|
#read_text ⇒ Object
177
178
179
|
# File 'lib/dommy/navigator.rb', line 177
def read_text
PromiseValue.resolve(@window, @text)
end
|
#text ⇒ Object
Sync read for tests that don't want to await.
169
170
171
|
# File 'lib/dommy/navigator.rb', line 169
def text
@text
end
|
#text=(value) ⇒ Object
173
174
175
|
# File 'lib/dommy/navigator.rb', line 173
def text=(value)
@text = value.to_s
end
|
#write(items) ⇒ Object
190
191
192
193
|
# File 'lib/dommy/navigator.rb', line 190
def write(items)
@items = items.is_a?(Array) ? items : [items]
PromiseValue.resolve(@window, nil)
end
|
#write_text(text) ⇒ Object
181
182
183
184
|
# File 'lib/dommy/navigator.rb', line 181
def write_text(text)
@text = text.to_s
PromiseValue.resolve(@window, nil)
end
|