1
0
Fork 0
forked from 0x2620/oxjs

misc updates to ox.js

This commit is contained in:
rolux 2012-01-04 13:12:48 +05:30
commit 2ef642fdeb
11 changed files with 136 additions and 93 deletions

View file

@ -5,7 +5,6 @@ Ox.extend <function> Extends an object with one or more other objects
> Ox.extend({a: 1, b: 1, c: 1}, {b: 2, c: 2}, {c: 3})
{a: 1, b: 2, c: 3}
@*/
Ox.extend = function() {
var obj = arguments[0];
Ox.forEach(Array.prototype.slice.call(arguments, 1), function(arg, i) {
@ -17,9 +16,10 @@ Ox.extend = function() {
};
/*@
Ox.keyOf <f> undocumented
Ox.keyOf <f> Equivalent of [].indexOf for objects
> Ox.keyOf({a: 1, b: 2, c: 3}, 1)
'a'
@*/
Ox.keyOf = function(obj, val) {
var key;
Ox.forEach(obj, function(v, k) {
@ -40,7 +40,6 @@ Ox.serialize <f> Parses an object into query parameters
> Ox.serialize({string: 'foo', empty: {}, null: null, undefined: void 0})
'string=foo'
@*/
Ox.serialize = function(obj) {
var arr = [];
Ox.forEach(obj, function(val, key) {
@ -57,18 +56,21 @@ Ox.unserialize <f> Parses query parameters into an object
{a: '1', b: '2', c: '3'}
> Ox.unserialize('a=-1&b=2.3&c=4,5', true)
{a: -1, b: 2.3, c: [4, 5]}
> Ox.unserialize('a=1&b=&c&a=0', true)
{a: 0}
@*/
Ox.unserialize = function(str, toNumber) {
var obj = {};
Ox.forEach(str.split('&'), function(val) {
if (val) {
var arr = val.split('=');
obj[arr[0]] = !toNumber ? arr[1]
: arr[1].indexOf(',') == -1 ? +arr[1]
: arr[1].split(',').map(function(val) {
return +val;
});
if (arr[1]) {
obj[arr[0]] = !toNumber ? arr[1]
: arr[1].indexOf(',') == -1 ? +arr[1]
: arr[1].split(',').map(function(val) {
return +val;
});
}
}
});
return obj;