| Module | ObservablePool |
| In: |
lib/observable_pool.rb
|
# File lib/observable_pool.rb, line 124 def add_global_observer(observer) if defined? @observable_peers @observable_peers.each do |observable, obsv| obsv.add_observer(observer) unless observable.observer?(observer) end end @global_observer_peers = [] unless defined? @global_observer_peers @global_observer_peers << observer end
# File lib/observable_pool.rb, line 134 def add_global_observers(*observers) observers.each { |observer| add_global_observer(observer) } end
# File lib/observable_pool.rb, line 39 def add_observable(observable) unless observable.is_a?(Observable) raise(ArgumentError, "observable object must be Observale") end @observable_peer_mutex = Mutex.new unless defined? @observable_peer_mutex @observable_peers = {} unless defined? @observable_peers sync_observer = Observer.new(observable, @observable_peer_mutex) @observable_peers[observable] = sync_observer @global_observer_peers = [] unless defined? @global_observer_peers @global_observer_peers.each do |observer| sync_observer.add_observer(observer) end sync_observer end
# File lib/observable_pool.rb, line 54 def add_observables(*observables) observables.each { |observable| add_observable(observable) } end
# File lib/observable_pool.rb, line 163 def count_global_observers if defined? @global_observer_peers @globale.observer_peers.size else 0 end end
# File lib/observable_pool.rb, line 94 def count_observables if defined? @observable_peers @observable_peers.size else 0 end end
# File lib/observable_pool.rb, line 138 def delete_global_observer(observer) if defined? @observable_peers @observable_peers.each do |observable, obsv| obsv.delete_observer(observer) end end @global_observer_peers.delete(observer) if defined? @global_observer_peers end
# File lib/observable_pool.rb, line 147 def delete_global_observers if defined? @global_observer_peers @global_observer_peers.dup.each do |global_observer| delete_global_observer(global_observer) end end end
# File lib/observable_pool.rb, line 58 def delete_observable(observable) @observable_peers.delete(observable) if defined? @observable_peers end
# File lib/observable_pool.rb, line 62 def delete_observables @observable_peers.clear if defined? @observable_peers end
# File lib/observable_pool.rb, line 102 def each_observables(&block) if defined? @observable_peers @observable_peers.each do |observable, observer| block[observable, observer] end end end
# File lib/observable_pool.rb, line 171 def global_observer?(observer) if defined? @global_observer_peers @global_observer_peers.include?(observer) else false end end
# File lib/observable_pool.rb, line 110 def list_all_observers observers = [] if defined? @observable_peers @observable_peers.each do |observable, observer| observers += observer.list_observers end end observers.uniq end
# File lib/observable_pool.rb, line 155 def list_global_observers if defined? @global_observer_peers @global_observer_peers.dup else [] end end
# File lib/observable_pool.rb, line 74 def list_observables if defined? @observable_peers @observable_peers.keys else [] end end
# File lib/observable_pool.rb, line 82 def list_observables_observed(observer) observables = [] if defined? @observable_peers @observable_peers.each do |observable, obsv| if obsv.list_observers.include?(observer) observables << observable end end end observables end
# File lib/observable_pool.rb, line 66 def observable(observable) @observable_peers[observable] if defined? @observable_peers end