gobstones-blockly 0.22.0 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/htmls/gs-element-blockly.html +105 -3
- data/lib/gobstones/blockly/version.rb +1 -1
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 2df8843605a77958cbbbc8363ab494219698cb9b1a98210fd2f2bf1a0d257811
         | 
| 4 | 
            +
              data.tar.gz: 7dc56f808fc135e8dc0917fea99c4be2a6f8ea80620b4d36a9ddb3753da5b632
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: bf3e0ae742217b6572f3ac7908977b80dccef29b4ec8222d4e8d3897351b766de195074fc8a2b5ff6a426753ab05d5fd9dacf7f4a6ba3de66c1ec85ed963ddd8
         | 
| 7 | 
            +
              data.tar.gz: e313b428e16d901ff92cd09a436598e99caed19cfe1ae5116f06adc88823ad3a8a5b1aa64b804a333546cc89c66067be5a5b337c5ae8237727ff19ed3c9d8bac
         | 
| @@ -63,6 +63,7 @@ Example: | |
| 63 63 | 
             
                      <block type="ColorSelector"></block>
         | 
| 64 64 | 
             
                      <block type="DireccionSelector"></block>
         | 
| 65 65 | 
             
                      <block type="BoolSelector"></block>
         | 
| 66 | 
            +
                      <block type="List"></block>
         | 
| 66 67 | 
             
                    </category>
         | 
| 67 68 | 
             
                    <category name="Expresiones primitivas">
         | 
| 68 69 | 
             
                      <block type="hayBolitas"></block>
         | 
| @@ -4177,7 +4178,7 @@ Blockly.Blocks.InteractiveProgram = { | |
| 4177 4178 | 
             
            	_addInit() {
         | 
| 4178 4179 | 
             
            		this.$init = true;
         | 
| 4179 4180 |  | 
| 4180 | 
            -
                const icon = " | 
| 4181 | 
            +
                const icon = "minus.png";
         | 
| 4181 4182 | 
             
            		var removeButton = new Blockly.FieldImage(
         | 
| 4182 4183 | 
             
            			getLocalMediaUrl(this, icon),
         | 
| 4183 4184 | 
             
            			getLocalMediaSize(icon),
         | 
| @@ -4278,8 +4279,7 @@ createInteractiveBinding = (name, keys) => { | |
| 4278 4279 | 
             
            						options: keys.map(it => [it.name, it.code]),
         | 
| 4279 4280 | 
             
            					}
         | 
| 4280 4281 | 
             
            				],
         | 
| 4281 | 
            -
            				colour: Blockly.CUSTOM_COLORS.InteractiveBinding || Blockly.CUSTOM_COLORS.interactiveBinding | 
| 4282 | 
            -
            				tooltip: "Escoger una entrada",
         | 
| 4282 | 
            +
            				colour: Blockly.CUSTOM_COLORS.InteractiveBinding || Blockly.CUSTOM_COLORS.interactiveBinding
         | 
| 4283 4283 | 
             
            			});
         | 
| 4284 4284 |  | 
| 4285 4285 | 
             
                  this.appendStatementInput('block').setCheck(["Statement"]);
         | 
| @@ -4849,6 +4849,95 @@ Blockly.Blocks.ColorSelector = createLiteralSelectorBlock('Color',['Rojo','Verde | |
| 4849 4849 | 
             
            Blockly.Blocks.DireccionSelector = createLiteralSelectorBlock('Direccion',['Este','Oeste','Norte','Sur']);
         | 
| 4850 4850 | 
             
            Blockly.Blocks.BoolSelector = createLiteralSelectorBlock('Bool',['True','False']);
         | 
| 4851 4851 |  | 
| 4852 | 
            +
            Blockly.Blocks.List = {
         | 
| 4853 | 
            +
              init: function () {
         | 
| 4854 | 
            +
                const type = "List";
         | 
| 4855 | 
            +
             | 
| 4856 | 
            +
                this.jsonInit({
         | 
| 4857 | 
            +
                  type: type,
         | 
| 4858 | 
            +
                  message0: "[",
         | 
| 4859 | 
            +
                  args0: [],
         | 
| 4860 | 
            +
                  output: type,
         | 
| 4861 | 
            +
                  colour: Blockly.CUSTOM_COLORS.list || Blockly.CUSTOM_COLORS.literalExpression,
         | 
| 4862 | 
            +
                  inputsInline: false
         | 
| 4863 | 
            +
                });
         | 
| 4864 | 
            +
             | 
| 4865 | 
            +
                this._addAddButton();
         | 
| 4866 | 
            +
                this.length = 0;
         | 
| 4867 | 
            +
              },
         | 
| 4868 | 
            +
             | 
| 4869 | 
            +
              mutationToDom: function() {
         | 
| 4870 | 
            +
                var container = document.createElement('mutation');
         | 
| 4871 | 
            +
                container.setAttribute('length', this.length);
         | 
| 4872 | 
            +
                return container;
         | 
| 4873 | 
            +
              },
         | 
| 4874 | 
            +
             | 
| 4875 | 
            +
              domToMutation: function(xmlElement) {
         | 
| 4876 | 
            +
                var length = parseInt(xmlElement.getAttribute('length')) || 0;
         | 
| 4877 | 
            +
                for (let i = 0; i < length; i++) this._addElement();
         | 
| 4878 | 
            +
              },
         | 
| 4879 | 
            +
             | 
| 4880 | 
            +
              _addElement: function() {
         | 
| 4881 | 
            +
                this.length++;
         | 
| 4882 | 
            +
                this._removeAddButton();
         | 
| 4883 | 
            +
                const input = this.appendValueInput('element' + this.length);
         | 
| 4884 | 
            +
                this._addRemoveButtonFor(input);
         | 
| 4885 | 
            +
                this._addAddButton();
         | 
| 4886 | 
            +
              },
         | 
| 4887 | 
            +
             | 
| 4888 | 
            +
              _removeElement: function(input) {
         | 
| 4889 | 
            +
                this.removeInput(input.name);
         | 
| 4890 | 
            +
                this.length--;
         | 
| 4891 | 
            +
             | 
| 4892 | 
            +
                let id = 1;
         | 
| 4893 | 
            +
                for (let input of this.inputList) {
         | 
| 4894 | 
            +
                  if (input.name.startsWith("element")) {
         | 
| 4895 | 
            +
                    input.name = "element" + id;
         | 
| 4896 | 
            +
                    id++;
         | 
| 4897 | 
            +
                  }
         | 
| 4898 | 
            +
                }
         | 
| 4899 | 
            +
              },
         | 
| 4900 | 
            +
             | 
| 4901 | 
            +
              _addAddButton: function() {
         | 
| 4902 | 
            +
                const icon = "plus.png";
         | 
| 4903 | 
            +
                var addButton = new Blockly.FieldImage(
         | 
| 4904 | 
            +
                  getLocalMediaUrl(this, icon),
         | 
| 4905 | 
            +
                  getLocalMediaSize(icon),
         | 
| 4906 | 
            +
                  getLocalMediaSize(icon),
         | 
| 4907 | 
            +
                  "Agregar elemento",
         | 
| 4908 | 
            +
                  function() {
         | 
| 4909 | 
            +
                    this._addElement();
         | 
| 4910 | 
            +
                  }.bind(this)
         | 
| 4911 | 
            +
                );
         | 
| 4912 | 
            +
                const input = this.appendDummyInput();
         | 
| 4913 | 
            +
                input.appendField(addButton);
         | 
| 4914 | 
            +
                input.name = "addButton";
         | 
| 4915 | 
            +
             | 
| 4916 | 
            +
                const closingBracket = this.appendDummyInput();
         | 
| 4917 | 
            +
                closingBracket.appendField("]");
         | 
| 4918 | 
            +
                closingBracket.name = "closingBracket";
         | 
| 4919 | 
            +
              },
         | 
| 4920 | 
            +
             | 
| 4921 | 
            +
              _removeAddButton: function() {
         | 
| 4922 | 
            +
                this.removeInput("addButton")
         | 
| 4923 | 
            +
                this.removeInput("closingBracket");
         | 
| 4924 | 
            +
              },
         | 
| 4925 | 
            +
             | 
| 4926 | 
            +
              _addRemoveButtonFor: function(input) {
         | 
| 4927 | 
            +
                const icon = "minus.png";
         | 
| 4928 | 
            +
                var removeButton = new Blockly.FieldImage(
         | 
| 4929 | 
            +
                  getLocalMediaUrl(this, icon),
         | 
| 4930 | 
            +
                  getLocalMediaSize(icon),
         | 
| 4931 | 
            +
                  getLocalMediaSize(icon),
         | 
| 4932 | 
            +
                  "Quitar elemento",
         | 
| 4933 | 
            +
                  function() {
         | 
| 4934 | 
            +
                    this._removeElement(input);
         | 
| 4935 | 
            +
                  }.bind(this)
         | 
| 4936 | 
            +
                );
         | 
| 4937 | 
            +
                input.appendField(removeButton);
         | 
| 4938 | 
            +
              }
         | 
| 4939 | 
            +
            };
         | 
| 4940 | 
            +
             | 
| 4852 4941 | 
             
            function createSingleParameterExpressionBlock(blockText,returnType, colorType = "operator"){
         | 
| 4853 4942 | 
             
            	return {
         | 
| 4854 4943 | 
             
            		init: function () {
         | 
| @@ -5478,6 +5567,17 @@ Blockly.GobstonesLanguage.ColorSelector = literalSelectorBlockCodeGenerator('Col | |
| 5478 5567 | 
             
            Blockly.GobstonesLanguage.DireccionSelector = literalSelectorBlockCodeGenerator('Direccion');
         | 
| 5479 5568 | 
             
            Blockly.GobstonesLanguage.BoolSelector = literalSelectorBlockCodeGenerator('Bool');
         | 
| 5480 5569 |  | 
| 5570 | 
            +
            Blockly.GobstonesLanguage.List = function(block) {
         | 
| 5571 | 
            +
              const elements = block
         | 
| 5572 | 
            +
                .inputList
         | 
| 5573 | 
            +
                .filter((it) => it.name.startsWith("element"))
         | 
| 5574 | 
            +
                .map((it) => Blockly.GobstonesLanguage.valueToCode(block, it.name, Blockly.GobstonesLanguage.ORDER_NONE))
         | 
| 5575 | 
            +
                .join(", ");
         | 
| 5576 | 
            +
              const code = `[${elements}]`;
         | 
| 5577 | 
            +
             | 
| 5578 | 
            +
              return [code, Blockly.GobstonesLanguage.ORDER_ATOMIC];
         | 
| 5579 | 
            +
            };
         | 
| 5580 | 
            +
             | 
| 5481 5581 | 
             
            Blockly.GobstonesLanguage.OperadorDeComparacion = function (block) {
         | 
| 5482 5582 | 
             
            	var code =
         | 
| 5483 5583 | 
             
            		(Blockly.GobstonesLanguage.valueToCode(block, 'arg1', Blockly.GobstonesLanguage.ORDER_RELATIONAL) || '()') +
         | 
| @@ -6572,6 +6672,8 @@ Blockly.ErrorInforming.CssContent = [ | |
| 6572 6672 | 
             
                    const oldAndOperator = `<field name="OPERATOR">&&</field>`;
         | 
| 6573 6673 | 
             
                    const newAndOperator = `<field name="OPERATOR">AND</field>`;
         | 
| 6574 6674 |  | 
| 6675 | 
            +
                    if (!this.workspaceXml) return;
         | 
| 6676 | 
            +
             | 
| 6575 6677 | 
             
                    if (this.workspaceXml.includes(oldAndOperator)) {
         | 
| 6576 6678 | 
             
                      this.workspaceXml = this.workspaceXml.replace(new RegExp(oldAndOperator, "g"), newAndOperator);
         | 
| 6577 6679 | 
             
                      return true;
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: gobstones-blockly
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.23.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Rodrigo Alfonso
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2018-10- | 
| 11 | 
            +
            date: 2018-10-05 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         |