Skip to content

Conversation

KingDuckZ
Copy link

This addresses issue #13 with minimal effort from the user. Users need to provide a functor that takes a string and returns the content of the partial being requested as an optional string. The old behaviour is maintained by default, though it's now implemented in terms of the new render() overload.

One consideration is that now template_type is constructed only when a partial is requested, as opposed to being pre-constructed pre-emptively inside render(). If a template uses the same partial several times (unlikely, imo) template_type is constructed every time. I have no idea of how expensive that is, so this might be a non-issue. Please do let me know if there's anything to make this code look better.

Client code is free to provide a functor that implements the
search and file opening logic to have {{> test}} to open
~/mydata/test.mustache for example.
@KingDuckZ
Copy link
Author

Out of curiosity, I tried re-implementing this by adding an mstch::config::partial static functor and completely removing the partials map passed to render(). Aside of the fact that globals shouldn't be there at all I still tried, but imo it's not viable because if the global functor is not set by client code then... what's the default behaviour then? If render() was to retain its partials parameter it would just get very confusing, because whether it uses that parameter or not would depend of a global. Just the thought of it makes me feel sick.

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

Successfully merging this pull request may close these issues.

1 participant