Initial OpenECOMP Portal commit
[portal.git] / ecomp-portal-FE / client / bower_components / lodash / lib / fp / build-doc.js
diff --git a/ecomp-portal-FE/client/bower_components/lodash/lib/fp/build-doc.js b/ecomp-portal-FE/client/bower_components/lodash/lib/fp/build-doc.js
new file mode 100644 (file)
index 0000000..02800bc
--- /dev/null
@@ -0,0 +1,65 @@
+'use strict';
+
+var _ = require('lodash'),
+    fs = require('fs-extra'),
+    path = require('path');
+
+var file = require('../common/file'),
+    mapping = require('../common/mapping');
+
+var templatePath = path.join(__dirname, 'template/doc'),
+    template = file.globTemplate(path.join(templatePath, '*.jst'));
+
+var argNames = ['a', 'b', 'c', 'd'];
+
+var templateData = {
+  'mapping': mapping,
+  'toArgOrder': toArgOrder,
+  'toFuncList': toFuncList
+};
+
+function toArgOrder(array) {
+  var reordered = [];
+  _.each(array, function(newIndex, index) {
+    reordered[newIndex] = argNames[index];
+  });
+  return '`(' + reordered.join(', ') + ')`';
+}
+
+function toFuncList(array) {
+  var chunks = _.chunk(array.slice().sort(), 5),
+      lastChunk = _.last(chunks),
+      last = lastChunk ? lastChunk.pop() : undefined;
+
+  chunks = _.reject(chunks, _.isEmpty);
+  lastChunk = _.last(chunks);
+
+  var result = '`' + _.map(chunks, function(chunk) {
+    return chunk.join('`, `') + '`';
+  }).join(',\n`');
+
+  if (last == null) {
+    return result;
+  }
+  if (_.size(chunks) > 1 || _.size(lastChunk) > 1) {
+    result += ',';
+  }
+  result += ' &';
+  result += _.size(lastChunk) < 5 ? ' ' : '\n';
+  return result + '`' + last + '`';
+}
+
+/*----------------------------------------------------------------------------*/
+
+function onComplete(error) {
+  if (error) {
+    throw error;
+  }
+}
+
+function build(target) {
+  target = path.resolve(target);
+  fs.writeFile(target, template.wiki(templateData), onComplete);
+}
+
+build(_.last(process.argv));