class PPCurses::NotificationCentre

Public Class Methods

default_centre() click to toggle source
# File lib/ppcurses/notification_centre.rb, line 11
def NotificationCentre.default_centre
              @@default_centre
      end
new() click to toggle source
# File lib/ppcurses/notification_centre.rb, line 5
def initialize
        @listeners = Hash.new
      end

Public Instance Methods

add_observer( observer, selector, name, sender) click to toggle source
# File lib/ppcurses/notification_centre.rb, line 16
    def add_observer( observer, selector, name, sender)

if @listeners.has_key?(name)
        sender_hash = @listeners.fetch(name)
else
        sender_hash = Hash.new
              @listeners.store(name, sender_hash)
      end
    
       sender_hash.store(sender, [observer, selector])
    
    end
post_notification( name, sender ) click to toggle source
# File lib/ppcurses/notification_centre.rb, line 30
def post_notification ( name, sender )

  if @listeners.has_key?(name) == false then return end

  sender_hash =  @listeners.fetch(name)

  if sender_hash.has_key?(sender) == false then return end

  listener_info = sender_hash.fetch(sender)
  # observer = listener_info[0]  # Currently unused
  callback = listener_info[1] 

  notification = Notification.new(name, sender)

  callback.call ( notification )
end