Skip to content
This repository has been archived by the owner on Jan 17, 2025. It is now read-only.

Consider using RegExp and CPM instead of a Babel transform #15

Open
SaladFork opened this issue Sep 20, 2016 · 1 comment
Open

Consider using RegExp and CPM instead of a Babel transform #15

SaladFork opened this issue Sep 20, 2016 · 1 comment

Comments

@SaladFork
Copy link

SaladFork commented Sep 20, 2016

I recently watched (and enjoyed!) @serenaf's talk about this addon at EmberCamp London 2016.

I had an idea for how this might be doable without having to resort to a Babel transform (which I had a few concerns about) while still maintaining the same interface. I gave it a shot and was able to get this to work using a computed property macro and a RegExp.

The idea behind my approach relies on three observations:

The approach is then to create a computed property macro which:

  • Constructs and uses a regular expression to get all properties/paths in the passed template string, then
  • Uses those properties (after a uniq to avoid duplication) as the dependent keys of the generated computed property, and finally
  • Uses String.prototype.replace to replace instances of ${property} with the get() lookup of those properties.

You can see my solution in a twiddle (source). For the tests I copied the tests in this project's tests/unit/custom-replace-call-paths-test.js, and they seem to all pass.

@lolmaus
Copy link
Contributor

lolmaus commented Feb 2, 2017

Due to #17, I'm unable to use ember-computed-template-string, so I used @SaladFork's solution as a local module. It works fine. 👍

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants