forked from 0x2620/oxjs
new build system: build in /build, dev version in /dev; split up Ox.js; fix tests
This commit is contained in:
parent
bbef38f0a9
commit
d0fe279a0f
366 changed files with 8165 additions and 161926 deletions
58
source/Ox/js/Object.js
Normal file
58
source/Ox/js/Object.js
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
/*@
|
||||
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) {
|
||||
Ox.forEach(arg, function(val, key) {
|
||||
obj[key] = val;
|
||||
});
|
||||
});
|
||||
return obj;
|
||||
};
|
||||
|
||||
/*@
|
||||
Ox.serialize <f> Parses an object into query parameters
|
||||
> Ox.serialize({a: 1, b: 2, c: 3})
|
||||
'a=1&b=2&c=3'
|
||||
> Ox.serialize({a: -1, b: 2.3, c: [4, 5]})
|
||||
'a=-1&b=2.3&c=4,5'
|
||||
> Ox.serialize({string: 'foo', empty: {}, null: null, undefined: void 0})
|
||||
'string=foo'
|
||||
@*/
|
||||
|
||||
Ox.serialize = function(obj) {
|
||||
var arr = [];
|
||||
Ox.forEach(obj, function(val, key) {
|
||||
if (!Ox.isEmpty(val) && !Ox.isNull(val) && !Ox.isUndefined(val)) {
|
||||
arr.push(key + '=' + val);
|
||||
}
|
||||
});
|
||||
return arr.join('&');
|
||||
};
|
||||
|
||||
/*@
|
||||
Ox.unserialize <f> Parses query parameters into an object
|
||||
> Ox.unserialize('a=1&b=2&c=3')
|
||||
{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 = 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;
|
||||
});
|
||||
}
|
||||
});
|
||||
return obj;
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue