vendor/assets/javascripts/jqplot-plugins/jqplot.ciParser.js in outfielding-jqplot-rails-1.0.8 vs vendor/assets/javascripts/jqplot-plugins/jqplot.ciParser.js in outfielding-jqplot-rails-1.0.9

- old
+ new

@@ -1,116 +1,116 @@ -/** - * jqPlot - * Pure JavaScript plotting plugin using jQuery - * - * Version: 1.0.8 - * Revision: 1250 - * - * Copyright (c) 2009-2013 Chris Leonello - * jqPlot is currently available for use in all personal or commercial projects - * under both the MIT (http://www.opensource.org/licenses/mit-license.php) and GPL - * version 2.0 (http://www.gnu.org/licenses/gpl-2.0.html) licenses. This means that you can - * choose the license that best suits your project and use it accordingly. - * - * Although not required, the author would appreciate an email letting him - * know of any substantial use of jqPlot. You can reach the author at: - * chris at jqplot dot com or see http://www.jqplot.com/info.php . - * - * If you are feeling kind and generous, consider supporting the project by - * making a donation at: http://www.jqplot.com/donate.php . - * - * sprintf functions contained in jqplot.sprintf.js by Ash Searle: - * - * version 2007.04.27 - * author Ash Searle - * http://hexmen.com/blog/2007/03/printf-sprintf/ - * http://hexmen.com/js/sprintf.js - * The author (Ash Searle) has placed this code in the public domain: - * "This code is unrestricted: you are free to use it however you like." - * - */ -(function($) { - /** - * Class: $.jqplot.ciParser - * Data Renderer function which converts a custom JSON data object into jqPlot data format. - * Set this as a callable on the jqplot dataRenderer plot option: - * - * > plot = $.jqplot('mychart', [data], { dataRenderer: $.jqplot.ciParser, ... }); - * - * Where data is an object in JSON format or a JSON encoded string conforming to the - * City Index API spec. - * - * Note that calling the renderer function is handled internally by jqPlot. The - * user does not have to call the function. The parameters described below will - * automatically be passed to the ciParser function. - * - * Parameters: - * data - JSON encoded string or object. - * plot - reference to jqPlot Plot object. - * - * Returns: - * data array in jqPlot format. - * - */ - $.jqplot.ciParser = function (data, plot) { - var ret = [], - line, - temp, - i, j, k, kk; - - if (typeof(data) == "string") { - data = $.jqplot.JSON.parse(data, handleStrings); - } - - else if (typeof(data) == "object") { - for (k in data) { - for (i=0; i<data[k].length; i++) { - for (kk in data[k][i]) { - data[k][i][kk] = handleStrings(kk, data[k][i][kk]); - } - } - } - } - - else { - return null; - } - - // function handleStrings - // Checks any JSON encoded strings to see if they are - // encoded dates. If so, pull out the timestamp. - // Expects dates to be represented by js timestamps. - - function handleStrings(key, value) { - var a; - if (value != null) { - if (value.toString().indexOf('Date') >= 0) { - //here we will try to extract the ticks from the Date string in the "value" fields of JSON returned data - a = /^\/Date\((-?[0-9]+)\)\/$/.exec(value); - if (a) { - return parseInt(a[1], 10); - } - } - return value; - } - } - - for (var prop in data) { - line = []; - temp = data[prop]; - switch (prop) { - case "PriceTicks": - for (i=0; i<temp.length; i++) { - line.push([temp[i]['TickDate'], temp[i]['Price']]); - } - break; - case "PriceBars": - for (i=0; i<temp.length; i++) { - line.push([temp[i]['BarDate'], temp[i]['Open'], temp[i]['High'], temp[i]['Low'], temp[i]['Close']]); - } - break; - } - ret.push(line); - } - return ret; - }; +/** + * jqPlot + * Pure JavaScript plotting plugin using jQuery + * + * Version: 1.0.9 + * Revision: d96a669 + * + * Copyright (c) 2009-2016 Chris Leonello + * jqPlot is currently available for use in all personal or commercial projects + * under both the MIT (http://www.opensource.org/licenses/mit-license.php) and GPL + * version 2.0 (http://www.gnu.org/licenses/gpl-2.0.html) licenses. This means that you can + * choose the license that best suits your project and use it accordingly. + * + * Although not required, the author would appreciate an email letting him + * know of any substantial use of jqPlot. You can reach the author at: + * chris at jqplot dot com or see http://www.jqplot.com/info.php . + * + * If you are feeling kind and generous, consider supporting the project by + * making a donation at: http://www.jqplot.com/donate.php . + * + * sprintf functions contained in jqplot.sprintf.js by Ash Searle: + * + * version 2007.04.27 + * author Ash Searle + * http://hexmen.com/blog/2007/03/printf-sprintf/ + * http://hexmen.com/js/sprintf.js + * The author (Ash Searle) has placed this code in the public domain: + * "This code is unrestricted: you are free to use it however you like." + * + */ +(function($) { + /** + * Class: $.jqplot.ciParser + * Data Renderer function which converts a custom JSON data object into jqPlot data format. + * Set this as a callable on the jqplot dataRenderer plot option: + * + * > plot = $.jqplot('mychart', [data], { dataRenderer: $.jqplot.ciParser, ... }); + * + * Where data is an object in JSON format or a JSON encoded string conforming to the + * City Index API spec. + * + * Note that calling the renderer function is handled internally by jqPlot. The + * user does not have to call the function. The parameters described below will + * automatically be passed to the ciParser function. + * + * Parameters: + * data - JSON encoded string or object. + * plot - reference to jqPlot Plot object. + * + * Returns: + * data array in jqPlot format. + * + */ + $.jqplot.ciParser = function (data, plot) { + var ret = [], + line, + temp, + i, j, k, kk; + + if (typeof(data) == "string") { + data = $.jqplot.JSON.parse(data, handleStrings); + } + + else if (typeof(data) == "object") { + for (k in data) { + for (i=0; i<data[k].length; i++) { + for (kk in data[k][i]) { + data[k][i][kk] = handleStrings(kk, data[k][i][kk]); + } + } + } + } + + else { + return null; + } + + // function handleStrings + // Checks any JSON encoded strings to see if they are + // encoded dates. If so, pull out the timestamp. + // Expects dates to be represented by js timestamps. + + function handleStrings(key, value) { + var a; + if (value != null) { + if (value.toString().indexOf('Date') >= 0) { + //here we will try to extract the ticks from the Date string in the "value" fields of JSON returned data + a = /^\/Date\((-?[0-9]+)\)\/$/.exec(value); + if (a) { + return parseInt(a[1], 10); + } + } + return value; + } + } + + for (var prop in data) { + line = []; + temp = data[prop]; + switch (prop) { + case "PriceTicks": + for (i=0; i<temp.length; i++) { + line.push([temp[i]['TickDate'], temp[i]['Price']]); + } + break; + case "PriceBars": + for (i=0; i<temp.length; i++) { + line.push([temp[i]['BarDate'], temp[i]['Open'], temp[i]['High'], temp[i]['Low'], temp[i]['Close']]); + } + break; + } + ret.push(line); + } + return ret; + }; })(jQuery); \ No newline at end of file