Class: Dommy::Internal::ObserverManager
- Inherits:
-
Object
- Object
- Dommy::Internal::ObserverManager
- Defined in:
- lib/dommy/internal/observer_manager.rb
Overview
Manages MutationObserver registration and matching. Filters observers based on mutation target to avoid unnecessary lookups.
Instance Method Summary collapse
- #all ⇒ Object
-
#initialize ⇒ ObserverManager
constructor
A new instance of ObserverManager.
-
#observers_matching(target_wrapped) ⇒ Object
Returns all observers that match the given wrapped target.
- #register(observer) ⇒ Object
- #unregister(observer) ⇒ Object
Constructor Details
#initialize ⇒ ObserverManager
Returns a new instance of ObserverManager.
8 9 10 |
# File 'lib/dommy/internal/observer_manager.rb', line 8 def initialize @observers = [] end |
Instance Method Details
#all ⇒ Object
26 27 28 |
# File 'lib/dommy/internal/observer_manager.rb', line 26 def all @observers.dup end |
#observers_matching(target_wrapped) ⇒ Object
Returns all observers that match the given wrapped target. Delegates to each observer’s matches_wrapped? method.
22 23 24 |
# File 'lib/dommy/internal/observer_manager.rb', line 22 def observers_matching(target_wrapped) @observers.select { |observer| observer.matches_wrapped?(target_wrapped) } end |
#register(observer) ⇒ Object
12 13 14 |
# File 'lib/dommy/internal/observer_manager.rb', line 12 def register(observer) @observers << observer unless @observers.include?(observer) end |
#unregister(observer) ⇒ Object
16 17 18 |
# File 'lib/dommy/internal/observer_manager.rb', line 16 def unregister(observer) @observers.delete(observer) end |