def _fire_event_for_notification(event,sender,action)
      if action.arity == 2
        target.instance_exec(sender,event,&action)
      elsif action.arity == 1
        target.instance_exec(sender,&action)
      else
        target.instance_eval(&action)
      end
    end
def _fire_event_for_notification(event,sender,action)
      if action.arity == 2
        target.instance_exec(sender,event,&action)
      elsif action.arity == 1
        target.instance_exec(sender,&action)
      else
        target.instance_eval(&action)
      end
    end
Fire a single event based on the matched notification.

 An action without any parameters is assumed to be executed within the contexxt
 of the target. If there are two parameters we will simply execute the action and
 pass it both the target and the sender.