Class: Dommy::ResizeObserver
- Inherits:
-
Object
- Object
- Dommy::ResizeObserver
- Includes:
- Internal::ObservableCallback
- Defined in:
- lib/dommy/resize_observer.rb
Overview
‘ResizeObserver` — stub for the element-resize API. Same shape as IntersectionObserver: observe / unobserve / disconnect, plus `__trigger__` for tests to drive callbacks.
Instance Attribute Summary collapse
-
#callback ⇒ Object
readonly
Returns the value of attribute callback.
Instance Method Summary collapse
- #__js_call__(method, args) ⇒ Object
- #__trigger__(entries) ⇒ Object
- #disconnect ⇒ Object
-
#initialize(callback) ⇒ ResizeObserver
constructor
A new instance of ResizeObserver.
- #observe(target, _options = nil) ⇒ Object
- #observed_targets ⇒ Object
- #unobserve(target) ⇒ Object
Constructor Details
#initialize(callback) ⇒ ResizeObserver
Returns a new instance of ResizeObserver.
14 15 16 17 |
# File 'lib/dommy/resize_observer.rb', line 14 def initialize(callback) @callback = callback @targets = [] end |
Instance Attribute Details
#callback ⇒ Object (readonly)
Returns the value of attribute callback.
12 13 14 |
# File 'lib/dommy/resize_observer.rb', line 12 def callback @callback end |
Instance Method Details
#__js_call__(method, args) ⇒ Object
42 43 44 45 46 47 48 49 50 51 |
# File 'lib/dommy/resize_observer.rb', line 42 def __js_call__(method, args) case method when "observe" observe(args[0], args[1]) when "unobserve" unobserve(args[0]) when "disconnect" disconnect end end |
#__trigger__(entries) ⇒ Object
38 39 40 |
# File 'lib/dommy/resize_observer.rb', line 38 def __trigger__(entries) invoke_callback(entries) end |
#disconnect ⇒ Object
29 30 31 32 |
# File 'lib/dommy/resize_observer.rb', line 29 def disconnect @targets.clear nil end |
#observe(target, _options = nil) ⇒ Object
19 20 21 22 |
# File 'lib/dommy/resize_observer.rb', line 19 def observe(target, = nil) @targets << target unless @targets.include?(target) nil end |
#observed_targets ⇒ Object
34 35 36 |
# File 'lib/dommy/resize_observer.rb', line 34 def observed_targets @targets.dup end |
#unobserve(target) ⇒ Object
24 25 26 27 |
# File 'lib/dommy/resize_observer.rb', line 24 def unobserve(target) @targets.delete(target) nil end |