Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save NullVoxPopuli/0b709c72e16e7e10526db9973058b41f to your computer and use it in GitHub Desktop.
Save NullVoxPopuli/0b709c72e16e7e10526db9973058b41f to your computer and use it in GitHub Desktop.

Revisions

  1. NullVoxPopuli revised this gist Aug 5, 2020. No changes.
  2. NullVoxPopuli revised this gist Aug 5, 2020. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions controllers.application\.js
    Original file line number Diff line number Diff line change
    @@ -2,11 +2,11 @@ import Controller from '@ember/controller';
    import EmberObject from '@ember/object';

    function logged(target, key, descriptor) {
    // let { initializer } = descriptor;
    let { initializer } = descriptor;

    let get = function() {
    console.log(`Get ${key}`); // DOES NOT LOG!
    return descriptor.initializer();
    return initializer();
    };
    let set = function(value) {
    console.log(`Set ${key}`); // DOES NOT LOG!
  3. NullVoxPopuli revised this gist Aug 5, 2020. 1 changed file with 25 additions and 12 deletions.
    37 changes: 25 additions & 12 deletions controllers.application\.js
    Original file line number Diff line number Diff line change
    @@ -2,29 +2,42 @@ import Controller from '@ember/controller';
    import EmberObject from '@ember/object';

    function logged(target, key, descriptor) {
    let _value = descriptor.initializer?.();
    console.log({ target, key, descriptor, _value });
    descriptor.get = function() {
    // let { initializer } = descriptor;

    let get = function() {
    console.log(`Get ${key}`); // DOES NOT LOG!
    return _value;
    return descriptor.initializer();
    };
    descriptor.set = function(value) {
    let set = function(value) {
    console.log(`Set ${key}`); // DOES NOT LOG!
    return (_value = value);
    return ;
    };
    return descriptor;

    console.log(descriptor);

    let newDescriptor = {
    get,
    set,
    configurable: false,
    enumerable: false,
    //writable: false,
    //value: undefined,
    //initializer: undefined,
    };

    console.log(newDescriptor);

    return newDescriptor;
    }

    class Foo extends EmberObject {
    class Foo {
    @logged foobar = 'FOOBAR';
    }

    export default class ApplicationController extends Controller {
    init() {
    super.init(...arguments);
    let foo = Foo.create();
    console.log(`Result 1: ${foo.foobar}`);
    foo.foobar = 'BARFOO';
    console.log(`Result 2: ${foo.foobar}`);
    let foo = new Foo();
    console.log(`Result: ${foo.foobar}`);
    }
    }
  4. @sukima sukima revised this gist Aug 5, 2020. 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
    @@ -23,6 +23,8 @@ export default class ApplicationController extends Controller {
    init() {
    super.init(...arguments);
    let foo = Foo.create();
    console.log(`Result: ${foo.foobar}`);
    console.log(`Result 1: ${foo.foobar}`);
    foo.foobar = 'BARFOO';
    console.log(`Result 2: ${foo.foobar}`);
    }
    }
  5. @sukima sukima revised this gist Aug 5, 2020. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions controllers.application\.js
    Original file line number Diff line number Diff line change
    @@ -5,11 +5,11 @@ function logged(target, key, descriptor) {
    let _value = descriptor.initializer?.();
    console.log({ target, key, descriptor, _value });
    descriptor.get = function() {
    console.log(`Get ${key}`);
    console.log(`Get ${key}`); // DOES NOT LOG!
    return _value;
    };
    descriptor.set = function(value) {
    console.log(`Set ${key}`);
    console.log(`Set ${key}`); // DOES NOT LOG!
    return (_value = value);
    };
    return descriptor;
  6. @sukima sukima created this gist Aug 5, 2020.
    28 changes: 28 additions & 0 deletions controllers.application\.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,28 @@
    import Controller from '@ember/controller';
    import EmberObject from '@ember/object';

    function logged(target, key, descriptor) {
    let _value = descriptor.initializer?.();
    console.log({ target, key, descriptor, _value });
    descriptor.get = function() {
    console.log(`Get ${key}`);
    return _value;
    };
    descriptor.set = function(value) {
    console.log(`Set ${key}`);
    return (_value = value);
    };
    return descriptor;
    }

    class Foo extends EmberObject {
    @logged foobar = 'FOOBAR';
    }

    export default class ApplicationController extends Controller {
    init() {
    super.init(...arguments);
    let foo = Foo.create();
    console.log(`Result: ${foo.foobar}`);
    }
    }
    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 {{this.appName}}</h1>
    <br>
    <br>
    {{outlet}}
    <br>
    <br>
    22 changes: 22 additions & 0 deletions twiddle\.json
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,22 @@
    {
    "version": "0.17.1",
    "EmberENV": {
    "FEATURES": {},
    "_TEMPLATE_ONLY_GLIMMER_COMPONENTS": false,
    "_APPLICATION_TEMPLATE_WRAPPER": true,
    "_JQUERY_INTEGRATION": true
    },
    "options": {
    "use_pods": false,
    "enable-testing": false
    },
    "dependencies": {
    "jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.js",
    "ember": "3.18.1",
    "ember-template-compiler": "3.18.1",
    "ember-testing": "3.18.1"
    },
    "addons": {
    "@glimmer/component": "1.0.0"
    }
    }