Nothing to see here yet, please move along...
//@ Section Name
My = {};
//@ My.foo <number> One-line summary, with *some* `markdown`
My.foo = 23;
/*@
My.bar <object> Summary
Optional multi-line description, with *some* `markdown`.
property <object> A property of My.bar
Description
foo <number> A number
bar <[string]> An array of strings
method <function> A method of My.bar
(foo[, bar], callback) -> <undefined> Return value
foo <number|string> Argument, number or string
bar <boolean|false> Optional argument, default is `false`
callback <function> Callback function
arg <boolean> Argument
baz <event> An event triggered by My.bar
x <number> Event property
y <number> Event property
# This is a comment. Below are inline tests (the first one will fail, the
# last one is asynchronous).
> My.bar.property.foo > 1
true
> My.bar.property.bar.join('')
'string'
> My.bar.method(1, function(arg) { Ox.test(arg, true); })
undefined
*/
My.bar = {
property: {
foo: Math.random(),
bar: 'string'.split('')
},
method: function(foo, bar, callback) {
if (arguments.length == 2) {
callback = bar;
bar = false;
}
if (bar) {
// trigger baz event
}
setTimeout(function() {
callback(!!foo);
});
}
};