doc
Version:
Runtime documentation tool for REPL
89 lines (70 loc) • 2.25 kB
Markdown
Runtime documentation tool for REPL.
Have you ever wished you could see docs for the given function right out of
the REPL? If so, this tool is for you!
```js
var doc = require('doc').doc
doc(doc) // Prints following output:
/*
function doc(source) { ... }
-----------------------------------------------
Prints documentanion of the given function
*/
// You can also document your own functions:
function compose() {
doc: "Returns the composition of a list of functions, where each function"
| "consumes the return value of the function that follows. In math"
| "terms, composing the functions `f()`, `g()`, and `h()` produces"
| "`f(g(h()))`."
| "Usage:"
| "var greet = function(name) { return 'hi: ' + name }"
| "var exclaim = function(statement) { return statement + '!' }"
| "var welcome = compose(exclaim, greet)"
| "welcome('moe')"
| "//> 'hi: moe!'"
var funcs = Array.prototype.slice.call(arguments)
return function composed() {
var args = slice.call(arguments)
var i = funcs.length
while (0 <= --i) args = [ funcs[i].apply(this, args) ]
return args[0]
}
}
doc(compose) // Prints following output:
/*
function compose() { ... }
-----------------------------------------------
Returns the composition of a list of functions, where each function
consumes the return value of the function that follows. In math
terms, composing the functions `f()`, `g()`, and `h()` produces
`f(g(h()))`.
Usage:
var greet = function(name) { return 'hi: ' + name }
var exclaim = function(statement) { return statement + '!' }
var welcome = compose(exclaim, greet)
welcome('moe')
//> 'hi: moe!'
*/
// Alternative way to documenting functions (Not cross platform though):
function sum(a, b) {
/**
Takes arbitary number of arguments and returns their sum.
Usage:
sum(7, 2, 8) //> 17
**/
var count = arguments.length, index = 0, value = 0
while (index < count) value += arguments[index++]
return value
}
doc(sum) // Prints following output:
/*
function sum(a, b) { ... }
-----------------------------------------------
Takes arbitary number of arguments and returns their sum.
Usage:
sum(7, 2, 8) //> 17
*/
```
npm install doc