lib/abaaso.js
function ( safe ) {
		var s = function () { return ( ( ( 1 + Math.random() ) * 0x10000 ) | 0 ).toString( 16 ).substring( 1 ); },
		    r = [8, 9, "a", "b"],
		    o;

		o = ( s() + s() + "-" + s() + "-4" + s().substr( 0, 3 ) + "-" + r[Math.floor( Math.random() * 4 )] + s().substr( 0, 3 ) + "-" + s() + s() + s() );

		if ( safe === true ) {
			o = o.replace( /-/g, "" );
		}

		return o;
	}
function ( safe ) {
		var s = function () { return ( ( ( 1 + Math.random() ) * 0x10000 ) | 0 ).toString( 16 ).substring( 1 ); },
		    r = [8, 9, "a", "b"],
		    o;

		o = ( s() + s() + "-" + s() + "-4" + s().substr( 0, 3 ) + "-" + r[Math.floor( Math.random() * 4 )] + s().substr( 0, 3 ) + "-" + s() + s() + s() );

		if ( safe === true ) {
			o = o.replace( /-/g, "" );
		}

		return o;
	}
function ( safe ) { var s = function ( ) { return ( ( ( 1 + Math . random ( ) ) * 0x10000 ) | 0 ) . toString ( 16 ) . substring ( 1 ) ; } , r = [ 8 , 9 , "a" , "b" ] , o ; o = ( s ( ) + s ( ) + "-" + s ( ) + "-4" + s ( ) . substr ( 0 , 3 ) + "-" + r [ Math . floor ( Math . random ( ) * 4 ) ] + s ( ) . substr ( 0 , 3 ) + "-" + s ( ) + s ( ) + s ( ) ) ; if ( safe === true ) { o = o . replace ( / - / g , "" ) ; } return o ; }
Generates a version 4 UUID

@method uuid
@param  {Boolean} safe [Optional] Strips - from UUID
@return {String}       UUID
Generates a version 4 UUID