kopia lustrzana https://github.com/backface/turtlestitch
added (Bernat's) JSON parser to SPLIT block
rodzic
05a8c5bdfc
commit
56c5971aae
|
@ -6,6 +6,7 @@
|
||||||
* Store: tweaked format for serializing atomic data lists
|
* Store: tweaked format for serializing atomic data lists
|
||||||
* Morphic: added option to include alpha in color comparison
|
* Morphic: added option to include alpha in color comparison
|
||||||
* Objects: fixed "set pen color (color picker)" to observe, i.e. overwrite transparency
|
* Objects: fixed "set pen color (color picker)" to observe, i.e. overwrite transparency
|
||||||
|
* Lists, Threads, Objects: added (Bernat's) JSON parser to SPLIT block
|
||||||
|
|
||||||
### 2019-01-08
|
### 2019-01-08
|
||||||
* Objects: automatically parse csv files on import, experimental "raw data" and "parse" ops
|
* Objects: automatically parse csv files on import, experimental "raw data" and "parse" ops
|
||||||
|
|
|
@ -6,12 +6,12 @@
|
||||||
<link rel="shortcut icon" href="src/favicon.ico">
|
<link rel="shortcut icon" href="src/favicon.ico">
|
||||||
<script type="text/javascript" src="src/morphic.js?version=2019-01-09"></script>
|
<script type="text/javascript" src="src/morphic.js?version=2019-01-09"></script>
|
||||||
<script type="text/javascript" src="src/widgets.js?version=2018-10-02"></script>
|
<script type="text/javascript" src="src/widgets.js?version=2018-10-02"></script>
|
||||||
<script type="text/javascript" src="src/blocks.js?version=2019-01-04"></script>
|
<script type="text/javascript" src="src/blocks.js?version=2019-01-09"></script>
|
||||||
<script type="text/javascript" src="src/threads.js?version=2019-01-08"></script>
|
<script type="text/javascript" src="src/threads.js?version=2019-01-09"></script>
|
||||||
<script type="text/javascript" src="src/objects.js?version=2019-01-09"></script>
|
<script type="text/javascript" src="src/objects.js?version=2019-01-09"></script>
|
||||||
<script type="text/javascript" src="src/gui.js?version=2019-01-02"></script>
|
<script type="text/javascript" src="src/gui.js?version=2019-01-02"></script>
|
||||||
<script type="text/javascript" src="src/paint.js?version=2018-10-02"></script>
|
<script type="text/javascript" src="src/paint.js?version=2018-10-02"></script>
|
||||||
<script type="text/javascript" src="src/lists.js?version=2019-01-08"></script>
|
<script type="text/javascript" src="src/lists.js?version=2019-01-09"></script>
|
||||||
<script type="text/javascript" src="src/byob.js?version=2018-11-12"></script>
|
<script type="text/javascript" src="src/byob.js?version=2018-11-12"></script>
|
||||||
<script type="text/javascript" src="src/tables.js?version=2018-10-02"></script>
|
<script type="text/javascript" src="src/tables.js?version=2018-10-02"></script>
|
||||||
<script type="text/javascript" src="src/symbols.js?version=2018-10-02"></script>
|
<script type="text/javascript" src="src/symbols.js?version=2018-10-02"></script>
|
||||||
|
|
|
@ -148,7 +148,7 @@ CustomCommandBlockMorph, SymbolMorph, ToggleButtonMorph, DialMorph*/
|
||||||
|
|
||||||
// Global stuff ////////////////////////////////////////////////////////
|
// Global stuff ////////////////////////////////////////////////////////
|
||||||
|
|
||||||
modules.blocks = '2019-January-08';
|
modules.blocks = '2019-January-09';
|
||||||
|
|
||||||
var SyntaxElementMorph;
|
var SyntaxElementMorph;
|
||||||
var BlockMorph;
|
var BlockMorph;
|
||||||
|
@ -1046,7 +1046,8 @@ SyntaxElementMorph.prototype.labelPart = function (spec) {
|
||||||
'line' : ['line'],
|
'line' : ['line'],
|
||||||
'tab' : ['tab'],
|
'tab' : ['tab'],
|
||||||
'cr' : ['cr'],
|
'cr' : ['cr'],
|
||||||
'csv' : ['csv']
|
'csv' : ['csv'],
|
||||||
|
'json' : ['json']
|
||||||
/*
|
/*
|
||||||
'csv records' : ['csv records'],
|
'csv records' : ['csv records'],
|
||||||
'csv fields' : ['csv fields']
|
'csv fields' : ['csv fields']
|
||||||
|
|
|
@ -62,7 +62,7 @@ CellMorph, ArrowMorph, MenuMorph, snapEquals, Morph, isNil, localize, isString,
|
||||||
MorphicPreferences, TableDialogMorph, SpriteBubbleMorph, SpeechBubbleMorph,
|
MorphicPreferences, TableDialogMorph, SpriteBubbleMorph, SpeechBubbleMorph,
|
||||||
TableFrameMorph, TableMorph, Variable, isSnapObject*/
|
TableFrameMorph, TableMorph, Variable, isSnapObject*/
|
||||||
|
|
||||||
modules.lists = '2019-January-08';
|
modules.lists = '2019-January-09';
|
||||||
|
|
||||||
var List;
|
var List;
|
||||||
var ListWatcherMorph;
|
var ListWatcherMorph;
|
||||||
|
|
|
@ -62,7 +62,7 @@ StageMorph, SpriteMorph, StagePrompterMorph, Note, modules, isString, copy,
|
||||||
isNil, WatcherMorph, List, ListWatcherMorph, alert, console, TableMorph, Color,
|
isNil, WatcherMorph, List, ListWatcherMorph, alert, console, TableMorph, Color,
|
||||||
TableFrameMorph, ColorSlotMorph, isSnapObject, Map*/
|
TableFrameMorph, ColorSlotMorph, isSnapObject, Map*/
|
||||||
|
|
||||||
modules.threads = '2019-January-08';
|
modules.threads = '2019-January-09';
|
||||||
|
|
||||||
var ThreadManager;
|
var ThreadManager;
|
||||||
var Process;
|
var Process;
|
||||||
|
@ -2780,6 +2780,8 @@ Process.prototype.reportTextSplit = function (string, delimiter) {
|
||||||
break;
|
break;
|
||||||
case 'csv':
|
case 'csv':
|
||||||
return this.parseCSV(string);
|
return this.parseCSV(string);
|
||||||
|
case 'json':
|
||||||
|
return this.parseJSON(string);
|
||||||
/*
|
/*
|
||||||
case 'csv records':
|
case 'csv records':
|
||||||
return this.parseCSVrecords(string);
|
return this.parseCSVrecords(string);
|
||||||
|
@ -2910,6 +2912,32 @@ Process.prototype.parseCSVfields = function (text) {
|
||||||
};
|
};
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
Process.prototype.parseJSON = function (string) {
|
||||||
|
// Bernat's original Snapi contribution
|
||||||
|
function listify(jsonObject) {
|
||||||
|
if (jsonObject instanceof Array) {
|
||||||
|
return new List(
|
||||||
|
jsonObject.map(function(eachElement) {
|
||||||
|
return listify(eachElement);
|
||||||
|
})
|
||||||
|
);
|
||||||
|
} else if (jsonObject instanceof Object) {
|
||||||
|
return new List(
|
||||||
|
Object.keys(jsonObject).map(function(eachKey) {
|
||||||
|
return new List([
|
||||||
|
eachKey,
|
||||||
|
listify(jsonObject[eachKey])
|
||||||
|
]);
|
||||||
|
})
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
return jsonObject;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return listify(JSON.parse(string));
|
||||||
|
};
|
||||||
|
|
||||||
// Process debugging
|
// Process debugging
|
||||||
|
|
||||||
Process.prototype.alert = function (data) {
|
Process.prototype.alert = function (data) {
|
||||||
|
|
Ładowanie…
Reference in New Issue