Nickolay - Data.UUID-0.03

Documentation | Source

Name

Data.UUID - provides RFC4122v4 complaint UUIDs

SYNOPSIS

    var uuid = Data.UUID.my.uuid()


    Class('Some.Class', {

        has : {
            id  : Joose.I.UUID
        }
    })

DESCRIPTION

Data.UUID is a very simple class, containing a single static method - uuid, which return the string represenation of UUID, conforming to RFC4122v4.

Also this package define an Joose.I.UUID attribute initializer, which is as simple as:

Joose.I.UUID = function () { return Data.UUID.uuid() }

You can use it to initialize attributes which holds the UUID.

GETTING HELP

This extension is supported via github issues tracker: http://github.com/SamuraiJack/Data-UUID/issues

For general Joose questions you can also visit #joose on irc.freenode.org or the forum at: http://joose.it/forum

SEE ALSO

Web page of this module: http://github.com/SamuraiJack/Data-UUID/

General documentation for Joose: http://openjsan.org/go/?l=Joose

BUGS

All complex software has bugs lurking in it, and this module is no exception.

Please report any bugs through the web interface at http://github.com/SamuraiJack/Data-UUID/issues

AUTHORS

Author: Robert Kieffer robert@broofa.com

Maintainer: Nickolay Platonov nplatonov@cpan.org

COPYRIGHT AND LICENSE

Copyright (c) 2010 Robert Kieffer

Dual licensed under the MIT and GPL licenses.

Class('Data.UUID', {
    
    my : {
        
        have : {
            chars : '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('')
        },
        
        
        methods : {
            
            uuid : function() {
                var chars = this.chars, uuid = new Array(36), rnd = 0, r;
                
                for (var i = 0; i < 36; i++) {
                    if (i==8 || i==13 ||  i==18 || i==23) {
                        uuid[i] = '-';
                    } else {
                        if (rnd <= 0x02) rnd = 0x2000000 + (Math.random()*0x1000000)|0;
                        r = rnd & 0xf;
                        rnd = rnd >> 4;
                        uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
                    }
                }
                
                return uuid.join('')
            }
        }
    }
})


Joose.I.UUID = function () { return Data.UUID.uuid() }