lib/abaaso.js
function ( obj, event, fn, id, scope, st ) {
		var uuid = id || utility.genId();

		scope = scope || obj;
		st    = st    || state.getCurrent();

		if ( obj === undefined || event === null || event === undefined || typeof fn !== "function" ) {
			throw new Error( label.error.invalidArguments );
		}

		observer.add( obj, event, function () {
			fn.apply( scope, arguments );
			observer.remove( obj, event, uuid, st );
		}, uuid, scope, st);

		return obj;
	}
function ( obj, event, fn, id, scope, st ) {
		var uuid = id || utility.genId();

		scope = scope || obj;
		st    = st    || state.getCurrent();

		if ( obj === undefined || event === null || event === undefined || typeof fn !== "function" ) {
			throw new Error( label.error.invalidArguments );
		}

		observer.add( obj, event, function () {
			fn.apply( scope, arguments );
			observer.remove( obj, event, uuid, st );
		}, uuid, scope, st);

		return obj;
	}
function ( obj , event , fn , id , scope , st ) { var uuid = id || utility . genId ( ) ; scope = scope || obj ; st = st || state . getCurrent ( ) ; if ( obj === undefined || event === null || event === undefined || typeof fn !== "function" ) { throw new Error ( label . error . invalidArguments ) ; } observer . add ( obj , event , function ( ) { fn . apply ( scope , arguments ) ; observer . remove ( obj , event , uuid , st ) ; } , uuid , scope , st ) ; return obj ; }
Adds a listener for a single execution

@method once
@param  {Mixed}    obj   Primitive
@param  {String}   event Event being fired
@param  {Function} fn    Event handler
@param  {String}   id    [Optional / Recommended] The id for the listener
@param  {String}   scope [Optional / Recommended] The id of the object or element to be set as 'this'
@param  {String}   st    [Optional] Application state, default is current
@return {Mixed}          Primitive
Adds a listener for a single execution