rubymotion/BubbleWrap

View on GitHub
motion/core/ns_notification_center.rb

Summary

Maintainability
A
0 mins
Test Coverage
class NSNotificationCenter
  def observers
    @observers ||= []
  end

  def observe(name, object=nil, &proc)
    proc.weak! if proc && BubbleWrap.use_weak_callbacks?
    observer = self.addObserverForName(name, object:object, queue:NSOperationQueue.mainQueue, usingBlock:proc)
    observers << observer
    observer
  end

  def unobserve(observer)
    return unless observers.include?(observer)
    removeObserver(observer)
    observers.delete(observer)
  end

  def post(name, object=nil, info=nil)
    self.postNotificationName(name, object: object, userInfo: info)
  end
end