From f44fe53f633b819c969a3894e9dc9c77ef343434 Mon Sep 17 00:00:00 2001 From: Jude Nagurney Date: Sat, 13 May 2017 20:14:05 -0400 Subject: [PATCH 1/1] New CSV-based example --- examples/csv.html | 105 ++++++++++++++++++++++++++++++++ examples/d3-queue.js | 130 ++++++++++++++++++++++++++++++++++++++++ examples/tech-radar.csv | 17 ++++++ 3 files changed, 252 insertions(+) create mode 100644 examples/csv.html create mode 100644 examples/d3-queue.js create mode 100644 examples/tech-radar.csv diff --git a/examples/csv.html b/examples/csv.html new file mode 100644 index 0000000..17e8c87 --- /dev/null +++ b/examples/csv.html @@ -0,0 +1,105 @@ + + + + + Tech Radar Example + + + + + + + + +
+
+
+ + + diff --git a/examples/d3-queue.js b/examples/d3-queue.js new file mode 100644 index 0000000..ad12b6d --- /dev/null +++ b/examples/d3-queue.js @@ -0,0 +1,130 @@ +// https://d3js.org/d3-queue/ Version 3.0.5. Copyright 2017 Mike Bostock. +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (factory((global.d3 = global.d3 || {}))); +}(this, (function (exports) { 'use strict'; + +var slice = [].slice; + +var noabort = {}; + +function Queue(size) { + if (!(size >= 1)) throw new Error; + this._size = size; + this._call = + this._error = null; + this._tasks = []; + this._data = []; + this._waiting = + this._active = + this._ended = + this._start = 0; // inside a synchronous task callback? +} + +Queue.prototype = queue.prototype = { + constructor: Queue, + defer: function(callback) { + if (typeof callback !== "function" || this._call) throw new Error; + if (this._error != null) return this; + var t = slice.call(arguments, 1); + t.push(callback); + ++this._waiting, this._tasks.push(t); + poke(this); + return this; + }, + abort: function() { + if (this._error == null) abort(this, new Error("abort")); + return this; + }, + await: function(callback) { + if (typeof callback !== "function" || this._call) throw new Error; + this._call = function(error, results) { callback.apply(null, [error].concat(results)); }; + maybeNotify(this); + return this; + }, + awaitAll: function(callback) { + if (typeof callback !== "function" || this._call) throw new Error; + this._call = callback; + maybeNotify(this); + return this; + } +}; + +function poke(q) { + if (!q._start) { + try { start(q); } // let the current task complete + catch (e) { + if (q._tasks[q._ended + q._active - 1]) abort(q, e); // task errored synchronously + else if (!q._data) throw e; // await callback errored synchronously + } + } +} + +function start(q) { + while (q._start = q._waiting && q._active < q._size) { + var i = q._ended + q._active, + t = q._tasks[i], + j = t.length - 1, + c = t[j]; + t[j] = end(q, i); + --q._waiting, ++q._active; + t = c.apply(null, t); + if (!q._tasks[i]) continue; // task finished synchronously + q._tasks[i] = t || noabort; + } +} + +function end(q, i) { + return function(e, r) { + if (!q._tasks[i]) return; // ignore multiple callbacks + --q._active, ++q._ended; + q._tasks[i] = null; + if (q._error != null) return; // ignore secondary errors + if (e != null) { + abort(q, e); + } else { + q._data[i] = r; + if (q._waiting) poke(q); + else maybeNotify(q); + } + }; +} + +function abort(q, e) { + var i = q._tasks.length, t; + q._error = e; // ignore active callbacks + q._data = undefined; // allow gc + q._waiting = NaN; // prevent starting + + while (--i >= 0) { + if (t = q._tasks[i]) { + q._tasks[i] = null; + if (t.abort) { + try { t.abort(); } + catch (e) { /* ignore */ } + } + } + } + + q._active = NaN; // allow notification + maybeNotify(q); +} + +function maybeNotify(q) { + if (!q._active && q._call) { + var d = q._data; + q._data = undefined; // allow gc + q._call(q._error, d); + } +} + +function queue(concurrency) { + return new Queue(arguments.length ? +concurrency : Infinity); +} + +exports.queue = queue; + +Object.defineProperty(exports, '__esModule', { value: true }); + +}))); diff --git a/examples/tech-radar.csv b/examples/tech-radar.csv new file mode 100644 index 0000000..86d7993 --- /dev/null +++ b/examples/tech-radar.csv @@ -0,0 +1,17 @@ +quadrant,cycle,is_new,name,description +tool,adapt,false,D3,Charting Library, +tool,adapt,false,Dependenct Management for Javascript, pwan +tool,trial,false,Ansible,Bah, +tool,trial,false,Calabash,??? +tool,assess,false,Xamarin,??? +tool,hold,true,TFS,??? +technique,trial,false,Microservices, +technique,adapt,false,Continuous delivery, +technique,assess,false,Development environments in the cloud, +platform,adapt,false,Elastic Search, +platform,assess,false,PhoneGap, +platform,hold,false,Big enterprise solutions, +language,adapt,false,Clojure, +language,trial,false,CoffeeScript, +language,assess,false,Elixir, +language,hold,true,JSF, -- 2.39.5