MINI Sh3ll
/*
---
name: "Class.Options"
description: ""
license:
- "[GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)"
- "[MIT License](http://opensource.org/licenses/mit-license.php)"
requires:
- Core
- Class
inspiration:
- "[MooTools](http://mootools.net)"
provides: Class.Options
...
*/
atom.Class.Options = atom.Class({
options: {},
fastSetOptions: false,
setOptions: function(){
if (!this.options) {
this.options = {};
} else if (this.options == this.self.prototype.options) {
// it shouldn't be link to static options
if (this.fastSetOptions) {
this.options = coreAppend({}, this.options);
} else {
this.options = atom.clone(this.options);
}
}
var options = this.options;
for (var a = arguments, i = 0, l = a.length; i < l; i++) {
if (typeof a[i] == 'object') {
if (this.fastSetOptions) {
coreAppend(options, a[i]);
} else {
atom.extend(options, a[i]);
}
}
}
if (this.addEvent) for (var option in options){
if (atom.typeOf(options[option]) == 'function' && (/^on[A-Z]/).test(option)) {
this.addEvent(option, options[option]);
delete options[option];
}
}
return this;
}
});
OHA YOOOO