0.0.10 • Published 8 years ago
rutil v0.0.10
(Deprecated)
These methods will be moved to individual modules that stand on their own.
rutil
A whole bunch of utilities.
Install
Available via Bower
bower install rutilAvailable via npm
npm install rutilUtilities
isObject(obj])
rutil.isObject({}); // true
rutil.isObject([]); // falseisArray(arr)
rutil.isArray([]); // truemerge(obj1, obj2)
var obj1 = {
foo: 'bar',
baz: 1234
};
var obj2 = {
foo: 'qux'
};
var obj3 = rutil.merge(obj1, obj2);
obj3 // {foo: "qux", baz: 1234}serialize(obj)
var obj = {
uid: 123,
t: [
'foo',
'bar'
],
o: {baz: 'qux'},
q: 'foo bar'
};
rutil.serialize(obj); // uid=123&t=foo&t=bar&o%5Bbaz%5D=qux&q=foo%20barshuffle(arr)
var arr = ['a', 'b', 'c', 'd', 'e', 'f'];
var shuffled = rutil.shuffle(arr);
shuffled // ['c', 'e', 'b', 'd', 'f', 'a']getParams(url)
// current url: http://example.com/?foo=bar&baz=qux
rutil.getParams(); // {foo: "bar", baz: "qux"}var url = 'http://example.com/?foo=bar&baz=qux';
rutil.getParms(url) // {foo: "bar", baz: "qux"}setQueryStringParam(uri, key, val)
var uri = 'http://example.com?foo=bar';
uri = rutil.setQueryStringParam(uri, 'foo', 'qux');
uri // http://example.com?foo=quxgenerateUUID()
rutil.generateUUID(); // 049128ed-b16c-4689-90d2-e910860d2797generateRandomString(length, str)
rutil.generateRandomString(); // Ne46OxeEbWeDdFSDmwbOq4kfGkoKlMSh
rutil.generateRandomString(16); // mOPJBXXc9MR7nQf8
rutil.generateRandomString(6, '0123456789'); // 388048random(min, max)
rutil.random(0,9); // 6hexToRgb(hex)
var hex = '#0077aa';
var rgb = rutil.hexToRgb(hex); // {"r":0,"g":119,"b":170}
rgb.g // 119getDatesInbetween(dateObj1, dateObj2)
var from = new Date(2013,10,22);
var until = new Date(2013,11,25);
var dates = rutil.getDatesInbetween(from, until);
dates.forEach(function(date) {
date // obj: Fri Nov 22 2013 00:00:00 GMT-0800 (PST)
});parseHashtag(str, url)
var string = '#foo #bar';
var linkifiedString = rutil.parseHashtag(string, 'http://twitter.com/search?q={{tag}}');
linkifiedString // <a href="http://twitter.com/search?q=%23foo">#foo</a> <a href="http://twitter.com/search?q=%23bar">#bar</a>parseUsername(str, url)
var string = '@foo @bar';
var linkifiedString = rutil.parseUsername(string, 'http://twitter.com/{{username}}');
linkifiedString // <a href="http://twitter.com/foo">@foo</a> <a href="http://twitter.com/bar">@bar</a>parseUrl(str)
var string = 'http://example.com/ http://github.com/';
var linkifiedString = rutil.parseUrl(string);
linkifiedString // <a href="http://example.com/">http://example.com/</a> <a href="http://github.com/">http://github.com/</a>stripTags(str)
var htmlString = '<p><strong>foo</strong></p>';
var text = rutil.stripTags(htmlString);
text // fooformatPhone(num)
var phone = 1234567890;
var formattedPhone = rutil.formatPhone(phone);
formattedPhone // (123) 456-7890isValidEmail(str)
var email = 'foo.bar-5@qux.com';
rutil.isValidEmail(email); // trueisValidZip(num)
var zip = 12345;
rutil.isValidZip(zip); // trueisValidName(str)
rutil.isValidName('Foo'); // true
rutil.isValidName('Foo*'); // false
rutil.isValidName('Foo1'); // falseisValidUsername(str)
rutil.isValidUsername('foo') // true
rutil.isValidUsername('foo_bar1') // true
rutil.isValidUsername('foo-bar') // falsevar zip = '12345-2453';
rutil.isValidZip(zip); // trueisValidMinAge(dateObj, num)
var birthDate = new Date(1998, 02, 20);
rutil.isValidMinAge(birthDate, 18); // trueaddCommas(num)
var number = 1234567890.1234;
var numberWithCommas = rutil.addCommas(number);
numberWithCommas // 1,234,567,890.1234repeat(str, times)
rutil.repeat('foo'); // foofoo
rutil.repeat('foo', 5); // foofoofoofoofoopad(num)
rutil.pad(10); // 10
rutil.pad(9); // 9capitalize(str, lowercase)
rutil.capitalize('foo'); // Foo
rutil.capitalize('fooBarQux'); // 'FooBarQux'
rutil.capitalize('fooBarQux', true); // 'Foobarqux'isMobileDevice(device)
rutil.isMobileDevice(); // bool
rutil.isMobileDevice('ios'); // booloptions: 'iphone', 'ipad', 'ios', 'ios7', 'android', 'blackberry', 'ie', 'opera', 'webos'createPixel(url)
var url = 'http://example.com/pixel-tracker?id=1234567890';
rutil.createPixel(url); // appends image tag to bodytoBool(str)
var string = 'true';
rutil.toBool(string); // trueoptions: 'true', 'yes', 'on', '1'sleep(num)
console.log('start sleep');
rutil.sleep(50000);
console.log('This will show after 5 seconds');More functions
There's a ton more functions that I have not added to this readme yet. You can look at them in the source file or spec test file.
Not documented yet, but can use:
isTruthy
isFalsy
isFunction
functor
preCondition
addEvent
prop
textNode
wrap
append
hasClass
addClass
removeclass
flatten
sum
int
string
compactobject
isEmpty
forOwn
isExisty
isString
isNumber
isBoolean
noop
setAttributes
isValidCoordinate
nth
isIndexed
appendStylesheet
isDateInRange
htmlContents
elementById
remove
createElement
anchor
image
appendScript
pred
comparator
doWhen
result
executeIfHasField
average
reduce
map
filter
size
some
every
identity
complement
toArray
first
rest
last
seperatewords
titleCase
cat
construct
mapcat
butLastExtend _
To extend the _ when using libraries such as underscore or lodash, pass in rutil._() to the underscore mixin function. Rutil functions will not override underscore functions if they already exist, unless you pass rutil._(true)
_.mixin(rutil._()); // extend underscore
_.isValidEmail('foo@bar.com'); // use rutil functionNote that you can also use the _u global object instead of rutil.
Test
Using Jasmine for testing
grunt testBuild
grunt buildLicense
Released under the MIT License.