Skip to content

Instantly share code, notes, and snippets.

@manufitoussi
Last active September 20, 2018 08:32
Show Gist options
  • Select an option

  • Save manufitoussi/9dba32465b451f67368b0868e29e7f7f to your computer and use it in GitHub Desktop.

Select an option

Save manufitoussi/9dba32465b451f67368b0868e29e7f7f to your computer and use it in GitHub Desktop.

Revisions

  1. manufitoussi revised this gist Sep 20, 2018. 1 changed file with 12 additions and 1 deletion.
    13 changes: 12 additions & 1 deletion controllers.application.js
    Original file line number Diff line number Diff line change
    @@ -5,7 +5,11 @@ var MyObj = Ember.Object.extend({
    get() {
    var Obj = class Obj {
    shrinkValues() {
    console.log(Object.keys(this));
    Object.keys(this).forEach(key => {
    if(this[key] === Obj.prototype[key]) {
    delete this[key];
    }
    });
    }
    };

    @@ -34,5 +38,12 @@ export default Ember.Controller.extend({
    console.log('this.myObj.obj.prop3', this.myObj.obj.prop3);
    console.log('this.myObj.obj.prop4', this.myObj.obj.prop4);
    console.log('this.myObj.obj', this.myObj.obj);
    Ember.set(this.myObj, 'obj.prop2', 'default2');
    this.myObj.obj.shrinkValues();
    console.log('this.myObj.obj.prop1', this.myObj.obj.prop1);
    console.log('this.myObj.obj.prop2', this.myObj.obj.prop2);
    console.log('this.myObj.obj.prop3', this.myObj.obj.prop3);
    console.log('this.myObj.obj.prop4', this.myObj.obj.prop4);
    console.log('this.myObj.obj', this.myObj.obj);
    }
    });
  2. manufitoussi revised this gist Sep 20, 2018. 1 changed file with 2 additions and 5 deletions.
    7 changes: 2 additions & 5 deletions controllers.application.js
    Original file line number Diff line number Diff line change
    @@ -4,11 +4,8 @@ var MyObj = Ember.Object.extend({
    obj: Ember.computed({
    get() {
    var Obj = class Obj {
    get(key) {
    console.log('get()', key);
    // if(this.hasOwnProperty(key)) return Ember.get(this, key);
    // return 'coucou';
    return Ember.get(this, key)
    shrinkValues() {
    console.log(Object.keys(this));
    }
    };

  3. manufitoussi revised this gist Sep 20, 2018. 1 changed file with 8 additions and 8 deletions.
    16 changes: 8 additions & 8 deletions controllers.application.js
    Original file line number Diff line number Diff line change
    @@ -4,14 +4,14 @@ var MyObj = Ember.Object.extend({
    obj: Ember.computed({
    get() {
    var Obj = class Obj {

    };
    Obj.prototype.get = function(key) {
    console.log('get()', key);
    // if(this.hasOwnProperty(key)) return Ember.get(this, key);
    // return 'coucou';
    return Ember.get(this, key)
    get(key) {
    console.log('get()', key);
    // if(this.hasOwnProperty(key)) return Ember.get(this, key);
    // return 'coucou';
    return Ember.get(this, key)
    }
    };

    Obj.prototype.prop1 = 'default1';
    Obj.prototype.prop2 = 'default2';
    Obj.prototype.prop3 = 'default3';
    @@ -31,7 +31,7 @@ export default Ember.Controller.extend({
    this.myObj = MyObj.create();
    this.myObj.obj.prop1 = 1;
    Ember.set(this.myObj, 'obj.prop2', 2);
    Ember.set(this, 'myObj.obj.prop2', 3);
    Ember.set(this, 'myObj.obj.prop3', 3);
    console.log('this.myObj.obj.prop1', this.myObj.obj.prop1);
    console.log('this.myObj.obj.prop2', this.myObj.obj.prop2);
    console.log('this.myObj.obj.prop3', this.myObj.obj.prop3);
  4. manufitoussi revised this gist Sep 20, 2018. 1 changed file with 6 additions and 3 deletions.
    9 changes: 6 additions & 3 deletions controllers.application.js
    Original file line number Diff line number Diff line change
    @@ -17,9 +17,7 @@ var MyObj = Ember.Object.extend({
    Obj.prototype.prop3 = 'default3';
    Obj.prototype.prop4 = 'default4';

    var obj = new Obj();
    obj.prop1 = 1;
    return obj;
    return new Obj()
    }
    }).readOnly()
    });
    @@ -31,8 +29,13 @@ export default Ember.Controller.extend({
    init() {
    this._super();
    this.myObj = MyObj.create();
    this.myObj.obj.prop1 = 1;
    Ember.set(this.myObj, 'obj.prop2', 2);
    Ember.set(this, 'myObj.obj.prop2', 3);
    console.log('this.myObj.obj.prop1', this.myObj.obj.prop1);
    console.log('this.myObj.obj.prop2', this.myObj.obj.prop2);
    console.log('this.myObj.obj.prop3', this.myObj.obj.prop3);
    console.log('this.myObj.obj.prop4', this.myObj.obj.prop4);
    console.log('this.myObj.obj', this.myObj.obj);
    }
    });
  5. manufitoussi revised this gist Sep 20, 2018. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion controllers.application.js
    Original file line number Diff line number Diff line change
    @@ -7,7 +7,7 @@ var MyObj = Ember.Object.extend({

    };
    Obj.prototype.get = function(key) {
    console.log('get(key)', key);
    console.log('get()', key);
    // if(this.hasOwnProperty(key)) return Ember.get(this, key);
    // return 'coucou';
    return Ember.get(this, key)
    @@ -33,5 +33,6 @@ export default Ember.Controller.extend({
    this.myObj = MyObj.create();
    console.log('this.myObj.obj.prop1', this.myObj.obj.prop1);
    console.log('this.myObj.obj.prop2', this.myObj.obj.prop2);
    console.log('this.myObj.obj', this.myObj.obj);
    }
    });
  6. manufitoussi revised this gist Sep 20, 2018. 2 changed files with 2 additions and 1 deletion.
    1 change: 1 addition & 0 deletions controllers.application.js
    Original file line number Diff line number Diff line change
    @@ -32,5 +32,6 @@ export default Ember.Controller.extend({
    this._super();
    this.myObj = MyObj.create();
    console.log('this.myObj.obj.prop1', this.myObj.obj.prop1);
    console.log('this.myObj.obj.prop2', this.myObj.obj.prop2);
    }
    });
    2 changes: 1 addition & 1 deletion templates.application.hbs
    Original file line number Diff line number Diff line change
    @@ -6,5 +6,5 @@
    <br>

    <div>
    <label>myObj.obj:</label> {{myObj.obj.prop1.value}}
    <label>myObj.obj:</label> {{myObj.obj.prop1}}
    </div>
  7. manufitoussi revised this gist Sep 20, 2018. 1 changed file with 3 additions and 4 deletions.
    7 changes: 3 additions & 4 deletions controllers.application.js
    Original file line number Diff line number Diff line change
    @@ -15,12 +15,10 @@ var MyObj = Ember.Object.extend({
    Obj.prototype.prop1 = 'default1';
    Obj.prototype.prop2 = 'default2';
    Obj.prototype.prop3 = 'default3';
    Obj.prototype.prop4 = 'default4;
    Obj.prototype.prop4 = 'default4';

    var obj = new Obj();
    obj.prop1 = {
    value: 1
    };
    obj.prop1 = 1;
    return obj;
    }
    }).readOnly()
    @@ -33,5 +31,6 @@ export default Ember.Controller.extend({
    init() {
    this._super();
    this.myObj = MyObj.create();
    console.log('this.myObj.obj.prop1', this.myObj.obj.prop1);
    }
    });
  8. manufitoussi revised this gist Sep 20, 2018. 1 changed file with 5 additions and 21 deletions.
    26 changes: 5 additions & 21 deletions controllers.application.js
    Original file line number Diff line number Diff line change
    @@ -1,37 +1,21 @@
    import Ember from 'ember';

    var Value = class Value {

    constructor() {
    }

    get value() {
    return 'default';
    }

    set value(v)
    }


    var MyObj = Ember.Object.extend({
    obj: Ember.computed({
    get() {
    var Obj = class Obj {
    get prop4() {
    console.log('get prop4');
    return this._prop4;
    }

    };
    Obj.prototype.get = function(key) {
    console.log('get(key)', key);
    // if(this.hasOwnProperty(key)) return Ember.get(this, key);
    // return 'coucou';
    return Ember.get(this, key)
    };
    Obj.prototype.prop1 = { value: 'default1' };
    Obj.prototype.prop2 = { value: 'default2' };
    Obj.prototype.prop3 = { value: 'default3' };
    Obj.prototype._prop4 = { value: 'default4' };
    Obj.prototype.prop1 = 'default1';
    Obj.prototype.prop2 = 'default2';
    Obj.prototype.prop3 = 'default3';
    Obj.prototype.prop4 = 'default4;

    var obj = new Obj();
    obj.prop1 = {
  9. manufitoussi revised this gist Sep 20, 2018. 1 changed file with 15 additions and 16 deletions.
    31 changes: 15 additions & 16 deletions controllers.application.js
    Original file line number Diff line number Diff line change
    @@ -1,12 +1,25 @@
    import Ember from 'ember';

    var Value = class Value {

    constructor() {
    }

    get value() {
    return 'default';
    }

    set value(v)
    }


    var MyObj = Ember.Object.extend({
    obj: Ember.computed({
    get() {
    var Obj = class Obj {
    get prop4() {
    console.log('get prop4');
    return { value: 'default4'};
    return this._prop4;
    }
    };
    Obj.prototype.get = function(key) {
    @@ -18,6 +31,7 @@ var MyObj = Ember.Object.extend({
    Obj.prototype.prop1 = { value: 'default1' };
    Obj.prototype.prop2 = { value: 'default2' };
    Obj.prototype.prop3 = { value: 'default3' };
    Obj.prototype._prop4 = { value: 'default4' };

    var obj = new Obj();
    obj.prop1 = {
    @@ -35,20 +49,5 @@ export default Ember.Controller.extend({
    init() {
    this._super();
    this.myObj = MyObj.create();
    console.log('this.myObj.obj.prop1.value:', this.myObj.obj.prop1.value);
    console.log('Ember.get(this, \'myObj.obj.prop1.value\'):', Ember.get(this, 'myObj.obj.prop1.value'));
    console.log('Ember.get(this.myObj.obj, \'prop1.value\'):', Ember.get(this.myObj.obj, 'prop1.value'));
    console.log('this.myObj.obj.get(\'prop1.value\'):', this.myObj.obj.get('prop1.value'));
    console.log('this.myObj.obj', this.myObj.obj);
    console.log('this.myObj.obj.prop2.value:', this.myObj.obj.prop2.value);
    console.log('Ember.get(this, \'myObj.obj.prop2.value\'):', Ember.get(this, 'myObj.obj.prop2.value'));
    console.log('Ember.get(this.myObj.obj, \'prop2.value\'):', Ember.get(this.myObj.obj, 'prop2.value'));
    console.log('this.myObj.obj.get(\'prop2.value\'):', this.myObj.obj.get('prop2.value'));
    this.myObj.obj.prop4.value = 2;
    console.log('this.myObj.obj.prop4.value:', this.myObj.obj.prop4.value);
    console.log('Ember.get(this, \'myObj.obj.prop4.value\'):', Ember.get(this, 'myObj.obj.prop4.value'));
    console.log('Ember.get(this.myObj.obj, \'prop4.value\'):', Ember.get(this.myObj.obj, 'prop4.value'));
    console.log('this.myObj.obj.get(\'prop4.value\'):', this.myObj.obj.get('prop4.value'));
    console.log('this.myObj.obj', this.myObj.obj);
    }
    });
  10. manufitoussi revised this gist Sep 20, 2018. 1 changed file with 3 additions and 2 deletions.
    5 changes: 3 additions & 2 deletions controllers.application.js
    Original file line number Diff line number Diff line change
    @@ -11,8 +11,9 @@ var MyObj = Ember.Object.extend({
    };
    Obj.prototype.get = function(key) {
    console.log('get(key)', key);
    if(this.hasOwnProperty(key)) return Ember.get(this, key);
    return 'coucou';
    // if(this.hasOwnProperty(key)) return Ember.get(this, key);
    // return 'coucou';
    return Ember.get(this, key)
    };
    Obj.prototype.prop1 = { value: 'default1' };
    Obj.prototype.prop2 = { value: 'default2' };
  11. manufitoussi revised this gist Sep 20, 2018. 1 changed file with 5 additions and 5 deletions.
    10 changes: 5 additions & 5 deletions controllers.application.js
    Original file line number Diff line number Diff line change
    @@ -43,11 +43,11 @@ export default Ember.Controller.extend({
    console.log('Ember.get(this, \'myObj.obj.prop2.value\'):', Ember.get(this, 'myObj.obj.prop2.value'));
    console.log('Ember.get(this.myObj.obj, \'prop2.value\'):', Ember.get(this.myObj.obj, 'prop2.value'));
    console.log('this.myObj.obj.get(\'prop2.value\'):', this.myObj.obj.get('prop2.value'));
    this.myObj.obj.prop2.value = 2;
    console.log('this.myObj.obj.prop2.value:', this.myObj.obj.prop2.value);
    console.log('Ember.get(this, \'myObj.obj.prop2.value\'):', Ember.get(this, 'myObj.obj.prop2.value'));
    console.log('Ember.get(this.myObj.obj, \'prop2.value\'):', Ember.get(this.myObj.obj, 'prop2.value'));
    console.log('this.myObj.obj.get(\'prop2.value\'):', this.myObj.obj.get('prop2.value'));
    this.myObj.obj.prop4.value = 2;
    console.log('this.myObj.obj.prop4.value:', this.myObj.obj.prop4.value);
    console.log('Ember.get(this, \'myObj.obj.prop4.value\'):', Ember.get(this, 'myObj.obj.prop4.value'));
    console.log('Ember.get(this.myObj.obj, \'prop4.value\'):', Ember.get(this.myObj.obj, 'prop4.value'));
    console.log('this.myObj.obj.get(\'prop4.value\'):', this.myObj.obj.get('prop4.value'));
    console.log('this.myObj.obj', this.myObj.obj);
    }
    });
  12. manufitoussi revised this gist Sep 20, 2018. No changes.
  13. manufitoussi revised this gist Sep 20, 2018. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions controllers.application.js
    Original file line number Diff line number Diff line change
    @@ -5,6 +5,7 @@ var MyObj = Ember.Object.extend({
    get() {
    var Obj = class Obj {
    get prop4() {
    console.log('get prop4');
    return { value: 'default4'};
    }
    };
  14. manufitoussi revised this gist Sep 20, 2018. 1 changed file with 29 additions and 11 deletions.
    40 changes: 29 additions & 11 deletions controllers.application.js
    Original file line number Diff line number Diff line change
    @@ -3,18 +3,25 @@ import Ember from 'ember';
    var MyObj = Ember.Object.extend({
    obj: Ember.computed({
    get() {
    var obj = {
    prop1: {
    value: 1,
    },

    get(key) {
    if(obj.hasOwnProperty(key)) return Ember.get(obj, key);
    return 'coucou';
    }
    var Obj = class Obj {
    get prop4() {
    return { value: 'default4'};
    }
    };
    Obj.prototype.get = function(key) {
    console.log('get(key)', key);
    if(this.hasOwnProperty(key)) return Ember.get(this, key);
    return 'coucou';
    };
    Obj.prototype.prop1 = { value: 'default1' };
    Obj.prototype.prop2 = { value: 'default2' };
    Obj.prototype.prop3 = { value: 'default3' };

    return obs;
    var obj = new Obj();
    obj.prop1 = {
    value: 1
    };
    return obj;
    }
    }).readOnly()
    });
    @@ -28,7 +35,18 @@ export default Ember.Controller.extend({
    this.myObj = MyObj.create();
    console.log('this.myObj.obj.prop1.value:', this.myObj.obj.prop1.value);
    console.log('Ember.get(this, \'myObj.obj.prop1.value\'):', Ember.get(this, 'myObj.obj.prop1.value'));
    console.log('Ember.get(this.myObj.obj.prop1, \'value\'):', Ember.get(this.myObj.obj.prop1, 'value'));
    console.log('Ember.get(this.myObj.obj, \'prop1.value\'):', Ember.get(this.myObj.obj, 'prop1.value'));
    console.log('this.myObj.obj.get(\'prop1.value\'):', this.myObj.obj.get('prop1.value'));
    console.log('this.myObj.obj', this.myObj.obj);
    console.log('this.myObj.obj.prop2.value:', this.myObj.obj.prop2.value);
    console.log('Ember.get(this, \'myObj.obj.prop2.value\'):', Ember.get(this, 'myObj.obj.prop2.value'));
    console.log('Ember.get(this.myObj.obj, \'prop2.value\'):', Ember.get(this.myObj.obj, 'prop2.value'));
    console.log('this.myObj.obj.get(\'prop2.value\'):', this.myObj.obj.get('prop2.value'));
    this.myObj.obj.prop2.value = 2;
    console.log('this.myObj.obj.prop2.value:', this.myObj.obj.prop2.value);
    console.log('Ember.get(this, \'myObj.obj.prop2.value\'):', Ember.get(this, 'myObj.obj.prop2.value'));
    console.log('Ember.get(this.myObj.obj, \'prop2.value\'):', Ember.get(this.myObj.obj, 'prop2.value'));
    console.log('this.myObj.obj.get(\'prop2.value\'):', this.myObj.obj.get('prop2.value'));
    console.log('this.myObj.obj', this.myObj.obj);
    }
    });
  15. manufitoussi revised this gist Sep 20, 2018. 1 changed file with 3 additions and 1 deletion.
    4 changes: 3 additions & 1 deletion controllers.application.js
    Original file line number Diff line number Diff line change
    @@ -13,6 +13,8 @@ var MyObj = Ember.Object.extend({
    return 'coucou';
    }
    };

    return obs;
    }
    }).readOnly()
    });
    @@ -27,6 +29,6 @@ export default Ember.Controller.extend({
    console.log('this.myObj.obj.prop1.value:', this.myObj.obj.prop1.value);
    console.log('Ember.get(this, \'myObj.obj.prop1.value\'):', Ember.get(this, 'myObj.obj.prop1.value'));
    console.log('Ember.get(this.myObj.obj.prop1, \'value\'):', Ember.get(this.myObj.obj.prop1, 'value'));
    console.log('this.myObj.obj.prop1.get(\'value\'):', this.myObj.obj.prop1.get('value'));
    console.log('this.myObj.obj.get(\'prop1.value\'):', this.myObj.obj.get('prop1.value'));
    }
    });
  16. manufitoussi revised this gist Sep 20, 2018. 1 changed file with 8 additions and 6 deletions.
    14 changes: 8 additions & 6 deletions controllers.application.js
    Original file line number Diff line number Diff line change
    @@ -3,14 +3,15 @@ import Ember from 'ember';
    var MyObj = Ember.Object.extend({
    obj: Ember.computed({
    get() {
    return {
    var obj = {
    prop1: {
    value: 1,

    get(key) {
    },

    get(key) {
    if(obj.hasOwnProperty(key)) return Ember.get(obj, key);
    return 'coucou';
    }
    }
    };
    }
    }).readOnly()
    @@ -24,7 +25,8 @@ export default Ember.Controller.extend({
    this._super();
    this.myObj = MyObj.create();
    console.log('this.myObj.obj.prop1.value:', this.myObj.obj.prop1.value);
    console.log('this.get(\'myObj.obj.prop1.value\'):', this.get('myObj.obj.prop1.value'));
    console.log('this.myObj.get(\'obj.prop1.value\'):', this.myObj.get('obj.prop1.value'));
    console.log('Ember.get(this, \'myObj.obj.prop1.value\'):', Ember.get(this, 'myObj.obj.prop1.value'));
    console.log('Ember.get(this.myObj.obj.prop1, \'value\'):', Ember.get(this.myObj.obj.prop1, 'value'));
    console.log('this.myObj.obj.prop1.get(\'value\'):', this.myObj.obj.prop1.get('value'));
    }
    });
  17. manufitoussi revised this gist Sep 20, 2018. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions controllers.application.js
    Original file line number Diff line number Diff line change
    @@ -24,5 +24,7 @@ export default Ember.Controller.extend({
    this._super();
    this.myObj = MyObj.create();
    console.log('this.myObj.obj.prop1.value:', this.myObj.obj.prop1.value);
    console.log('this.get(\'myObj.obj.prop1.value\'):', this.get('myObj.obj.prop1.value'));
    console.log('this.myObj.get(\'obj.prop1.value\'):', this.myObj.get('obj.prop1.value'));
    }
    });
  18. manufitoussi revised this gist Sep 20, 2018. 1 changed file with 6 additions and 1 deletion.
    7 changes: 6 additions & 1 deletion controllers.application.js
    Original file line number Diff line number Diff line change
    @@ -5,7 +5,11 @@ var MyObj = Ember.Object.extend({
    get() {
    return {
    prop1: {
    value: 1
    value: 1,

    get(key) {
    return 'coucou';
    }
    }
    };
    }
    @@ -19,5 +23,6 @@ export default Ember.Controller.extend({
    init() {
    this._super();
    this.myObj = MyObj.create();
    console.log('this.myObj.obj.prop1.value:', this.myObj.obj.prop1.value);
    }
    });
  19. manufitoussi revised this gist Sep 20, 2018. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion templates.application.hbs
    Original file line number Diff line number Diff line change
    @@ -6,5 +6,5 @@
    <br>

    <div>
    <label>myObj.obj:</label> {{myObj.obj}}
    <label>myObj.obj:</label> {{myObj.obj.prop1.value}}
    </div>
  20. manufitoussi revised this gist Sep 20, 2018. 2 changed files with 6 additions and 2 deletions.
    2 changes: 1 addition & 1 deletion controllers.application.js
    Original file line number Diff line number Diff line change
    @@ -18,6 +18,6 @@ export default Ember.Controller.extend({

    init() {
    this._super();
    this.myObj = obj;
    this.myObj = MyObj.create();
    }
    });
    6 changes: 5 additions & 1 deletion templates.application.hbs
    Original file line number Diff line number Diff line change
    @@ -3,4 +3,8 @@
    <br>
    {{outlet}}
    <br>
    <br>
    <br>

    <div>
    <label>myObj.obj:</label> {{myObj.obj}}
    </div>
  21. manufitoussi created this gist Sep 20, 2018.
    23 changes: 23 additions & 0 deletions controllers.application.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,23 @@
    import Ember from 'ember';

    var MyObj = Ember.Object.extend({
    obj: Ember.computed({
    get() {
    return {
    prop1: {
    value: 1
    }
    };
    }
    }).readOnly()
    });


    export default Ember.Controller.extend({
    appName: 'Ember Twiddle',

    init() {
    this._super();
    this.myObj = obj;
    }
    });
    6 changes: 6 additions & 0 deletions templates.application.hbs
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,6 @@
    <h1>Welcome to {{appName}}</h1>
    <br>
    <br>
    {{outlet}}
    <br>
    <br>
    19 changes: 19 additions & 0 deletions twiddle.json
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,19 @@
    {
    "version": "0.15.0",
    "EmberENV": {
    "FEATURES": {}
    },
    "options": {
    "use_pods": false,
    "enable-testing": false
    },
    "dependencies": {
    "jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js",
    "ember": "3.2.2",
    "ember-template-compiler": "3.2.2",
    "ember-testing": "3.2.2"
    },
    "addons": {
    "ember-data": "3.2.0"
    }
    }