Method: EF::Object#stop_listening
- Defined in:
- lib/event-framework.rb
#stop_listening(observable = nil, event = nil, block = nil) ⇒ Object
unregistrate all matching handlers
197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 |
# File 'lib/event-framework.rb', line 197 def stop_listening(observable=nil, event=nil, block=nil) @mutex.synchronize do observables = [] @observables.each do |o, e, b| if (!observable || o == observable) && (!event || e == event) && (!block || b == block) if self == o @observers.reject! do |o, e, b| o == self end else o.unregistrate(self, e, b) end else observables << [o, e, b] end end @observables = observables end end |