Please enable JavaScript to use RhodeCode Enterprise
Commit Description:
add model solution
Commit Description:
add model solution
"use strict" ;
var isValue = require ( "../object/is-value" )
, toNaturalNumber = require ( "../number/to-pos-integer" );
var generated = Object . create ( null ), random = Math . random , uniqTryLimit = 100 ;
var getChunk = function () { return random (). toString ( 36 ). slice ( 2 ); };
var getString = function ( /* length */ ) {
var str = getChunk (), length = arguments [ 0 ];
if ( ! isValue ( length )) return str ;
while ( str . length < length ) str += getChunk ();
return str . slice ( 0 , length );
};
module . exports = function ( /* options */ ) {
var options = Object ( arguments [ 0 ]), length = options . length , isUnique = options . isUnique ;
if ( isValue ( length )) length = toNaturalNumber ( length );
var str = getString ( length );
if ( isUnique ) {
var count = 0 ;
while ( generated [ str ]) {
if ( ++ count === uniqTryLimit ) {
throw new Error (
"Cannot generate random string.\n" +
"String.random is not designed to effectively generate many short and " +
"unique random strings"
);
}
str = getString ( length );
}
generated [ str ] = true ;
}
return str ;
};
Site-wide shortcuts
/
Use quick search box
g h
Goto home page
g g
Goto my private gists page
g G
Goto my public gists page
n r
New repository page
n g
New gist page
Repositories
g s
Goto summary page
g c
Goto changelog page
g f
Goto files page
g F
Goto files page with file search activated
g p
Goto pull requests page
g o
Goto repository settings
g O
Goto repository permissions settings