From 4faaf1b685ccb9823f9ec9d429ceb76909a8fed0 Mon Sep 17 00:00:00 2001 From: Tim Mickel Date: Thu, 11 Aug 2016 11:11:27 -0400 Subject: [PATCH] Rename `stacks` to `scripts` Further pushing toward removing ambiguity of what "stack" means in the codebase. --- src/engine/blocks.js | 66 +++++++++++++++++++++---------------------- src/engine/runtime.js | 28 +++++++++--------- test/unit/blocks.js | 42 +++++++++++++-------------- 3 files changed, 68 insertions(+), 68 deletions(-) diff --git a/src/engine/blocks.js b/src/engine/blocks.js index da098df20..b4fab3809 100644 --- a/src/engine/blocks.js +++ b/src/engine/blocks.js @@ -15,11 +15,11 @@ function Blocks () { this._blocks = {}; /** - * All stacks in the workspace. - * A list of block IDs that represent stacks (first block in stack). + * All top-level scripts in the workspace. + * A list of block IDs that represent scripts (i.e., first block in script). * @type {Array.} */ - this._stacks = []; + this._scripts = []; } /** @@ -39,11 +39,11 @@ Blocks.prototype.getBlock = function (blockId) { }; /** - * Get all known top-level blocks that start stacks. + * Get all known top-level blocks that start scripts. * @return {Array.} List of block IDs. */ -Blocks.prototype.getStacks = function () { - return this._stacks; +Blocks.prototype.getScripts = function () { + return this._scripts; }; /** @@ -136,10 +136,10 @@ Blocks.prototype.generateBlockListener = function (isFlyout, opt_runtime) { if (typeof e !== 'object') return; if (typeof e.blockId !== 'string') return; - // UI event: clicked stacks toggle in the runtime. + // UI event: clicked scripts toggle in the runtime. if (e.element === 'stackclick') { if (opt_runtime) { - opt_runtime.toggleStack(e.blockId); + opt_runtime.toggleScript(e.blockId); } return; } @@ -182,7 +182,7 @@ Blocks.prototype.generateBlockListener = function (isFlyout, opt_runtime) { // --------------------------------------------------------------------- /** - * Block management: create blocks and stacks from a `create` event + * Block management: create blocks and scripts from a `create` event * @param {!Object} block Blockly create event to be processed * @param {boolean} opt_isFlyoutBlock Whether the block is in the flyout. */ @@ -190,12 +190,12 @@ Blocks.prototype.createBlock = function (block, opt_isFlyoutBlock) { // Create new block this._blocks[block.id] = block; - // Push block id to stacks array. + // Push block id to scripts array. // Blocks are added as a top-level stack if they are marked as a top-block // (if they were top-level XML in the event) and if they are not // flyout blocks. if (!opt_isFlyoutBlock && block.topLevel) { - this._addStack(block.id); + this._addScript(block.id); } }; @@ -233,10 +233,10 @@ Blocks.prototype.moveBlock = function (e) { // Has the block become a top-level block? if (e.newParent === undefined) { - this._addStack(e.id); + this._addScript(e.id); } else { - // Remove stack, if one exists. - this._deleteStack(e.id); + // Remove script, if one exists. + this._deleteScript(e.id); // Otherwise, try to connect it in its new place. if (e.newInput !== undefined) { // Moved to the new parent's input. @@ -252,11 +252,11 @@ Blocks.prototype.moveBlock = function (e) { }; /** - * Block management: delete blocks and their associated stacks - * @param {!Object} e Blockly delete event to be processed + * Block management: delete blocks and their associated scripts. + * @param {!Object} e Blockly delete event to be processed. */ Blocks.prototype.deleteBlock = function (e) { - // @todo In runtime, stop threads running on this stack + // @todo In runtime, stop threads running on this script. // Get block var block = this._blocks[e.id]; @@ -274,36 +274,36 @@ Blocks.prototype.deleteBlock = function (e) { } } - // Delete stack - this._deleteStack(e.id); + // Delete any script starting with this block. + this._deleteScript(e.id); - // Delete block + // Delete block itself. delete this._blocks[e.id]; }; // --------------------------------------------------------------------- /** - * Helper to add a stack to `this._stacks` - * @param {?string} id ID of block that starts the stack + * Helper to add a stack to `this._scripts`. + * @param {?string} topBlockId ID of block that starts the script. */ -Blocks.prototype._addStack = function (id) { - var i = this._stacks.indexOf(id); - if (i > -1) return; // Already in stacks. - this._stacks.push(id); +Blocks.prototype._addScript = function (topBlockId) { + var i = this._scripts.indexOf(topBlockId); + if (i > -1) return; // Already in scripts. + this._scripts.push(topBlockId); // Update `topLevel` property on the top block. - this._blocks[id].topLevel = true; + this._blocks[topBlockId].topLevel = true; }; /** - * Helper to remove a stack from `this._stacks` - * @param {?string} id ID of block that starts the stack + * Helper to remove a script from `this._scripts`. + * @param {?string} topBlockId ID of block that starts the script. */ -Blocks.prototype._deleteStack = function (id) { - var i = this._stacks.indexOf(id); - if (i > -1) this._stacks.splice(i, 1); +Blocks.prototype._deleteScript = function (topBlockId) { + var i = this._scripts.indexOf(topBlockId); + if (i > -1) this._scripts.splice(i, 1); // Update `topLevel` property on the top block. - if (this._blocks[id]) this._blocks[id].topLevel = false; + if (this._blocks[topBlockId]) this._blocks[topBlockId].topLevel = false; }; module.exports = Blocks; diff --git a/src/engine/runtime.js b/src/engine/runtime.js index f92a91db7..c32a72115 100644 --- a/src/engine/runtime.js +++ b/src/engine/runtime.js @@ -12,7 +12,7 @@ var defaultBlockPackages = { }; /** - * Manages targets, stacks, and the sequencer. + * Manages targets, scripts, and the sequencer. * @param {!Array.} targets List of targets for this runtime. */ function Runtime (targets) { @@ -146,39 +146,39 @@ Runtime.prototype._removeThread = function (thread) { }; /** - * Toggle a stack - * @param {!string} stackId ID of block that starts the stack + * Toggle a script. + * @param {!string} topBlockId ID of block that starts the script. */ -Runtime.prototype.toggleStack = function (stackId) { - // Remove any existing thread +Runtime.prototype.toggleScript = function (topBlockId) { + // Remove any existing thread. for (var i = 0; i < this.threads.length; i++) { - if (this.threads[i].topBlock == stackId) { + if (this.threads[i].topBlock == topBlockId) { this._removeThread(this.threads[i]); return; } } - // Otherwise add it - this._pushThread(stackId); + // Otherwise add it. + this._pushThread(topBlockId); }; /** * Green flag, which stops currently running threads - * and adds all top-level stacks that start with the green flag + * and adds all top-level scripts that start with the green flag */ Runtime.prototype.greenFlag = function () { // Remove all existing threads for (var i = 0; i < this.threads.length; i++) { this._removeThread(this.threads[i]); } - // Add all top stacks with green flag + // Add all top scripts with green flag for (var t = 0; t < this.targets.length; t++) { var target = this.targets[t]; - var stacks = target.blocks.getStacks(); - for (var j = 0; j < stacks.length; j++) { - var topBlock = stacks[j]; + var scripts = target.blocks.getScripts(); + for (var j = 0; j < scripts.length; j++) { + var topBlock = scripts[j]; if (target.blocks.getBlock(topBlock).opcode === 'event_whenflagclicked') { - this._pushThread(stacks[j]); + this._pushThread(scripts[j]); } } } diff --git a/test/unit/blocks.js b/test/unit/blocks.js index 244c0e03c..bd2348c03 100644 --- a/test/unit/blocks.js +++ b/test/unit/blocks.js @@ -9,15 +9,15 @@ test('spec', function (t) { t.ok(b instanceof Blocks); t.type(b._blocks, 'object'); - t.type(b._stacks, 'object'); - t.ok(Array.isArray(b._stacks)); + t.type(b._scripts, 'object'); + t.ok(Array.isArray(b._scripts)); t.type(b.createBlock, 'function'); t.type(b.moveBlock, 'function'); t.type(b.changeBlock, 'function'); t.type(b.deleteBlock, 'function'); t.type(b.getBlock, 'function'); - t.type(b.getStacks, 'function'); + t.type(b.getScripts, 'function'); t.type(b.getNextBlock, 'function'); t.type(b.getBranch, 'function'); t.type(b.getOpcode, 'function'); @@ -44,11 +44,11 @@ test('getBlock', function (t) { t.end(); }); -test('getStacks', function (t) { +test('getScripts', function (t) { var b = new Blocks(); - var stacks = b.getStacks(); - t.type(stacks, 'object'); - t.equals(stacks.length, 0); + var scripts = b.getScripts(); + t.type(scripts, 'object'); + t.equals(scripts.length, 0); // Create two top-level blocks and one not. b.createBlock({ id: 'foo', @@ -75,12 +75,12 @@ test('getStacks', function (t) { topLevel: false }); - stacks = b.getStacks(); - t.type(stacks, 'object'); - t.equals(stacks.length, 2); - t.ok(stacks.indexOf('foo') > -1); - t.ok(stacks.indexOf('foo2') > -1); - t.equals(stacks.indexOf('foo3'), -1); + scripts = b.getScripts(); + t.type(scripts, 'object'); + t.equals(scripts.length, 2); + t.ok(scripts.indexOf('foo') > -1); + t.ok(scripts.indexOf('foo2') > -1); + t.equals(scripts.indexOf('foo3'), -1); t.end(); }); @@ -244,7 +244,7 @@ test('create', function (t) { t.type(b._blocks['foo'], 'object'); t.equal(b._blocks['foo'].opcode, 'TEST_BLOCK'); - t.notEqual(b._stacks.indexOf('foo'), -1); + t.notEqual(b._scripts.indexOf('foo'), -1); t.end(); }); @@ -272,7 +272,7 @@ test('move', function (t) { id: 'bar', newParent: 'foo' }); - t.equal(b._stacks.length, 1); + t.equal(b._scripts.length, 1); t.equal(Object.keys(b._blocks).length, 2); t.equal(b._blocks['foo'].next, 'bar'); @@ -281,7 +281,7 @@ test('move', function (t) { id: 'bar', oldParent: 'foo' }); - t.equal(b._stacks.length, 2); + t.equal(b._scripts.length, 2); t.equal(Object.keys(b._blocks).length, 2); t.equal(b._blocks['foo'].next, null); @@ -360,7 +360,7 @@ test('delete', function (t) { }); t.type(b._blocks['foo'], 'undefined'); - t.equal(b._stacks.indexOf('foo'), -1); + t.equal(b._scripts.indexOf('foo'), -1); t.end(); }); @@ -398,9 +398,9 @@ test('delete chain', function (t) { t.type(b._blocks['foo'], 'undefined'); t.type(b._blocks['foo2'], 'undefined'); t.type(b._blocks['foo3'], 'undefined'); - t.equal(b._stacks.indexOf('foo'), -1); + t.equal(b._scripts.indexOf('foo'), -1); t.equal(Object.keys(b._blocks).length, 0); - t.equal(b._stacks.length, 0); + t.equal(b._scripts.length, 0); t.end(); }); @@ -461,8 +461,8 @@ test('delete inputs', function (t) { t.type(b._blocks['foo2'], 'undefined'); t.type(b._blocks['foo3'], 'undefined'); t.type(b._blocks['foo4'], 'undefined'); - t.equal(b._stacks.indexOf('foo'), -1); + t.equal(b._scripts.indexOf('foo'), -1); t.equal(Object.keys(b._blocks).length, 0); - t.equal(b._stacks.length, 0); + t.equal(b._scripts.length, 0); t.end(); });