The implementation was prepending an empty string blindly to the front of the fragment provided to the tags which caused the turnary to always be evaluated truthily.
<%- this.ad.activity ? this.ad.activity.activity : "" %>
(''+this.ad.activity ? this.ad.activity.activity : "")
... which is always truthy because of the type coercion. It now produces:
(''+(this.ad.activity ? this.ad.activity.activity : ""))
... which properly honors the intention of the evaluation.
Fix for tunaries always being truthy when passed to escaping EJS tags.
"||" operators are also broken in the current implementation and fixed with this pull request:
<%- this.value || "no value" %>
@onyxrev nice job, I merged this code with #20, and add specs for it