Built motion from commit 99feb03.|0.0.140
[motion.git] / public / bower_components / lodash / lib / fp / build-doc.js
1 'use strict';
2
3 var _ = require('lodash'),
4     fs = require('fs-extra'),
5     path = require('path'),
6     util = require('../common/util');
7
8 var mapping = require('../../fp/_mapping'),
9     templatePath = path.join(__dirname, 'template/doc'),
10     template = util.globTemplate(path.join(templatePath, '*.jst'));
11
12 var argNames = ['a', 'b', 'c', 'd'];
13
14 var templateData = {
15   'mapping': mapping,
16   'toArgOrder': toArgOrder,
17   'toFuncList': toFuncList
18 };
19
20 function toArgOrder(array) {
21   return '`(' + _.map(array, function(value) {
22     return argNames[value];
23   }).join(', ') + ')`';
24 }
25
26 function toFuncList(array) {
27   var chunks = _.chunk(array.slice().sort(), 5),
28       lastChunk = _.last(chunks),
29       last = lastChunk ? lastChunk.pop() : undefined;
30
31   chunks = _.reject(chunks, _.isEmpty);
32   lastChunk = _.last(chunks);
33
34   var result = '`' + _.map(chunks, function(chunk) {
35     return chunk.join('`, `') + '`';
36   }).join(',\n`');
37
38   if (last == null) {
39     return result;
40   }
41   if (_.size(chunks) > 1 || _.size(lastChunk) > 1) {
42     result += ',';
43   }
44   result += ' &';
45   result += _.size(lastChunk) < 5 ? ' ' : '\n';
46   return result + '`' + last + '`';
47 }
48
49 /*----------------------------------------------------------------------------*/
50
51 function onComplete(error) {
52   if (error) {
53     throw error;
54   }
55 }
56
57 function build(target) {
58   target = path.resolve(target);
59   fs.writeFile(target, template.wiki(templateData), onComplete);
60 }
61
62 build(_.last(process.argv));